This commit was generated by cvs2svn to track changes on a CVS vendor
[deliverable/binutils-gdb.git] / sim / fr30 / decode.c
CommitLineData
c906108c
SS
1/* Simulator instruction decoder for fr30bf.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
6
7This file is part of the GNU Simulators.
8
9This program is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 2, or (at your option)
12any later version.
13
14This program is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License along
20with this program; if not, write to the Free Software Foundation, Inc.,
2159 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23*/
24
25#define WANT_CPU fr30bf
26#define WANT_CPU_FR30BF
27
28#include "sim-main.h"
29#include "sim-assert.h"
30
31/* FIXME: Need to review choices for the following. */
32
33#if WITH_SEM_SWITCH_FULL
34#define FULL(fn)
35#else
36#define FULL(fn) CONCAT3 (fr30bf,_sem_,fn) ,
37#endif
38
39#if WITH_FAST
40#if WITH_SEM_SWITCH_FAST
41#define FAST(fn)
42#else
43#define FAST(fn) CONCAT3 (fr30bf,_semf_,fn) , /* f for fast */
44#endif
45#else
46#define FAST(fn)
47#endif
48
7a292a7a
SS
49/* The INSN_ prefix is not here and is instead part of the `insn' argument
50 to avoid collisions with header files (e.g. `AND' in ansidecl.h). */
51#define IDX(insn) CONCAT2 (FR30BF_,insn)
52#define TYPE(insn) CONCAT2 (FR30_,insn)
53
c906108c
SS
54/* The instruction descriptor array.
55 This is computed at runtime. Space for it is not malloc'd to save a
56 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
57 but won't be done until necessary (we don't currently support the runtime
58 addition of instructions nor an SMP machine with different cpus). */
59static IDESC fr30bf_insn_data[FR30BF_INSN_MAX];
60
c906108c
SS
61/* Commas between elements are contained in the macros.
62 Some of these are conditionally compiled out. */
63
64static const struct insn_sem fr30bf_insn_sem[] =
65{
66 { VIRTUAL_INSN_X_INVALID, IDX (INSN_X_INVALID), FULL (x_invalid) FAST (x_invalid) },
67 { VIRTUAL_INSN_X_AFTER, IDX (INSN_X_AFTER), FULL (x_after) FAST (x_after) },
68 { VIRTUAL_INSN_X_BEFORE, IDX (INSN_X_BEFORE), FULL (x_before) FAST (x_before) },
69 { VIRTUAL_INSN_X_CTI_CHAIN, IDX (INSN_X_CTI_CHAIN), FULL (x_cti_chain) FAST (x_cti_chain) },
70 { VIRTUAL_INSN_X_CHAIN, IDX (INSN_X_CHAIN), FULL (x_chain) FAST (x_chain) },
71 { VIRTUAL_INSN_X_BEGIN, IDX (INSN_X_BEGIN), FULL (x_begin) FAST (x_begin) },
72 { TYPE (INSN_ADD), IDX (INSN_ADD), FULL (add) FAST (add) },
73 { TYPE (INSN_ADDI), IDX (INSN_ADDI), FULL (addi) FAST (addi) },
74 { TYPE (INSN_ADD2), IDX (INSN_ADD2), FULL (add2) FAST (add2) },
75 { TYPE (INSN_ADDC), IDX (INSN_ADDC), FULL (addc) FAST (addc) },
76 { TYPE (INSN_ADDN), IDX (INSN_ADDN), FULL (addn) FAST (addn) },
77 { TYPE (INSN_ADDNI), IDX (INSN_ADDNI), FULL (addni) FAST (addni) },
78 { TYPE (INSN_ADDN2), IDX (INSN_ADDN2), FULL (addn2) FAST (addn2) },
79 { TYPE (INSN_SUB), IDX (INSN_SUB), FULL (sub) FAST (sub) },
80 { TYPE (INSN_SUBC), IDX (INSN_SUBC), FULL (subc) FAST (subc) },
81 { TYPE (INSN_SUBN), IDX (INSN_SUBN), FULL (subn) FAST (subn) },
82 { TYPE (INSN_CMP), IDX (INSN_CMP), FULL (cmp) FAST (cmp) },
83 { TYPE (INSN_CMPI), IDX (INSN_CMPI), FULL (cmpi) FAST (cmpi) },
84 { TYPE (INSN_CMP2), IDX (INSN_CMP2), FULL (cmp2) FAST (cmp2) },
85 { TYPE (INSN_AND), IDX (INSN_AND), FULL (and) FAST (and) },
86 { TYPE (INSN_OR), IDX (INSN_OR), FULL (or) FAST (or) },
87 { TYPE (INSN_EOR), IDX (INSN_EOR), FULL (eor) FAST (eor) },
88 { TYPE (INSN_ANDM), IDX (INSN_ANDM), FULL (andm) FAST (andm) },
89 { TYPE (INSN_ANDH), IDX (INSN_ANDH), FULL (andh) FAST (andh) },
90 { TYPE (INSN_ANDB), IDX (INSN_ANDB), FULL (andb) FAST (andb) },
91 { TYPE (INSN_ORM), IDX (INSN_ORM), FULL (orm) FAST (orm) },
92 { TYPE (INSN_ORH), IDX (INSN_ORH), FULL (orh) FAST (orh) },
93 { TYPE (INSN_ORB), IDX (INSN_ORB), FULL (orb) FAST (orb) },
94 { TYPE (INSN_EORM), IDX (INSN_EORM), FULL (eorm) FAST (eorm) },
95 { TYPE (INSN_EORH), IDX (INSN_EORH), FULL (eorh) FAST (eorh) },
96 { TYPE (INSN_EORB), IDX (INSN_EORB), FULL (eorb) FAST (eorb) },
97 { TYPE (INSN_BANDL), IDX (INSN_BANDL), FULL (bandl) FAST (bandl) },
98 { TYPE (INSN_BORL), IDX (INSN_BORL), FULL (borl) FAST (borl) },
99 { TYPE (INSN_BEORL), IDX (INSN_BEORL), FULL (beorl) FAST (beorl) },
100 { TYPE (INSN_BANDH), IDX (INSN_BANDH), FULL (bandh) FAST (bandh) },
101 { TYPE (INSN_BORH), IDX (INSN_BORH), FULL (borh) FAST (borh) },
102 { TYPE (INSN_BEORH), IDX (INSN_BEORH), FULL (beorh) FAST (beorh) },
103 { TYPE (INSN_BTSTL), IDX (INSN_BTSTL), FULL (btstl) FAST (btstl) },
104 { TYPE (INSN_BTSTH), IDX (INSN_BTSTH), FULL (btsth) FAST (btsth) },
105 { TYPE (INSN_MUL), IDX (INSN_MUL), FULL (mul) FAST (mul) },
106 { TYPE (INSN_MULU), IDX (INSN_MULU), FULL (mulu) FAST (mulu) },
107 { TYPE (INSN_MULH), IDX (INSN_MULH), FULL (mulh) FAST (mulh) },
108 { TYPE (INSN_MULUH), IDX (INSN_MULUH), FULL (muluh) FAST (muluh) },
109 { TYPE (INSN_DIV0S), IDX (INSN_DIV0S), FULL (div0s) FAST (div0s) },
110 { TYPE (INSN_DIV0U), IDX (INSN_DIV0U), FULL (div0u) FAST (div0u) },
111 { TYPE (INSN_DIV1), IDX (INSN_DIV1), FULL (div1) FAST (div1) },
112 { TYPE (INSN_DIV2), IDX (INSN_DIV2), FULL (div2) FAST (div2) },
113 { TYPE (INSN_DIV3), IDX (INSN_DIV3), FULL (div3) FAST (div3) },
114 { TYPE (INSN_DIV4S), IDX (INSN_DIV4S), FULL (div4s) FAST (div4s) },
115 { TYPE (INSN_LSL), IDX (INSN_LSL), FULL (lsl) FAST (lsl) },
116 { TYPE (INSN_LSLI), IDX (INSN_LSLI), FULL (lsli) FAST (lsli) },
117 { TYPE (INSN_LSL2), IDX (INSN_LSL2), FULL (lsl2) FAST (lsl2) },
118 { TYPE (INSN_LSR), IDX (INSN_LSR), FULL (lsr) FAST (lsr) },
119 { TYPE (INSN_LSRI), IDX (INSN_LSRI), FULL (lsri) FAST (lsri) },
120 { TYPE (INSN_LSR2), IDX (INSN_LSR2), FULL (lsr2) FAST (lsr2) },
121 { TYPE (INSN_ASR), IDX (INSN_ASR), FULL (asr) FAST (asr) },
122 { TYPE (INSN_ASRI), IDX (INSN_ASRI), FULL (asri) FAST (asri) },
123 { TYPE (INSN_ASR2), IDX (INSN_ASR2), FULL (asr2) FAST (asr2) },
124 { TYPE (INSN_LDI8), IDX (INSN_LDI8), FULL (ldi8) FAST (ldi8) },
125 { TYPE (INSN_LDI20), IDX (INSN_LDI20), FULL (ldi20) FAST (ldi20) },
126 { TYPE (INSN_LDI32), IDX (INSN_LDI32), FULL (ldi32) FAST (ldi32) },
127 { TYPE (INSN_LD), IDX (INSN_LD), FULL (ld) FAST (ld) },
128 { TYPE (INSN_LDUH), IDX (INSN_LDUH), FULL (lduh) FAST (lduh) },
129 { TYPE (INSN_LDUB), IDX (INSN_LDUB), FULL (ldub) FAST (ldub) },
130 { TYPE (INSN_LDR13), IDX (INSN_LDR13), FULL (ldr13) FAST (ldr13) },
131 { TYPE (INSN_LDR13UH), IDX (INSN_LDR13UH), FULL (ldr13uh) FAST (ldr13uh) },
132 { TYPE (INSN_LDR13UB), IDX (INSN_LDR13UB), FULL (ldr13ub) FAST (ldr13ub) },
133 { TYPE (INSN_LDR14), IDX (INSN_LDR14), FULL (ldr14) FAST (ldr14) },
134 { TYPE (INSN_LDR14UH), IDX (INSN_LDR14UH), FULL (ldr14uh) FAST (ldr14uh) },
135 { TYPE (INSN_LDR14UB), IDX (INSN_LDR14UB), FULL (ldr14ub) FAST (ldr14ub) },
136 { TYPE (INSN_LDR15), IDX (INSN_LDR15), FULL (ldr15) FAST (ldr15) },
137 { TYPE (INSN_LDR15GR), IDX (INSN_LDR15GR), FULL (ldr15gr) FAST (ldr15gr) },
138 { TYPE (INSN_LDR15DR), IDX (INSN_LDR15DR), FULL (ldr15dr) FAST (ldr15dr) },
139 { TYPE (INSN_LDR15PS), IDX (INSN_LDR15PS), FULL (ldr15ps) FAST (ldr15ps) },
140 { TYPE (INSN_ST), IDX (INSN_ST), FULL (st) FAST (st) },
141 { TYPE (INSN_STH), IDX (INSN_STH), FULL (sth) FAST (sth) },
142 { TYPE (INSN_STB), IDX (INSN_STB), FULL (stb) FAST (stb) },
143 { TYPE (INSN_STR13), IDX (INSN_STR13), FULL (str13) FAST (str13) },
144 { TYPE (INSN_STR13H), IDX (INSN_STR13H), FULL (str13h) FAST (str13h) },
145 { TYPE (INSN_STR13B), IDX (INSN_STR13B), FULL (str13b) FAST (str13b) },
146 { TYPE (INSN_STR14), IDX (INSN_STR14), FULL (str14) FAST (str14) },
147 { TYPE (INSN_STR14H), IDX (INSN_STR14H), FULL (str14h) FAST (str14h) },
148 { TYPE (INSN_STR14B), IDX (INSN_STR14B), FULL (str14b) FAST (str14b) },
149 { TYPE (INSN_STR15), IDX (INSN_STR15), FULL (str15) FAST (str15) },
150 { TYPE (INSN_STR15GR), IDX (INSN_STR15GR), FULL (str15gr) FAST (str15gr) },
151 { TYPE (INSN_STR15DR), IDX (INSN_STR15DR), FULL (str15dr) FAST (str15dr) },
152 { TYPE (INSN_STR15PS), IDX (INSN_STR15PS), FULL (str15ps) FAST (str15ps) },
153 { TYPE (INSN_MOV), IDX (INSN_MOV), FULL (mov) FAST (mov) },
154 { TYPE (INSN_MOVDR), IDX (INSN_MOVDR), FULL (movdr) FAST (movdr) },
155 { TYPE (INSN_MOVPS), IDX (INSN_MOVPS), FULL (movps) FAST (movps) },
156 { TYPE (INSN_MOV2DR), IDX (INSN_MOV2DR), FULL (mov2dr) FAST (mov2dr) },
157 { TYPE (INSN_MOV2PS), IDX (INSN_MOV2PS), FULL (mov2ps) FAST (mov2ps) },
158 { TYPE (INSN_JMP), IDX (INSN_JMP), FULL (jmp) FAST (jmp) },
159 { TYPE (INSN_JMPD), IDX (INSN_JMPD), FULL (jmpd) FAST (jmpd) },
160 { TYPE (INSN_CALLR), IDX (INSN_CALLR), FULL (callr) FAST (callr) },
161 { TYPE (INSN_CALLRD), IDX (INSN_CALLRD), FULL (callrd) FAST (callrd) },
162 { TYPE (INSN_CALL), IDX (INSN_CALL), FULL (call) FAST (call) },
163 { TYPE (INSN_CALLD), IDX (INSN_CALLD), FULL (calld) FAST (calld) },
164 { TYPE (INSN_RET), IDX (INSN_RET), FULL (ret) FAST (ret) },
165 { TYPE (INSN_RET_D), IDX (INSN_RET_D), FULL (ret_d) FAST (ret_d) },
166 { TYPE (INSN_INT), IDX (INSN_INT), FULL (int) FAST (int) },
167 { TYPE (INSN_INTE), IDX (INSN_INTE), FULL (inte) FAST (inte) },
168 { TYPE (INSN_RETI), IDX (INSN_RETI), FULL (reti) FAST (reti) },
169 { TYPE (INSN_BRAD), IDX (INSN_BRAD), FULL (brad) FAST (brad) },
170 { TYPE (INSN_BRA), IDX (INSN_BRA), FULL (bra) FAST (bra) },
171 { TYPE (INSN_BNOD), IDX (INSN_BNOD), FULL (bnod) FAST (bnod) },
172 { TYPE (INSN_BNO), IDX (INSN_BNO), FULL (bno) FAST (bno) },
173 { TYPE (INSN_BEQD), IDX (INSN_BEQD), FULL (beqd) FAST (beqd) },
174 { TYPE (INSN_BEQ), IDX (INSN_BEQ), FULL (beq) FAST (beq) },
175 { TYPE (INSN_BNED), IDX (INSN_BNED), FULL (bned) FAST (bned) },
176 { TYPE (INSN_BNE), IDX (INSN_BNE), FULL (bne) FAST (bne) },
177 { TYPE (INSN_BCD), IDX (INSN_BCD), FULL (bcd) FAST (bcd) },
178 { TYPE (INSN_BC), IDX (INSN_BC), FULL (bc) FAST (bc) },
179 { TYPE (INSN_BNCD), IDX (INSN_BNCD), FULL (bncd) FAST (bncd) },
180 { TYPE (INSN_BNC), IDX (INSN_BNC), FULL (bnc) FAST (bnc) },
181 { TYPE (INSN_BND), IDX (INSN_BND), FULL (bnd) FAST (bnd) },
182 { TYPE (INSN_BN), IDX (INSN_BN), FULL (bn) FAST (bn) },
183 { TYPE (INSN_BPD), IDX (INSN_BPD), FULL (bpd) FAST (bpd) },
184 { TYPE (INSN_BP), IDX (INSN_BP), FULL (bp) FAST (bp) },
185 { TYPE (INSN_BVD), IDX (INSN_BVD), FULL (bvd) FAST (bvd) },
186 { TYPE (INSN_BV), IDX (INSN_BV), FULL (bv) FAST (bv) },
187 { TYPE (INSN_BNVD), IDX (INSN_BNVD), FULL (bnvd) FAST (bnvd) },
188 { TYPE (INSN_BNV), IDX (INSN_BNV), FULL (bnv) FAST (bnv) },
189 { TYPE (INSN_BLTD), IDX (INSN_BLTD), FULL (bltd) FAST (bltd) },
190 { TYPE (INSN_BLT), IDX (INSN_BLT), FULL (blt) FAST (blt) },
191 { TYPE (INSN_BGED), IDX (INSN_BGED), FULL (bged) FAST (bged) },
192 { TYPE (INSN_BGE), IDX (INSN_BGE), FULL (bge) FAST (bge) },
193 { TYPE (INSN_BLED), IDX (INSN_BLED), FULL (bled) FAST (bled) },
194 { TYPE (INSN_BLE), IDX (INSN_BLE), FULL (ble) FAST (ble) },
195 { TYPE (INSN_BGTD), IDX (INSN_BGTD), FULL (bgtd) FAST (bgtd) },
196 { TYPE (INSN_BGT), IDX (INSN_BGT), FULL (bgt) FAST (bgt) },
197 { TYPE (INSN_BLSD), IDX (INSN_BLSD), FULL (blsd) FAST (blsd) },
198 { TYPE (INSN_BLS), IDX (INSN_BLS), FULL (bls) FAST (bls) },
199 { TYPE (INSN_BHID), IDX (INSN_BHID), FULL (bhid) FAST (bhid) },
200 { TYPE (INSN_BHI), IDX (INSN_BHI), FULL (bhi) FAST (bhi) },
201 { TYPE (INSN_DMOVR13), IDX (INSN_DMOVR13), FULL (dmovr13) FAST (dmovr13) },
202 { TYPE (INSN_DMOVR13H), IDX (INSN_DMOVR13H), FULL (dmovr13h) FAST (dmovr13h) },
203 { TYPE (INSN_DMOVR13B), IDX (INSN_DMOVR13B), FULL (dmovr13b) FAST (dmovr13b) },
204 { TYPE (INSN_DMOVR13PI), IDX (INSN_DMOVR13PI), FULL (dmovr13pi) FAST (dmovr13pi) },
205 { TYPE (INSN_DMOVR13PIH), IDX (INSN_DMOVR13PIH), FULL (dmovr13pih) FAST (dmovr13pih) },
206 { TYPE (INSN_DMOVR13PIB), IDX (INSN_DMOVR13PIB), FULL (dmovr13pib) FAST (dmovr13pib) },
207 { TYPE (INSN_DMOVR15PI), IDX (INSN_DMOVR15PI), FULL (dmovr15pi) FAST (dmovr15pi) },
208 { TYPE (INSN_DMOV2R13), IDX (INSN_DMOV2R13), FULL (dmov2r13) FAST (dmov2r13) },
209 { TYPE (INSN_DMOV2R13H), IDX (INSN_DMOV2R13H), FULL (dmov2r13h) FAST (dmov2r13h) },
210 { TYPE (INSN_DMOV2R13B), IDX (INSN_DMOV2R13B), FULL (dmov2r13b) FAST (dmov2r13b) },
211 { TYPE (INSN_DMOV2R13PI), IDX (INSN_DMOV2R13PI), FULL (dmov2r13pi) FAST (dmov2r13pi) },
212 { TYPE (INSN_DMOV2R13PIH), IDX (INSN_DMOV2R13PIH), FULL (dmov2r13pih) FAST (dmov2r13pih) },
213 { TYPE (INSN_DMOV2R13PIB), IDX (INSN_DMOV2R13PIB), FULL (dmov2r13pib) FAST (dmov2r13pib) },
214 { TYPE (INSN_DMOV2R15PD), IDX (INSN_DMOV2R15PD), FULL (dmov2r15pd) FAST (dmov2r15pd) },
215 { TYPE (INSN_LDRES), IDX (INSN_LDRES), FULL (ldres) FAST (ldres) },
216 { TYPE (INSN_STRES), IDX (INSN_STRES), FULL (stres) FAST (stres) },
217 { TYPE (INSN_COPOP), IDX (INSN_COPOP), FULL (copop) FAST (copop) },
218 { TYPE (INSN_COPLD), IDX (INSN_COPLD), FULL (copld) FAST (copld) },
219 { TYPE (INSN_COPST), IDX (INSN_COPST), FULL (copst) FAST (copst) },
220 { TYPE (INSN_COPSV), IDX (INSN_COPSV), FULL (copsv) FAST (copsv) },
221 { TYPE (INSN_NOP), IDX (INSN_NOP), FULL (nop) FAST (nop) },
222 { TYPE (INSN_ANDCCR), IDX (INSN_ANDCCR), FULL (andccr) FAST (andccr) },
223 { TYPE (INSN_ORCCR), IDX (INSN_ORCCR), FULL (orccr) FAST (orccr) },
224 { TYPE (INSN_STILM), IDX (INSN_STILM), FULL (stilm) FAST (stilm) },
225 { TYPE (INSN_ADDSP), IDX (INSN_ADDSP), FULL (addsp) FAST (addsp) },
226 { TYPE (INSN_EXTSB), IDX (INSN_EXTSB), FULL (extsb) FAST (extsb) },
227 { TYPE (INSN_EXTUB), IDX (INSN_EXTUB), FULL (extub) FAST (extub) },
228 { TYPE (INSN_EXTSH), IDX (INSN_EXTSH), FULL (extsh) FAST (extsh) },
229 { TYPE (INSN_EXTUH), IDX (INSN_EXTUH), FULL (extuh) FAST (extuh) },
230 { TYPE (INSN_LDM0), IDX (INSN_LDM0), FULL (ldm0) FAST (ldm0) },
231 { TYPE (INSN_LDM1), IDX (INSN_LDM1), FULL (ldm1) FAST (ldm1) },
232 { TYPE (INSN_STM0), IDX (INSN_STM0), FULL (stm0) FAST (stm0) },
233 { TYPE (INSN_STM1), IDX (INSN_STM1), FULL (stm1) FAST (stm1) },
234 { TYPE (INSN_ENTER), IDX (INSN_ENTER), FULL (enter) FAST (enter) },
235 { TYPE (INSN_LEAVE), IDX (INSN_LEAVE), FULL (leave) FAST (leave) },
236 { TYPE (INSN_XCHB), IDX (INSN_XCHB), FULL (xchb) FAST (xchb) },
237};
238
239static const struct insn_sem fr30bf_insn_sem_invalid =
240{
241 VIRTUAL_INSN_X_INVALID, IDX (INSN_X_INVALID), FULL (x_invalid) FAST (x_invalid)
242};
243
7a292a7a
SS
244#undef FMT
245#undef FULL
246#undef FAST
c906108c
SS
247#undef IDX
248#undef TYPE
249
250/* Initialize an IDESC from the compile-time computable parts. */
251
252static INLINE void
253init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
254{
255 const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
256
257 id->num = t->index;
258 if ((int) t->type <= 0)
259 id->idata = & cgen_virtual_insn_table[- (int) t->type];
260 else
261 id->idata = & insn_table[t->type];
262 id->attrs = CGEN_INSN_ATTRS (id->idata);
263 /* Oh my god, a magic number. */
264 id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
265#if ! WITH_SEM_SWITCH_FULL
266 id->sem_full = t->sem_full;
267#endif
268#if WITH_FAST && ! WITH_SEM_SWITCH_FAST
269 id->sem_fast = t->sem_fast;
270#endif
271#if WITH_PROFILE_MODEL_P
272 id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
273 {
274 SIM_DESC sd = CPU_STATE (cpu);
275 SIM_ASSERT (t->index == id->timing->num);
276 }
277#endif
278}
279
280/* Initialize the instruction descriptor table. */
281
282void
283fr30bf_init_idesc_table (SIM_CPU *cpu)
284{
285 IDESC *id,*tabend;
286 const struct insn_sem *t,*tend;
287 int tabsize = FR30BF_INSN_MAX;
288 IDESC *table = fr30bf_insn_data;
289
290 memset (table, 0, tabsize * sizeof (IDESC));
291
292 /* First set all entries to the `invalid insn'. */
293 t = & fr30bf_insn_sem_invalid;
294 for (id = table, tabend = table + tabsize; id < tabend; ++id)
295 init_idesc (cpu, id, t);
296
297 /* Now fill in the values for the chosen cpu. */
298 for (t = fr30bf_insn_sem, tend = t + sizeof (fr30bf_insn_sem) / sizeof (*t);
299 t != tend; ++t)
300 {
301 init_idesc (cpu, & table[t->index], t);
302 }
303
304 /* Link the IDESC table into the cpu. */
305 CPU_IDESC (cpu) = table;
306}
307
c906108c
SS
308/* Given an instruction, return a pointer to its IDESC entry. */
309
310const IDESC *
311fr30bf_decode (SIM_CPU *current_cpu, IADDR pc,
312 CGEN_INSN_INT base_insn,
313 ARGBUF *abuf)
314{
7a292a7a
SS
315 /* Result of decoder. */
316 FR30BF_INSN_TYPE itype;
c906108c
SS
317
318 {
7a292a7a
SS
319 CGEN_INSN_INT insn = base_insn;
320
321 {
322 unsigned int val = (((insn >> 8) & (255 << 0)));
323 switch (val)
324 {
325 case 0 : itype = FR30BF_INSN_LDR13; goto extract_fmt_ldr13;
9846de1b
JM
326 case 1 : itype = FR30BF_INSN_LDR13UH; goto extract_fmt_ldr13;
327 case 2 : itype = FR30BF_INSN_LDR13UB; goto extract_fmt_ldr13;
7a292a7a
SS
328 case 3 : itype = FR30BF_INSN_LDR15; goto extract_fmt_ldr15;
329 case 4 : itype = FR30BF_INSN_LD; goto extract_fmt_ld;
9846de1b
JM
330 case 5 : itype = FR30BF_INSN_LDUH; goto extract_fmt_ld;
331 case 6 : itype = FR30BF_INSN_LDUB; goto extract_fmt_ld;
7a292a7a 332 case 7 :
c906108c 333 {
7a292a7a
SS
334 unsigned int val = (((insn >> 4) & (15 << 0)));
335 switch (val)
c906108c 336 {
7a292a7a
SS
337 case 0 : itype = FR30BF_INSN_LDR15GR; goto extract_fmt_ldr15gr;
338 case 1 : itype = FR30BF_INSN_MOV2PS; goto extract_fmt_mov2ps;
339 case 8 : itype = FR30BF_INSN_LDR15DR; goto extract_fmt_ldr15dr;
340 case 9 : itype = FR30BF_INSN_LDR15PS; goto extract_fmt_ldr15ps;
341 default : itype = FR30BF_INSN_X_INVALID; goto extract_fmt_empty;
c906108c 342 }
7a292a7a
SS
343 }
344 case 8 : itype = FR30BF_INSN_DMOV2R13; goto extract_fmt_dmov2r13;
345 case 9 : itype = FR30BF_INSN_DMOV2R13H; goto extract_fmt_dmov2r13h;
346 case 10 : itype = FR30BF_INSN_DMOV2R13B; goto extract_fmt_dmov2r13b;
347 case 11 : itype = FR30BF_INSN_DMOV2R15PD; goto extract_fmt_dmov2r15pd;
348 case 12 : itype = FR30BF_INSN_DMOV2R13PI; goto extract_fmt_dmov2r13pi;
349 case 13 : itype = FR30BF_INSN_DMOV2R13PIH; goto extract_fmt_dmov2r13pih;
350 case 14 : itype = FR30BF_INSN_DMOV2R13PIB; goto extract_fmt_dmov2r13pib;
351 case 15 : itype = FR30BF_INSN_ENTER; goto extract_fmt_enter;
352 case 16 : itype = FR30BF_INSN_STR13; goto extract_fmt_str13;
9846de1b
JM
353 case 17 : itype = FR30BF_INSN_STR13H; goto extract_fmt_str13;
354 case 18 : itype = FR30BF_INSN_STR13B; goto extract_fmt_str13;
7a292a7a
SS
355 case 19 : itype = FR30BF_INSN_STR15; goto extract_fmt_str15;
356 case 20 : itype = FR30BF_INSN_ST; goto extract_fmt_st;
9846de1b
JM
357 case 21 : itype = FR30BF_INSN_STH; goto extract_fmt_st;
358 case 22 : itype = FR30BF_INSN_STB; goto extract_fmt_st;
7a292a7a
SS
359 case 23 :
360 {
361 unsigned int val = (((insn >> 4) & (15 << 0)));
362 switch (val)
c906108c 363 {
7a292a7a
SS
364 case 0 : itype = FR30BF_INSN_STR15GR; goto extract_fmt_str15gr;
365 case 1 : itype = FR30BF_INSN_MOVPS; goto extract_fmt_movps;
366 case 8 : itype = FR30BF_INSN_STR15DR; goto extract_fmt_str15dr;
367 case 9 : itype = FR30BF_INSN_STR15PS; goto extract_fmt_str15ps;
368 default : itype = FR30BF_INSN_X_INVALID; goto extract_fmt_empty;
c906108c 369 }
7a292a7a
SS
370 }
371 case 24 : itype = FR30BF_INSN_DMOVR13; goto extract_fmt_dmovr13;
372 case 25 : itype = FR30BF_INSN_DMOVR13H; goto extract_fmt_dmovr13h;
373 case 26 : itype = FR30BF_INSN_DMOVR13B; goto extract_fmt_dmovr13b;
374 case 27 : itype = FR30BF_INSN_DMOVR15PI; goto extract_fmt_dmovr15pi;
375 case 28 : itype = FR30BF_INSN_DMOVR13PI; goto extract_fmt_dmovr13pi;
376 case 29 : itype = FR30BF_INSN_DMOVR13PIH; goto extract_fmt_dmovr13pih;
377 case 30 : itype = FR30BF_INSN_DMOVR13PIB; goto extract_fmt_dmovr13pib;
378 case 31 : itype = FR30BF_INSN_INT; goto extract_fmt_int;
379 case 32 : /* fall through */
380 case 33 : /* fall through */
381 case 34 : /* fall through */
382 case 35 : /* fall through */
383 case 36 : /* fall through */
384 case 37 : /* fall through */
385 case 38 : /* fall through */
386 case 39 : /* fall through */
387 case 40 : /* fall through */
388 case 41 : /* fall through */
389 case 42 : /* fall through */
390 case 43 : /* fall through */
391 case 44 : /* fall through */
392 case 45 : /* fall through */
393 case 46 : /* fall through */
394 case 47 : itype = FR30BF_INSN_LDR14; goto extract_fmt_ldr14;
395 case 48 : /* fall through */
396 case 49 : /* fall through */
397 case 50 : /* fall through */
398 case 51 : /* fall through */
399 case 52 : /* fall through */
400 case 53 : /* fall through */
401 case 54 : /* fall through */
402 case 55 : /* fall through */
403 case 56 : /* fall through */
404 case 57 : /* fall through */
405 case 58 : /* fall through */
406 case 59 : /* fall through */
407 case 60 : /* fall through */
408 case 61 : /* fall through */
409 case 62 : /* fall through */
410 case 63 : itype = FR30BF_INSN_STR14; goto extract_fmt_str14;
411 case 64 : /* fall through */
412 case 65 : /* fall through */
413 case 66 : /* fall through */
414 case 67 : /* fall through */
415 case 68 : /* fall through */
416 case 69 : /* fall through */
417 case 70 : /* fall through */
418 case 71 : /* fall through */
419 case 72 : /* fall through */
420 case 73 : /* fall through */
421 case 74 : /* fall through */
422 case 75 : /* fall through */
423 case 76 : /* fall through */
424 case 77 : /* fall through */
425 case 78 : /* fall through */
426 case 79 : itype = FR30BF_INSN_LDR14UH; goto extract_fmt_ldr14uh;
427 case 80 : /* fall through */
428 case 81 : /* fall through */
429 case 82 : /* fall through */
430 case 83 : /* fall through */
431 case 84 : /* fall through */
432 case 85 : /* fall through */
433 case 86 : /* fall through */
434 case 87 : /* fall through */
435 case 88 : /* fall through */
436 case 89 : /* fall through */
437 case 90 : /* fall through */
438 case 91 : /* fall through */
439 case 92 : /* fall through */
440 case 93 : /* fall through */
441 case 94 : /* fall through */
442 case 95 : itype = FR30BF_INSN_STR14H; goto extract_fmt_str14h;
443 case 96 : /* fall through */
444 case 97 : /* fall through */
445 case 98 : /* fall through */
446 case 99 : /* fall through */
447 case 100 : /* fall through */
448 case 101 : /* fall through */
449 case 102 : /* fall through */
450 case 103 : /* fall through */
451 case 104 : /* fall through */
452 case 105 : /* fall through */
453 case 106 : /* fall through */
454 case 107 : /* fall through */
455 case 108 : /* fall through */
456 case 109 : /* fall through */
457 case 110 : /* fall through */
458 case 111 : itype = FR30BF_INSN_LDR14UB; goto extract_fmt_ldr14ub;
459 case 112 : /* fall through */
460 case 113 : /* fall through */
461 case 114 : /* fall through */
462 case 115 : /* fall through */
463 case 116 : /* fall through */
464 case 117 : /* fall through */
465 case 118 : /* fall through */
466 case 119 : /* fall through */
467 case 120 : /* fall through */
468 case 121 : /* fall through */
469 case 122 : /* fall through */
470 case 123 : /* fall through */
471 case 124 : /* fall through */
472 case 125 : /* fall through */
473 case 126 : /* fall through */
474 case 127 : itype = FR30BF_INSN_STR14B; goto extract_fmt_str14b;
475 case 128 : itype = FR30BF_INSN_BANDL; goto extract_fmt_bandl;
476 case 129 : itype = FR30BF_INSN_BANDH; goto extract_fmt_bandl;
477 case 130 : itype = FR30BF_INSN_AND; goto extract_fmt_and;
478 case 131 : itype = FR30BF_INSN_ANDCCR; goto extract_fmt_andccr;
479 case 132 : itype = FR30BF_INSN_ANDM; goto extract_fmt_andm;
480 case 133 : itype = FR30BF_INSN_ANDH; goto extract_fmt_andh;
481 case 134 : itype = FR30BF_INSN_ANDB; goto extract_fmt_andb;
482 case 135 : itype = FR30BF_INSN_STILM; goto extract_fmt_stilm;
483 case 136 : itype = FR30BF_INSN_BTSTL; goto extract_fmt_btstl;
484 case 137 : itype = FR30BF_INSN_BTSTH; goto extract_fmt_btstl;
485 case 138 : itype = FR30BF_INSN_XCHB; goto extract_fmt_xchb;
486 case 139 : itype = FR30BF_INSN_MOV; goto extract_fmt_mov;
487 case 140 : itype = FR30BF_INSN_LDM0; goto extract_fmt_ldm0;
488 case 141 : itype = FR30BF_INSN_LDM1; goto extract_fmt_ldm1;
489 case 142 : itype = FR30BF_INSN_STM0; goto extract_fmt_stm0;
490 case 143 : itype = FR30BF_INSN_STM1; goto extract_fmt_stm1;
491 case 144 : itype = FR30BF_INSN_BORL; goto extract_fmt_bandl;
492 case 145 : itype = FR30BF_INSN_BORH; goto extract_fmt_bandl;
493 case 146 : itype = FR30BF_INSN_OR; goto extract_fmt_and;
494 case 147 : itype = FR30BF_INSN_ORCCR; goto extract_fmt_andccr;
495 case 148 : itype = FR30BF_INSN_ORM; goto extract_fmt_andm;
496 case 149 : itype = FR30BF_INSN_ORH; goto extract_fmt_andh;
497 case 150 : itype = FR30BF_INSN_ORB; goto extract_fmt_andb;
498 case 151 :
499 {
500 unsigned int val = (((insn >> 4) & (15 << 0)));
501 switch (val)
c906108c 502 {
7a292a7a
SS
503 case 0 : itype = FR30BF_INSN_JMP; goto extract_fmt_jmp;
504 case 1 : itype = FR30BF_INSN_CALLR; goto extract_fmt_callr;
505 case 2 : itype = FR30BF_INSN_RET; goto extract_fmt_ret;
506 case 3 : itype = FR30BF_INSN_RETI; goto extract_fmt_reti;
507 case 4 : itype = FR30BF_INSN_DIV0S; goto extract_fmt_div0s;
508 case 5 : itype = FR30BF_INSN_DIV0U; goto extract_fmt_div0u;
509 case 6 : itype = FR30BF_INSN_DIV1; goto extract_fmt_div1;
510 case 7 : itype = FR30BF_INSN_DIV2; goto extract_fmt_div2;
511 case 8 : itype = FR30BF_INSN_EXTSB; goto extract_fmt_extsb;
512 case 9 : itype = FR30BF_INSN_EXTUB; goto extract_fmt_extub;
513 case 10 : itype = FR30BF_INSN_EXTSH; goto extract_fmt_extsh;
514 case 11 : itype = FR30BF_INSN_EXTUH; goto extract_fmt_extuh;
515 default : itype = FR30BF_INSN_X_INVALID; goto extract_fmt_empty;
c906108c 516 }
7a292a7a
SS
517 }
518 case 152 : itype = FR30BF_INSN_BEORL; goto extract_fmt_bandl;
519 case 153 : itype = FR30BF_INSN_BEORH; goto extract_fmt_bandl;
520 case 154 : itype = FR30BF_INSN_EOR; goto extract_fmt_and;
521 case 155 : itype = FR30BF_INSN_LDI20; goto extract_fmt_ldi20;
522 case 156 : itype = FR30BF_INSN_EORM; goto extract_fmt_andm;
523 case 157 : itype = FR30BF_INSN_EORH; goto extract_fmt_andh;
524 case 158 : itype = FR30BF_INSN_EORB; goto extract_fmt_andb;
525 case 159 :
526 {
527 unsigned int val = (((insn >> 4) & (15 << 0)));
528 switch (val)
c906108c 529 {
7a292a7a
SS
530 case 0 : itype = FR30BF_INSN_JMPD; goto extract_fmt_jmp;
531 case 1 : itype = FR30BF_INSN_CALLRD; goto extract_fmt_callr;
532 case 2 : itype = FR30BF_INSN_RET_D; goto extract_fmt_ret;
533 case 3 : itype = FR30BF_INSN_INTE; goto extract_fmt_inte;
534 case 6 : itype = FR30BF_INSN_DIV3; goto extract_fmt_div3;
535 case 7 : itype = FR30BF_INSN_DIV4S; goto extract_fmt_div4s;
536 case 8 : itype = FR30BF_INSN_LDI32; goto extract_fmt_ldi32;
537 case 9 : itype = FR30BF_INSN_LEAVE; goto extract_fmt_leave;
9846de1b 538 case 10 : itype = FR30BF_INSN_NOP; goto extract_fmt_bnod;
7a292a7a 539 case 12 : itype = FR30BF_INSN_COPOP; goto extract_fmt_copop;
9846de1b
JM
540 case 13 : itype = FR30BF_INSN_COPLD; goto extract_fmt_copop;
541 case 14 : itype = FR30BF_INSN_COPST; goto extract_fmt_copop;
542 case 15 : itype = FR30BF_INSN_COPSV; goto extract_fmt_copop;
7a292a7a 543 default : itype = FR30BF_INSN_X_INVALID; goto extract_fmt_empty;
c906108c 544 }
c906108c 545 }
7a292a7a
SS
546 case 160 : itype = FR30BF_INSN_ADDNI; goto extract_fmt_addni;
547 case 161 : itype = FR30BF_INSN_ADDN2; goto extract_fmt_addn2;
548 case 162 : itype = FR30BF_INSN_ADDN; goto extract_fmt_addn;
549 case 163 : itype = FR30BF_INSN_ADDSP; goto extract_fmt_addsp;
550 case 164 : itype = FR30BF_INSN_ADDI; goto extract_fmt_addi;
551 case 165 : itype = FR30BF_INSN_ADD2; goto extract_fmt_add2;
552 case 166 : itype = FR30BF_INSN_ADD; goto extract_fmt_add;
553 case 167 : itype = FR30BF_INSN_ADDC; goto extract_fmt_addc;
554 case 168 : itype = FR30BF_INSN_CMPI; goto extract_fmt_cmpi;
555 case 169 : itype = FR30BF_INSN_CMP2; goto extract_fmt_cmp2;
556 case 170 : itype = FR30BF_INSN_CMP; goto extract_fmt_cmp;
557 case 171 : itype = FR30BF_INSN_MULU; goto extract_fmt_mulu;
558 case 172 : itype = FR30BF_INSN_SUB; goto extract_fmt_add;
559 case 173 : itype = FR30BF_INSN_SUBC; goto extract_fmt_addc;
560 case 174 : itype = FR30BF_INSN_SUBN; goto extract_fmt_addn;
561 case 175 : itype = FR30BF_INSN_MUL; goto extract_fmt_mul;
562 case 176 : itype = FR30BF_INSN_LSRI; goto extract_fmt_lsli;
563 case 177 : itype = FR30BF_INSN_LSR2; goto extract_fmt_lsli;
564 case 178 : itype = FR30BF_INSN_LSR; goto extract_fmt_lsl;
565 case 179 : itype = FR30BF_INSN_MOV2DR; goto extract_fmt_mov2dr;
566 case 180 : itype = FR30BF_INSN_LSLI; goto extract_fmt_lsli;
567 case 181 : itype = FR30BF_INSN_LSL2; goto extract_fmt_lsli;
568 case 182 : itype = FR30BF_INSN_LSL; goto extract_fmt_lsl;
569 case 183 : itype = FR30BF_INSN_MOVDR; goto extract_fmt_movdr;
570 case 184 : itype = FR30BF_INSN_ASRI; goto extract_fmt_lsli;
571 case 185 : itype = FR30BF_INSN_ASR2; goto extract_fmt_lsli;
572 case 186 : itype = FR30BF_INSN_ASR; goto extract_fmt_lsl;
573 case 187 : itype = FR30BF_INSN_MULUH; goto extract_fmt_mulh;
574 case 188 : itype = FR30BF_INSN_LDRES; goto extract_fmt_ldres;
575 case 189 : itype = FR30BF_INSN_STRES; goto extract_fmt_ldres;
576 case 191 : itype = FR30BF_INSN_MULH; goto extract_fmt_mulh;
577 case 192 : /* fall through */
578 case 193 : /* fall through */
579 case 194 : /* fall through */
580 case 195 : /* fall through */
581 case 196 : /* fall through */
582 case 197 : /* fall through */
583 case 198 : /* fall through */
584 case 199 : /* fall through */
585 case 200 : /* fall through */
586 case 201 : /* fall through */
587 case 202 : /* fall through */
588 case 203 : /* fall through */
589 case 204 : /* fall through */
590 case 205 : /* fall through */
591 case 206 : /* fall through */
592 case 207 : itype = FR30BF_INSN_LDI8; goto extract_fmt_ldi8;
593 case 208 : /* fall through */
594 case 209 : /* fall through */
595 case 210 : /* fall through */
596 case 211 : /* fall through */
597 case 212 : /* fall through */
598 case 213 : /* fall through */
599 case 214 : /* fall through */
600 case 215 : itype = FR30BF_INSN_CALL; goto extract_fmt_call;
601 case 216 : /* fall through */
602 case 217 : /* fall through */
603 case 218 : /* fall through */
604 case 219 : /* fall through */
605 case 220 : /* fall through */
606 case 221 : /* fall through */
607 case 222 : /* fall through */
608 case 223 : itype = FR30BF_INSN_CALLD; goto extract_fmt_call;
609 case 224 : itype = FR30BF_INSN_BRA; goto extract_fmt_brad;
610 case 225 : itype = FR30BF_INSN_BNO; goto extract_fmt_bnod;
611 case 226 : itype = FR30BF_INSN_BEQ; goto extract_fmt_beqd;
612 case 227 : itype = FR30BF_INSN_BNE; goto extract_fmt_beqd;
613 case 228 : itype = FR30BF_INSN_BC; goto extract_fmt_bcd;
614 case 229 : itype = FR30BF_INSN_BNC; goto extract_fmt_bcd;
615 case 230 : itype = FR30BF_INSN_BN; goto extract_fmt_bnd;
616 case 231 : itype = FR30BF_INSN_BP; goto extract_fmt_bnd;
617 case 232 : itype = FR30BF_INSN_BV; goto extract_fmt_bvd;
618 case 233 : itype = FR30BF_INSN_BNV; goto extract_fmt_bvd;
619 case 234 : itype = FR30BF_INSN_BLT; goto extract_fmt_bltd;
620 case 235 : itype = FR30BF_INSN_BGE; goto extract_fmt_bltd;
621 case 236 : itype = FR30BF_INSN_BLE; goto extract_fmt_bled;
622 case 237 : itype = FR30BF_INSN_BGT; goto extract_fmt_bled;
623 case 238 : itype = FR30BF_INSN_BLS; goto extract_fmt_blsd;
624 case 239 : itype = FR30BF_INSN_BHI; goto extract_fmt_blsd;
625 case 240 : itype = FR30BF_INSN_BRAD; goto extract_fmt_brad;
626 case 241 : itype = FR30BF_INSN_BNOD; goto extract_fmt_bnod;
627 case 242 : itype = FR30BF_INSN_BEQD; goto extract_fmt_beqd;
628 case 243 : itype = FR30BF_INSN_BNED; goto extract_fmt_beqd;
629 case 244 : itype = FR30BF_INSN_BCD; goto extract_fmt_bcd;
630 case 245 : itype = FR30BF_INSN_BNCD; goto extract_fmt_bcd;
631 case 246 : itype = FR30BF_INSN_BND; goto extract_fmt_bnd;
632 case 247 : itype = FR30BF_INSN_BPD; goto extract_fmt_bnd;
633 case 248 : itype = FR30BF_INSN_BVD; goto extract_fmt_bvd;
634 case 249 : itype = FR30BF_INSN_BNVD; goto extract_fmt_bvd;
635 case 250 : itype = FR30BF_INSN_BLTD; goto extract_fmt_bltd;
636 case 251 : itype = FR30BF_INSN_BGED; goto extract_fmt_bltd;
637 case 252 : itype = FR30BF_INSN_BLED; goto extract_fmt_bled;
638 case 253 : itype = FR30BF_INSN_BGTD; goto extract_fmt_bled;
639 case 254 : itype = FR30BF_INSN_BLSD; goto extract_fmt_blsd;
640 case 255 : itype = FR30BF_INSN_BHID; goto extract_fmt_blsd;
641 default : itype = FR30BF_INSN_X_INVALID; goto extract_fmt_empty;
642 }
c906108c 643 }
c906108c
SS
644 }
645
646 /* The instruction has been decoded, now extract the fields. */
647
7a292a7a 648 extract_fmt_empty:
c906108c 649 {
7a292a7a 650 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
651 CGEN_INSN_INT insn = base_insn;
652#define FLD(f) abuf->fields.fmt_empty.f
c906108c 653
c906108c
SS
654
655 /* Record the fields for the semantic handler. */
656 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_empty", (char *) 0));
657
658#undef FLD
7a292a7a 659 return idesc;
c906108c
SS
660 }
661
7a292a7a 662 extract_fmt_add:
c906108c 663 {
7a292a7a 664 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
665 CGEN_INSN_INT insn = base_insn;
666#define FLD(f) abuf->fields.fmt_add.f
9846de1b
JM
667 UINT f_Rj;
668 UINT f_Ri;
c906108c 669
9846de1b
JM
670 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
671 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
672
673 /* Record the fields for the semantic handler. */
674 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
675 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
676 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_add", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
677
678#if WITH_PROFILE_MODEL_P
679 /* Record the fields for profiling. */
680 if (PROFILE_MODEL_P (current_cpu))
681 {
682 FLD (in_Ri) = f_Ri;
683 FLD (in_Rj) = f_Rj;
684 FLD (out_Ri) = f_Ri;
685 }
686#endif
687#undef FLD
7a292a7a 688 return idesc;
c906108c
SS
689 }
690
7a292a7a 691 extract_fmt_addi:
c906108c 692 {
7a292a7a 693 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
694 CGEN_INSN_INT insn = base_insn;
695#define FLD(f) abuf->fields.fmt_addi.f
9846de1b
JM
696 UINT f_u4;
697 UINT f_Ri;
c906108c 698
9846de1b
JM
699 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
700 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
701
702 /* Record the fields for the semantic handler. */
703 FLD (f_u4) = f_u4;
704 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
705 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addi", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
706
707#if WITH_PROFILE_MODEL_P
708 /* Record the fields for profiling. */
709 if (PROFILE_MODEL_P (current_cpu))
710 {
711 FLD (in_Ri) = f_Ri;
712 FLD (out_Ri) = f_Ri;
713 }
714#endif
715#undef FLD
7a292a7a 716 return idesc;
c906108c
SS
717 }
718
7a292a7a 719 extract_fmt_add2:
c906108c 720 {
7a292a7a 721 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
722 CGEN_INSN_INT insn = base_insn;
723#define FLD(f) abuf->fields.fmt_add2.f
9846de1b
JM
724 SI f_m4;
725 UINT f_Ri;
c906108c 726
9846de1b
JM
727 f_m4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) | (((-1) << (4))));
728 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
729
730 /* Record the fields for the semantic handler. */
731 FLD (f_m4) = f_m4;
732 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
733 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_add2", "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
734
735#if WITH_PROFILE_MODEL_P
736 /* Record the fields for profiling. */
737 if (PROFILE_MODEL_P (current_cpu))
738 {
739 FLD (in_Ri) = f_Ri;
740 FLD (out_Ri) = f_Ri;
741 }
742#endif
743#undef FLD
7a292a7a 744 return idesc;
c906108c
SS
745 }
746
7a292a7a 747 extract_fmt_addc:
c906108c 748 {
7a292a7a 749 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
750 CGEN_INSN_INT insn = base_insn;
751#define FLD(f) abuf->fields.fmt_addc.f
9846de1b
JM
752 UINT f_Rj;
753 UINT f_Ri;
c906108c 754
9846de1b
JM
755 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
756 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
757
758 /* Record the fields for the semantic handler. */
759 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
760 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
761 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addc", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
762
763#if WITH_PROFILE_MODEL_P
764 /* Record the fields for profiling. */
765 if (PROFILE_MODEL_P (current_cpu))
766 {
767 FLD (in_Ri) = f_Ri;
768 FLD (in_Rj) = f_Rj;
769 FLD (out_Ri) = f_Ri;
770 }
771#endif
772#undef FLD
7a292a7a 773 return idesc;
c906108c
SS
774 }
775
7a292a7a 776 extract_fmt_addn:
c906108c 777 {
7a292a7a 778 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
779 CGEN_INSN_INT insn = base_insn;
780#define FLD(f) abuf->fields.fmt_addn.f
9846de1b
JM
781 UINT f_Rj;
782 UINT f_Ri;
c906108c 783
9846de1b
JM
784 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
785 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
786
787 /* Record the fields for the semantic handler. */
788 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
789 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
790 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addn", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
791
792#if WITH_PROFILE_MODEL_P
793 /* Record the fields for profiling. */
794 if (PROFILE_MODEL_P (current_cpu))
795 {
796 FLD (in_Ri) = f_Ri;
797 FLD (in_Rj) = f_Rj;
798 FLD (out_Ri) = f_Ri;
799 }
800#endif
801#undef FLD
7a292a7a 802 return idesc;
c906108c
SS
803 }
804
7a292a7a 805 extract_fmt_addni:
c906108c 806 {
7a292a7a 807 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
808 CGEN_INSN_INT insn = base_insn;
809#define FLD(f) abuf->fields.fmt_addni.f
9846de1b
JM
810 UINT f_u4;
811 UINT f_Ri;
c906108c 812
9846de1b
JM
813 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
814 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
815
816 /* Record the fields for the semantic handler. */
817 FLD (f_u4) = f_u4;
818 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
819 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addni", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
820
821#if WITH_PROFILE_MODEL_P
822 /* Record the fields for profiling. */
823 if (PROFILE_MODEL_P (current_cpu))
824 {
825 FLD (in_Ri) = f_Ri;
826 FLD (out_Ri) = f_Ri;
827 }
828#endif
829#undef FLD
7a292a7a 830 return idesc;
c906108c
SS
831 }
832
7a292a7a 833 extract_fmt_addn2:
c906108c 834 {
7a292a7a 835 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
836 CGEN_INSN_INT insn = base_insn;
837#define FLD(f) abuf->fields.fmt_addn2.f
9846de1b
JM
838 SI f_m4;
839 UINT f_Ri;
c906108c 840
9846de1b
JM
841 f_m4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) | (((-1) << (4))));
842 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
843
844 /* Record the fields for the semantic handler. */
845 FLD (f_m4) = f_m4;
846 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
847 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addn2", "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
848
849#if WITH_PROFILE_MODEL_P
850 /* Record the fields for profiling. */
851 if (PROFILE_MODEL_P (current_cpu))
852 {
853 FLD (in_Ri) = f_Ri;
854 FLD (out_Ri) = f_Ri;
855 }
856#endif
857#undef FLD
7a292a7a 858 return idesc;
c906108c
SS
859 }
860
7a292a7a 861 extract_fmt_cmp:
c906108c 862 {
7a292a7a 863 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
864 CGEN_INSN_INT insn = base_insn;
865#define FLD(f) abuf->fields.fmt_cmp.f
9846de1b
JM
866 UINT f_Rj;
867 UINT f_Ri;
c906108c 868
9846de1b
JM
869 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
870 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
871
872 /* Record the fields for the semantic handler. */
873 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
874 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
875 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmp", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
876
877#if WITH_PROFILE_MODEL_P
878 /* Record the fields for profiling. */
879 if (PROFILE_MODEL_P (current_cpu))
880 {
881 FLD (in_Ri) = f_Ri;
882 FLD (in_Rj) = f_Rj;
883 }
884#endif
885#undef FLD
7a292a7a 886 return idesc;
c906108c
SS
887 }
888
7a292a7a 889 extract_fmt_cmpi:
c906108c 890 {
7a292a7a 891 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
892 CGEN_INSN_INT insn = base_insn;
893#define FLD(f) abuf->fields.fmt_cmpi.f
9846de1b
JM
894 UINT f_u4;
895 UINT f_Ri;
c906108c 896
9846de1b
JM
897 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
898 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
899
900 /* Record the fields for the semantic handler. */
901 FLD (f_u4) = f_u4;
902 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
903 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpi", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
904
905#if WITH_PROFILE_MODEL_P
906 /* Record the fields for profiling. */
907 if (PROFILE_MODEL_P (current_cpu))
908 {
909 FLD (in_Ri) = f_Ri;
910 }
911#endif
912#undef FLD
7a292a7a 913 return idesc;
c906108c
SS
914 }
915
7a292a7a 916 extract_fmt_cmp2:
c906108c 917 {
7a292a7a 918 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
919 CGEN_INSN_INT insn = base_insn;
920#define FLD(f) abuf->fields.fmt_cmp2.f
9846de1b
JM
921 SI f_m4;
922 UINT f_Ri;
c906108c 923
9846de1b
JM
924 f_m4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) | (((-1) << (4))));
925 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
926
927 /* Record the fields for the semantic handler. */
928 FLD (f_m4) = f_m4;
929 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
930 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmp2", "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
931
932#if WITH_PROFILE_MODEL_P
933 /* Record the fields for profiling. */
934 if (PROFILE_MODEL_P (current_cpu))
935 {
936 FLD (in_Ri) = f_Ri;
937 }
938#endif
939#undef FLD
7a292a7a 940 return idesc;
c906108c
SS
941 }
942
7a292a7a 943 extract_fmt_and:
c906108c 944 {
7a292a7a 945 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
946 CGEN_INSN_INT insn = base_insn;
947#define FLD(f) abuf->fields.fmt_and.f
9846de1b
JM
948 UINT f_Rj;
949 UINT f_Ri;
c906108c 950
9846de1b
JM
951 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
952 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
953
954 /* Record the fields for the semantic handler. */
955 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
956 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
957 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_and", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
958
959#if WITH_PROFILE_MODEL_P
960 /* Record the fields for profiling. */
961 if (PROFILE_MODEL_P (current_cpu))
962 {
963 FLD (in_Ri) = f_Ri;
964 FLD (in_Rj) = f_Rj;
965 FLD (out_Ri) = f_Ri;
966 }
967#endif
968#undef FLD
7a292a7a 969 return idesc;
c906108c
SS
970 }
971
7a292a7a 972 extract_fmt_andm:
c906108c 973 {
7a292a7a 974 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
975 CGEN_INSN_INT insn = base_insn;
976#define FLD(f) abuf->fields.fmt_andm.f
9846de1b
JM
977 UINT f_Rj;
978 UINT f_Ri;
c906108c 979
9846de1b
JM
980 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
981 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
982
983 /* Record the fields for the semantic handler. */
984 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
985 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
986 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_andm", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
987
988#if WITH_PROFILE_MODEL_P
989 /* Record the fields for profiling. */
990 if (PROFILE_MODEL_P (current_cpu))
991 {
992 FLD (in_Ri) = f_Ri;
993 FLD (in_Rj) = f_Rj;
994 }
995#endif
996#undef FLD
7a292a7a 997 return idesc;
c906108c
SS
998 }
999
7a292a7a 1000 extract_fmt_andh:
c906108c 1001 {
7a292a7a 1002 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1003 CGEN_INSN_INT insn = base_insn;
1004#define FLD(f) abuf->fields.fmt_andh.f
9846de1b
JM
1005 UINT f_Rj;
1006 UINT f_Ri;
c906108c 1007
9846de1b
JM
1008 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1009 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1010
1011 /* Record the fields for the semantic handler. */
1012 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1013 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1014 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_andh", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1015
1016#if WITH_PROFILE_MODEL_P
1017 /* Record the fields for profiling. */
1018 if (PROFILE_MODEL_P (current_cpu))
1019 {
1020 FLD (in_Ri) = f_Ri;
1021 FLD (in_Rj) = f_Rj;
1022 }
1023#endif
1024#undef FLD
7a292a7a 1025 return idesc;
c906108c
SS
1026 }
1027
7a292a7a 1028 extract_fmt_andb:
c906108c 1029 {
7a292a7a 1030 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1031 CGEN_INSN_INT insn = base_insn;
1032#define FLD(f) abuf->fields.fmt_andb.f
9846de1b
JM
1033 UINT f_Rj;
1034 UINT f_Ri;
c906108c 1035
9846de1b
JM
1036 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1037 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1038
1039 /* Record the fields for the semantic handler. */
1040 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1041 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1042 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_andb", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1043
1044#if WITH_PROFILE_MODEL_P
1045 /* Record the fields for profiling. */
1046 if (PROFILE_MODEL_P (current_cpu))
1047 {
1048 FLD (in_Ri) = f_Ri;
1049 FLD (in_Rj) = f_Rj;
1050 }
1051#endif
1052#undef FLD
7a292a7a 1053 return idesc;
c906108c
SS
1054 }
1055
7a292a7a 1056 extract_fmt_bandl:
c906108c 1057 {
7a292a7a 1058 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1059 CGEN_INSN_INT insn = base_insn;
1060#define FLD(f) abuf->fields.fmt_bandl.f
9846de1b
JM
1061 UINT f_u4;
1062 UINT f_Ri;
c906108c 1063
9846de1b
JM
1064 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1065 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1066
1067 /* Record the fields for the semantic handler. */
1068 FLD (f_u4) = f_u4;
1069 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1070 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bandl", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1071
1072#if WITH_PROFILE_MODEL_P
1073 /* Record the fields for profiling. */
1074 if (PROFILE_MODEL_P (current_cpu))
1075 {
1076 FLD (in_Ri) = f_Ri;
1077 }
1078#endif
1079#undef FLD
7a292a7a 1080 return idesc;
c906108c
SS
1081 }
1082
7a292a7a 1083 extract_fmt_btstl:
c906108c 1084 {
7a292a7a 1085 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1086 CGEN_INSN_INT insn = base_insn;
1087#define FLD(f) abuf->fields.fmt_btstl.f
9846de1b
JM
1088 UINT f_u4;
1089 UINT f_Ri;
c906108c 1090
9846de1b
JM
1091 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1092 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1093
1094 /* Record the fields for the semantic handler. */
1095 FLD (f_u4) = f_u4;
1096 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1097 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_btstl", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1098
1099#if WITH_PROFILE_MODEL_P
1100 /* Record the fields for profiling. */
1101 if (PROFILE_MODEL_P (current_cpu))
1102 {
1103 FLD (in_Ri) = f_Ri;
1104 }
1105#endif
1106#undef FLD
7a292a7a 1107 return idesc;
c906108c
SS
1108 }
1109
7a292a7a 1110 extract_fmt_mul:
c906108c 1111 {
7a292a7a 1112 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1113 CGEN_INSN_INT insn = base_insn;
1114#define FLD(f) abuf->fields.fmt_mul.f
9846de1b
JM
1115 UINT f_Rj;
1116 UINT f_Ri;
c906108c 1117
9846de1b
JM
1118 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1119 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1120
1121 /* Record the fields for the semantic handler. */
1122 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1123 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1124 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mul", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1125
1126#if WITH_PROFILE_MODEL_P
1127 /* Record the fields for profiling. */
1128 if (PROFILE_MODEL_P (current_cpu))
1129 {
1130 FLD (in_Ri) = f_Ri;
1131 FLD (in_Rj) = f_Rj;
1132 }
1133#endif
1134#undef FLD
7a292a7a 1135 return idesc;
c906108c
SS
1136 }
1137
7a292a7a 1138 extract_fmt_mulu:
c906108c 1139 {
7a292a7a 1140 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1141 CGEN_INSN_INT insn = base_insn;
1142#define FLD(f) abuf->fields.fmt_mulu.f
9846de1b
JM
1143 UINT f_Rj;
1144 UINT f_Ri;
c906108c 1145
9846de1b
JM
1146 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1147 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1148
1149 /* Record the fields for the semantic handler. */
1150 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1151 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1152 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mulu", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1153
1154#if WITH_PROFILE_MODEL_P
1155 /* Record the fields for profiling. */
1156 if (PROFILE_MODEL_P (current_cpu))
1157 {
1158 FLD (in_Ri) = f_Ri;
1159 FLD (in_Rj) = f_Rj;
1160 }
1161#endif
1162#undef FLD
7a292a7a 1163 return idesc;
c906108c
SS
1164 }
1165
7a292a7a 1166 extract_fmt_mulh:
c906108c 1167 {
7a292a7a 1168 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1169 CGEN_INSN_INT insn = base_insn;
1170#define FLD(f) abuf->fields.fmt_mulh.f
9846de1b
JM
1171 UINT f_Rj;
1172 UINT f_Ri;
c906108c 1173
9846de1b
JM
1174 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1175 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1176
1177 /* Record the fields for the semantic handler. */
1178 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1179 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1180 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mulh", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1181
1182#if WITH_PROFILE_MODEL_P
1183 /* Record the fields for profiling. */
1184 if (PROFILE_MODEL_P (current_cpu))
1185 {
1186 FLD (in_Ri) = f_Ri;
1187 FLD (in_Rj) = f_Rj;
1188 }
1189#endif
1190#undef FLD
7a292a7a 1191 return idesc;
c906108c
SS
1192 }
1193
7a292a7a 1194 extract_fmt_div0s:
c906108c 1195 {
7a292a7a 1196 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1197 CGEN_INSN_INT insn = base_insn;
1198#define FLD(f) abuf->fields.fmt_div0s.f
9846de1b 1199 UINT f_Ri;
c906108c 1200
9846de1b 1201 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1202
1203 /* Record the fields for the semantic handler. */
1204 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1205 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div0s", "Ri 0x%x", 'x', f_Ri, (char *) 0));
1206
1207#if WITH_PROFILE_MODEL_P
1208 /* Record the fields for profiling. */
1209 if (PROFILE_MODEL_P (current_cpu))
1210 {
1211 FLD (in_Ri) = f_Ri;
1212 }
1213#endif
1214#undef FLD
7a292a7a 1215 return idesc;
c906108c
SS
1216 }
1217
7a292a7a 1218 extract_fmt_div0u:
c906108c 1219 {
7a292a7a 1220 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1221 CGEN_INSN_INT insn = base_insn;
1222#define FLD(f) abuf->fields.fmt_div0u.f
c906108c 1223
c906108c
SS
1224
1225 /* Record the fields for the semantic handler. */
1226 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div0u", (char *) 0));
1227
1228#undef FLD
7a292a7a 1229 return idesc;
c906108c
SS
1230 }
1231
7a292a7a 1232 extract_fmt_div1:
c906108c 1233 {
7a292a7a 1234 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1235 CGEN_INSN_INT insn = base_insn;
1236#define FLD(f) abuf->fields.fmt_div1.f
9846de1b 1237 UINT f_Ri;
c906108c 1238
9846de1b 1239 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1240
1241 /* Record the fields for the semantic handler. */
1242 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1243 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div1", "Ri 0x%x", 'x', f_Ri, (char *) 0));
1244
1245#if WITH_PROFILE_MODEL_P
1246 /* Record the fields for profiling. */
1247 if (PROFILE_MODEL_P (current_cpu))
1248 {
1249 FLD (in_Ri) = f_Ri;
1250 }
1251#endif
1252#undef FLD
7a292a7a 1253 return idesc;
c906108c
SS
1254 }
1255
7a292a7a 1256 extract_fmt_div2:
c906108c 1257 {
7a292a7a 1258 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1259 CGEN_INSN_INT insn = base_insn;
1260#define FLD(f) abuf->fields.fmt_div2.f
9846de1b 1261 UINT f_Ri;
c906108c 1262
9846de1b 1263 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1264
1265 /* Record the fields for the semantic handler. */
1266 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1267 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div2", "Ri 0x%x", 'x', f_Ri, (char *) 0));
1268
1269#if WITH_PROFILE_MODEL_P
1270 /* Record the fields for profiling. */
1271 if (PROFILE_MODEL_P (current_cpu))
1272 {
1273 FLD (in_Ri) = f_Ri;
1274 }
1275#endif
1276#undef FLD
7a292a7a 1277 return idesc;
c906108c
SS
1278 }
1279
7a292a7a 1280 extract_fmt_div3:
c906108c 1281 {
7a292a7a 1282 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1283 CGEN_INSN_INT insn = base_insn;
1284#define FLD(f) abuf->fields.fmt_div3.f
c906108c 1285
c906108c
SS
1286
1287 /* Record the fields for the semantic handler. */
1288 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div3", (char *) 0));
1289
1290#undef FLD
7a292a7a 1291 return idesc;
c906108c
SS
1292 }
1293
7a292a7a 1294 extract_fmt_div4s:
c906108c 1295 {
7a292a7a 1296 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1297 CGEN_INSN_INT insn = base_insn;
1298#define FLD(f) abuf->fields.fmt_div4s.f
c906108c 1299
c906108c
SS
1300
1301 /* Record the fields for the semantic handler. */
1302 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_div4s", (char *) 0));
1303
1304#undef FLD
7a292a7a 1305 return idesc;
c906108c
SS
1306 }
1307
7a292a7a 1308 extract_fmt_lsl:
c906108c 1309 {
7a292a7a 1310 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1311 CGEN_INSN_INT insn = base_insn;
1312#define FLD(f) abuf->fields.fmt_lsl.f
9846de1b
JM
1313 UINT f_Rj;
1314 UINT f_Ri;
c906108c 1315
9846de1b
JM
1316 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1317 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1318
1319 /* Record the fields for the semantic handler. */
1320 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1321 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1322 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_lsl", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1323
1324#if WITH_PROFILE_MODEL_P
1325 /* Record the fields for profiling. */
1326 if (PROFILE_MODEL_P (current_cpu))
1327 {
1328 FLD (in_Ri) = f_Ri;
1329 FLD (in_Rj) = f_Rj;
1330 FLD (out_Ri) = f_Ri;
1331 }
1332#endif
1333#undef FLD
7a292a7a 1334 return idesc;
c906108c
SS
1335 }
1336
7a292a7a 1337 extract_fmt_lsli:
c906108c 1338 {
7a292a7a 1339 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1340 CGEN_INSN_INT insn = base_insn;
1341#define FLD(f) abuf->fields.fmt_lsli.f
9846de1b
JM
1342 UINT f_u4;
1343 UINT f_Ri;
c906108c 1344
9846de1b
JM
1345 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1346 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1347
1348 /* Record the fields for the semantic handler. */
1349 FLD (f_u4) = f_u4;
1350 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1351 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_lsli", "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1352
1353#if WITH_PROFILE_MODEL_P
1354 /* Record the fields for profiling. */
1355 if (PROFILE_MODEL_P (current_cpu))
1356 {
1357 FLD (in_Ri) = f_Ri;
1358 FLD (out_Ri) = f_Ri;
1359 }
1360#endif
1361#undef FLD
7a292a7a 1362 return idesc;
c906108c
SS
1363 }
1364
7a292a7a 1365 extract_fmt_ldi8:
c906108c 1366 {
7a292a7a 1367 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1368 CGEN_INSN_INT insn = base_insn;
1369#define FLD(f) abuf->fields.fmt_ldi8.f
9846de1b
JM
1370 UINT f_i8;
1371 UINT f_Ri;
c906108c 1372
9846de1b
JM
1373 f_i8 = EXTRACT_MSB0_UINT (insn, 16, 4, 8);
1374 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1375
1376 /* Record the fields for the semantic handler. */
1377 FLD (f_i8) = f_i8;
1378 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1379 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldi8", "f_i8 0x%x", 'x', f_i8, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1380
1381#if WITH_PROFILE_MODEL_P
1382 /* Record the fields for profiling. */
1383 if (PROFILE_MODEL_P (current_cpu))
1384 {
1385 FLD (out_Ri) = f_Ri;
1386 }
1387#endif
1388#undef FLD
7a292a7a 1389 return idesc;
c906108c
SS
1390 }
1391
7a292a7a 1392 extract_fmt_ldi20:
c906108c 1393 {
7a292a7a 1394 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1395 CGEN_INSN_INT insn = base_insn;
1396#define FLD(f) abuf->fields.fmt_ldi20.f
9846de1b
JM
1397 UINT f_i20_16;
1398 UINT f_i20_4;
1399 UINT f_Ri;
1400 UINT f_i20;
1401 /* Contents of trailing part of insn. */
1402 UINT word_1;
1403
1404 word_1 = GETIMEMUHI (current_cpu, pc + 2);
1405 f_i20_16 = (0|(EXTRACT_MSB0_UINT (word_1, 16, 0, 16) << 0));
1406 f_i20_4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1407 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
1408{
1409 f_i20 = ((((f_i20_4) << (16))) | (f_i20_16));
1410}
c906108c
SS
1411
1412 /* Record the fields for the semantic handler. */
1413 FLD (f_i20) = f_i20;
1414 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1415 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldi20", "f_i20 0x%x", 'x', f_i20, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1416
1417#if WITH_PROFILE_MODEL_P
1418 /* Record the fields for profiling. */
1419 if (PROFILE_MODEL_P (current_cpu))
1420 {
1421 FLD (out_Ri) = f_Ri;
1422 }
1423#endif
1424#undef FLD
7a292a7a 1425 return idesc;
c906108c
SS
1426 }
1427
7a292a7a 1428 extract_fmt_ldi32:
c906108c 1429 {
7a292a7a 1430 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1431 CGEN_INSN_INT insn = base_insn;
1432#define FLD(f) abuf->fields.fmt_ldi32.f
9846de1b
JM
1433 UINT f_i32;
1434 UINT f_Ri;
1435 /* Contents of trailing part of insn. */
1436 UINT word_1;
1437 UINT word_2;
c906108c 1438
9846de1b
JM
1439 word_1 = GETIMEMUHI (current_cpu, pc + 2);
1440 word_2 = GETIMEMUHI (current_cpu, pc + 4);
1441 f_i32 = (0|(EXTRACT_MSB0_UINT (word_2, 16, 0, 16) << 0)|(EXTRACT_MSB0_UINT (word_1, 16, 0, 16) << 16));
1442 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1443
1444 /* Record the fields for the semantic handler. */
1445 FLD (f_i32) = f_i32;
1446 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1447 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldi32", "f_i32 0x%x", 'x', f_i32, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1448
1449#if WITH_PROFILE_MODEL_P
1450 /* Record the fields for profiling. */
1451 if (PROFILE_MODEL_P (current_cpu))
1452 {
1453 FLD (out_Ri) = f_Ri;
1454 }
1455#endif
1456#undef FLD
7a292a7a 1457 return idesc;
c906108c
SS
1458 }
1459
7a292a7a 1460 extract_fmt_ld:
c906108c 1461 {
7a292a7a 1462 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1463 CGEN_INSN_INT insn = base_insn;
1464#define FLD(f) abuf->fields.fmt_ld.f
9846de1b
JM
1465 UINT f_Rj;
1466 UINT f_Ri;
c906108c 1467
9846de1b
JM
1468 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1469 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1470
1471 /* Record the fields for the semantic handler. */
1472 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1473 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1474 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ld", "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1475
c906108c
SS
1476#if WITH_PROFILE_MODEL_P
1477 /* Record the fields for profiling. */
1478 if (PROFILE_MODEL_P (current_cpu))
1479 {
1480 FLD (in_Rj) = f_Rj;
1481 FLD (out_Ri) = f_Ri;
1482 }
1483#endif
1484#undef FLD
7a292a7a 1485 return idesc;
c906108c
SS
1486 }
1487
7a292a7a 1488 extract_fmt_ldr13:
c906108c 1489 {
7a292a7a 1490 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1491 CGEN_INSN_INT insn = base_insn;
1492#define FLD(f) abuf->fields.fmt_ldr13.f
9846de1b
JM
1493 UINT f_Rj;
1494 UINT f_Ri;
c906108c 1495
9846de1b
JM
1496 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1497 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1498
1499 /* Record the fields for the semantic handler. */
1500 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1501 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1502 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr13", "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1503
c906108c
SS
1504#if WITH_PROFILE_MODEL_P
1505 /* Record the fields for profiling. */
1506 if (PROFILE_MODEL_P (current_cpu))
1507 {
1508 FLD (in_Rj) = f_Rj;
1509 FLD (in_h_gr_13) = 13;
1510 FLD (out_Ri) = f_Ri;
1511 }
1512#endif
1513#undef FLD
7a292a7a 1514 return idesc;
c906108c
SS
1515 }
1516
7a292a7a 1517 extract_fmt_ldr14:
c906108c 1518 {
7a292a7a 1519 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1520 CGEN_INSN_INT insn = base_insn;
1521#define FLD(f) abuf->fields.fmt_ldr14.f
9846de1b
JM
1522 SI f_disp10;
1523 UINT f_Ri;
c906108c 1524
9846de1b
JM
1525 f_disp10 = ((EXTRACT_MSB0_INT (insn, 16, 4, 8)) << (2));
1526 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1527
1528 /* Record the fields for the semantic handler. */
1529 FLD (f_disp10) = f_disp10;
1530 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1531 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr14", "f_disp10 0x%x", 'x', f_disp10, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1532
1533#if WITH_PROFILE_MODEL_P
1534 /* Record the fields for profiling. */
1535 if (PROFILE_MODEL_P (current_cpu))
1536 {
1537 FLD (in_h_gr_14) = 14;
1538 FLD (out_Ri) = f_Ri;
1539 }
1540#endif
1541#undef FLD
7a292a7a 1542 return idesc;
c906108c
SS
1543 }
1544
7a292a7a 1545 extract_fmt_ldr14uh:
c906108c 1546 {
7a292a7a 1547 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1548 CGEN_INSN_INT insn = base_insn;
1549#define FLD(f) abuf->fields.fmt_ldr14uh.f
9846de1b
JM
1550 SI f_disp9;
1551 UINT f_Ri;
c906108c 1552
9846de1b
JM
1553 f_disp9 = ((EXTRACT_MSB0_INT (insn, 16, 4, 8)) << (1));
1554 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1555
1556 /* Record the fields for the semantic handler. */
1557 FLD (f_disp9) = f_disp9;
1558 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1559 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr14uh", "f_disp9 0x%x", 'x', f_disp9, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1560
1561#if WITH_PROFILE_MODEL_P
1562 /* Record the fields for profiling. */
1563 if (PROFILE_MODEL_P (current_cpu))
1564 {
1565 FLD (in_h_gr_14) = 14;
1566 FLD (out_Ri) = f_Ri;
1567 }
1568#endif
1569#undef FLD
7a292a7a 1570 return idesc;
c906108c
SS
1571 }
1572
7a292a7a 1573 extract_fmt_ldr14ub:
c906108c 1574 {
7a292a7a 1575 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1576 CGEN_INSN_INT insn = base_insn;
1577#define FLD(f) abuf->fields.fmt_ldr14ub.f
9846de1b
JM
1578 INT f_disp8;
1579 UINT f_Ri;
c906108c 1580
9846de1b
JM
1581 f_disp8 = EXTRACT_MSB0_INT (insn, 16, 4, 8);
1582 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1583
1584 /* Record the fields for the semantic handler. */
1585 FLD (f_disp8) = f_disp8;
1586 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1587 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr14ub", "f_disp8 0x%x", 'x', f_disp8, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1588
1589#if WITH_PROFILE_MODEL_P
1590 /* Record the fields for profiling. */
1591 if (PROFILE_MODEL_P (current_cpu))
1592 {
1593 FLD (in_h_gr_14) = 14;
1594 FLD (out_Ri) = f_Ri;
1595 }
1596#endif
1597#undef FLD
7a292a7a 1598 return idesc;
c906108c
SS
1599 }
1600
7a292a7a 1601 extract_fmt_ldr15:
c906108c 1602 {
7a292a7a 1603 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1604 CGEN_INSN_INT insn = base_insn;
1605#define FLD(f) abuf->fields.fmt_ldr15.f
9846de1b
JM
1606 USI f_udisp6;
1607 UINT f_Ri;
c906108c 1608
9846de1b
JM
1609 f_udisp6 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) << (2));
1610 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1611
1612 /* Record the fields for the semantic handler. */
1613 FLD (f_udisp6) = f_udisp6;
1614 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1615 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr15", "f_udisp6 0x%x", 'x', f_udisp6, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1616
1617#if WITH_PROFILE_MODEL_P
1618 /* Record the fields for profiling. */
1619 if (PROFILE_MODEL_P (current_cpu))
1620 {
1621 FLD (in_h_gr_15) = 15;
1622 FLD (out_Ri) = f_Ri;
1623 }
1624#endif
1625#undef FLD
7a292a7a 1626 return idesc;
c906108c
SS
1627 }
1628
7a292a7a 1629 extract_fmt_ldr15gr:
c906108c 1630 {
7a292a7a 1631 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1632 CGEN_INSN_INT insn = base_insn;
1633#define FLD(f) abuf->fields.fmt_ldr15gr.f
9846de1b 1634 UINT f_Ri;
c906108c 1635
9846de1b 1636 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1637
1638 /* Record the fields for the semantic handler. */
1639 FLD (f_Ri) = f_Ri;
1640 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1641 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr15gr", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1642
1643#if WITH_PROFILE_MODEL_P
1644 /* Record the fields for profiling. */
1645 if (PROFILE_MODEL_P (current_cpu))
1646 {
1647 FLD (in_h_gr_15) = 15;
1648 FLD (out_Ri) = f_Ri;
1649 FLD (out_h_gr_15) = 15;
1650 }
1651#endif
1652#undef FLD
7a292a7a 1653 return idesc;
c906108c
SS
1654 }
1655
7a292a7a 1656 extract_fmt_ldr15dr:
c906108c 1657 {
7a292a7a 1658 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1659 CGEN_INSN_INT insn = base_insn;
1660#define FLD(f) abuf->fields.fmt_ldr15dr.f
9846de1b 1661 UINT f_Rs2;
c906108c 1662
9846de1b 1663 f_Rs2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1664
1665 /* Record the fields for the semantic handler. */
1666 FLD (f_Rs2) = f_Rs2;
1667 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr15dr", "f_Rs2 0x%x", 'x', f_Rs2, (char *) 0));
1668
1669#if WITH_PROFILE_MODEL_P
1670 /* Record the fields for profiling. */
1671 if (PROFILE_MODEL_P (current_cpu))
1672 {
1673 FLD (in_h_gr_15) = 15;
1674 FLD (out_h_gr_15) = 15;
1675 }
1676#endif
1677#undef FLD
7a292a7a 1678 return idesc;
c906108c
SS
1679 }
1680
7a292a7a 1681 extract_fmt_ldr15ps:
c906108c 1682 {
7a292a7a 1683 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1684 CGEN_INSN_INT insn = base_insn;
1685#define FLD(f) abuf->fields.fmt_ldr15ps.f
c906108c 1686
c906108c
SS
1687
1688 /* Record the fields for the semantic handler. */
1689 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldr15ps", (char *) 0));
1690
1691#if WITH_PROFILE_MODEL_P
1692 /* Record the fields for profiling. */
1693 if (PROFILE_MODEL_P (current_cpu))
1694 {
1695 FLD (in_h_gr_15) = 15;
1696 FLD (out_h_gr_15) = 15;
1697 }
1698#endif
1699#undef FLD
7a292a7a 1700 return idesc;
c906108c
SS
1701 }
1702
7a292a7a 1703 extract_fmt_st:
c906108c 1704 {
7a292a7a 1705 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1706 CGEN_INSN_INT insn = base_insn;
1707#define FLD(f) abuf->fields.fmt_st.f
9846de1b
JM
1708 UINT f_Rj;
1709 UINT f_Ri;
c906108c 1710
9846de1b
JM
1711 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1712 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1713
1714 /* Record the fields for the semantic handler. */
1715 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1716 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1717 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_st", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1718
c906108c
SS
1719#if WITH_PROFILE_MODEL_P
1720 /* Record the fields for profiling. */
1721 if (PROFILE_MODEL_P (current_cpu))
1722 {
1723 FLD (in_Ri) = f_Ri;
1724 FLD (in_Rj) = f_Rj;
1725 }
1726#endif
1727#undef FLD
7a292a7a 1728 return idesc;
c906108c
SS
1729 }
1730
7a292a7a 1731 extract_fmt_str13:
c906108c 1732 {
7a292a7a 1733 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1734 CGEN_INSN_INT insn = base_insn;
1735#define FLD(f) abuf->fields.fmt_str13.f
9846de1b
JM
1736 UINT f_Rj;
1737 UINT f_Ri;
c906108c 1738
9846de1b
JM
1739 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1740 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1741
1742 /* Record the fields for the semantic handler. */
1743 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1744 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1745 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str13", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1746
c906108c
SS
1747#if WITH_PROFILE_MODEL_P
1748 /* Record the fields for profiling. */
1749 if (PROFILE_MODEL_P (current_cpu))
1750 {
1751 FLD (in_Ri) = f_Ri;
1752 FLD (in_Rj) = f_Rj;
1753 FLD (in_h_gr_13) = 13;
1754 }
1755#endif
1756#undef FLD
7a292a7a 1757 return idesc;
c906108c
SS
1758 }
1759
7a292a7a 1760 extract_fmt_str14:
c906108c 1761 {
7a292a7a 1762 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1763 CGEN_INSN_INT insn = base_insn;
1764#define FLD(f) abuf->fields.fmt_str14.f
9846de1b
JM
1765 SI f_disp10;
1766 UINT f_Ri;
c906108c 1767
9846de1b
JM
1768 f_disp10 = ((EXTRACT_MSB0_INT (insn, 16, 4, 8)) << (2));
1769 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1770
1771 /* Record the fields for the semantic handler. */
1772 FLD (f_disp10) = f_disp10;
1773 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1774 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str14", "f_disp10 0x%x", 'x', f_disp10, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1775
1776#if WITH_PROFILE_MODEL_P
1777 /* Record the fields for profiling. */
1778 if (PROFILE_MODEL_P (current_cpu))
1779 {
1780 FLD (in_Ri) = f_Ri;
1781 FLD (in_h_gr_14) = 14;
1782 }
1783#endif
1784#undef FLD
7a292a7a 1785 return idesc;
c906108c
SS
1786 }
1787
7a292a7a 1788 extract_fmt_str14h:
c906108c 1789 {
7a292a7a 1790 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1791 CGEN_INSN_INT insn = base_insn;
1792#define FLD(f) abuf->fields.fmt_str14h.f
9846de1b
JM
1793 SI f_disp9;
1794 UINT f_Ri;
c906108c 1795
9846de1b
JM
1796 f_disp9 = ((EXTRACT_MSB0_INT (insn, 16, 4, 8)) << (1));
1797 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1798
1799 /* Record the fields for the semantic handler. */
1800 FLD (f_disp9) = f_disp9;
1801 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1802 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str14h", "f_disp9 0x%x", 'x', f_disp9, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1803
1804#if WITH_PROFILE_MODEL_P
1805 /* Record the fields for profiling. */
1806 if (PROFILE_MODEL_P (current_cpu))
1807 {
1808 FLD (in_Ri) = f_Ri;
1809 FLD (in_h_gr_14) = 14;
1810 }
1811#endif
1812#undef FLD
7a292a7a 1813 return idesc;
c906108c
SS
1814 }
1815
7a292a7a 1816 extract_fmt_str14b:
c906108c 1817 {
7a292a7a 1818 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1819 CGEN_INSN_INT insn = base_insn;
1820#define FLD(f) abuf->fields.fmt_str14b.f
9846de1b
JM
1821 INT f_disp8;
1822 UINT f_Ri;
c906108c 1823
9846de1b
JM
1824 f_disp8 = EXTRACT_MSB0_INT (insn, 16, 4, 8);
1825 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1826
1827 /* Record the fields for the semantic handler. */
1828 FLD (f_disp8) = f_disp8;
1829 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1830 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str14b", "f_disp8 0x%x", 'x', f_disp8, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1831
1832#if WITH_PROFILE_MODEL_P
1833 /* Record the fields for profiling. */
1834 if (PROFILE_MODEL_P (current_cpu))
1835 {
1836 FLD (in_Ri) = f_Ri;
1837 FLD (in_h_gr_14) = 14;
1838 }
1839#endif
1840#undef FLD
7a292a7a 1841 return idesc;
c906108c
SS
1842 }
1843
7a292a7a 1844 extract_fmt_str15:
c906108c 1845 {
7a292a7a 1846 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1847 CGEN_INSN_INT insn = base_insn;
1848#define FLD(f) abuf->fields.fmt_str15.f
9846de1b
JM
1849 USI f_udisp6;
1850 UINT f_Ri;
c906108c 1851
9846de1b
JM
1852 f_udisp6 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) << (2));
1853 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1854
1855 /* Record the fields for the semantic handler. */
1856 FLD (f_udisp6) = f_udisp6;
1857 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1858 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str15", "f_udisp6 0x%x", 'x', f_udisp6, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1859
1860#if WITH_PROFILE_MODEL_P
1861 /* Record the fields for profiling. */
1862 if (PROFILE_MODEL_P (current_cpu))
1863 {
1864 FLD (in_Ri) = f_Ri;
1865 FLD (in_h_gr_15) = 15;
1866 }
1867#endif
1868#undef FLD
7a292a7a 1869 return idesc;
c906108c
SS
1870 }
1871
7a292a7a 1872 extract_fmt_str15gr:
c906108c 1873 {
7a292a7a 1874 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1875 CGEN_INSN_INT insn = base_insn;
1876#define FLD(f) abuf->fields.fmt_str15gr.f
9846de1b 1877 UINT f_Ri;
c906108c 1878
9846de1b 1879 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1880
1881 /* Record the fields for the semantic handler. */
1882 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1883 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str15gr", "Ri 0x%x", 'x', f_Ri, (char *) 0));
1884
1885#if WITH_PROFILE_MODEL_P
1886 /* Record the fields for profiling. */
1887 if (PROFILE_MODEL_P (current_cpu))
1888 {
1889 FLD (in_Ri) = f_Ri;
1890 FLD (in_h_gr_15) = 15;
1891 FLD (out_h_gr_15) = 15;
1892 }
1893#endif
1894#undef FLD
7a292a7a 1895 return idesc;
c906108c
SS
1896 }
1897
7a292a7a 1898 extract_fmt_str15dr:
c906108c 1899 {
7a292a7a 1900 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1901 CGEN_INSN_INT insn = base_insn;
1902#define FLD(f) abuf->fields.fmt_str15dr.f
9846de1b 1903 UINT f_Rs2;
c906108c 1904
9846de1b 1905 f_Rs2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1906
1907 /* Record the fields for the semantic handler. */
1908 FLD (f_Rs2) = f_Rs2;
1909 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str15dr", "f_Rs2 0x%x", 'x', f_Rs2, (char *) 0));
1910
1911#if WITH_PROFILE_MODEL_P
1912 /* Record the fields for profiling. */
1913 if (PROFILE_MODEL_P (current_cpu))
1914 {
1915 FLD (in_h_gr_15) = 15;
1916 FLD (out_h_gr_15) = 15;
1917 }
1918#endif
1919#undef FLD
7a292a7a 1920 return idesc;
c906108c
SS
1921 }
1922
7a292a7a 1923 extract_fmt_str15ps:
c906108c 1924 {
7a292a7a 1925 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1926 CGEN_INSN_INT insn = base_insn;
1927#define FLD(f) abuf->fields.fmt_str15ps.f
c906108c 1928
c906108c
SS
1929
1930 /* Record the fields for the semantic handler. */
1931 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_str15ps", (char *) 0));
1932
1933#if WITH_PROFILE_MODEL_P
1934 /* Record the fields for profiling. */
1935 if (PROFILE_MODEL_P (current_cpu))
1936 {
1937 FLD (in_h_gr_15) = 15;
1938 FLD (out_h_gr_15) = 15;
1939 }
1940#endif
1941#undef FLD
7a292a7a 1942 return idesc;
c906108c
SS
1943 }
1944
7a292a7a 1945 extract_fmt_mov:
c906108c 1946 {
7a292a7a 1947 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1948 CGEN_INSN_INT insn = base_insn;
1949#define FLD(f) abuf->fields.fmt_mov.f
9846de1b
JM
1950 UINT f_Rj;
1951 UINT f_Ri;
c906108c 1952
9846de1b
JM
1953 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1954 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1955
1956 /* Record the fields for the semantic handler. */
1957 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1958 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1959 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mov", "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1960
1961#if WITH_PROFILE_MODEL_P
1962 /* Record the fields for profiling. */
1963 if (PROFILE_MODEL_P (current_cpu))
1964 {
1965 FLD (in_Rj) = f_Rj;
1966 FLD (out_Ri) = f_Ri;
1967 }
1968#endif
1969#undef FLD
7a292a7a 1970 return idesc;
c906108c
SS
1971 }
1972
7a292a7a 1973 extract_fmt_movdr:
c906108c 1974 {
7a292a7a 1975 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
1976 CGEN_INSN_INT insn = base_insn;
1977#define FLD(f) abuf->fields.fmt_movdr.f
9846de1b
JM
1978 UINT f_Rs1;
1979 UINT f_Ri;
c906108c 1980
9846de1b
JM
1981 f_Rs1 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1982 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1983
1984 /* Record the fields for the semantic handler. */
1985 FLD (f_Rs1) = f_Rs1;
1986 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1987 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_movdr", "f_Rs1 0x%x", 'x', f_Rs1, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1988
1989#if WITH_PROFILE_MODEL_P
1990 /* Record the fields for profiling. */
1991 if (PROFILE_MODEL_P (current_cpu))
1992 {
1993 FLD (out_Ri) = f_Ri;
1994 }
1995#endif
1996#undef FLD
7a292a7a 1997 return idesc;
c906108c
SS
1998 }
1999
7a292a7a 2000 extract_fmt_movps:
c906108c 2001 {
7a292a7a 2002 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2003 CGEN_INSN_INT insn = base_insn;
2004#define FLD(f) abuf->fields.fmt_movps.f
9846de1b 2005 UINT f_Ri;
c906108c 2006
9846de1b 2007 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2008
2009 /* Record the fields for the semantic handler. */
2010 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2011 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_movps", "Ri 0x%x", 'x', f_Ri, (char *) 0));
2012
2013#if WITH_PROFILE_MODEL_P
2014 /* Record the fields for profiling. */
2015 if (PROFILE_MODEL_P (current_cpu))
2016 {
2017 FLD (out_Ri) = f_Ri;
2018 }
2019#endif
2020#undef FLD
7a292a7a 2021 return idesc;
c906108c
SS
2022 }
2023
7a292a7a 2024 extract_fmt_mov2dr:
c906108c 2025 {
7a292a7a 2026 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2027 CGEN_INSN_INT insn = base_insn;
2028#define FLD(f) abuf->fields.fmt_mov2dr.f
9846de1b
JM
2029 UINT f_Rs1;
2030 UINT f_Ri;
c906108c 2031
9846de1b
JM
2032 f_Rs1 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2033 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2034
2035 /* Record the fields for the semantic handler. */
2036 FLD (f_Rs1) = f_Rs1;
2037 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2038 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mov2dr", "f_Rs1 0x%x", 'x', f_Rs1, "Ri 0x%x", 'x', f_Ri, (char *) 0));
2039
2040#if WITH_PROFILE_MODEL_P
2041 /* Record the fields for profiling. */
2042 if (PROFILE_MODEL_P (current_cpu))
2043 {
2044 FLD (in_Ri) = f_Ri;
2045 }
2046#endif
2047#undef FLD
7a292a7a 2048 return idesc;
c906108c
SS
2049 }
2050
7a292a7a 2051 extract_fmt_mov2ps:
c906108c 2052 {
7a292a7a 2053 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2054 CGEN_INSN_INT insn = base_insn;
2055#define FLD(f) abuf->fields.fmt_mov2ps.f
9846de1b 2056 UINT f_Ri;
c906108c 2057
9846de1b 2058 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2059
2060 /* Record the fields for the semantic handler. */
2061 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2062 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mov2ps", "Ri 0x%x", 'x', f_Ri, (char *) 0));
2063
2064#if WITH_PROFILE_MODEL_P
2065 /* Record the fields for profiling. */
2066 if (PROFILE_MODEL_P (current_cpu))
2067 {
2068 FLD (in_Ri) = f_Ri;
2069 }
2070#endif
2071#undef FLD
7a292a7a 2072 return idesc;
c906108c
SS
2073 }
2074
7a292a7a 2075 extract_fmt_jmp:
c906108c 2076 {
7a292a7a 2077 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2078 CGEN_INSN_INT insn = base_insn;
2079#define FLD(f) abuf->fields.cti.fields.fmt_jmp.f
9846de1b 2080 UINT f_Ri;
c906108c 2081
9846de1b 2082 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2083
2084 /* Record the fields for the semantic handler. */
2085 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2086 SEM_BRANCH_INIT_EXTRACT (abuf);
2087 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_jmp", "Ri 0x%x", 'x', f_Ri, (char *) 0));
2088
2089#if WITH_PROFILE_MODEL_P
2090 /* Record the fields for profiling. */
2091 if (PROFILE_MODEL_P (current_cpu))
2092 {
2093 FLD (in_Ri) = f_Ri;
2094 }
2095#endif
2096#undef FLD
7a292a7a 2097 return idesc;
c906108c
SS
2098 }
2099
7a292a7a 2100 extract_fmt_callr:
c906108c 2101 {
7a292a7a 2102 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2103 CGEN_INSN_INT insn = base_insn;
2104#define FLD(f) abuf->fields.cti.fields.fmt_callr.f
9846de1b 2105 UINT f_Ri;
c906108c 2106
9846de1b 2107 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2108
2109 /* Record the fields for the semantic handler. */
2110 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2111 SEM_BRANCH_INIT_EXTRACT (abuf);
2112 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_callr", "Ri 0x%x", 'x', f_Ri, (char *) 0));
2113
2114#if WITH_PROFILE_MODEL_P
2115 /* Record the fields for profiling. */
2116 if (PROFILE_MODEL_P (current_cpu))
2117 {
2118 FLD (in_Ri) = f_Ri;
2119 }
2120#endif
2121#undef FLD
7a292a7a 2122 return idesc;
c906108c
SS
2123 }
2124
7a292a7a 2125 extract_fmt_call:
c906108c 2126 {
7a292a7a 2127 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2128 CGEN_INSN_INT insn = base_insn;
2129#define FLD(f) abuf->fields.cti.fields.fmt_call.f
9846de1b 2130 SI f_rel12;
c906108c 2131
9846de1b 2132 f_rel12 = ((((EXTRACT_MSB0_INT (insn, 16, 5, 11)) << (1))) + (((pc) + (2))));
c906108c
SS
2133
2134 /* Record the fields for the semantic handler. */
2135 FLD (i_label12) = f_rel12;
2136 SEM_BRANCH_INIT_EXTRACT (abuf);
2137 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_call", "label12 0x%x", 'x', f_rel12, (char *) 0));
2138
2139#if WITH_PROFILE_MODEL_P
2140 /* Record the fields for profiling. */
2141 if (PROFILE_MODEL_P (current_cpu))
2142 {
2143 }
2144#endif
2145#undef FLD
7a292a7a 2146 return idesc;
c906108c
SS
2147 }
2148
7a292a7a 2149 extract_fmt_ret:
c906108c 2150 {
7a292a7a 2151 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2152 CGEN_INSN_INT insn = base_insn;
2153#define FLD(f) abuf->fields.cti.fields.fmt_ret.f
c906108c 2154
c906108c
SS
2155
2156 /* Record the fields for the semantic handler. */
2157 SEM_BRANCH_INIT_EXTRACT (abuf);
2158 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ret", (char *) 0));
2159
2160#if WITH_PROFILE_MODEL_P
2161 /* Record the fields for profiling. */
2162 if (PROFILE_MODEL_P (current_cpu))
2163 {
2164 }
2165#endif
2166#undef FLD
7a292a7a 2167 return idesc;
c906108c
SS
2168 }
2169
7a292a7a 2170 extract_fmt_int:
c906108c 2171 {
7a292a7a 2172 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2173 CGEN_INSN_INT insn = base_insn;
2174#define FLD(f) abuf->fields.cti.fields.fmt_int.f
9846de1b 2175 UINT f_u8;
c906108c 2176
9846de1b 2177 f_u8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2178
2179 /* Record the fields for the semantic handler. */
2180 FLD (f_u8) = f_u8;
2181 SEM_BRANCH_INIT_EXTRACT (abuf);
2182 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_int", "f_u8 0x%x", 'x', f_u8, (char *) 0));
2183
2184#if WITH_PROFILE_MODEL_P
2185 /* Record the fields for profiling. */
2186 if (PROFILE_MODEL_P (current_cpu))
2187 {
2188 }
2189#endif
2190#undef FLD
7a292a7a 2191 return idesc;
c906108c
SS
2192 }
2193
7a292a7a 2194 extract_fmt_inte:
c906108c 2195 {
7a292a7a 2196 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2197 CGEN_INSN_INT insn = base_insn;
2198#define FLD(f) abuf->fields.cti.fields.fmt_inte.f
c906108c 2199
c906108c
SS
2200
2201 /* Record the fields for the semantic handler. */
2202 SEM_BRANCH_INIT_EXTRACT (abuf);
2203 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_inte", (char *) 0));
2204
2205#if WITH_PROFILE_MODEL_P
2206 /* Record the fields for profiling. */
2207 if (PROFILE_MODEL_P (current_cpu))
2208 {
2209 }
2210#endif
2211#undef FLD
7a292a7a 2212 return idesc;
c906108c
SS
2213 }
2214
7a292a7a 2215 extract_fmt_reti:
c906108c 2216 {
7a292a7a 2217 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2218 CGEN_INSN_INT insn = base_insn;
2219#define FLD(f) abuf->fields.cti.fields.fmt_reti.f
c906108c 2220
c906108c
SS
2221
2222 /* Record the fields for the semantic handler. */
2223 SEM_BRANCH_INIT_EXTRACT (abuf);
2224 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_reti", (char *) 0));
2225
2226#if WITH_PROFILE_MODEL_P
2227 /* Record the fields for profiling. */
2228 if (PROFILE_MODEL_P (current_cpu))
2229 {
2230 }
2231#endif
2232#undef FLD
7a292a7a 2233 return idesc;
c906108c
SS
2234 }
2235
7a292a7a 2236 extract_fmt_brad:
c906108c 2237 {
7a292a7a 2238 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2239 CGEN_INSN_INT insn = base_insn;
2240#define FLD(f) abuf->fields.cti.fields.fmt_brad.f
9846de1b 2241 SI f_rel9;
c906108c 2242
9846de1b 2243 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2244
2245 /* Record the fields for the semantic handler. */
2246 FLD (i_label9) = f_rel9;
2247 SEM_BRANCH_INIT_EXTRACT (abuf);
2248 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_brad", "label9 0x%x", 'x', f_rel9, (char *) 0));
2249
2250#if WITH_PROFILE_MODEL_P
2251 /* Record the fields for profiling. */
2252 if (PROFILE_MODEL_P (current_cpu))
2253 {
2254 }
2255#endif
2256#undef FLD
7a292a7a 2257 return idesc;
c906108c
SS
2258 }
2259
7a292a7a 2260 extract_fmt_bnod:
c906108c 2261 {
7a292a7a 2262 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2263 CGEN_INSN_INT insn = base_insn;
2264#define FLD(f) abuf->fields.fmt_bnod.f
c906108c 2265
c906108c
SS
2266
2267 /* Record the fields for the semantic handler. */
2268 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bnod", (char *) 0));
2269
2270#undef FLD
7a292a7a 2271 return idesc;
c906108c
SS
2272 }
2273
7a292a7a 2274 extract_fmt_beqd:
c906108c 2275 {
7a292a7a 2276 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2277 CGEN_INSN_INT insn = base_insn;
2278#define FLD(f) abuf->fields.cti.fields.fmt_beqd.f
9846de1b 2279 SI f_rel9;
c906108c 2280
9846de1b 2281 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2282
2283 /* Record the fields for the semantic handler. */
2284 FLD (i_label9) = f_rel9;
2285 SEM_BRANCH_INIT_EXTRACT (abuf);
2286 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_beqd", "label9 0x%x", 'x', f_rel9, (char *) 0));
2287
2288#if WITH_PROFILE_MODEL_P
2289 /* Record the fields for profiling. */
2290 if (PROFILE_MODEL_P (current_cpu))
2291 {
2292 }
2293#endif
2294#undef FLD
7a292a7a 2295 return idesc;
c906108c
SS
2296 }
2297
7a292a7a 2298 extract_fmt_bcd:
c906108c 2299 {
7a292a7a 2300 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2301 CGEN_INSN_INT insn = base_insn;
2302#define FLD(f) abuf->fields.cti.fields.fmt_bcd.f
9846de1b 2303 SI f_rel9;
c906108c 2304
9846de1b 2305 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2306
2307 /* Record the fields for the semantic handler. */
2308 FLD (i_label9) = f_rel9;
2309 SEM_BRANCH_INIT_EXTRACT (abuf);
2310 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bcd", "label9 0x%x", 'x', f_rel9, (char *) 0));
2311
2312#if WITH_PROFILE_MODEL_P
2313 /* Record the fields for profiling. */
2314 if (PROFILE_MODEL_P (current_cpu))
2315 {
2316 }
2317#endif
2318#undef FLD
7a292a7a 2319 return idesc;
c906108c
SS
2320 }
2321
7a292a7a 2322 extract_fmt_bnd:
c906108c 2323 {
7a292a7a 2324 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2325 CGEN_INSN_INT insn = base_insn;
2326#define FLD(f) abuf->fields.cti.fields.fmt_bnd.f
9846de1b 2327 SI f_rel9;
c906108c 2328
9846de1b 2329 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2330
2331 /* Record the fields for the semantic handler. */
2332 FLD (i_label9) = f_rel9;
2333 SEM_BRANCH_INIT_EXTRACT (abuf);
2334 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bnd", "label9 0x%x", 'x', f_rel9, (char *) 0));
2335
2336#if WITH_PROFILE_MODEL_P
2337 /* Record the fields for profiling. */
2338 if (PROFILE_MODEL_P (current_cpu))
2339 {
2340 }
2341#endif
2342#undef FLD
7a292a7a 2343 return idesc;
c906108c
SS
2344 }
2345
7a292a7a 2346 extract_fmt_bvd:
c906108c 2347 {
7a292a7a 2348 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2349 CGEN_INSN_INT insn = base_insn;
2350#define FLD(f) abuf->fields.cti.fields.fmt_bvd.f
9846de1b 2351 SI f_rel9;
c906108c 2352
9846de1b 2353 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2354
2355 /* Record the fields for the semantic handler. */
2356 FLD (i_label9) = f_rel9;
2357 SEM_BRANCH_INIT_EXTRACT (abuf);
2358 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bvd", "label9 0x%x", 'x', f_rel9, (char *) 0));
2359
2360#if WITH_PROFILE_MODEL_P
2361 /* Record the fields for profiling. */
2362 if (PROFILE_MODEL_P (current_cpu))
2363 {
2364 }
2365#endif
2366#undef FLD
7a292a7a 2367 return idesc;
c906108c
SS
2368 }
2369
7a292a7a 2370 extract_fmt_bltd:
c906108c 2371 {
7a292a7a 2372 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2373 CGEN_INSN_INT insn = base_insn;
2374#define FLD(f) abuf->fields.cti.fields.fmt_bltd.f
9846de1b 2375 SI f_rel9;
c906108c 2376
9846de1b 2377 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2378
2379 /* Record the fields for the semantic handler. */
2380 FLD (i_label9) = f_rel9;
2381 SEM_BRANCH_INIT_EXTRACT (abuf);
2382 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bltd", "label9 0x%x", 'x', f_rel9, (char *) 0));
2383
2384#if WITH_PROFILE_MODEL_P
2385 /* Record the fields for profiling. */
2386 if (PROFILE_MODEL_P (current_cpu))
2387 {
2388 }
2389#endif
2390#undef FLD
7a292a7a 2391 return idesc;
c906108c
SS
2392 }
2393
7a292a7a 2394 extract_fmt_bled:
c906108c 2395 {
7a292a7a 2396 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2397 CGEN_INSN_INT insn = base_insn;
2398#define FLD(f) abuf->fields.cti.fields.fmt_bled.f
9846de1b 2399 SI f_rel9;
c906108c 2400
9846de1b 2401 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2402
2403 /* Record the fields for the semantic handler. */
2404 FLD (i_label9) = f_rel9;
2405 SEM_BRANCH_INIT_EXTRACT (abuf);
2406 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bled", "label9 0x%x", 'x', f_rel9, (char *) 0));
2407
2408#if WITH_PROFILE_MODEL_P
2409 /* Record the fields for profiling. */
2410 if (PROFILE_MODEL_P (current_cpu))
2411 {
2412 }
2413#endif
2414#undef FLD
7a292a7a 2415 return idesc;
c906108c
SS
2416 }
2417
7a292a7a 2418 extract_fmt_blsd:
c906108c 2419 {
7a292a7a 2420 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2421 CGEN_INSN_INT insn = base_insn;
2422#define FLD(f) abuf->fields.cti.fields.fmt_blsd.f
9846de1b 2423 SI f_rel9;
c906108c 2424
9846de1b 2425 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2426
2427 /* Record the fields for the semantic handler. */
2428 FLD (i_label9) = f_rel9;
2429 SEM_BRANCH_INIT_EXTRACT (abuf);
2430 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_blsd", "label9 0x%x", 'x', f_rel9, (char *) 0));
2431
2432#if WITH_PROFILE_MODEL_P
2433 /* Record the fields for profiling. */
2434 if (PROFILE_MODEL_P (current_cpu))
2435 {
2436 }
2437#endif
2438#undef FLD
7a292a7a 2439 return idesc;
c906108c
SS
2440 }
2441
7a292a7a 2442 extract_fmt_dmovr13:
c906108c 2443 {
7a292a7a 2444 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2445 CGEN_INSN_INT insn = base_insn;
2446#define FLD(f) abuf->fields.fmt_dmovr13.f
9846de1b 2447 USI f_dir10;
c906108c 2448
9846de1b 2449 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2450
2451 /* Record the fields for the semantic handler. */
2452 FLD (f_dir10) = f_dir10;
2453 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
2454
2455#if WITH_PROFILE_MODEL_P
2456 /* Record the fields for profiling. */
2457 if (PROFILE_MODEL_P (current_cpu))
2458 {
2459 FLD (in_h_gr_13) = 13;
2460 }
2461#endif
2462#undef FLD
7a292a7a 2463 return idesc;
c906108c
SS
2464 }
2465
7a292a7a 2466 extract_fmt_dmovr13h:
c906108c 2467 {
7a292a7a 2468 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2469 CGEN_INSN_INT insn = base_insn;
2470#define FLD(f) abuf->fields.fmt_dmovr13h.f
9846de1b 2471 USI f_dir9;
c906108c 2472
9846de1b 2473 f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
c906108c
SS
2474
2475 /* Record the fields for the semantic handler. */
2476 FLD (f_dir9) = f_dir9;
2477 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13h", "f_dir9 0x%x", 'x', f_dir9, (char *) 0));
2478
2479#if WITH_PROFILE_MODEL_P
2480 /* Record the fields for profiling. */
2481 if (PROFILE_MODEL_P (current_cpu))
2482 {
2483 FLD (in_h_gr_13) = 13;
2484 }
2485#endif
2486#undef FLD
7a292a7a 2487 return idesc;
c906108c
SS
2488 }
2489
7a292a7a 2490 extract_fmt_dmovr13b:
c906108c 2491 {
7a292a7a 2492 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2493 CGEN_INSN_INT insn = base_insn;
2494#define FLD(f) abuf->fields.fmt_dmovr13b.f
9846de1b 2495 UINT f_dir8;
c906108c 2496
9846de1b 2497 f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2498
2499 /* Record the fields for the semantic handler. */
2500 FLD (f_dir8) = f_dir8;
2501 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13b", "f_dir8 0x%x", 'x', f_dir8, (char *) 0));
2502
2503#if WITH_PROFILE_MODEL_P
2504 /* Record the fields for profiling. */
2505 if (PROFILE_MODEL_P (current_cpu))
2506 {
2507 FLD (in_h_gr_13) = 13;
2508 }
2509#endif
2510#undef FLD
7a292a7a 2511 return idesc;
c906108c
SS
2512 }
2513
7a292a7a 2514 extract_fmt_dmovr13pi:
c906108c 2515 {
7a292a7a 2516 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2517 CGEN_INSN_INT insn = base_insn;
2518#define FLD(f) abuf->fields.fmt_dmovr13pi.f
9846de1b 2519 USI f_dir10;
c906108c 2520
9846de1b 2521 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2522
2523 /* Record the fields for the semantic handler. */
2524 FLD (f_dir10) = f_dir10;
2525 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
2526
2527#if WITH_PROFILE_MODEL_P
2528 /* Record the fields for profiling. */
2529 if (PROFILE_MODEL_P (current_cpu))
2530 {
2531 FLD (in_h_gr_13) = 13;
2532 FLD (out_h_gr_13) = 13;
2533 }
2534#endif
2535#undef FLD
7a292a7a 2536 return idesc;
c906108c
SS
2537 }
2538
7a292a7a 2539 extract_fmt_dmovr13pih:
c906108c 2540 {
7a292a7a 2541 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2542 CGEN_INSN_INT insn = base_insn;
2543#define FLD(f) abuf->fields.fmt_dmovr13pih.f
9846de1b 2544 USI f_dir9;
c906108c 2545
9846de1b 2546 f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
c906108c
SS
2547
2548 /* Record the fields for the semantic handler. */
2549 FLD (f_dir9) = f_dir9;
2550 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13pih", "f_dir9 0x%x", 'x', f_dir9, (char *) 0));
2551
2552#if WITH_PROFILE_MODEL_P
2553 /* Record the fields for profiling. */
2554 if (PROFILE_MODEL_P (current_cpu))
2555 {
2556 FLD (in_h_gr_13) = 13;
2557 FLD (out_h_gr_13) = 13;
2558 }
2559#endif
2560#undef FLD
7a292a7a 2561 return idesc;
c906108c
SS
2562 }
2563
7a292a7a 2564 extract_fmt_dmovr13pib:
c906108c 2565 {
7a292a7a 2566 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2567 CGEN_INSN_INT insn = base_insn;
2568#define FLD(f) abuf->fields.fmt_dmovr13pib.f
9846de1b 2569 UINT f_dir8;
c906108c 2570
9846de1b 2571 f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2572
2573 /* Record the fields for the semantic handler. */
2574 FLD (f_dir8) = f_dir8;
2575 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr13pib", "f_dir8 0x%x", 'x', f_dir8, (char *) 0));
2576
2577#if WITH_PROFILE_MODEL_P
2578 /* Record the fields for profiling. */
2579 if (PROFILE_MODEL_P (current_cpu))
2580 {
2581 FLD (in_h_gr_13) = 13;
2582 FLD (out_h_gr_13) = 13;
2583 }
2584#endif
2585#undef FLD
7a292a7a 2586 return idesc;
c906108c
SS
2587 }
2588
7a292a7a 2589 extract_fmt_dmovr15pi:
c906108c 2590 {
7a292a7a 2591 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2592 CGEN_INSN_INT insn = base_insn;
2593#define FLD(f) abuf->fields.fmt_dmovr15pi.f
9846de1b 2594 USI f_dir10;
c906108c 2595
9846de1b 2596 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2597
2598 /* Record the fields for the semantic handler. */
2599 FLD (f_dir10) = f_dir10;
2600 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmovr15pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
2601
2602#if WITH_PROFILE_MODEL_P
2603 /* Record the fields for profiling. */
2604 if (PROFILE_MODEL_P (current_cpu))
2605 {
2606 FLD (in_h_gr_15) = 15;
2607 FLD (out_h_gr_15) = 15;
2608 }
2609#endif
2610#undef FLD
7a292a7a 2611 return idesc;
c906108c
SS
2612 }
2613
7a292a7a 2614 extract_fmt_dmov2r13:
c906108c 2615 {
7a292a7a 2616 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2617 CGEN_INSN_INT insn = base_insn;
2618#define FLD(f) abuf->fields.fmt_dmov2r13.f
9846de1b 2619 USI f_dir10;
c906108c 2620
9846de1b 2621 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2622
2623 /* Record the fields for the semantic handler. */
2624 FLD (f_dir10) = f_dir10;
2625 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
2626
2627#if WITH_PROFILE_MODEL_P
2628 /* Record the fields for profiling. */
2629 if (PROFILE_MODEL_P (current_cpu))
2630 {
2631 FLD (out_h_gr_13) = 13;
2632 }
2633#endif
2634#undef FLD
7a292a7a 2635 return idesc;
c906108c
SS
2636 }
2637
7a292a7a 2638 extract_fmt_dmov2r13h:
c906108c 2639 {
7a292a7a 2640 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2641 CGEN_INSN_INT insn = base_insn;
2642#define FLD(f) abuf->fields.fmt_dmov2r13h.f
9846de1b 2643 USI f_dir9;
c906108c 2644
9846de1b 2645 f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
c906108c
SS
2646
2647 /* Record the fields for the semantic handler. */
2648 FLD (f_dir9) = f_dir9;
2649 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13h", "f_dir9 0x%x", 'x', f_dir9, (char *) 0));
2650
2651#if WITH_PROFILE_MODEL_P
2652 /* Record the fields for profiling. */
2653 if (PROFILE_MODEL_P (current_cpu))
2654 {
2655 FLD (out_h_gr_13) = 13;
2656 }
2657#endif
2658#undef FLD
7a292a7a 2659 return idesc;
c906108c
SS
2660 }
2661
7a292a7a 2662 extract_fmt_dmov2r13b:
c906108c 2663 {
7a292a7a 2664 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2665 CGEN_INSN_INT insn = base_insn;
2666#define FLD(f) abuf->fields.fmt_dmov2r13b.f
9846de1b 2667 UINT f_dir8;
c906108c 2668
9846de1b 2669 f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2670
2671 /* Record the fields for the semantic handler. */
2672 FLD (f_dir8) = f_dir8;
2673 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13b", "f_dir8 0x%x", 'x', f_dir8, (char *) 0));
2674
2675#if WITH_PROFILE_MODEL_P
2676 /* Record the fields for profiling. */
2677 if (PROFILE_MODEL_P (current_cpu))
2678 {
2679 FLD (out_h_gr_13) = 13;
2680 }
2681#endif
2682#undef FLD
7a292a7a 2683 return idesc;
c906108c
SS
2684 }
2685
7a292a7a 2686 extract_fmt_dmov2r13pi:
c906108c 2687 {
7a292a7a 2688 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2689 CGEN_INSN_INT insn = base_insn;
2690#define FLD(f) abuf->fields.fmt_dmov2r13pi.f
9846de1b 2691 USI f_dir10;
c906108c 2692
9846de1b 2693 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2694
2695 /* Record the fields for the semantic handler. */
2696 FLD (f_dir10) = f_dir10;
2697 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
2698
2699#if WITH_PROFILE_MODEL_P
2700 /* Record the fields for profiling. */
2701 if (PROFILE_MODEL_P (current_cpu))
2702 {
2703 FLD (in_h_gr_13) = 13;
2704 FLD (out_h_gr_13) = 13;
2705 }
2706#endif
2707#undef FLD
7a292a7a 2708 return idesc;
c906108c
SS
2709 }
2710
7a292a7a 2711 extract_fmt_dmov2r13pih:
c906108c 2712 {
7a292a7a 2713 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2714 CGEN_INSN_INT insn = base_insn;
2715#define FLD(f) abuf->fields.fmt_dmov2r13pih.f
9846de1b 2716 USI f_dir9;
c906108c 2717
9846de1b 2718 f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
c906108c
SS
2719
2720 /* Record the fields for the semantic handler. */
2721 FLD (f_dir9) = f_dir9;
2722 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13pih", "f_dir9 0x%x", 'x', f_dir9, (char *) 0));
2723
2724#if WITH_PROFILE_MODEL_P
2725 /* Record the fields for profiling. */
2726 if (PROFILE_MODEL_P (current_cpu))
2727 {
2728 FLD (in_h_gr_13) = 13;
2729 FLD (out_h_gr_13) = 13;
2730 }
2731#endif
2732#undef FLD
7a292a7a 2733 return idesc;
c906108c
SS
2734 }
2735
7a292a7a 2736 extract_fmt_dmov2r13pib:
c906108c 2737 {
7a292a7a 2738 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2739 CGEN_INSN_INT insn = base_insn;
2740#define FLD(f) abuf->fields.fmt_dmov2r13pib.f
9846de1b 2741 UINT f_dir8;
c906108c 2742
9846de1b 2743 f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2744
2745 /* Record the fields for the semantic handler. */
2746 FLD (f_dir8) = f_dir8;
2747 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r13pib", "f_dir8 0x%x", 'x', f_dir8, (char *) 0));
2748
2749#if WITH_PROFILE_MODEL_P
2750 /* Record the fields for profiling. */
2751 if (PROFILE_MODEL_P (current_cpu))
2752 {
2753 FLD (in_h_gr_13) = 13;
2754 FLD (out_h_gr_13) = 13;
2755 }
2756#endif
2757#undef FLD
7a292a7a 2758 return idesc;
c906108c
SS
2759 }
2760
7a292a7a 2761 extract_fmt_dmov2r15pd:
c906108c 2762 {
7a292a7a 2763 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2764 CGEN_INSN_INT insn = base_insn;
2765#define FLD(f) abuf->fields.fmt_dmov2r15pd.f
9846de1b 2766 USI f_dir10;
c906108c 2767
9846de1b 2768 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2769
2770 /* Record the fields for the semantic handler. */
2771 FLD (f_dir10) = f_dir10;
2772 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_dmov2r15pd", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
2773
2774#if WITH_PROFILE_MODEL_P
2775 /* Record the fields for profiling. */
2776 if (PROFILE_MODEL_P (current_cpu))
2777 {
2778 FLD (in_h_gr_15) = 15;
2779 FLD (out_h_gr_15) = 15;
2780 }
2781#endif
2782#undef FLD
7a292a7a 2783 return idesc;
c906108c
SS
2784 }
2785
7a292a7a 2786 extract_fmt_ldres:
c906108c 2787 {
7a292a7a 2788 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2789 CGEN_INSN_INT insn = base_insn;
2790#define FLD(f) abuf->fields.fmt_ldres.f
9846de1b 2791 UINT f_Ri;
c906108c 2792
9846de1b 2793 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2794
2795 /* Record the fields for the semantic handler. */
2796 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2797 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldres", "Ri 0x%x", 'x', f_Ri, (char *) 0));
2798
2799#if WITH_PROFILE_MODEL_P
2800 /* Record the fields for profiling. */
2801 if (PROFILE_MODEL_P (current_cpu))
2802 {
2803 FLD (in_Ri) = f_Ri;
2804 FLD (out_Ri) = f_Ri;
2805 }
2806#endif
2807#undef FLD
7a292a7a 2808 return idesc;
c906108c
SS
2809 }
2810
7a292a7a 2811 extract_fmt_copop:
c906108c 2812 {
7a292a7a 2813 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2814 CGEN_INSN_INT insn = base_insn;
2815#define FLD(f) abuf->fields.fmt_copop.f
9846de1b
JM
2816 /* Contents of trailing part of insn. */
2817 UINT word_1;
c906108c 2818
9846de1b 2819 word_1 = GETIMEMUHI (current_cpu, pc + 2);
c906108c
SS
2820
2821 /* Record the fields for the semantic handler. */
2822 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_copop", (char *) 0));
2823
c906108c 2824#undef FLD
7a292a7a 2825 return idesc;
c906108c
SS
2826 }
2827
7a292a7a 2828 extract_fmt_andccr:
c906108c 2829 {
7a292a7a 2830 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2831 CGEN_INSN_INT insn = base_insn;
2832#define FLD(f) abuf->fields.fmt_andccr.f
9846de1b 2833 UINT f_u8;
c906108c 2834
9846de1b 2835 f_u8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2836
2837 /* Record the fields for the semantic handler. */
2838 FLD (f_u8) = f_u8;
2839 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_andccr", "f_u8 0x%x", 'x', f_u8, (char *) 0));
2840
2841#undef FLD
7a292a7a 2842 return idesc;
c906108c
SS
2843 }
2844
7a292a7a 2845 extract_fmt_stilm:
c906108c 2846 {
7a292a7a 2847 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2848 CGEN_INSN_INT insn = base_insn;
2849#define FLD(f) abuf->fields.fmt_stilm.f
9846de1b 2850 UINT f_u8;
c906108c 2851
9846de1b 2852 f_u8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2853
2854 /* Record the fields for the semantic handler. */
2855 FLD (f_u8) = f_u8;
2856 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stilm", "f_u8 0x%x", 'x', f_u8, (char *) 0));
2857
2858#undef FLD
7a292a7a 2859 return idesc;
c906108c
SS
2860 }
2861
7a292a7a 2862 extract_fmt_addsp:
c906108c 2863 {
7a292a7a 2864 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2865 CGEN_INSN_INT insn = base_insn;
2866#define FLD(f) abuf->fields.fmt_addsp.f
9846de1b 2867 SI f_s10;
c906108c 2868
9846de1b 2869 f_s10 = ((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2));
c906108c
SS
2870
2871 /* Record the fields for the semantic handler. */
2872 FLD (f_s10) = f_s10;
2873 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_addsp", "f_s10 0x%x", 'x', f_s10, (char *) 0));
2874
2875#if WITH_PROFILE_MODEL_P
2876 /* Record the fields for profiling. */
2877 if (PROFILE_MODEL_P (current_cpu))
2878 {
2879 FLD (in_h_gr_15) = 15;
2880 FLD (out_h_gr_15) = 15;
2881 }
2882#endif
2883#undef FLD
7a292a7a 2884 return idesc;
c906108c
SS
2885 }
2886
7a292a7a 2887 extract_fmt_extsb:
c906108c 2888 {
7a292a7a 2889 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2890 CGEN_INSN_INT insn = base_insn;
2891#define FLD(f) abuf->fields.fmt_extsb.f
9846de1b 2892 UINT f_Ri;
c906108c 2893
9846de1b 2894 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2895
2896 /* Record the fields for the semantic handler. */
2897 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2898 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_extsb", "Ri 0x%x", 'x', f_Ri, (char *) 0));
2899
2900#if WITH_PROFILE_MODEL_P
2901 /* Record the fields for profiling. */
2902 if (PROFILE_MODEL_P (current_cpu))
2903 {
2904 FLD (in_Ri) = f_Ri;
2905 FLD (out_Ri) = f_Ri;
2906 }
2907#endif
2908#undef FLD
7a292a7a 2909 return idesc;
c906108c
SS
2910 }
2911
7a292a7a 2912 extract_fmt_extub:
c906108c 2913 {
7a292a7a 2914 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2915 CGEN_INSN_INT insn = base_insn;
2916#define FLD(f) abuf->fields.fmt_extub.f
9846de1b 2917 UINT f_Ri;
c906108c 2918
9846de1b 2919 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2920
2921 /* Record the fields for the semantic handler. */
2922 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2923 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_extub", "Ri 0x%x", 'x', f_Ri, (char *) 0));
2924
2925#if WITH_PROFILE_MODEL_P
2926 /* Record the fields for profiling. */
2927 if (PROFILE_MODEL_P (current_cpu))
2928 {
2929 FLD (in_Ri) = f_Ri;
2930 FLD (out_Ri) = f_Ri;
2931 }
2932#endif
2933#undef FLD
7a292a7a 2934 return idesc;
c906108c
SS
2935 }
2936
7a292a7a 2937 extract_fmt_extsh:
c906108c 2938 {
7a292a7a 2939 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2940 CGEN_INSN_INT insn = base_insn;
2941#define FLD(f) abuf->fields.fmt_extsh.f
9846de1b 2942 UINT f_Ri;
c906108c 2943
9846de1b 2944 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2945
2946 /* Record the fields for the semantic handler. */
2947 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2948 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_extsh", "Ri 0x%x", 'x', f_Ri, (char *) 0));
2949
2950#if WITH_PROFILE_MODEL_P
2951 /* Record the fields for profiling. */
2952 if (PROFILE_MODEL_P (current_cpu))
2953 {
2954 FLD (in_Ri) = f_Ri;
2955 FLD (out_Ri) = f_Ri;
2956 }
2957#endif
2958#undef FLD
7a292a7a 2959 return idesc;
c906108c
SS
2960 }
2961
7a292a7a 2962 extract_fmt_extuh:
c906108c 2963 {
7a292a7a 2964 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2965 CGEN_INSN_INT insn = base_insn;
2966#define FLD(f) abuf->fields.fmt_extuh.f
9846de1b 2967 UINT f_Ri;
c906108c 2968
9846de1b 2969 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2970
2971 /* Record the fields for the semantic handler. */
2972 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2973 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_extuh", "Ri 0x%x", 'x', f_Ri, (char *) 0));
2974
2975#if WITH_PROFILE_MODEL_P
2976 /* Record the fields for profiling. */
2977 if (PROFILE_MODEL_P (current_cpu))
2978 {
2979 FLD (in_Ri) = f_Ri;
2980 FLD (out_Ri) = f_Ri;
2981 }
2982#endif
2983#undef FLD
7a292a7a 2984 return idesc;
c906108c
SS
2985 }
2986
7a292a7a 2987 extract_fmt_ldm0:
c906108c 2988 {
7a292a7a 2989 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
2990 CGEN_INSN_INT insn = base_insn;
2991#define FLD(f) abuf->fields.fmt_ldm0.f
9846de1b 2992 UINT f_reglist_low_ld;
c906108c 2993
9846de1b 2994 f_reglist_low_ld = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2995
2996 /* Record the fields for the semantic handler. */
2997 FLD (f_reglist_low_ld) = f_reglist_low_ld;
2998 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldm0", "f_reglist_low_ld 0x%x", 'x', f_reglist_low_ld, (char *) 0));
2999
3000#if WITH_PROFILE_MODEL_P
3001 /* Record the fields for profiling. */
3002 if (PROFILE_MODEL_P (current_cpu))
3003 {
3004 FLD (in_h_gr_15) = 15;
3005 FLD (out_h_gr_0) = 0;
3006 FLD (out_h_gr_1) = 1;
3007 FLD (out_h_gr_15) = 15;
3008 FLD (out_h_gr_2) = 2;
3009 FLD (out_h_gr_3) = 3;
3010 FLD (out_h_gr_4) = 4;
3011 FLD (out_h_gr_5) = 5;
3012 FLD (out_h_gr_6) = 6;
3013 FLD (out_h_gr_7) = 7;
3014 }
3015#endif
3016#undef FLD
7a292a7a 3017 return idesc;
c906108c
SS
3018 }
3019
7a292a7a 3020 extract_fmt_ldm1:
c906108c 3021 {
7a292a7a 3022 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
3023 CGEN_INSN_INT insn = base_insn;
3024#define FLD(f) abuf->fields.fmt_ldm1.f
9846de1b 3025 UINT f_reglist_hi_ld;
c906108c 3026
9846de1b 3027 f_reglist_hi_ld = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
3028
3029 /* Record the fields for the semantic handler. */
3030 FLD (f_reglist_hi_ld) = f_reglist_hi_ld;
3031 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldm1", "f_reglist_hi_ld 0x%x", 'x', f_reglist_hi_ld, (char *) 0));
3032
3033#if WITH_PROFILE_MODEL_P
3034 /* Record the fields for profiling. */
3035 if (PROFILE_MODEL_P (current_cpu))
3036 {
3037 FLD (in_h_gr_15) = 15;
3038 FLD (out_h_gr_10) = 10;
3039 FLD (out_h_gr_11) = 11;
3040 FLD (out_h_gr_12) = 12;
3041 FLD (out_h_gr_13) = 13;
3042 FLD (out_h_gr_14) = 14;
3043 FLD (out_h_gr_15) = 15;
3044 FLD (out_h_gr_8) = 8;
3045 FLD (out_h_gr_9) = 9;
3046 }
3047#endif
3048#undef FLD
7a292a7a 3049 return idesc;
c906108c
SS
3050 }
3051
7a292a7a 3052 extract_fmt_stm0:
c906108c 3053 {
7a292a7a 3054 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
3055 CGEN_INSN_INT insn = base_insn;
3056#define FLD(f) abuf->fields.fmt_stm0.f
9846de1b 3057 UINT f_reglist_low_st;
c906108c 3058
9846de1b 3059 f_reglist_low_st = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
3060
3061 /* Record the fields for the semantic handler. */
3062 FLD (f_reglist_low_st) = f_reglist_low_st;
3063 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stm0", "f_reglist_low_st 0x%x", 'x', f_reglist_low_st, (char *) 0));
3064
3065#if WITH_PROFILE_MODEL_P
3066 /* Record the fields for profiling. */
3067 if (PROFILE_MODEL_P (current_cpu))
3068 {
3069 FLD (in_h_gr_0) = 0;
3070 FLD (in_h_gr_1) = 1;
3071 FLD (in_h_gr_15) = 15;
3072 FLD (in_h_gr_2) = 2;
3073 FLD (in_h_gr_3) = 3;
3074 FLD (in_h_gr_4) = 4;
3075 FLD (in_h_gr_5) = 5;
3076 FLD (in_h_gr_6) = 6;
3077 FLD (in_h_gr_7) = 7;
3078 FLD (out_h_gr_15) = 15;
3079 }
3080#endif
3081#undef FLD
7a292a7a 3082 return idesc;
c906108c
SS
3083 }
3084
7a292a7a 3085 extract_fmt_stm1:
c906108c 3086 {
7a292a7a 3087 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
3088 CGEN_INSN_INT insn = base_insn;
3089#define FLD(f) abuf->fields.fmt_stm1.f
9846de1b 3090 UINT f_reglist_hi_st;
c906108c 3091
9846de1b 3092 f_reglist_hi_st = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
3093
3094 /* Record the fields for the semantic handler. */
3095 FLD (f_reglist_hi_st) = f_reglist_hi_st;
3096 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stm1", "f_reglist_hi_st 0x%x", 'x', f_reglist_hi_st, (char *) 0));
3097
3098#if WITH_PROFILE_MODEL_P
3099 /* Record the fields for profiling. */
3100 if (PROFILE_MODEL_P (current_cpu))
3101 {
3102 FLD (in_h_gr_10) = 10;
3103 FLD (in_h_gr_11) = 11;
3104 FLD (in_h_gr_12) = 12;
3105 FLD (in_h_gr_13) = 13;
3106 FLD (in_h_gr_14) = 14;
3107 FLD (in_h_gr_15) = 15;
3108 FLD (in_h_gr_8) = 8;
3109 FLD (in_h_gr_9) = 9;
3110 FLD (out_h_gr_15) = 15;
3111 }
3112#endif
3113#undef FLD
7a292a7a 3114 return idesc;
c906108c
SS
3115 }
3116
7a292a7a 3117 extract_fmt_enter:
c906108c 3118 {
7a292a7a 3119 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
3120 CGEN_INSN_INT insn = base_insn;
3121#define FLD(f) abuf->fields.fmt_enter.f
9846de1b 3122 USI f_u10;
c906108c 3123
9846de1b 3124 f_u10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
3125
3126 /* Record the fields for the semantic handler. */
3127 FLD (f_u10) = f_u10;
3128 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_enter", "f_u10 0x%x", 'x', f_u10, (char *) 0));
3129
3130#if WITH_PROFILE_MODEL_P
3131 /* Record the fields for profiling. */
3132 if (PROFILE_MODEL_P (current_cpu))
3133 {
3134 FLD (in_h_gr_14) = 14;
3135 FLD (in_h_gr_15) = 15;
3136 FLD (out_h_gr_14) = 14;
3137 FLD (out_h_gr_15) = 15;
3138 }
3139#endif
3140#undef FLD
7a292a7a 3141 return idesc;
c906108c
SS
3142 }
3143
7a292a7a 3144 extract_fmt_leave:
c906108c 3145 {
7a292a7a 3146 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
3147 CGEN_INSN_INT insn = base_insn;
3148#define FLD(f) abuf->fields.fmt_leave.f
c906108c 3149
c906108c
SS
3150
3151 /* Record the fields for the semantic handler. */
3152 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_leave", (char *) 0));
3153
3154#if WITH_PROFILE_MODEL_P
3155 /* Record the fields for profiling. */
3156 if (PROFILE_MODEL_P (current_cpu))
3157 {
3158 FLD (in_h_gr_14) = 14;
3159 FLD (in_h_gr_15) = 15;
3160 FLD (out_h_gr_14) = 14;
3161 FLD (out_h_gr_15) = 15;
3162 }
3163#endif
3164#undef FLD
7a292a7a 3165 return idesc;
c906108c
SS
3166 }
3167
7a292a7a 3168 extract_fmt_xchb:
c906108c 3169 {
7a292a7a 3170 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c
SS
3171 CGEN_INSN_INT insn = base_insn;
3172#define FLD(f) abuf->fields.fmt_xchb.f
9846de1b
JM
3173 UINT f_Rj;
3174 UINT f_Ri;
c906108c 3175
9846de1b
JM
3176 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3177 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
3178
3179 /* Record the fields for the semantic handler. */
3180 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
3181 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
3182 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_xchb", "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
3183
3184#if WITH_PROFILE_MODEL_P
3185 /* Record the fields for profiling. */
3186 if (PROFILE_MODEL_P (current_cpu))
3187 {
3188 FLD (in_Ri) = f_Ri;
3189 FLD (in_Rj) = f_Rj;
3190 FLD (out_Ri) = f_Ri;
3191 }
3192#endif
3193#undef FLD
7a292a7a 3194 return idesc;
c906108c
SS
3195 }
3196
c906108c 3197}
This page took 0.197716 seconds and 4 git commands to generate.