Import current --enable-gdb-build-warnings.
[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
3e43c635 5Copyright 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
c906108c 6
3e43c635 7This file is part of the GNU simulators.
c906108c
SS
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
c906108c
SS
31/* The instruction descriptor array.
32 This is computed at runtime. Space for it is not malloc'd to save a
33 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
34 but won't be done until necessary (we don't currently support the runtime
35 addition of instructions nor an SMP machine with different cpus). */
3e43c635 36static IDESC fr30bf_insn_data[FR30BF_INSN_XCHB + 1];
c906108c 37
c906108c
SS
38/* Commas between elements are contained in the macros.
39 Some of these are conditionally compiled out. */
40
41static const struct insn_sem fr30bf_insn_sem[] =
42{
96baa820
JM
43 { VIRTUAL_INSN_X_INVALID, FR30BF_INSN_X_INVALID, FR30BF_SFMT_EMPTY },
44 { VIRTUAL_INSN_X_AFTER, FR30BF_INSN_X_AFTER, FR30BF_SFMT_EMPTY },
45 { VIRTUAL_INSN_X_BEFORE, FR30BF_INSN_X_BEFORE, FR30BF_SFMT_EMPTY },
46 { VIRTUAL_INSN_X_CTI_CHAIN, FR30BF_INSN_X_CTI_CHAIN, FR30BF_SFMT_EMPTY },
47 { VIRTUAL_INSN_X_CHAIN, FR30BF_INSN_X_CHAIN, FR30BF_SFMT_EMPTY },
48 { VIRTUAL_INSN_X_BEGIN, FR30BF_INSN_X_BEGIN, FR30BF_SFMT_EMPTY },
49 { FR30_INSN_ADD, FR30BF_INSN_ADD, FR30BF_SFMT_ADD },
50 { FR30_INSN_ADDI, FR30BF_INSN_ADDI, FR30BF_SFMT_ADDI },
51 { FR30_INSN_ADD2, FR30BF_INSN_ADD2, FR30BF_SFMT_ADD2 },
52 { FR30_INSN_ADDC, FR30BF_INSN_ADDC, FR30BF_SFMT_ADDC },
53 { FR30_INSN_ADDN, FR30BF_INSN_ADDN, FR30BF_SFMT_ADDN },
54 { FR30_INSN_ADDNI, FR30BF_INSN_ADDNI, FR30BF_SFMT_ADDNI },
55 { FR30_INSN_ADDN2, FR30BF_INSN_ADDN2, FR30BF_SFMT_ADDN2 },
56 { FR30_INSN_SUB, FR30BF_INSN_SUB, FR30BF_SFMT_ADD },
57 { FR30_INSN_SUBC, FR30BF_INSN_SUBC, FR30BF_SFMT_ADDC },
58 { FR30_INSN_SUBN, FR30BF_INSN_SUBN, FR30BF_SFMT_ADDN },
59 { FR30_INSN_CMP, FR30BF_INSN_CMP, FR30BF_SFMT_CMP },
60 { FR30_INSN_CMPI, FR30BF_INSN_CMPI, FR30BF_SFMT_CMPI },
61 { FR30_INSN_CMP2, FR30BF_INSN_CMP2, FR30BF_SFMT_CMP2 },
62 { FR30_INSN_AND, FR30BF_INSN_AND, FR30BF_SFMT_AND },
63 { FR30_INSN_OR, FR30BF_INSN_OR, FR30BF_SFMT_AND },
64 { FR30_INSN_EOR, FR30BF_INSN_EOR, FR30BF_SFMT_AND },
65 { FR30_INSN_ANDM, FR30BF_INSN_ANDM, FR30BF_SFMT_ANDM },
66 { FR30_INSN_ANDH, FR30BF_INSN_ANDH, FR30BF_SFMT_ANDH },
67 { FR30_INSN_ANDB, FR30BF_INSN_ANDB, FR30BF_SFMT_ANDB },
68 { FR30_INSN_ORM, FR30BF_INSN_ORM, FR30BF_SFMT_ANDM },
69 { FR30_INSN_ORH, FR30BF_INSN_ORH, FR30BF_SFMT_ANDH },
70 { FR30_INSN_ORB, FR30BF_INSN_ORB, FR30BF_SFMT_ANDB },
71 { FR30_INSN_EORM, FR30BF_INSN_EORM, FR30BF_SFMT_ANDM },
72 { FR30_INSN_EORH, FR30BF_INSN_EORH, FR30BF_SFMT_ANDH },
73 { FR30_INSN_EORB, FR30BF_INSN_EORB, FR30BF_SFMT_ANDB },
74 { FR30_INSN_BANDL, FR30BF_INSN_BANDL, FR30BF_SFMT_BANDL },
75 { FR30_INSN_BORL, FR30BF_INSN_BORL, FR30BF_SFMT_BANDL },
76 { FR30_INSN_BEORL, FR30BF_INSN_BEORL, FR30BF_SFMT_BANDL },
77 { FR30_INSN_BANDH, FR30BF_INSN_BANDH, FR30BF_SFMT_BANDL },
78 { FR30_INSN_BORH, FR30BF_INSN_BORH, FR30BF_SFMT_BANDL },
79 { FR30_INSN_BEORH, FR30BF_INSN_BEORH, FR30BF_SFMT_BANDL },
80 { FR30_INSN_BTSTL, FR30BF_INSN_BTSTL, FR30BF_SFMT_BTSTL },
81 { FR30_INSN_BTSTH, FR30BF_INSN_BTSTH, FR30BF_SFMT_BTSTL },
82 { FR30_INSN_MUL, FR30BF_INSN_MUL, FR30BF_SFMT_MUL },
83 { FR30_INSN_MULU, FR30BF_INSN_MULU, FR30BF_SFMT_MULU },
84 { FR30_INSN_MULH, FR30BF_INSN_MULH, FR30BF_SFMT_MULH },
85 { FR30_INSN_MULUH, FR30BF_INSN_MULUH, FR30BF_SFMT_MULH },
86 { FR30_INSN_DIV0S, FR30BF_INSN_DIV0S, FR30BF_SFMT_DIV0S },
87 { FR30_INSN_DIV0U, FR30BF_INSN_DIV0U, FR30BF_SFMT_DIV0U },
88 { FR30_INSN_DIV1, FR30BF_INSN_DIV1, FR30BF_SFMT_DIV1 },
89 { FR30_INSN_DIV2, FR30BF_INSN_DIV2, FR30BF_SFMT_DIV2 },
90 { FR30_INSN_DIV3, FR30BF_INSN_DIV3, FR30BF_SFMT_DIV3 },
91 { FR30_INSN_DIV4S, FR30BF_INSN_DIV4S, FR30BF_SFMT_DIV4S },
92 { FR30_INSN_LSL, FR30BF_INSN_LSL, FR30BF_SFMT_LSL },
93 { FR30_INSN_LSLI, FR30BF_INSN_LSLI, FR30BF_SFMT_LSLI },
94 { FR30_INSN_LSL2, FR30BF_INSN_LSL2, FR30BF_SFMT_LSLI },
95 { FR30_INSN_LSR, FR30BF_INSN_LSR, FR30BF_SFMT_LSL },
96 { FR30_INSN_LSRI, FR30BF_INSN_LSRI, FR30BF_SFMT_LSLI },
97 { FR30_INSN_LSR2, FR30BF_INSN_LSR2, FR30BF_SFMT_LSLI },
98 { FR30_INSN_ASR, FR30BF_INSN_ASR, FR30BF_SFMT_LSL },
99 { FR30_INSN_ASRI, FR30BF_INSN_ASRI, FR30BF_SFMT_LSLI },
100 { FR30_INSN_ASR2, FR30BF_INSN_ASR2, FR30BF_SFMT_LSLI },
101 { FR30_INSN_LDI8, FR30BF_INSN_LDI8, FR30BF_SFMT_LDI8 },
102 { FR30_INSN_LDI20, FR30BF_INSN_LDI20, FR30BF_SFMT_LDI20 },
103 { FR30_INSN_LDI32, FR30BF_INSN_LDI32, FR30BF_SFMT_LDI32 },
104 { FR30_INSN_LD, FR30BF_INSN_LD, FR30BF_SFMT_LD },
3e43c635
DB
105 { FR30_INSN_LDUH, FR30BF_INSN_LDUH, FR30BF_SFMT_LDUH },
106 { FR30_INSN_LDUB, FR30BF_INSN_LDUB, FR30BF_SFMT_LDUB },
96baa820 107 { FR30_INSN_LDR13, FR30BF_INSN_LDR13, FR30BF_SFMT_LDR13 },
3e43c635
DB
108 { FR30_INSN_LDR13UH, FR30BF_INSN_LDR13UH, FR30BF_SFMT_LDR13UH },
109 { FR30_INSN_LDR13UB, FR30BF_INSN_LDR13UB, FR30BF_SFMT_LDR13UB },
96baa820
JM
110 { FR30_INSN_LDR14, FR30BF_INSN_LDR14, FR30BF_SFMT_LDR14 },
111 { FR30_INSN_LDR14UH, FR30BF_INSN_LDR14UH, FR30BF_SFMT_LDR14UH },
112 { FR30_INSN_LDR14UB, FR30BF_INSN_LDR14UB, FR30BF_SFMT_LDR14UB },
113 { FR30_INSN_LDR15, FR30BF_INSN_LDR15, FR30BF_SFMT_LDR15 },
114 { FR30_INSN_LDR15GR, FR30BF_INSN_LDR15GR, FR30BF_SFMT_LDR15GR },
115 { FR30_INSN_LDR15DR, FR30BF_INSN_LDR15DR, FR30BF_SFMT_LDR15DR },
116 { FR30_INSN_LDR15PS, FR30BF_INSN_LDR15PS, FR30BF_SFMT_LDR15PS },
117 { FR30_INSN_ST, FR30BF_INSN_ST, FR30BF_SFMT_ST },
3e43c635
DB
118 { FR30_INSN_STH, FR30BF_INSN_STH, FR30BF_SFMT_STH },
119 { FR30_INSN_STB, FR30BF_INSN_STB, FR30BF_SFMT_STB },
96baa820 120 { FR30_INSN_STR13, FR30BF_INSN_STR13, FR30BF_SFMT_STR13 },
3e43c635
DB
121 { FR30_INSN_STR13H, FR30BF_INSN_STR13H, FR30BF_SFMT_STR13H },
122 { FR30_INSN_STR13B, FR30BF_INSN_STR13B, FR30BF_SFMT_STR13B },
96baa820
JM
123 { FR30_INSN_STR14, FR30BF_INSN_STR14, FR30BF_SFMT_STR14 },
124 { FR30_INSN_STR14H, FR30BF_INSN_STR14H, FR30BF_SFMT_STR14H },
125 { FR30_INSN_STR14B, FR30BF_INSN_STR14B, FR30BF_SFMT_STR14B },
126 { FR30_INSN_STR15, FR30BF_INSN_STR15, FR30BF_SFMT_STR15 },
127 { FR30_INSN_STR15GR, FR30BF_INSN_STR15GR, FR30BF_SFMT_STR15GR },
128 { FR30_INSN_STR15DR, FR30BF_INSN_STR15DR, FR30BF_SFMT_STR15DR },
129 { FR30_INSN_STR15PS, FR30BF_INSN_STR15PS, FR30BF_SFMT_STR15PS },
130 { FR30_INSN_MOV, FR30BF_INSN_MOV, FR30BF_SFMT_MOV },
131 { FR30_INSN_MOVDR, FR30BF_INSN_MOVDR, FR30BF_SFMT_MOVDR },
132 { FR30_INSN_MOVPS, FR30BF_INSN_MOVPS, FR30BF_SFMT_MOVPS },
133 { FR30_INSN_MOV2DR, FR30BF_INSN_MOV2DR, FR30BF_SFMT_MOV2DR },
134 { FR30_INSN_MOV2PS, FR30BF_INSN_MOV2PS, FR30BF_SFMT_MOV2PS },
135 { FR30_INSN_JMP, FR30BF_INSN_JMP, FR30BF_SFMT_JMP },
136 { FR30_INSN_JMPD, FR30BF_INSN_JMPD, FR30BF_SFMT_JMP },
137 { FR30_INSN_CALLR, FR30BF_INSN_CALLR, FR30BF_SFMT_CALLR },
138 { FR30_INSN_CALLRD, FR30BF_INSN_CALLRD, FR30BF_SFMT_CALLR },
139 { FR30_INSN_CALL, FR30BF_INSN_CALL, FR30BF_SFMT_CALL },
140 { FR30_INSN_CALLD, FR30BF_INSN_CALLD, FR30BF_SFMT_CALL },
141 { FR30_INSN_RET, FR30BF_INSN_RET, FR30BF_SFMT_RET },
142 { FR30_INSN_RET_D, FR30BF_INSN_RET_D, FR30BF_SFMT_RET },
143 { FR30_INSN_INT, FR30BF_INSN_INT, FR30BF_SFMT_INT },
144 { FR30_INSN_INTE, FR30BF_INSN_INTE, FR30BF_SFMT_INTE },
145 { FR30_INSN_RETI, FR30BF_INSN_RETI, FR30BF_SFMT_RETI },
146 { FR30_INSN_BRAD, FR30BF_INSN_BRAD, FR30BF_SFMT_BRAD },
147 { FR30_INSN_BRA, FR30BF_INSN_BRA, FR30BF_SFMT_BRAD },
148 { FR30_INSN_BNOD, FR30BF_INSN_BNOD, FR30BF_SFMT_BNOD },
149 { FR30_INSN_BNO, FR30BF_INSN_BNO, FR30BF_SFMT_BNOD },
150 { FR30_INSN_BEQD, FR30BF_INSN_BEQD, FR30BF_SFMT_BEQD },
151 { FR30_INSN_BEQ, FR30BF_INSN_BEQ, FR30BF_SFMT_BEQD },
152 { FR30_INSN_BNED, FR30BF_INSN_BNED, FR30BF_SFMT_BEQD },
153 { FR30_INSN_BNE, FR30BF_INSN_BNE, FR30BF_SFMT_BEQD },
154 { FR30_INSN_BCD, FR30BF_INSN_BCD, FR30BF_SFMT_BCD },
155 { FR30_INSN_BC, FR30BF_INSN_BC, FR30BF_SFMT_BCD },
156 { FR30_INSN_BNCD, FR30BF_INSN_BNCD, FR30BF_SFMT_BCD },
157 { FR30_INSN_BNC, FR30BF_INSN_BNC, FR30BF_SFMT_BCD },
158 { FR30_INSN_BND, FR30BF_INSN_BND, FR30BF_SFMT_BND },
159 { FR30_INSN_BN, FR30BF_INSN_BN, FR30BF_SFMT_BND },
160 { FR30_INSN_BPD, FR30BF_INSN_BPD, FR30BF_SFMT_BND },
161 { FR30_INSN_BP, FR30BF_INSN_BP, FR30BF_SFMT_BND },
162 { FR30_INSN_BVD, FR30BF_INSN_BVD, FR30BF_SFMT_BVD },
163 { FR30_INSN_BV, FR30BF_INSN_BV, FR30BF_SFMT_BVD },
164 { FR30_INSN_BNVD, FR30BF_INSN_BNVD, FR30BF_SFMT_BVD },
165 { FR30_INSN_BNV, FR30BF_INSN_BNV, FR30BF_SFMT_BVD },
166 { FR30_INSN_BLTD, FR30BF_INSN_BLTD, FR30BF_SFMT_BLTD },
167 { FR30_INSN_BLT, FR30BF_INSN_BLT, FR30BF_SFMT_BLTD },
168 { FR30_INSN_BGED, FR30BF_INSN_BGED, FR30BF_SFMT_BLTD },
169 { FR30_INSN_BGE, FR30BF_INSN_BGE, FR30BF_SFMT_BLTD },
170 { FR30_INSN_BLED, FR30BF_INSN_BLED, FR30BF_SFMT_BLED },
171 { FR30_INSN_BLE, FR30BF_INSN_BLE, FR30BF_SFMT_BLED },
172 { FR30_INSN_BGTD, FR30BF_INSN_BGTD, FR30BF_SFMT_BLED },
173 { FR30_INSN_BGT, FR30BF_INSN_BGT, FR30BF_SFMT_BLED },
174 { FR30_INSN_BLSD, FR30BF_INSN_BLSD, FR30BF_SFMT_BLSD },
175 { FR30_INSN_BLS, FR30BF_INSN_BLS, FR30BF_SFMT_BLSD },
176 { FR30_INSN_BHID, FR30BF_INSN_BHID, FR30BF_SFMT_BLSD },
177 { FR30_INSN_BHI, FR30BF_INSN_BHI, FR30BF_SFMT_BLSD },
178 { FR30_INSN_DMOVR13, FR30BF_INSN_DMOVR13, FR30BF_SFMT_DMOVR13 },
179 { FR30_INSN_DMOVR13H, FR30BF_INSN_DMOVR13H, FR30BF_SFMT_DMOVR13H },
180 { FR30_INSN_DMOVR13B, FR30BF_INSN_DMOVR13B, FR30BF_SFMT_DMOVR13B },
181 { FR30_INSN_DMOVR13PI, FR30BF_INSN_DMOVR13PI, FR30BF_SFMT_DMOVR13PI },
182 { FR30_INSN_DMOVR13PIH, FR30BF_INSN_DMOVR13PIH, FR30BF_SFMT_DMOVR13PIH },
183 { FR30_INSN_DMOVR13PIB, FR30BF_INSN_DMOVR13PIB, FR30BF_SFMT_DMOVR13PIB },
184 { FR30_INSN_DMOVR15PI, FR30BF_INSN_DMOVR15PI, FR30BF_SFMT_DMOVR15PI },
185 { FR30_INSN_DMOV2R13, FR30BF_INSN_DMOV2R13, FR30BF_SFMT_DMOV2R13 },
186 { FR30_INSN_DMOV2R13H, FR30BF_INSN_DMOV2R13H, FR30BF_SFMT_DMOV2R13H },
187 { FR30_INSN_DMOV2R13B, FR30BF_INSN_DMOV2R13B, FR30BF_SFMT_DMOV2R13B },
188 { FR30_INSN_DMOV2R13PI, FR30BF_INSN_DMOV2R13PI, FR30BF_SFMT_DMOV2R13PI },
189 { FR30_INSN_DMOV2R13PIH, FR30BF_INSN_DMOV2R13PIH, FR30BF_SFMT_DMOV2R13PIH },
190 { FR30_INSN_DMOV2R13PIB, FR30BF_INSN_DMOV2R13PIB, FR30BF_SFMT_DMOV2R13PIB },
191 { FR30_INSN_DMOV2R15PD, FR30BF_INSN_DMOV2R15PD, FR30BF_SFMT_DMOV2R15PD },
192 { FR30_INSN_LDRES, FR30BF_INSN_LDRES, FR30BF_SFMT_LDRES },
193 { FR30_INSN_STRES, FR30BF_INSN_STRES, FR30BF_SFMT_LDRES },
194 { FR30_INSN_COPOP, FR30BF_INSN_COPOP, FR30BF_SFMT_COPOP },
195 { FR30_INSN_COPLD, FR30BF_INSN_COPLD, FR30BF_SFMT_COPOP },
196 { FR30_INSN_COPST, FR30BF_INSN_COPST, FR30BF_SFMT_COPOP },
197 { FR30_INSN_COPSV, FR30BF_INSN_COPSV, FR30BF_SFMT_COPOP },
198 { FR30_INSN_NOP, FR30BF_INSN_NOP, FR30BF_SFMT_BNOD },
199 { FR30_INSN_ANDCCR, FR30BF_INSN_ANDCCR, FR30BF_SFMT_ANDCCR },
200 { FR30_INSN_ORCCR, FR30BF_INSN_ORCCR, FR30BF_SFMT_ANDCCR },
201 { FR30_INSN_STILM, FR30BF_INSN_STILM, FR30BF_SFMT_STILM },
202 { FR30_INSN_ADDSP, FR30BF_INSN_ADDSP, FR30BF_SFMT_ADDSP },
203 { FR30_INSN_EXTSB, FR30BF_INSN_EXTSB, FR30BF_SFMT_EXTSB },
204 { FR30_INSN_EXTUB, FR30BF_INSN_EXTUB, FR30BF_SFMT_EXTUB },
205 { FR30_INSN_EXTSH, FR30BF_INSN_EXTSH, FR30BF_SFMT_EXTSH },
206 { FR30_INSN_EXTUH, FR30BF_INSN_EXTUH, FR30BF_SFMT_EXTUH },
207 { FR30_INSN_LDM0, FR30BF_INSN_LDM0, FR30BF_SFMT_LDM0 },
208 { FR30_INSN_LDM1, FR30BF_INSN_LDM1, FR30BF_SFMT_LDM1 },
209 { FR30_INSN_STM0, FR30BF_INSN_STM0, FR30BF_SFMT_STM0 },
210 { FR30_INSN_STM1, FR30BF_INSN_STM1, FR30BF_SFMT_STM1 },
211 { FR30_INSN_ENTER, FR30BF_INSN_ENTER, FR30BF_SFMT_ENTER },
212 { FR30_INSN_LEAVE, FR30BF_INSN_LEAVE, FR30BF_SFMT_LEAVE },
213 { FR30_INSN_XCHB, FR30BF_INSN_XCHB, FR30BF_SFMT_XCHB },
c906108c
SS
214};
215
96baa820
JM
216static const struct insn_sem fr30bf_insn_sem_invalid = {
217 VIRTUAL_INSN_X_INVALID, FR30BF_INSN_X_INVALID, FR30BF_SFMT_EMPTY
c906108c
SS
218};
219
c906108c
SS
220/* Initialize an IDESC from the compile-time computable parts. */
221
222static INLINE void
223init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
224{
225 const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
226
227 id->num = t->index;
96baa820 228 id->sfmt = t->sfmt;
c906108c
SS
229 if ((int) t->type <= 0)
230 id->idata = & cgen_virtual_insn_table[- (int) t->type];
231 else
232 id->idata = & insn_table[t->type];
233 id->attrs = CGEN_INSN_ATTRS (id->idata);
234 /* Oh my god, a magic number. */
235 id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
96baa820 236
c906108c
SS
237#if WITH_PROFILE_MODEL_P
238 id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
239 {
240 SIM_DESC sd = CPU_STATE (cpu);
241 SIM_ASSERT (t->index == id->timing->num);
242 }
243#endif
96baa820
JM
244
245 /* Semantic pointers are initialized elsewhere. */
c906108c
SS
246}
247
248/* Initialize the instruction descriptor table. */
249
250void
251fr30bf_init_idesc_table (SIM_CPU *cpu)
252{
253 IDESC *id,*tabend;
254 const struct insn_sem *t,*tend;
3e43c635 255 int tabsize = sizeof (fr30bf_insn_data) / sizeof (IDESC);
c906108c
SS
256 IDESC *table = fr30bf_insn_data;
257
258 memset (table, 0, tabsize * sizeof (IDESC));
259
260 /* First set all entries to the `invalid insn'. */
261 t = & fr30bf_insn_sem_invalid;
262 for (id = table, tabend = table + tabsize; id < tabend; ++id)
263 init_idesc (cpu, id, t);
264
265 /* Now fill in the values for the chosen cpu. */
266 for (t = fr30bf_insn_sem, tend = t + sizeof (fr30bf_insn_sem) / sizeof (*t);
267 t != tend; ++t)
268 {
269 init_idesc (cpu, & table[t->index], t);
270 }
271
272 /* Link the IDESC table into the cpu. */
273 CPU_IDESC (cpu) = table;
274}
275
c906108c
SS
276/* Given an instruction, return a pointer to its IDESC entry. */
277
278const IDESC *
279fr30bf_decode (SIM_CPU *current_cpu, IADDR pc,
280 CGEN_INSN_INT base_insn,
281 ARGBUF *abuf)
282{
7a292a7a
SS
283 /* Result of decoder. */
284 FR30BF_INSN_TYPE itype;
c906108c
SS
285
286 {
3e43c635 287 CGEN_INSN_INT insn = base_insn;
7a292a7a
SS
288
289 {
290 unsigned int val = (((insn >> 8) & (255 << 0)));
291 switch (val)
292 {
3e43c635
DB
293 case 0 : itype = FR30BF_INSN_LDR13;goto extract_sfmt_ldr13;
294 case 1 : itype = FR30BF_INSN_LDR13UH;goto extract_sfmt_ldr13uh;
295 case 2 : itype = FR30BF_INSN_LDR13UB;goto extract_sfmt_ldr13ub;
296 case 3 : itype = FR30BF_INSN_LDR15;goto extract_sfmt_ldr15;
297 case 4 : itype = FR30BF_INSN_LD;goto extract_sfmt_ld;
298 case 5 : itype = FR30BF_INSN_LDUH;goto extract_sfmt_lduh;
299 case 6 : itype = FR30BF_INSN_LDUB;goto extract_sfmt_ldub;
300 case 7 :
c906108c 301 {
52fa932e 302 unsigned int val = (((insn >> 6) & (1 << 1)) | ((insn >> 4) & (1 << 0)));
7a292a7a 303 switch (val)
c906108c 304 {
3e43c635
DB
305 case 0 : itype = FR30BF_INSN_LDR15GR;goto extract_sfmt_ldr15gr;
306 case 1 : itype = FR30BF_INSN_MOV2PS;goto extract_sfmt_mov2ps;
307 case 2 : itype = FR30BF_INSN_LDR15DR;goto extract_sfmt_ldr15dr;
308 case 3 : itype = FR30BF_INSN_LDR15PS;goto extract_sfmt_ldr15ps;
309 default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty;
c906108c 310 }
7a292a7a 311 }
3e43c635
DB
312 case 8 : itype = FR30BF_INSN_DMOV2R13;goto extract_sfmt_dmov2r13;
313 case 9 : itype = FR30BF_INSN_DMOV2R13H;goto extract_sfmt_dmov2r13h;
314 case 10 : itype = FR30BF_INSN_DMOV2R13B;goto extract_sfmt_dmov2r13b;
315 case 11 : itype = FR30BF_INSN_DMOV2R15PD;goto extract_sfmt_dmov2r15pd;
316 case 12 : itype = FR30BF_INSN_DMOV2R13PI;goto extract_sfmt_dmov2r13pi;
317 case 13 : itype = FR30BF_INSN_DMOV2R13PIH;goto extract_sfmt_dmov2r13pih;
318 case 14 : itype = FR30BF_INSN_DMOV2R13PIB;goto extract_sfmt_dmov2r13pib;
319 case 15 : itype = FR30BF_INSN_ENTER;goto extract_sfmt_enter;
320 case 16 : itype = FR30BF_INSN_STR13;goto extract_sfmt_str13;
321 case 17 : itype = FR30BF_INSN_STR13H;goto extract_sfmt_str13h;
322 case 18 : itype = FR30BF_INSN_STR13B;goto extract_sfmt_str13b;
323 case 19 : itype = FR30BF_INSN_STR15;goto extract_sfmt_str15;
324 case 20 : itype = FR30BF_INSN_ST;goto extract_sfmt_st;
325 case 21 : itype = FR30BF_INSN_STH;goto extract_sfmt_sth;
326 case 22 : itype = FR30BF_INSN_STB;goto extract_sfmt_stb;
327 case 23 :
7a292a7a 328 {
52fa932e 329 unsigned int val = (((insn >> 6) & (1 << 1)) | ((insn >> 4) & (1 << 0)));
7a292a7a 330 switch (val)
c906108c 331 {
3e43c635
DB
332 case 0 : itype = FR30BF_INSN_STR15GR;goto extract_sfmt_str15gr;
333 case 1 : itype = FR30BF_INSN_MOVPS;goto extract_sfmt_movps;
334 case 2 : itype = FR30BF_INSN_STR15DR;goto extract_sfmt_str15dr;
335 case 3 : itype = FR30BF_INSN_STR15PS;goto extract_sfmt_str15ps;
336 default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty;
c906108c 337 }
7a292a7a 338 }
3e43c635
DB
339 case 24 : itype = FR30BF_INSN_DMOVR13;goto extract_sfmt_dmovr13;
340 case 25 : itype = FR30BF_INSN_DMOVR13H;goto extract_sfmt_dmovr13h;
341 case 26 : itype = FR30BF_INSN_DMOVR13B;goto extract_sfmt_dmovr13b;
342 case 27 : itype = FR30BF_INSN_DMOVR15PI;goto extract_sfmt_dmovr15pi;
343 case 28 : itype = FR30BF_INSN_DMOVR13PI;goto extract_sfmt_dmovr13pi;
344 case 29 : itype = FR30BF_INSN_DMOVR13PIH;goto extract_sfmt_dmovr13pih;
345 case 30 : itype = FR30BF_INSN_DMOVR13PIB;goto extract_sfmt_dmovr13pib;
346 case 31 : itype = FR30BF_INSN_INT;goto extract_sfmt_int;
347 case 32 : /* fall through */
7a292a7a
SS
348 case 33 : /* fall through */
349 case 34 : /* fall through */
350 case 35 : /* fall through */
351 case 36 : /* fall through */
352 case 37 : /* fall through */
353 case 38 : /* fall through */
354 case 39 : /* fall through */
355 case 40 : /* fall through */
356 case 41 : /* fall through */
357 case 42 : /* fall through */
358 case 43 : /* fall through */
359 case 44 : /* fall through */
360 case 45 : /* fall through */
361 case 46 : /* fall through */
3e43c635
DB
362 case 47 : itype = FR30BF_INSN_LDR14;goto extract_sfmt_ldr14;
363 case 48 : /* fall through */
7a292a7a
SS
364 case 49 : /* fall through */
365 case 50 : /* fall through */
366 case 51 : /* fall through */
367 case 52 : /* fall through */
368 case 53 : /* fall through */
369 case 54 : /* fall through */
370 case 55 : /* fall through */
371 case 56 : /* fall through */
372 case 57 : /* fall through */
373 case 58 : /* fall through */
374 case 59 : /* fall through */
375 case 60 : /* fall through */
376 case 61 : /* fall through */
377 case 62 : /* fall through */
3e43c635
DB
378 case 63 : itype = FR30BF_INSN_STR14;goto extract_sfmt_str14;
379 case 64 : /* fall through */
7a292a7a
SS
380 case 65 : /* fall through */
381 case 66 : /* fall through */
382 case 67 : /* fall through */
383 case 68 : /* fall through */
384 case 69 : /* fall through */
385 case 70 : /* fall through */
386 case 71 : /* fall through */
387 case 72 : /* fall through */
388 case 73 : /* fall through */
389 case 74 : /* fall through */
390 case 75 : /* fall through */
391 case 76 : /* fall through */
392 case 77 : /* fall through */
393 case 78 : /* fall through */
3e43c635
DB
394 case 79 : itype = FR30BF_INSN_LDR14UH;goto extract_sfmt_ldr14uh;
395 case 80 : /* fall through */
7a292a7a
SS
396 case 81 : /* fall through */
397 case 82 : /* fall through */
398 case 83 : /* fall through */
399 case 84 : /* fall through */
400 case 85 : /* fall through */
401 case 86 : /* fall through */
402 case 87 : /* fall through */
403 case 88 : /* fall through */
404 case 89 : /* fall through */
405 case 90 : /* fall through */
406 case 91 : /* fall through */
407 case 92 : /* fall through */
408 case 93 : /* fall through */
409 case 94 : /* fall through */
3e43c635
DB
410 case 95 : itype = FR30BF_INSN_STR14H;goto extract_sfmt_str14h;
411 case 96 : /* fall through */
7a292a7a
SS
412 case 97 : /* fall through */
413 case 98 : /* fall through */
414 case 99 : /* fall through */
415 case 100 : /* fall through */
416 case 101 : /* fall through */
417 case 102 : /* fall through */
418 case 103 : /* fall through */
419 case 104 : /* fall through */
420 case 105 : /* fall through */
421 case 106 : /* fall through */
422 case 107 : /* fall through */
423 case 108 : /* fall through */
424 case 109 : /* fall through */
425 case 110 : /* fall through */
3e43c635
DB
426 case 111 : itype = FR30BF_INSN_LDR14UB;goto extract_sfmt_ldr14ub;
427 case 112 : /* fall through */
7a292a7a
SS
428 case 113 : /* fall through */
429 case 114 : /* fall through */
430 case 115 : /* fall through */
431 case 116 : /* fall through */
432 case 117 : /* fall through */
433 case 118 : /* fall through */
434 case 119 : /* fall through */
435 case 120 : /* fall through */
436 case 121 : /* fall through */
437 case 122 : /* fall through */
438 case 123 : /* fall through */
439 case 124 : /* fall through */
440 case 125 : /* fall through */
441 case 126 : /* fall through */
3e43c635
DB
442 case 127 : itype = FR30BF_INSN_STR14B;goto extract_sfmt_str14b;
443 case 128 : itype = FR30BF_INSN_BANDL;goto extract_sfmt_bandl;
444 case 129 : itype = FR30BF_INSN_BANDH;goto extract_sfmt_bandl;
445 case 130 : itype = FR30BF_INSN_AND;goto extract_sfmt_and;
446 case 131 : itype = FR30BF_INSN_ANDCCR;goto extract_sfmt_andccr;
447 case 132 : itype = FR30BF_INSN_ANDM;goto extract_sfmt_andm;
448 case 133 : itype = FR30BF_INSN_ANDH;goto extract_sfmt_andh;
449 case 134 : itype = FR30BF_INSN_ANDB;goto extract_sfmt_andb;
450 case 135 : itype = FR30BF_INSN_STILM;goto extract_sfmt_stilm;
451 case 136 : itype = FR30BF_INSN_BTSTL;goto extract_sfmt_btstl;
452 case 137 : itype = FR30BF_INSN_BTSTH;goto extract_sfmt_btstl;
453 case 138 : itype = FR30BF_INSN_XCHB;goto extract_sfmt_xchb;
454 case 139 : itype = FR30BF_INSN_MOV;goto extract_sfmt_mov;
455 case 140 : itype = FR30BF_INSN_LDM0;goto extract_sfmt_ldm0;
456 case 141 : itype = FR30BF_INSN_LDM1;goto extract_sfmt_ldm1;
457 case 142 : itype = FR30BF_INSN_STM0;goto extract_sfmt_stm0;
458 case 143 : itype = FR30BF_INSN_STM1;goto extract_sfmt_stm1;
459 case 144 : itype = FR30BF_INSN_BORL;goto extract_sfmt_bandl;
460 case 145 : itype = FR30BF_INSN_BORH;goto extract_sfmt_bandl;
461 case 146 : itype = FR30BF_INSN_OR;goto extract_sfmt_and;
462 case 147 : itype = FR30BF_INSN_ORCCR;goto extract_sfmt_andccr;
463 case 148 : itype = FR30BF_INSN_ORM;goto extract_sfmt_andm;
464 case 149 : itype = FR30BF_INSN_ORH;goto extract_sfmt_andh;
465 case 150 : itype = FR30BF_INSN_ORB;goto extract_sfmt_andb;
466 case 151 :
7a292a7a
SS
467 {
468 unsigned int val = (((insn >> 4) & (15 << 0)));
469 switch (val)
c906108c 470 {
3e43c635
DB
471 case 0 : itype = FR30BF_INSN_JMP;goto extract_sfmt_jmp;
472 case 1 : itype = FR30BF_INSN_CALLR;goto extract_sfmt_callr;
473 case 2 : itype = FR30BF_INSN_RET;goto extract_sfmt_ret;
474 case 3 : itype = FR30BF_INSN_RETI;goto extract_sfmt_reti;
475 case 4 : itype = FR30BF_INSN_DIV0S;goto extract_sfmt_div0s;
476 case 5 : itype = FR30BF_INSN_DIV0U;goto extract_sfmt_div0u;
477 case 6 : itype = FR30BF_INSN_DIV1;goto extract_sfmt_div1;
478 case 7 : itype = FR30BF_INSN_DIV2;goto extract_sfmt_div2;
479 case 8 : itype = FR30BF_INSN_EXTSB;goto extract_sfmt_extsb;
480 case 9 : itype = FR30BF_INSN_EXTUB;goto extract_sfmt_extub;
481 case 10 : itype = FR30BF_INSN_EXTSH;goto extract_sfmt_extsh;
482 case 11 : itype = FR30BF_INSN_EXTUH;goto extract_sfmt_extuh;
483 default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty;
c906108c 484 }
7a292a7a 485 }
3e43c635
DB
486 case 152 : itype = FR30BF_INSN_BEORL;goto extract_sfmt_bandl;
487 case 153 : itype = FR30BF_INSN_BEORH;goto extract_sfmt_bandl;
488 case 154 : itype = FR30BF_INSN_EOR;goto extract_sfmt_and;
489 case 155 : itype = FR30BF_INSN_LDI20;goto extract_sfmt_ldi20;
490 case 156 : itype = FR30BF_INSN_EORM;goto extract_sfmt_andm;
491 case 157 : itype = FR30BF_INSN_EORH;goto extract_sfmt_andh;
492 case 158 : itype = FR30BF_INSN_EORB;goto extract_sfmt_andb;
493 case 159 :
7a292a7a
SS
494 {
495 unsigned int val = (((insn >> 4) & (15 << 0)));
496 switch (val)
c906108c 497 {
3e43c635
DB
498 case 0 : itype = FR30BF_INSN_JMPD;goto extract_sfmt_jmp;
499 case 1 : itype = FR30BF_INSN_CALLRD;goto extract_sfmt_callr;
500 case 2 : itype = FR30BF_INSN_RET_D;goto extract_sfmt_ret;
501 case 3 : itype = FR30BF_INSN_INTE;goto extract_sfmt_inte;
502 case 6 : itype = FR30BF_INSN_DIV3;goto extract_sfmt_div3;
503 case 7 : itype = FR30BF_INSN_DIV4S;goto extract_sfmt_div4s;
504 case 8 : itype = FR30BF_INSN_LDI32;goto extract_sfmt_ldi32;
505 case 9 : itype = FR30BF_INSN_LEAVE;goto extract_sfmt_leave;
506 case 10 : itype = FR30BF_INSN_NOP;goto extract_sfmt_bnod;
507 case 12 : itype = FR30BF_INSN_COPOP;goto extract_sfmt_copop;
508 case 13 : itype = FR30BF_INSN_COPLD;goto extract_sfmt_copop;
509 case 14 : itype = FR30BF_INSN_COPST;goto extract_sfmt_copop;
510 case 15 : itype = FR30BF_INSN_COPSV;goto extract_sfmt_copop;
511 default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty;
c906108c 512 }
c906108c 513 }
3e43c635
DB
514 case 160 : itype = FR30BF_INSN_ADDNI;goto extract_sfmt_addni;
515 case 161 : itype = FR30BF_INSN_ADDN2;goto extract_sfmt_addn2;
516 case 162 : itype = FR30BF_INSN_ADDN;goto extract_sfmt_addn;
517 case 163 : itype = FR30BF_INSN_ADDSP;goto extract_sfmt_addsp;
518 case 164 : itype = FR30BF_INSN_ADDI;goto extract_sfmt_addi;
519 case 165 : itype = FR30BF_INSN_ADD2;goto extract_sfmt_add2;
520 case 166 : itype = FR30BF_INSN_ADD;goto extract_sfmt_add;
521 case 167 : itype = FR30BF_INSN_ADDC;goto extract_sfmt_addc;
522 case 168 : itype = FR30BF_INSN_CMPI;goto extract_sfmt_cmpi;
523 case 169 : itype = FR30BF_INSN_CMP2;goto extract_sfmt_cmp2;
524 case 170 : itype = FR30BF_INSN_CMP;goto extract_sfmt_cmp;
525 case 171 : itype = FR30BF_INSN_MULU;goto extract_sfmt_mulu;
526 case 172 : itype = FR30BF_INSN_SUB;goto extract_sfmt_add;
527 case 173 : itype = FR30BF_INSN_SUBC;goto extract_sfmt_addc;
528 case 174 : itype = FR30BF_INSN_SUBN;goto extract_sfmt_addn;
529 case 175 : itype = FR30BF_INSN_MUL;goto extract_sfmt_mul;
530 case 176 : itype = FR30BF_INSN_LSRI;goto extract_sfmt_lsli;
531 case 177 : itype = FR30BF_INSN_LSR2;goto extract_sfmt_lsli;
532 case 178 : itype = FR30BF_INSN_LSR;goto extract_sfmt_lsl;
533 case 179 : itype = FR30BF_INSN_MOV2DR;goto extract_sfmt_mov2dr;
534 case 180 : itype = FR30BF_INSN_LSLI;goto extract_sfmt_lsli;
535 case 181 : itype = FR30BF_INSN_LSL2;goto extract_sfmt_lsli;
536 case 182 : itype = FR30BF_INSN_LSL;goto extract_sfmt_lsl;
537 case 183 : itype = FR30BF_INSN_MOVDR;goto extract_sfmt_movdr;
538 case 184 : itype = FR30BF_INSN_ASRI;goto extract_sfmt_lsli;
539 case 185 : itype = FR30BF_INSN_ASR2;goto extract_sfmt_lsli;
540 case 186 : itype = FR30BF_INSN_ASR;goto extract_sfmt_lsl;
541 case 187 : itype = FR30BF_INSN_MULUH;goto extract_sfmt_mulh;
542 case 188 : itype = FR30BF_INSN_LDRES;goto extract_sfmt_ldres;
543 case 189 : itype = FR30BF_INSN_STRES;goto extract_sfmt_ldres;
544 case 191 : itype = FR30BF_INSN_MULH;goto extract_sfmt_mulh;
545 case 192 : /* fall through */
7a292a7a
SS
546 case 193 : /* fall through */
547 case 194 : /* fall through */
548 case 195 : /* fall through */
549 case 196 : /* fall through */
550 case 197 : /* fall through */
551 case 198 : /* fall through */
552 case 199 : /* fall through */
553 case 200 : /* fall through */
554 case 201 : /* fall through */
555 case 202 : /* fall through */
556 case 203 : /* fall through */
557 case 204 : /* fall through */
558 case 205 : /* fall through */
559 case 206 : /* fall through */
3e43c635
DB
560 case 207 : itype = FR30BF_INSN_LDI8;goto extract_sfmt_ldi8;
561 case 208 : /* fall through */
7a292a7a
SS
562 case 209 : /* fall through */
563 case 210 : /* fall through */
564 case 211 : /* fall through */
565 case 212 : /* fall through */
566 case 213 : /* fall through */
567 case 214 : /* fall through */
3e43c635
DB
568 case 215 : itype = FR30BF_INSN_CALL;goto extract_sfmt_call;
569 case 216 : /* fall through */
7a292a7a
SS
570 case 217 : /* fall through */
571 case 218 : /* fall through */
572 case 219 : /* fall through */
573 case 220 : /* fall through */
574 case 221 : /* fall through */
575 case 222 : /* fall through */
3e43c635
DB
576 case 223 : itype = FR30BF_INSN_CALLD;goto extract_sfmt_call;
577 case 224 : itype = FR30BF_INSN_BRA;goto extract_sfmt_brad;
578 case 225 : itype = FR30BF_INSN_BNO;goto extract_sfmt_bnod;
579 case 226 : itype = FR30BF_INSN_BEQ;goto extract_sfmt_beqd;
580 case 227 : itype = FR30BF_INSN_BNE;goto extract_sfmt_beqd;
581 case 228 : itype = FR30BF_INSN_BC;goto extract_sfmt_bcd;
582 case 229 : itype = FR30BF_INSN_BNC;goto extract_sfmt_bcd;
583 case 230 : itype = FR30BF_INSN_BN;goto extract_sfmt_bnd;
584 case 231 : itype = FR30BF_INSN_BP;goto extract_sfmt_bnd;
585 case 232 : itype = FR30BF_INSN_BV;goto extract_sfmt_bvd;
586 case 233 : itype = FR30BF_INSN_BNV;goto extract_sfmt_bvd;
587 case 234 : itype = FR30BF_INSN_BLT;goto extract_sfmt_bltd;
588 case 235 : itype = FR30BF_INSN_BGE;goto extract_sfmt_bltd;
589 case 236 : itype = FR30BF_INSN_BLE;goto extract_sfmt_bled;
590 case 237 : itype = FR30BF_INSN_BGT;goto extract_sfmt_bled;
591 case 238 : itype = FR30BF_INSN_BLS;goto extract_sfmt_blsd;
592 case 239 : itype = FR30BF_INSN_BHI;goto extract_sfmt_blsd;
593 case 240 : itype = FR30BF_INSN_BRAD;goto extract_sfmt_brad;
594 case 241 : itype = FR30BF_INSN_BNOD;goto extract_sfmt_bnod;
595 case 242 : itype = FR30BF_INSN_BEQD;goto extract_sfmt_beqd;
596 case 243 : itype = FR30BF_INSN_BNED;goto extract_sfmt_beqd;
597 case 244 : itype = FR30BF_INSN_BCD;goto extract_sfmt_bcd;
598 case 245 : itype = FR30BF_INSN_BNCD;goto extract_sfmt_bcd;
599 case 246 : itype = FR30BF_INSN_BND;goto extract_sfmt_bnd;
600 case 247 : itype = FR30BF_INSN_BPD;goto extract_sfmt_bnd;
601 case 248 : itype = FR30BF_INSN_BVD;goto extract_sfmt_bvd;
602 case 249 : itype = FR30BF_INSN_BNVD;goto extract_sfmt_bvd;
603 case 250 : itype = FR30BF_INSN_BLTD;goto extract_sfmt_bltd;
604 case 251 : itype = FR30BF_INSN_BGED;goto extract_sfmt_bltd;
605 case 252 : itype = FR30BF_INSN_BLED;goto extract_sfmt_bled;
606 case 253 : itype = FR30BF_INSN_BGTD;goto extract_sfmt_bled;
607 case 254 : itype = FR30BF_INSN_BLSD;goto extract_sfmt_blsd;
608 case 255 : itype = FR30BF_INSN_BHID;goto extract_sfmt_blsd;
609 default : itype = FR30BF_INSN_X_INVALID; goto extract_sfmt_empty;
7a292a7a 610 }
c906108c 611 }
c906108c
SS
612 }
613
614 /* The instruction has been decoded, now extract the fields. */
615
96baa820 616 extract_sfmt_empty:
c906108c 617 {
7a292a7a 618 const IDESC *idesc = &fr30bf_insn_data[itype];
c906108c 619#define FLD(f) abuf->fields.fmt_empty.f
c906108c 620
c906108c
SS
621
622 /* Record the fields for the semantic handler. */
96baa820 623 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
c906108c
SS
624
625#undef FLD
7a292a7a 626 return idesc;
c906108c
SS
627 }
628
96baa820 629 extract_sfmt_add:
c906108c 630 {
7a292a7a 631 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 632 CGEN_INSN_INT insn = base_insn;
96baa820 633#define FLD(f) abuf->fields.sfmt_add.f
9846de1b
JM
634 UINT f_Rj;
635 UINT f_Ri;
c906108c 636
9846de1b
JM
637 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
638 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
639
640 /* Record the fields for the semantic handler. */
e5c59029
DB
641 FLD (f_Ri) = f_Ri;
642 FLD (f_Rj) = f_Rj;
c906108c
SS
643 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
644 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 645 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
646
647#if WITH_PROFILE_MODEL_P
648 /* Record the fields for profiling. */
649 if (PROFILE_MODEL_P (current_cpu))
650 {
651 FLD (in_Ri) = f_Ri;
652 FLD (in_Rj) = f_Rj;
653 FLD (out_Ri) = f_Ri;
654 }
655#endif
656#undef FLD
7a292a7a 657 return idesc;
c906108c
SS
658 }
659
96baa820 660 extract_sfmt_addi:
c906108c 661 {
7a292a7a 662 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 663 CGEN_INSN_INT insn = base_insn;
96baa820 664#define FLD(f) abuf->fields.sfmt_addi.f
9846de1b
JM
665 UINT f_u4;
666 UINT f_Ri;
c906108c 667
9846de1b
JM
668 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
669 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
670
671 /* Record the fields for the semantic handler. */
e5c59029 672 FLD (f_Ri) = f_Ri;
c906108c
SS
673 FLD (f_u4) = f_u4;
674 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 675 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addi", "f_Ri 0x%x", 'x', f_Ri, "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
676
677#if WITH_PROFILE_MODEL_P
678 /* Record the fields for profiling. */
679 if (PROFILE_MODEL_P (current_cpu))
680 {
681 FLD (in_Ri) = f_Ri;
682 FLD (out_Ri) = f_Ri;
683 }
684#endif
685#undef FLD
7a292a7a 686 return idesc;
c906108c
SS
687 }
688
96baa820 689 extract_sfmt_add2:
c906108c 690 {
7a292a7a 691 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 692 CGEN_INSN_INT insn = base_insn;
96baa820 693#define FLD(f) abuf->fields.sfmt_add2.f
9846de1b
JM
694 SI f_m4;
695 UINT f_Ri;
c906108c 696
9846de1b
JM
697 f_m4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) | (((-1) << (4))));
698 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
699
700 /* Record the fields for the semantic handler. */
e5c59029 701 FLD (f_Ri) = f_Ri;
c906108c
SS
702 FLD (f_m4) = f_m4;
703 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 704 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_add2", "f_Ri 0x%x", 'x', f_Ri, "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
705
706#if WITH_PROFILE_MODEL_P
707 /* Record the fields for profiling. */
708 if (PROFILE_MODEL_P (current_cpu))
709 {
710 FLD (in_Ri) = f_Ri;
711 FLD (out_Ri) = f_Ri;
712 }
713#endif
714#undef FLD
7a292a7a 715 return idesc;
c906108c
SS
716 }
717
96baa820 718 extract_sfmt_addc:
c906108c 719 {
7a292a7a 720 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 721 CGEN_INSN_INT insn = base_insn;
96baa820 722#define FLD(f) abuf->fields.sfmt_add.f
9846de1b
JM
723 UINT f_Rj;
724 UINT f_Ri;
c906108c 725
9846de1b
JM
726 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
727 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
728
729 /* Record the fields for the semantic handler. */
e5c59029
DB
730 FLD (f_Ri) = f_Ri;
731 FLD (f_Rj) = f_Rj;
c906108c
SS
732 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
733 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 734 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addc", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
735
736#if WITH_PROFILE_MODEL_P
737 /* Record the fields for profiling. */
738 if (PROFILE_MODEL_P (current_cpu))
739 {
740 FLD (in_Ri) = f_Ri;
741 FLD (in_Rj) = f_Rj;
742 FLD (out_Ri) = f_Ri;
743 }
744#endif
745#undef FLD
7a292a7a 746 return idesc;
c906108c
SS
747 }
748
96baa820 749 extract_sfmt_addn:
c906108c 750 {
7a292a7a 751 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 752 CGEN_INSN_INT insn = base_insn;
96baa820 753#define FLD(f) abuf->fields.sfmt_add.f
9846de1b
JM
754 UINT f_Rj;
755 UINT f_Ri;
c906108c 756
9846de1b
JM
757 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
758 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
759
760 /* Record the fields for the semantic handler. */
e5c59029
DB
761 FLD (f_Ri) = f_Ri;
762 FLD (f_Rj) = f_Rj;
c906108c
SS
763 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
764 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 765 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addn", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
766
767#if WITH_PROFILE_MODEL_P
768 /* Record the fields for profiling. */
769 if (PROFILE_MODEL_P (current_cpu))
770 {
771 FLD (in_Ri) = f_Ri;
772 FLD (in_Rj) = f_Rj;
773 FLD (out_Ri) = f_Ri;
774 }
775#endif
776#undef FLD
7a292a7a 777 return idesc;
c906108c
SS
778 }
779
96baa820 780 extract_sfmt_addni:
c906108c 781 {
7a292a7a 782 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 783 CGEN_INSN_INT insn = base_insn;
96baa820 784#define FLD(f) abuf->fields.sfmt_addi.f
9846de1b
JM
785 UINT f_u4;
786 UINT f_Ri;
c906108c 787
9846de1b
JM
788 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
789 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
790
791 /* Record the fields for the semantic handler. */
e5c59029 792 FLD (f_Ri) = f_Ri;
c906108c
SS
793 FLD (f_u4) = f_u4;
794 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 795 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addni", "f_Ri 0x%x", 'x', f_Ri, "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
796
797#if WITH_PROFILE_MODEL_P
798 /* Record the fields for profiling. */
799 if (PROFILE_MODEL_P (current_cpu))
800 {
801 FLD (in_Ri) = f_Ri;
802 FLD (out_Ri) = f_Ri;
803 }
804#endif
805#undef FLD
7a292a7a 806 return idesc;
c906108c
SS
807 }
808
96baa820 809 extract_sfmt_addn2:
c906108c 810 {
7a292a7a 811 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 812 CGEN_INSN_INT insn = base_insn;
96baa820 813#define FLD(f) abuf->fields.sfmt_add2.f
9846de1b
JM
814 SI f_m4;
815 UINT f_Ri;
c906108c 816
9846de1b
JM
817 f_m4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) | (((-1) << (4))));
818 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
819
820 /* Record the fields for the semantic handler. */
e5c59029 821 FLD (f_Ri) = f_Ri;
c906108c
SS
822 FLD (f_m4) = f_m4;
823 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 824 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addn2", "f_Ri 0x%x", 'x', f_Ri, "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
825
826#if WITH_PROFILE_MODEL_P
827 /* Record the fields for profiling. */
828 if (PROFILE_MODEL_P (current_cpu))
829 {
830 FLD (in_Ri) = f_Ri;
831 FLD (out_Ri) = f_Ri;
832 }
833#endif
834#undef FLD
7a292a7a 835 return idesc;
c906108c
SS
836 }
837
96baa820 838 extract_sfmt_cmp:
c906108c 839 {
7a292a7a 840 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 841 CGEN_INSN_INT insn = base_insn;
96baa820 842#define FLD(f) abuf->fields.sfmt_str13.f
9846de1b
JM
843 UINT f_Rj;
844 UINT f_Ri;
c906108c 845
9846de1b
JM
846 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
847 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
848
849 /* Record the fields for the semantic handler. */
e5c59029
DB
850 FLD (f_Ri) = f_Ri;
851 FLD (f_Rj) = f_Rj;
c906108c
SS
852 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
853 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 854 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
855
856#if WITH_PROFILE_MODEL_P
857 /* Record the fields for profiling. */
858 if (PROFILE_MODEL_P (current_cpu))
859 {
860 FLD (in_Ri) = f_Ri;
861 FLD (in_Rj) = f_Rj;
862 }
863#endif
864#undef FLD
7a292a7a 865 return idesc;
c906108c
SS
866 }
867
96baa820 868 extract_sfmt_cmpi:
c906108c 869 {
7a292a7a 870 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 871 CGEN_INSN_INT insn = base_insn;
96baa820 872#define FLD(f) abuf->fields.sfmt_addi.f
9846de1b
JM
873 UINT f_u4;
874 UINT f_Ri;
c906108c 875
9846de1b
JM
876 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
877 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
878
879 /* Record the fields for the semantic handler. */
e5c59029 880 FLD (f_Ri) = f_Ri;
c906108c
SS
881 FLD (f_u4) = f_u4;
882 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 883 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpi", "f_Ri 0x%x", 'x', f_Ri, "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
884
885#if WITH_PROFILE_MODEL_P
886 /* Record the fields for profiling. */
887 if (PROFILE_MODEL_P (current_cpu))
888 {
889 FLD (in_Ri) = f_Ri;
890 }
891#endif
892#undef FLD
7a292a7a 893 return idesc;
c906108c
SS
894 }
895
96baa820 896 extract_sfmt_cmp2:
c906108c 897 {
7a292a7a 898 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 899 CGEN_INSN_INT insn = base_insn;
96baa820 900#define FLD(f) abuf->fields.sfmt_add2.f
9846de1b
JM
901 SI f_m4;
902 UINT f_Ri;
c906108c 903
9846de1b
JM
904 f_m4 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) | (((-1) << (4))));
905 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
906
907 /* Record the fields for the semantic handler. */
e5c59029 908 FLD (f_Ri) = f_Ri;
c906108c
SS
909 FLD (f_m4) = f_m4;
910 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 911 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmp2", "f_Ri 0x%x", 'x', f_Ri, "f_m4 0x%x", 'x', f_m4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
912
913#if WITH_PROFILE_MODEL_P
914 /* Record the fields for profiling. */
915 if (PROFILE_MODEL_P (current_cpu))
916 {
917 FLD (in_Ri) = f_Ri;
918 }
919#endif
920#undef FLD
7a292a7a 921 return idesc;
c906108c
SS
922 }
923
96baa820 924 extract_sfmt_and:
c906108c 925 {
7a292a7a 926 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 927 CGEN_INSN_INT insn = base_insn;
96baa820 928#define FLD(f) abuf->fields.sfmt_add.f
9846de1b
JM
929 UINT f_Rj;
930 UINT f_Ri;
c906108c 931
9846de1b
JM
932 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
933 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
934
935 /* Record the fields for the semantic handler. */
e5c59029
DB
936 FLD (f_Ri) = f_Ri;
937 FLD (f_Rj) = f_Rj;
c906108c
SS
938 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
939 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 940 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_and", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
941
942#if WITH_PROFILE_MODEL_P
943 /* Record the fields for profiling. */
944 if (PROFILE_MODEL_P (current_cpu))
945 {
946 FLD (in_Ri) = f_Ri;
947 FLD (in_Rj) = f_Rj;
948 FLD (out_Ri) = f_Ri;
949 }
950#endif
951#undef FLD
7a292a7a 952 return idesc;
c906108c
SS
953 }
954
96baa820 955 extract_sfmt_andm:
c906108c 956 {
7a292a7a 957 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 958 CGEN_INSN_INT insn = base_insn;
96baa820 959#define FLD(f) abuf->fields.sfmt_str13.f
9846de1b
JM
960 UINT f_Rj;
961 UINT f_Ri;
c906108c 962
9846de1b
JM
963 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
964 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
965
966 /* Record the fields for the semantic handler. */
e5c59029
DB
967 FLD (f_Ri) = f_Ri;
968 FLD (f_Rj) = f_Rj;
c906108c
SS
969 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
970 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 971 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andm", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
972
973#if WITH_PROFILE_MODEL_P
974 /* Record the fields for profiling. */
975 if (PROFILE_MODEL_P (current_cpu))
976 {
977 FLD (in_Ri) = f_Ri;
978 FLD (in_Rj) = f_Rj;
979 }
980#endif
981#undef FLD
7a292a7a 982 return idesc;
c906108c
SS
983 }
984
96baa820 985 extract_sfmt_andh:
c906108c 986 {
7a292a7a 987 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 988 CGEN_INSN_INT insn = base_insn;
96baa820 989#define FLD(f) abuf->fields.sfmt_str13.f
9846de1b
JM
990 UINT f_Rj;
991 UINT f_Ri;
c906108c 992
9846de1b
JM
993 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
994 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
995
996 /* Record the fields for the semantic handler. */
e5c59029
DB
997 FLD (f_Ri) = f_Ri;
998 FLD (f_Rj) = f_Rj;
c906108c
SS
999 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1000 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 1001 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andh", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
1002
1003#if WITH_PROFILE_MODEL_P
1004 /* Record the fields for profiling. */
1005 if (PROFILE_MODEL_P (current_cpu))
1006 {
1007 FLD (in_Ri) = f_Ri;
1008 FLD (in_Rj) = f_Rj;
1009 }
1010#endif
1011#undef FLD
7a292a7a 1012 return idesc;
c906108c
SS
1013 }
1014
96baa820 1015 extract_sfmt_andb:
c906108c 1016 {
7a292a7a 1017 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1018 CGEN_INSN_INT insn = base_insn;
96baa820 1019#define FLD(f) abuf->fields.sfmt_str13.f
9846de1b
JM
1020 UINT f_Rj;
1021 UINT f_Ri;
c906108c 1022
9846de1b
JM
1023 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1024 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1025
1026 /* Record the fields for the semantic handler. */
e5c59029
DB
1027 FLD (f_Ri) = f_Ri;
1028 FLD (f_Rj) = f_Rj;
c906108c
SS
1029 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1030 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 1031 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andb", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
1032
1033#if WITH_PROFILE_MODEL_P
1034 /* Record the fields for profiling. */
1035 if (PROFILE_MODEL_P (current_cpu))
1036 {
1037 FLD (in_Ri) = f_Ri;
1038 FLD (in_Rj) = f_Rj;
1039 }
1040#endif
1041#undef FLD
7a292a7a 1042 return idesc;
c906108c
SS
1043 }
1044
96baa820 1045 extract_sfmt_bandl:
c906108c 1046 {
7a292a7a 1047 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1048 CGEN_INSN_INT insn = base_insn;
96baa820 1049#define FLD(f) abuf->fields.sfmt_addi.f
9846de1b
JM
1050 UINT f_u4;
1051 UINT f_Ri;
c906108c 1052
9846de1b
JM
1053 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1054 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1055
1056 /* Record the fields for the semantic handler. */
e5c59029 1057 FLD (f_Ri) = f_Ri;
c906108c
SS
1058 FLD (f_u4) = f_u4;
1059 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1060 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bandl", "f_Ri 0x%x", 'x', f_Ri, "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1061
1062#if WITH_PROFILE_MODEL_P
1063 /* Record the fields for profiling. */
1064 if (PROFILE_MODEL_P (current_cpu))
1065 {
1066 FLD (in_Ri) = f_Ri;
1067 }
1068#endif
1069#undef FLD
7a292a7a 1070 return idesc;
c906108c
SS
1071 }
1072
96baa820 1073 extract_sfmt_btstl:
c906108c 1074 {
7a292a7a 1075 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1076 CGEN_INSN_INT insn = base_insn;
96baa820 1077#define FLD(f) abuf->fields.sfmt_addi.f
9846de1b
JM
1078 UINT f_u4;
1079 UINT f_Ri;
c906108c 1080
9846de1b
JM
1081 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1082 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1083
1084 /* Record the fields for the semantic handler. */
e5c59029 1085 FLD (f_Ri) = f_Ri;
c906108c
SS
1086 FLD (f_u4) = f_u4;
1087 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1088 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_btstl", "f_Ri 0x%x", 'x', f_Ri, "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1089
1090#if WITH_PROFILE_MODEL_P
1091 /* Record the fields for profiling. */
1092 if (PROFILE_MODEL_P (current_cpu))
1093 {
1094 FLD (in_Ri) = f_Ri;
1095 }
1096#endif
1097#undef FLD
7a292a7a 1098 return idesc;
c906108c
SS
1099 }
1100
96baa820 1101 extract_sfmt_mul:
c906108c 1102 {
7a292a7a 1103 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1104 CGEN_INSN_INT insn = base_insn;
96baa820 1105#define FLD(f) abuf->fields.sfmt_str13.f
9846de1b
JM
1106 UINT f_Rj;
1107 UINT f_Ri;
c906108c 1108
9846de1b
JM
1109 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1110 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1111
1112 /* Record the fields for the semantic handler. */
e5c59029
DB
1113 FLD (f_Ri) = f_Ri;
1114 FLD (f_Rj) = f_Rj;
c906108c
SS
1115 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1116 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 1117 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mul", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
1118
1119#if WITH_PROFILE_MODEL_P
1120 /* Record the fields for profiling. */
1121 if (PROFILE_MODEL_P (current_cpu))
1122 {
1123 FLD (in_Ri) = f_Ri;
1124 FLD (in_Rj) = f_Rj;
1125 }
1126#endif
1127#undef FLD
7a292a7a 1128 return idesc;
c906108c
SS
1129 }
1130
96baa820 1131 extract_sfmt_mulu:
c906108c 1132 {
7a292a7a 1133 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1134 CGEN_INSN_INT insn = base_insn;
96baa820 1135#define FLD(f) abuf->fields.sfmt_str13.f
9846de1b
JM
1136 UINT f_Rj;
1137 UINT f_Ri;
c906108c 1138
9846de1b
JM
1139 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1140 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1141
1142 /* Record the fields for the semantic handler. */
e5c59029
DB
1143 FLD (f_Ri) = f_Ri;
1144 FLD (f_Rj) = f_Rj;
c906108c
SS
1145 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1146 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 1147 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulu", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
1148
1149#if WITH_PROFILE_MODEL_P
1150 /* Record the fields for profiling. */
1151 if (PROFILE_MODEL_P (current_cpu))
1152 {
1153 FLD (in_Ri) = f_Ri;
1154 FLD (in_Rj) = f_Rj;
1155 }
1156#endif
1157#undef FLD
7a292a7a 1158 return idesc;
c906108c
SS
1159 }
1160
96baa820 1161 extract_sfmt_mulh:
c906108c 1162 {
7a292a7a 1163 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1164 CGEN_INSN_INT insn = base_insn;
96baa820 1165#define FLD(f) abuf->fields.sfmt_str13.f
9846de1b
JM
1166 UINT f_Rj;
1167 UINT f_Ri;
c906108c 1168
9846de1b
JM
1169 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1170 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1171
1172 /* Record the fields for the semantic handler. */
e5c59029
DB
1173 FLD (f_Ri) = f_Ri;
1174 FLD (f_Rj) = f_Rj;
c906108c
SS
1175 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1176 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 1177 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulh", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
1178
1179#if WITH_PROFILE_MODEL_P
1180 /* Record the fields for profiling. */
1181 if (PROFILE_MODEL_P (current_cpu))
1182 {
1183 FLD (in_Ri) = f_Ri;
1184 FLD (in_Rj) = f_Rj;
1185 }
1186#endif
1187#undef FLD
7a292a7a 1188 return idesc;
c906108c
SS
1189 }
1190
96baa820 1191 extract_sfmt_div0s:
c906108c 1192 {
7a292a7a 1193 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1194 CGEN_INSN_INT insn = base_insn;
96baa820 1195#define FLD(f) abuf->fields.sfmt_mov2dr.f
9846de1b 1196 UINT f_Ri;
c906108c 1197
9846de1b 1198 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1199
1200 /* Record the fields for the semantic handler. */
e5c59029 1201 FLD (f_Ri) = f_Ri;
c906108c 1202 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1203 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div0s", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1204
1205#if WITH_PROFILE_MODEL_P
1206 /* Record the fields for profiling. */
1207 if (PROFILE_MODEL_P (current_cpu))
1208 {
1209 FLD (in_Ri) = f_Ri;
1210 }
1211#endif
1212#undef FLD
7a292a7a 1213 return idesc;
c906108c
SS
1214 }
1215
96baa820 1216 extract_sfmt_div0u:
c906108c 1217 {
7a292a7a 1218 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 1219#define FLD(f) abuf->fields.fmt_empty.f
c906108c 1220
c906108c
SS
1221
1222 /* Record the fields for the semantic handler. */
96baa820 1223 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div0u", (char *) 0));
c906108c
SS
1224
1225#undef FLD
7a292a7a 1226 return idesc;
c906108c
SS
1227 }
1228
96baa820 1229 extract_sfmt_div1:
c906108c 1230 {
7a292a7a 1231 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1232 CGEN_INSN_INT insn = base_insn;
96baa820 1233#define FLD(f) abuf->fields.sfmt_mov2dr.f
9846de1b 1234 UINT f_Ri;
c906108c 1235
9846de1b 1236 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1237
1238 /* Record the fields for the semantic handler. */
e5c59029 1239 FLD (f_Ri) = f_Ri;
c906108c 1240 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1241 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div1", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1242
1243#if WITH_PROFILE_MODEL_P
1244 /* Record the fields for profiling. */
1245 if (PROFILE_MODEL_P (current_cpu))
1246 {
1247 FLD (in_Ri) = f_Ri;
1248 }
1249#endif
1250#undef FLD
7a292a7a 1251 return idesc;
c906108c
SS
1252 }
1253
96baa820 1254 extract_sfmt_div2:
c906108c 1255 {
7a292a7a 1256 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1257 CGEN_INSN_INT insn = base_insn;
96baa820 1258#define FLD(f) abuf->fields.sfmt_mov2dr.f
9846de1b 1259 UINT f_Ri;
c906108c 1260
9846de1b 1261 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1262
1263 /* Record the fields for the semantic handler. */
e5c59029 1264 FLD (f_Ri) = f_Ri;
c906108c 1265 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1266 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div2", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1267
1268#if WITH_PROFILE_MODEL_P
1269 /* Record the fields for profiling. */
1270 if (PROFILE_MODEL_P (current_cpu))
1271 {
1272 FLD (in_Ri) = f_Ri;
1273 }
1274#endif
1275#undef FLD
7a292a7a 1276 return idesc;
c906108c
SS
1277 }
1278
96baa820 1279 extract_sfmt_div3:
c906108c 1280 {
7a292a7a 1281 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 1282#define FLD(f) abuf->fields.fmt_empty.f
c906108c 1283
c906108c
SS
1284
1285 /* Record the fields for the semantic handler. */
96baa820 1286 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div3", (char *) 0));
c906108c
SS
1287
1288#undef FLD
7a292a7a 1289 return idesc;
c906108c
SS
1290 }
1291
96baa820 1292 extract_sfmt_div4s:
c906108c 1293 {
7a292a7a 1294 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 1295#define FLD(f) abuf->fields.fmt_empty.f
c906108c 1296
c906108c
SS
1297
1298 /* Record the fields for the semantic handler. */
96baa820 1299 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_div4s", (char *) 0));
c906108c
SS
1300
1301#undef FLD
7a292a7a 1302 return idesc;
c906108c
SS
1303 }
1304
96baa820 1305 extract_sfmt_lsl:
c906108c 1306 {
7a292a7a 1307 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1308 CGEN_INSN_INT insn = base_insn;
96baa820 1309#define FLD(f) abuf->fields.sfmt_add.f
9846de1b
JM
1310 UINT f_Rj;
1311 UINT f_Ri;
c906108c 1312
9846de1b
JM
1313 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1314 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1315
1316 /* Record the fields for the semantic handler. */
e5c59029
DB
1317 FLD (f_Ri) = f_Ri;
1318 FLD (f_Rj) = f_Rj;
c906108c
SS
1319 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1320 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 1321 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsl", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
1322
1323#if WITH_PROFILE_MODEL_P
1324 /* Record the fields for profiling. */
1325 if (PROFILE_MODEL_P (current_cpu))
1326 {
1327 FLD (in_Ri) = f_Ri;
1328 FLD (in_Rj) = f_Rj;
1329 FLD (out_Ri) = f_Ri;
1330 }
1331#endif
1332#undef FLD
7a292a7a 1333 return idesc;
c906108c
SS
1334 }
1335
96baa820 1336 extract_sfmt_lsli:
c906108c 1337 {
7a292a7a 1338 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1339 CGEN_INSN_INT insn = base_insn;
96baa820 1340#define FLD(f) abuf->fields.sfmt_addi.f
9846de1b
JM
1341 UINT f_u4;
1342 UINT f_Ri;
c906108c 1343
9846de1b
JM
1344 f_u4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1345 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1346
1347 /* Record the fields for the semantic handler. */
e5c59029 1348 FLD (f_Ri) = f_Ri;
c906108c
SS
1349 FLD (f_u4) = f_u4;
1350 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1351 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lsli", "f_Ri 0x%x", 'x', f_Ri, "f_u4 0x%x", 'x', f_u4, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
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
96baa820 1365 extract_sfmt_ldi8:
c906108c 1366 {
7a292a7a 1367 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1368 CGEN_INSN_INT insn = base_insn;
96baa820 1369#define FLD(f) abuf->fields.sfmt_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;
e5c59029 1378 FLD (f_Ri) = f_Ri;
c906108c 1379 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1380 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi8", "f_i8 0x%x", 'x', f_i8, "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1381
1382#if WITH_PROFILE_MODEL_P
1383 /* Record the fields for profiling. */
1384 if (PROFILE_MODEL_P (current_cpu))
1385 {
1386 FLD (out_Ri) = f_Ri;
1387 }
1388#endif
1389#undef FLD
7a292a7a 1390 return idesc;
c906108c
SS
1391 }
1392
96baa820 1393 extract_sfmt_ldi20:
c906108c 1394 {
7a292a7a 1395 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1396 CGEN_INSN_INT insn = base_insn;
96baa820 1397#define FLD(f) abuf->fields.sfmt_ldi20.f
9846de1b
JM
1398 UINT f_i20_16;
1399 UINT f_i20_4;
1400 UINT f_Ri;
1401 UINT f_i20;
1402 /* Contents of trailing part of insn. */
1403 UINT word_1;
1404
1405 word_1 = GETIMEMUHI (current_cpu, pc + 2);
1406 f_i20_16 = (0|(EXTRACT_MSB0_UINT (word_1, 16, 0, 16) << 0));
1407 f_i20_4 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1408 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
1409{
1410 f_i20 = ((((f_i20_4) << (16))) | (f_i20_16));
1411}
c906108c
SS
1412
1413 /* Record the fields for the semantic handler. */
1414 FLD (f_i20) = f_i20;
e5c59029 1415 FLD (f_Ri) = f_Ri;
c906108c 1416 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1417 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi20", "f_i20 0x%x", 'x', f_i20, "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1418
1419#if WITH_PROFILE_MODEL_P
1420 /* Record the fields for profiling. */
1421 if (PROFILE_MODEL_P (current_cpu))
1422 {
1423 FLD (out_Ri) = f_Ri;
1424 }
1425#endif
1426#undef FLD
7a292a7a 1427 return idesc;
c906108c
SS
1428 }
1429
96baa820 1430 extract_sfmt_ldi32:
c906108c 1431 {
7a292a7a 1432 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1433 CGEN_INSN_INT insn = base_insn;
96baa820 1434#define FLD(f) abuf->fields.sfmt_ldi32.f
9846de1b
JM
1435 UINT f_i32;
1436 UINT f_Ri;
1437 /* Contents of trailing part of insn. */
1438 UINT word_1;
1439 UINT word_2;
c906108c 1440
9846de1b
JM
1441 word_1 = GETIMEMUHI (current_cpu, pc + 2);
1442 word_2 = GETIMEMUHI (current_cpu, pc + 4);
1443 f_i32 = (0|(EXTRACT_MSB0_UINT (word_2, 16, 0, 16) << 0)|(EXTRACT_MSB0_UINT (word_1, 16, 0, 16) << 16));
1444 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1445
1446 /* Record the fields for the semantic handler. */
1447 FLD (f_i32) = f_i32;
e5c59029 1448 FLD (f_Ri) = f_Ri;
c906108c 1449 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1450 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldi32", "f_i32 0x%x", 'x', f_i32, "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1451
1452#if WITH_PROFILE_MODEL_P
1453 /* Record the fields for profiling. */
1454 if (PROFILE_MODEL_P (current_cpu))
1455 {
1456 FLD (out_Ri) = f_Ri;
1457 }
1458#endif
1459#undef FLD
7a292a7a 1460 return idesc;
c906108c
SS
1461 }
1462
96baa820 1463 extract_sfmt_ld:
c906108c 1464 {
7a292a7a 1465 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1466 CGEN_INSN_INT insn = base_insn;
96baa820 1467#define FLD(f) abuf->fields.sfmt_ldr13.f
9846de1b
JM
1468 UINT f_Rj;
1469 UINT f_Ri;
c906108c 1470
9846de1b
JM
1471 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1472 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1473
1474 /* Record the fields for the semantic handler. */
e5c59029
DB
1475 FLD (f_Rj) = f_Rj;
1476 FLD (f_Ri) = f_Ri;
c906108c
SS
1477 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1478 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1479 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld", "f_Rj 0x%x", 'x', f_Rj, "f_Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c 1480
3e43c635
DB
1481#if WITH_PROFILE_MODEL_P
1482 /* Record the fields for profiling. */
1483 if (PROFILE_MODEL_P (current_cpu))
1484 {
1485 FLD (in_Rj) = f_Rj;
1486 FLD (out_Ri) = f_Ri;
1487 }
1488#endif
1489#undef FLD
1490 return idesc;
1491 }
1492
1493 extract_sfmt_lduh:
1494 {
1495 const IDESC *idesc = &fr30bf_insn_data[itype];
1496 CGEN_INSN_INT insn = base_insn;
1497#define FLD(f) abuf->fields.sfmt_ldr13.f
1498 UINT f_Rj;
1499 UINT f_Ri;
1500
1501 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1502 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
1503
1504 /* Record the fields for the semantic handler. */
1505 FLD (f_Rj) = f_Rj;
1506 FLD (f_Ri) = f_Ri;
1507 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1508 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1509 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lduh", "f_Rj 0x%x", 'x', f_Rj, "f_Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1510
1511#if WITH_PROFILE_MODEL_P
1512 /* Record the fields for profiling. */
1513 if (PROFILE_MODEL_P (current_cpu))
1514 {
1515 FLD (in_Rj) = f_Rj;
1516 FLD (out_Ri) = f_Ri;
1517 }
1518#endif
1519#undef FLD
1520 return idesc;
1521 }
1522
1523 extract_sfmt_ldub:
1524 {
1525 const IDESC *idesc = &fr30bf_insn_data[itype];
1526 CGEN_INSN_INT insn = base_insn;
1527#define FLD(f) abuf->fields.sfmt_ldr13.f
1528 UINT f_Rj;
1529 UINT f_Ri;
1530
1531 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1532 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
1533
1534 /* Record the fields for the semantic handler. */
1535 FLD (f_Rj) = f_Rj;
1536 FLD (f_Ri) = f_Ri;
1537 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1538 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1539 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldub", "f_Rj 0x%x", 'x', f_Rj, "f_Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1540
c906108c
SS
1541#if WITH_PROFILE_MODEL_P
1542 /* Record the fields for profiling. */
1543 if (PROFILE_MODEL_P (current_cpu))
1544 {
1545 FLD (in_Rj) = f_Rj;
1546 FLD (out_Ri) = f_Ri;
1547 }
1548#endif
1549#undef FLD
7a292a7a 1550 return idesc;
c906108c
SS
1551 }
1552
96baa820 1553 extract_sfmt_ldr13:
c906108c 1554 {
7a292a7a 1555 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1556 CGEN_INSN_INT insn = base_insn;
96baa820 1557#define FLD(f) abuf->fields.sfmt_ldr13.f
9846de1b
JM
1558 UINT f_Rj;
1559 UINT f_Ri;
c906108c 1560
9846de1b
JM
1561 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1562 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1563
1564 /* Record the fields for the semantic handler. */
e5c59029
DB
1565 FLD (f_Rj) = f_Rj;
1566 FLD (f_Ri) = f_Ri;
c906108c
SS
1567 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1568 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1569 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr13", "f_Rj 0x%x", 'x', f_Rj, "f_Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c 1570
c906108c
SS
1571#if WITH_PROFILE_MODEL_P
1572 /* Record the fields for profiling. */
1573 if (PROFILE_MODEL_P (current_cpu))
1574 {
1575 FLD (in_Rj) = f_Rj;
3e43c635
DB
1576 FLD (in_h_gr_SI_13) = 13;
1577 FLD (out_Ri) = f_Ri;
1578 }
1579#endif
1580#undef FLD
1581 return idesc;
1582 }
1583
1584 extract_sfmt_ldr13uh:
1585 {
1586 const IDESC *idesc = &fr30bf_insn_data[itype];
1587 CGEN_INSN_INT insn = base_insn;
1588#define FLD(f) abuf->fields.sfmt_ldr13.f
1589 UINT f_Rj;
1590 UINT f_Ri;
1591
1592 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1593 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
1594
1595 /* Record the fields for the semantic handler. */
1596 FLD (f_Rj) = f_Rj;
1597 FLD (f_Ri) = f_Ri;
1598 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1599 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1600 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr13uh", "f_Rj 0x%x", 'x', f_Rj, "f_Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1601
1602#if WITH_PROFILE_MODEL_P
1603 /* Record the fields for profiling. */
1604 if (PROFILE_MODEL_P (current_cpu))
1605 {
1606 FLD (in_Rj) = f_Rj;
1607 FLD (in_h_gr_SI_13) = 13;
1608 FLD (out_Ri) = f_Ri;
1609 }
1610#endif
1611#undef FLD
1612 return idesc;
1613 }
1614
1615 extract_sfmt_ldr13ub:
1616 {
1617 const IDESC *idesc = &fr30bf_insn_data[itype];
1618 CGEN_INSN_INT insn = base_insn;
1619#define FLD(f) abuf->fields.sfmt_ldr13.f
1620 UINT f_Rj;
1621 UINT f_Ri;
1622
1623 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1624 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
1625
1626 /* Record the fields for the semantic handler. */
1627 FLD (f_Rj) = f_Rj;
1628 FLD (f_Ri) = f_Ri;
1629 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1630 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1631 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr13ub", "f_Rj 0x%x", 'x', f_Rj, "f_Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0));
1632
1633#if WITH_PROFILE_MODEL_P
1634 /* Record the fields for profiling. */
1635 if (PROFILE_MODEL_P (current_cpu))
1636 {
1637 FLD (in_Rj) = f_Rj;
1638 FLD (in_h_gr_SI_13) = 13;
c906108c
SS
1639 FLD (out_Ri) = f_Ri;
1640 }
1641#endif
1642#undef FLD
7a292a7a 1643 return idesc;
c906108c
SS
1644 }
1645
96baa820 1646 extract_sfmt_ldr14:
c906108c 1647 {
7a292a7a 1648 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1649 CGEN_INSN_INT insn = base_insn;
96baa820 1650#define FLD(f) abuf->fields.sfmt_ldr14.f
9846de1b
JM
1651 SI f_disp10;
1652 UINT f_Ri;
c906108c 1653
9846de1b
JM
1654 f_disp10 = ((EXTRACT_MSB0_INT (insn, 16, 4, 8)) << (2));
1655 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1656
1657 /* Record the fields for the semantic handler. */
1658 FLD (f_disp10) = f_disp10;
e5c59029 1659 FLD (f_Ri) = f_Ri;
c906108c 1660 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1661 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr14", "f_disp10 0x%x", 'x', f_disp10, "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1662
1663#if WITH_PROFILE_MODEL_P
1664 /* Record the fields for profiling. */
1665 if (PROFILE_MODEL_P (current_cpu))
1666 {
3e43c635 1667 FLD (in_h_gr_SI_14) = 14;
c906108c
SS
1668 FLD (out_Ri) = f_Ri;
1669 }
1670#endif
1671#undef FLD
7a292a7a 1672 return idesc;
c906108c
SS
1673 }
1674
96baa820 1675 extract_sfmt_ldr14uh:
c906108c 1676 {
7a292a7a 1677 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1678 CGEN_INSN_INT insn = base_insn;
96baa820 1679#define FLD(f) abuf->fields.sfmt_ldr14uh.f
9846de1b
JM
1680 SI f_disp9;
1681 UINT f_Ri;
c906108c 1682
9846de1b
JM
1683 f_disp9 = ((EXTRACT_MSB0_INT (insn, 16, 4, 8)) << (1));
1684 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1685
1686 /* Record the fields for the semantic handler. */
1687 FLD (f_disp9) = f_disp9;
e5c59029 1688 FLD (f_Ri) = f_Ri;
c906108c 1689 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1690 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr14uh", "f_disp9 0x%x", 'x', f_disp9, "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1691
1692#if WITH_PROFILE_MODEL_P
1693 /* Record the fields for profiling. */
1694 if (PROFILE_MODEL_P (current_cpu))
1695 {
3e43c635 1696 FLD (in_h_gr_SI_14) = 14;
c906108c
SS
1697 FLD (out_Ri) = f_Ri;
1698 }
1699#endif
1700#undef FLD
7a292a7a 1701 return idesc;
c906108c
SS
1702 }
1703
96baa820 1704 extract_sfmt_ldr14ub:
c906108c 1705 {
7a292a7a 1706 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1707 CGEN_INSN_INT insn = base_insn;
96baa820 1708#define FLD(f) abuf->fields.sfmt_ldr14ub.f
9846de1b
JM
1709 INT f_disp8;
1710 UINT f_Ri;
c906108c 1711
9846de1b
JM
1712 f_disp8 = EXTRACT_MSB0_INT (insn, 16, 4, 8);
1713 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1714
1715 /* Record the fields for the semantic handler. */
1716 FLD (f_disp8) = f_disp8;
e5c59029 1717 FLD (f_Ri) = f_Ri;
c906108c 1718 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1719 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr14ub", "f_disp8 0x%x", 'x', f_disp8, "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1720
1721#if WITH_PROFILE_MODEL_P
1722 /* Record the fields for profiling. */
1723 if (PROFILE_MODEL_P (current_cpu))
1724 {
3e43c635 1725 FLD (in_h_gr_SI_14) = 14;
c906108c
SS
1726 FLD (out_Ri) = f_Ri;
1727 }
1728#endif
1729#undef FLD
7a292a7a 1730 return idesc;
c906108c
SS
1731 }
1732
96baa820 1733 extract_sfmt_ldr15:
c906108c 1734 {
7a292a7a 1735 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1736 CGEN_INSN_INT insn = base_insn;
96baa820 1737#define FLD(f) abuf->fields.sfmt_ldr15.f
9846de1b
JM
1738 USI f_udisp6;
1739 UINT f_Ri;
c906108c 1740
9846de1b
JM
1741 f_udisp6 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) << (2));
1742 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1743
1744 /* Record the fields for the semantic handler. */
1745 FLD (f_udisp6) = f_udisp6;
e5c59029 1746 FLD (f_Ri) = f_Ri;
c906108c 1747 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 1748 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr15", "f_udisp6 0x%x", 'x', f_udisp6, "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1749
1750#if WITH_PROFILE_MODEL_P
1751 /* Record the fields for profiling. */
1752 if (PROFILE_MODEL_P (current_cpu))
1753 {
3e43c635 1754 FLD (in_h_gr_SI_15) = 15;
c906108c
SS
1755 FLD (out_Ri) = f_Ri;
1756 }
1757#endif
1758#undef FLD
7a292a7a 1759 return idesc;
c906108c
SS
1760 }
1761
96baa820 1762 extract_sfmt_ldr15gr:
c906108c 1763 {
7a292a7a 1764 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1765 CGEN_INSN_INT insn = base_insn;
96baa820 1766#define FLD(f) abuf->fields.sfmt_ldr15gr.f
9846de1b 1767 UINT f_Ri;
c906108c 1768
9846de1b 1769 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1770
1771 /* Record the fields for the semantic handler. */
1772 FLD (f_Ri) = f_Ri;
1773 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
96baa820 1774 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr15gr", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
1775
1776#if WITH_PROFILE_MODEL_P
1777 /* Record the fields for profiling. */
1778 if (PROFILE_MODEL_P (current_cpu))
1779 {
3e43c635 1780 FLD (in_h_gr_SI_15) = 15;
c906108c 1781 FLD (out_Ri) = f_Ri;
3e43c635 1782 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
1783 }
1784#endif
1785#undef FLD
7a292a7a 1786 return idesc;
c906108c
SS
1787 }
1788
96baa820 1789 extract_sfmt_ldr15dr:
c906108c 1790 {
7a292a7a 1791 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1792 CGEN_INSN_INT insn = base_insn;
96baa820 1793#define FLD(f) abuf->fields.sfmt_ldr15dr.f
9846de1b 1794 UINT f_Rs2;
c906108c 1795
9846de1b 1796 f_Rs2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1797
1798 /* Record the fields for the semantic handler. */
1799 FLD (f_Rs2) = f_Rs2;
96baa820 1800 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr15dr", "f_Rs2 0x%x", 'x', f_Rs2, (char *) 0));
c906108c
SS
1801
1802#if WITH_PROFILE_MODEL_P
1803 /* Record the fields for profiling. */
1804 if (PROFILE_MODEL_P (current_cpu))
1805 {
3e43c635
DB
1806 FLD (in_h_gr_SI_15) = 15;
1807 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
1808 }
1809#endif
1810#undef FLD
7a292a7a 1811 return idesc;
c906108c
SS
1812 }
1813
96baa820 1814 extract_sfmt_ldr15ps:
c906108c 1815 {
7a292a7a 1816 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 1817#define FLD(f) abuf->fields.sfmt_addsp.f
c906108c 1818
c906108c
SS
1819
1820 /* Record the fields for the semantic handler. */
96baa820 1821 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldr15ps", (char *) 0));
c906108c
SS
1822
1823#if WITH_PROFILE_MODEL_P
1824 /* Record the fields for profiling. */
1825 if (PROFILE_MODEL_P (current_cpu))
1826 {
3e43c635
DB
1827 FLD (in_h_gr_SI_15) = 15;
1828 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
1829 }
1830#endif
1831#undef FLD
7a292a7a 1832 return idesc;
c906108c
SS
1833 }
1834
96baa820 1835 extract_sfmt_st:
c906108c 1836 {
7a292a7a 1837 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1838 CGEN_INSN_INT insn = base_insn;
96baa820 1839#define FLD(f) abuf->fields.sfmt_str13.f
9846de1b
JM
1840 UINT f_Rj;
1841 UINT f_Ri;
c906108c 1842
9846de1b
JM
1843 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1844 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1845
1846 /* Record the fields for the semantic handler. */
e5c59029
DB
1847 FLD (f_Ri) = f_Ri;
1848 FLD (f_Rj) = f_Rj;
c906108c
SS
1849 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1850 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 1851 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c 1852
3e43c635
DB
1853#if WITH_PROFILE_MODEL_P
1854 /* Record the fields for profiling. */
1855 if (PROFILE_MODEL_P (current_cpu))
1856 {
1857 FLD (in_Ri) = f_Ri;
1858 FLD (in_Rj) = f_Rj;
1859 }
1860#endif
1861#undef FLD
1862 return idesc;
1863 }
1864
1865 extract_sfmt_sth:
1866 {
1867 const IDESC *idesc = &fr30bf_insn_data[itype];
1868 CGEN_INSN_INT insn = base_insn;
1869#define FLD(f) abuf->fields.sfmt_str13.f
1870 UINT f_Rj;
1871 UINT f_Ri;
1872
1873 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1874 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
1875
1876 /* Record the fields for the semantic handler. */
1877 FLD (f_Ri) = f_Ri;
1878 FLD (f_Rj) = f_Rj;
1879 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1880 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1881 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_sth", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1882
1883#if WITH_PROFILE_MODEL_P
1884 /* Record the fields for profiling. */
1885 if (PROFILE_MODEL_P (current_cpu))
1886 {
1887 FLD (in_Ri) = f_Ri;
1888 FLD (in_Rj) = f_Rj;
1889 }
1890#endif
1891#undef FLD
1892 return idesc;
1893 }
1894
1895 extract_sfmt_stb:
1896 {
1897 const IDESC *idesc = &fr30bf_insn_data[itype];
1898 CGEN_INSN_INT insn = base_insn;
1899#define FLD(f) abuf->fields.sfmt_str13.f
1900 UINT f_Rj;
1901 UINT f_Ri;
1902
1903 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1904 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
1905
1906 /* Record the fields for the semantic handler. */
1907 FLD (f_Ri) = f_Ri;
1908 FLD (f_Rj) = f_Rj;
1909 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1910 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1911 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stb", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1912
c906108c
SS
1913#if WITH_PROFILE_MODEL_P
1914 /* Record the fields for profiling. */
1915 if (PROFILE_MODEL_P (current_cpu))
1916 {
1917 FLD (in_Ri) = f_Ri;
1918 FLD (in_Rj) = f_Rj;
1919 }
1920#endif
1921#undef FLD
7a292a7a 1922 return idesc;
c906108c
SS
1923 }
1924
96baa820 1925 extract_sfmt_str13:
c906108c 1926 {
7a292a7a 1927 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 1928 CGEN_INSN_INT insn = base_insn;
96baa820 1929#define FLD(f) abuf->fields.sfmt_str13.f
9846de1b
JM
1930 UINT f_Rj;
1931 UINT f_Ri;
c906108c 1932
9846de1b
JM
1933 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1934 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
1935
1936 /* Record the fields for the semantic handler. */
e5c59029
DB
1937 FLD (f_Ri) = f_Ri;
1938 FLD (f_Rj) = f_Rj;
c906108c
SS
1939 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1940 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 1941 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str13", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c 1942
c906108c
SS
1943#if WITH_PROFILE_MODEL_P
1944 /* Record the fields for profiling. */
1945 if (PROFILE_MODEL_P (current_cpu))
1946 {
1947 FLD (in_Ri) = f_Ri;
1948 FLD (in_Rj) = f_Rj;
3e43c635
DB
1949 FLD (in_h_gr_SI_13) = 13;
1950 }
1951#endif
1952#undef FLD
1953 return idesc;
1954 }
1955
1956 extract_sfmt_str13h:
1957 {
1958 const IDESC *idesc = &fr30bf_insn_data[itype];
1959 CGEN_INSN_INT insn = base_insn;
1960#define FLD(f) abuf->fields.sfmt_str13.f
1961 UINT f_Rj;
1962 UINT f_Ri;
1963
1964 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1965 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
1966
1967 /* Record the fields for the semantic handler. */
1968 FLD (f_Ri) = f_Ri;
1969 FLD (f_Rj) = f_Rj;
1970 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
1971 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
1972 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str13h", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
1973
1974#if WITH_PROFILE_MODEL_P
1975 /* Record the fields for profiling. */
1976 if (PROFILE_MODEL_P (current_cpu))
1977 {
1978 FLD (in_Ri) = f_Ri;
1979 FLD (in_Rj) = f_Rj;
1980 FLD (in_h_gr_SI_13) = 13;
1981 }
1982#endif
1983#undef FLD
1984 return idesc;
1985 }
1986
1987 extract_sfmt_str13b:
1988 {
1989 const IDESC *idesc = &fr30bf_insn_data[itype];
1990 CGEN_INSN_INT insn = base_insn;
1991#define FLD(f) abuf->fields.sfmt_str13.f
1992 UINT f_Rj;
1993 UINT f_Ri;
1994
1995 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
1996 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
1997
1998 /* Record the fields for the semantic handler. */
1999 FLD (f_Ri) = f_Ri;
2000 FLD (f_Rj) = f_Rj;
2001 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
2002 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
2003 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str13b", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
2004
2005#if WITH_PROFILE_MODEL_P
2006 /* Record the fields for profiling. */
2007 if (PROFILE_MODEL_P (current_cpu))
2008 {
2009 FLD (in_Ri) = f_Ri;
2010 FLD (in_Rj) = f_Rj;
2011 FLD (in_h_gr_SI_13) = 13;
c906108c
SS
2012 }
2013#endif
2014#undef FLD
7a292a7a 2015 return idesc;
c906108c
SS
2016 }
2017
96baa820 2018 extract_sfmt_str14:
c906108c 2019 {
7a292a7a 2020 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2021 CGEN_INSN_INT insn = base_insn;
96baa820 2022#define FLD(f) abuf->fields.sfmt_str14.f
9846de1b
JM
2023 SI f_disp10;
2024 UINT f_Ri;
c906108c 2025
9846de1b
JM
2026 f_disp10 = ((EXTRACT_MSB0_INT (insn, 16, 4, 8)) << (2));
2027 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2028
2029 /* Record the fields for the semantic handler. */
e5c59029 2030 FLD (f_Ri) = f_Ri;
c906108c
SS
2031 FLD (f_disp10) = f_disp10;
2032 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2033 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str14", "f_Ri 0x%x", 'x', f_Ri, "f_disp10 0x%x", 'x', f_disp10, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2034
2035#if WITH_PROFILE_MODEL_P
2036 /* Record the fields for profiling. */
2037 if (PROFILE_MODEL_P (current_cpu))
2038 {
2039 FLD (in_Ri) = f_Ri;
3e43c635 2040 FLD (in_h_gr_SI_14) = 14;
c906108c
SS
2041 }
2042#endif
2043#undef FLD
7a292a7a 2044 return idesc;
c906108c
SS
2045 }
2046
96baa820 2047 extract_sfmt_str14h:
c906108c 2048 {
7a292a7a 2049 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2050 CGEN_INSN_INT insn = base_insn;
96baa820 2051#define FLD(f) abuf->fields.sfmt_str14h.f
9846de1b
JM
2052 SI f_disp9;
2053 UINT f_Ri;
c906108c 2054
9846de1b
JM
2055 f_disp9 = ((EXTRACT_MSB0_INT (insn, 16, 4, 8)) << (1));
2056 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2057
2058 /* Record the fields for the semantic handler. */
e5c59029 2059 FLD (f_Ri) = f_Ri;
c906108c
SS
2060 FLD (f_disp9) = f_disp9;
2061 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2062 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str14h", "f_Ri 0x%x", 'x', f_Ri, "f_disp9 0x%x", 'x', f_disp9, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
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;
3e43c635 2069 FLD (in_h_gr_SI_14) = 14;
c906108c
SS
2070 }
2071#endif
2072#undef FLD
7a292a7a 2073 return idesc;
c906108c
SS
2074 }
2075
96baa820 2076 extract_sfmt_str14b:
c906108c 2077 {
7a292a7a 2078 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2079 CGEN_INSN_INT insn = base_insn;
96baa820 2080#define FLD(f) abuf->fields.sfmt_str14b.f
9846de1b
JM
2081 INT f_disp8;
2082 UINT f_Ri;
c906108c 2083
9846de1b
JM
2084 f_disp8 = EXTRACT_MSB0_INT (insn, 16, 4, 8);
2085 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2086
2087 /* Record the fields for the semantic handler. */
e5c59029 2088 FLD (f_Ri) = f_Ri;
c906108c
SS
2089 FLD (f_disp8) = f_disp8;
2090 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2091 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str14b", "f_Ri 0x%x", 'x', f_Ri, "f_disp8 0x%x", 'x', f_disp8, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2092
2093#if WITH_PROFILE_MODEL_P
2094 /* Record the fields for profiling. */
2095 if (PROFILE_MODEL_P (current_cpu))
2096 {
2097 FLD (in_Ri) = f_Ri;
3e43c635 2098 FLD (in_h_gr_SI_14) = 14;
c906108c
SS
2099 }
2100#endif
2101#undef FLD
7a292a7a 2102 return idesc;
c906108c
SS
2103 }
2104
96baa820 2105 extract_sfmt_str15:
c906108c 2106 {
7a292a7a 2107 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2108 CGEN_INSN_INT insn = base_insn;
96baa820 2109#define FLD(f) abuf->fields.sfmt_str15.f
9846de1b
JM
2110 USI f_udisp6;
2111 UINT f_Ri;
c906108c 2112
9846de1b
JM
2113 f_udisp6 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 4)) << (2));
2114 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2115
2116 /* Record the fields for the semantic handler. */
e5c59029 2117 FLD (f_Ri) = f_Ri;
c906108c
SS
2118 FLD (f_udisp6) = f_udisp6;
2119 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2120 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str15", "f_Ri 0x%x", 'x', f_Ri, "f_udisp6 0x%x", 'x', f_udisp6, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2121
2122#if WITH_PROFILE_MODEL_P
2123 /* Record the fields for profiling. */
2124 if (PROFILE_MODEL_P (current_cpu))
2125 {
2126 FLD (in_Ri) = f_Ri;
3e43c635 2127 FLD (in_h_gr_SI_15) = 15;
c906108c
SS
2128 }
2129#endif
2130#undef FLD
7a292a7a 2131 return idesc;
c906108c
SS
2132 }
2133
96baa820 2134 extract_sfmt_str15gr:
c906108c 2135 {
7a292a7a 2136 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2137 CGEN_INSN_INT insn = base_insn;
96baa820 2138#define FLD(f) abuf->fields.sfmt_str15gr.f
9846de1b 2139 UINT f_Ri;
c906108c 2140
9846de1b 2141 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2142
2143 /* Record the fields for the semantic handler. */
e5c59029 2144 FLD (f_Ri) = f_Ri;
c906108c 2145 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2146 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str15gr", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2147
2148#if WITH_PROFILE_MODEL_P
2149 /* Record the fields for profiling. */
2150 if (PROFILE_MODEL_P (current_cpu))
2151 {
2152 FLD (in_Ri) = f_Ri;
3e43c635
DB
2153 FLD (in_h_gr_SI_15) = 15;
2154 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
2155 }
2156#endif
2157#undef FLD
7a292a7a 2158 return idesc;
c906108c
SS
2159 }
2160
96baa820 2161 extract_sfmt_str15dr:
c906108c 2162 {
7a292a7a 2163 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2164 CGEN_INSN_INT insn = base_insn;
96baa820 2165#define FLD(f) abuf->fields.sfmt_ldr15dr.f
9846de1b 2166 UINT f_Rs2;
c906108c 2167
9846de1b 2168 f_Rs2 = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2169
2170 /* Record the fields for the semantic handler. */
2171 FLD (f_Rs2) = f_Rs2;
96baa820 2172 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str15dr", "f_Rs2 0x%x", 'x', f_Rs2, (char *) 0));
c906108c
SS
2173
2174#if WITH_PROFILE_MODEL_P
2175 /* Record the fields for profiling. */
2176 if (PROFILE_MODEL_P (current_cpu))
2177 {
3e43c635
DB
2178 FLD (in_h_gr_SI_15) = 15;
2179 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
2180 }
2181#endif
2182#undef FLD
7a292a7a 2183 return idesc;
c906108c
SS
2184 }
2185
96baa820 2186 extract_sfmt_str15ps:
c906108c 2187 {
7a292a7a 2188 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 2189#define FLD(f) abuf->fields.sfmt_addsp.f
c906108c 2190
c906108c
SS
2191
2192 /* Record the fields for the semantic handler. */
96baa820 2193 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_str15ps", (char *) 0));
c906108c
SS
2194
2195#if WITH_PROFILE_MODEL_P
2196 /* Record the fields for profiling. */
2197 if (PROFILE_MODEL_P (current_cpu))
2198 {
3e43c635
DB
2199 FLD (in_h_gr_SI_15) = 15;
2200 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
2201 }
2202#endif
2203#undef FLD
7a292a7a 2204 return idesc;
c906108c
SS
2205 }
2206
96baa820 2207 extract_sfmt_mov:
c906108c 2208 {
7a292a7a 2209 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2210 CGEN_INSN_INT insn = base_insn;
96baa820 2211#define FLD(f) abuf->fields.sfmt_ldr13.f
9846de1b
JM
2212 UINT f_Rj;
2213 UINT f_Ri;
c906108c 2214
9846de1b
JM
2215 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2216 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2217
2218 /* Record the fields for the semantic handler. */
e5c59029
DB
2219 FLD (f_Rj) = f_Rj;
2220 FLD (f_Ri) = f_Ri;
c906108c
SS
2221 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
2222 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2223 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mov", "f_Rj 0x%x", 'x', f_Rj, "f_Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2224
2225#if WITH_PROFILE_MODEL_P
2226 /* Record the fields for profiling. */
2227 if (PROFILE_MODEL_P (current_cpu))
2228 {
2229 FLD (in_Rj) = f_Rj;
2230 FLD (out_Ri) = f_Ri;
2231 }
2232#endif
2233#undef FLD
7a292a7a 2234 return idesc;
c906108c
SS
2235 }
2236
96baa820 2237 extract_sfmt_movdr:
c906108c 2238 {
7a292a7a 2239 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2240 CGEN_INSN_INT insn = base_insn;
96baa820 2241#define FLD(f) abuf->fields.sfmt_movdr.f
9846de1b
JM
2242 UINT f_Rs1;
2243 UINT f_Ri;
c906108c 2244
9846de1b
JM
2245 f_Rs1 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2246 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2247
2248 /* Record the fields for the semantic handler. */
2249 FLD (f_Rs1) = f_Rs1;
e5c59029 2250 FLD (f_Ri) = f_Ri;
c906108c 2251 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2252 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movdr", "f_Rs1 0x%x", 'x', f_Rs1, "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2253
2254#if WITH_PROFILE_MODEL_P
2255 /* Record the fields for profiling. */
2256 if (PROFILE_MODEL_P (current_cpu))
2257 {
2258 FLD (out_Ri) = f_Ri;
2259 }
2260#endif
2261#undef FLD
7a292a7a 2262 return idesc;
c906108c
SS
2263 }
2264
96baa820 2265 extract_sfmt_movps:
c906108c 2266 {
7a292a7a 2267 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2268 CGEN_INSN_INT insn = base_insn;
96baa820 2269#define FLD(f) abuf->fields.sfmt_movdr.f
9846de1b 2270 UINT f_Ri;
c906108c 2271
9846de1b 2272 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2273
2274 /* Record the fields for the semantic handler. */
e5c59029 2275 FLD (f_Ri) = f_Ri;
c906108c 2276 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2277 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movps", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2278
2279#if WITH_PROFILE_MODEL_P
2280 /* Record the fields for profiling. */
2281 if (PROFILE_MODEL_P (current_cpu))
2282 {
2283 FLD (out_Ri) = f_Ri;
2284 }
2285#endif
2286#undef FLD
7a292a7a 2287 return idesc;
c906108c
SS
2288 }
2289
96baa820 2290 extract_sfmt_mov2dr:
c906108c 2291 {
7a292a7a 2292 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2293 CGEN_INSN_INT insn = base_insn;
96baa820 2294#define FLD(f) abuf->fields.sfmt_mov2dr.f
9846de1b
JM
2295 UINT f_Rs1;
2296 UINT f_Ri;
c906108c 2297
9846de1b
JM
2298 f_Rs1 = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
2299 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2300
2301 /* Record the fields for the semantic handler. */
e5c59029 2302 FLD (f_Ri) = f_Ri;
c906108c
SS
2303 FLD (f_Rs1) = f_Rs1;
2304 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2305 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mov2dr", "f_Ri 0x%x", 'x', f_Ri, "f_Rs1 0x%x", 'x', f_Rs1, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2306
2307#if WITH_PROFILE_MODEL_P
2308 /* Record the fields for profiling. */
2309 if (PROFILE_MODEL_P (current_cpu))
2310 {
2311 FLD (in_Ri) = f_Ri;
2312 }
2313#endif
2314#undef FLD
7a292a7a 2315 return idesc;
c906108c
SS
2316 }
2317
96baa820 2318 extract_sfmt_mov2ps:
c906108c 2319 {
7a292a7a 2320 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2321 CGEN_INSN_INT insn = base_insn;
96baa820 2322#define FLD(f) abuf->fields.sfmt_mov2dr.f
9846de1b 2323 UINT f_Ri;
c906108c 2324
9846de1b 2325 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2326
2327 /* Record the fields for the semantic handler. */
e5c59029 2328 FLD (f_Ri) = f_Ri;
c906108c 2329 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2330 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mov2ps", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2331
2332#if WITH_PROFILE_MODEL_P
2333 /* Record the fields for profiling. */
2334 if (PROFILE_MODEL_P (current_cpu))
2335 {
2336 FLD (in_Ri) = f_Ri;
2337 }
2338#endif
2339#undef FLD
7a292a7a 2340 return idesc;
c906108c
SS
2341 }
2342
96baa820 2343 extract_sfmt_jmp:
c906108c 2344 {
7a292a7a 2345 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2346 CGEN_INSN_INT insn = base_insn;
96baa820 2347#define FLD(f) abuf->fields.sfmt_mov2dr.f
9846de1b 2348 UINT f_Ri;
c906108c 2349
9846de1b 2350 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2351
2352 /* Record the fields for the semantic handler. */
e5c59029 2353 FLD (f_Ri) = f_Ri;
c906108c 2354 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2355 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_jmp", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2356
2357#if WITH_PROFILE_MODEL_P
2358 /* Record the fields for profiling. */
2359 if (PROFILE_MODEL_P (current_cpu))
2360 {
2361 FLD (in_Ri) = f_Ri;
2362 }
2363#endif
2364#undef FLD
7a292a7a 2365 return idesc;
c906108c
SS
2366 }
2367
96baa820 2368 extract_sfmt_callr:
c906108c 2369 {
7a292a7a 2370 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2371 CGEN_INSN_INT insn = base_insn;
96baa820 2372#define FLD(f) abuf->fields.sfmt_mov2dr.f
9846de1b 2373 UINT f_Ri;
c906108c 2374
9846de1b 2375 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
2376
2377 /* Record the fields for the semantic handler. */
e5c59029 2378 FLD (f_Ri) = f_Ri;
c906108c 2379 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 2380 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_callr", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
2381
2382#if WITH_PROFILE_MODEL_P
2383 /* Record the fields for profiling. */
2384 if (PROFILE_MODEL_P (current_cpu))
2385 {
2386 FLD (in_Ri) = f_Ri;
2387 }
2388#endif
2389#undef FLD
7a292a7a 2390 return idesc;
c906108c
SS
2391 }
2392
96baa820 2393 extract_sfmt_call:
c906108c 2394 {
7a292a7a 2395 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2396 CGEN_INSN_INT insn = base_insn;
96baa820 2397#define FLD(f) abuf->fields.sfmt_call.f
9846de1b 2398 SI f_rel12;
c906108c 2399
9846de1b 2400 f_rel12 = ((((EXTRACT_MSB0_INT (insn, 16, 5, 11)) << (1))) + (((pc) + (2))));
c906108c
SS
2401
2402 /* Record the fields for the semantic handler. */
2403 FLD (i_label12) = f_rel12;
96baa820 2404 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_call", "label12 0x%x", 'x', f_rel12, (char *) 0));
c906108c
SS
2405
2406#if WITH_PROFILE_MODEL_P
2407 /* Record the fields for profiling. */
2408 if (PROFILE_MODEL_P (current_cpu))
2409 {
2410 }
2411#endif
2412#undef FLD
7a292a7a 2413 return idesc;
c906108c
SS
2414 }
2415
96baa820 2416 extract_sfmt_ret:
c906108c 2417 {
7a292a7a 2418 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 2419#define FLD(f) abuf->fields.fmt_empty.f
c906108c 2420
c906108c
SS
2421
2422 /* Record the fields for the semantic handler. */
96baa820 2423 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ret", (char *) 0));
c906108c
SS
2424
2425#if WITH_PROFILE_MODEL_P
2426 /* Record the fields for profiling. */
2427 if (PROFILE_MODEL_P (current_cpu))
2428 {
2429 }
2430#endif
2431#undef FLD
7a292a7a 2432 return idesc;
c906108c
SS
2433 }
2434
96baa820 2435 extract_sfmt_int:
c906108c 2436 {
7a292a7a 2437 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2438 CGEN_INSN_INT insn = base_insn;
96baa820 2439#define FLD(f) abuf->fields.sfmt_int.f
9846de1b 2440 UINT f_u8;
c906108c 2441
9846de1b 2442 f_u8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2443
2444 /* Record the fields for the semantic handler. */
2445 FLD (f_u8) = f_u8;
96baa820 2446 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_int", "f_u8 0x%x", 'x', f_u8, (char *) 0));
c906108c
SS
2447
2448#if WITH_PROFILE_MODEL_P
2449 /* Record the fields for profiling. */
2450 if (PROFILE_MODEL_P (current_cpu))
2451 {
2452 }
2453#endif
2454#undef FLD
7a292a7a 2455 return idesc;
c906108c
SS
2456 }
2457
96baa820 2458 extract_sfmt_inte:
c906108c 2459 {
7a292a7a 2460 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 2461#define FLD(f) abuf->fields.fmt_empty.f
c906108c 2462
c906108c
SS
2463
2464 /* Record the fields for the semantic handler. */
96baa820 2465 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_inte", (char *) 0));
c906108c
SS
2466
2467#if WITH_PROFILE_MODEL_P
2468 /* Record the fields for profiling. */
2469 if (PROFILE_MODEL_P (current_cpu))
2470 {
2471 }
2472#endif
2473#undef FLD
7a292a7a 2474 return idesc;
c906108c
SS
2475 }
2476
96baa820 2477 extract_sfmt_reti:
c906108c 2478 {
7a292a7a 2479 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 2480#define FLD(f) abuf->fields.fmt_empty.f
c906108c 2481
c906108c
SS
2482
2483 /* Record the fields for the semantic handler. */
96baa820 2484 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_reti", (char *) 0));
c906108c
SS
2485
2486#if WITH_PROFILE_MODEL_P
2487 /* Record the fields for profiling. */
2488 if (PROFILE_MODEL_P (current_cpu))
2489 {
2490 }
2491#endif
2492#undef FLD
7a292a7a 2493 return idesc;
c906108c
SS
2494 }
2495
96baa820 2496 extract_sfmt_brad:
c906108c 2497 {
7a292a7a 2498 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2499 CGEN_INSN_INT insn = base_insn;
96baa820 2500#define FLD(f) abuf->fields.sfmt_brad.f
9846de1b 2501 SI f_rel9;
c906108c 2502
9846de1b 2503 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2504
2505 /* Record the fields for the semantic handler. */
2506 FLD (i_label9) = f_rel9;
96baa820 2507 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_brad", "label9 0x%x", 'x', f_rel9, (char *) 0));
c906108c
SS
2508
2509#if WITH_PROFILE_MODEL_P
2510 /* Record the fields for profiling. */
2511 if (PROFILE_MODEL_P (current_cpu))
2512 {
2513 }
2514#endif
2515#undef FLD
7a292a7a 2516 return idesc;
c906108c
SS
2517 }
2518
96baa820 2519 extract_sfmt_bnod:
c906108c 2520 {
7a292a7a 2521 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 2522#define FLD(f) abuf->fields.fmt_empty.f
c906108c 2523
c906108c
SS
2524
2525 /* Record the fields for the semantic handler. */
96baa820 2526 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bnod", (char *) 0));
c906108c
SS
2527
2528#undef FLD
7a292a7a 2529 return idesc;
c906108c
SS
2530 }
2531
96baa820 2532 extract_sfmt_beqd:
c906108c 2533 {
7a292a7a 2534 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2535 CGEN_INSN_INT insn = base_insn;
96baa820 2536#define FLD(f) abuf->fields.sfmt_brad.f
9846de1b 2537 SI f_rel9;
c906108c 2538
9846de1b 2539 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2540
2541 /* Record the fields for the semantic handler. */
2542 FLD (i_label9) = f_rel9;
96baa820 2543 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_beqd", "label9 0x%x", 'x', f_rel9, (char *) 0));
c906108c
SS
2544
2545#if WITH_PROFILE_MODEL_P
2546 /* Record the fields for profiling. */
2547 if (PROFILE_MODEL_P (current_cpu))
2548 {
2549 }
2550#endif
2551#undef FLD
7a292a7a 2552 return idesc;
c906108c
SS
2553 }
2554
96baa820 2555 extract_sfmt_bcd:
c906108c 2556 {
7a292a7a 2557 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2558 CGEN_INSN_INT insn = base_insn;
96baa820 2559#define FLD(f) abuf->fields.sfmt_brad.f
9846de1b 2560 SI f_rel9;
c906108c 2561
9846de1b 2562 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2563
2564 /* Record the fields for the semantic handler. */
2565 FLD (i_label9) = f_rel9;
96baa820 2566 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bcd", "label9 0x%x", 'x', f_rel9, (char *) 0));
c906108c
SS
2567
2568#if WITH_PROFILE_MODEL_P
2569 /* Record the fields for profiling. */
2570 if (PROFILE_MODEL_P (current_cpu))
2571 {
2572 }
2573#endif
2574#undef FLD
7a292a7a 2575 return idesc;
c906108c
SS
2576 }
2577
96baa820 2578 extract_sfmt_bnd:
c906108c 2579 {
7a292a7a 2580 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2581 CGEN_INSN_INT insn = base_insn;
96baa820 2582#define FLD(f) abuf->fields.sfmt_brad.f
9846de1b 2583 SI f_rel9;
c906108c 2584
9846de1b 2585 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2586
2587 /* Record the fields for the semantic handler. */
2588 FLD (i_label9) = f_rel9;
96baa820 2589 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bnd", "label9 0x%x", 'x', f_rel9, (char *) 0));
c906108c
SS
2590
2591#if WITH_PROFILE_MODEL_P
2592 /* Record the fields for profiling. */
2593 if (PROFILE_MODEL_P (current_cpu))
2594 {
2595 }
2596#endif
2597#undef FLD
7a292a7a 2598 return idesc;
c906108c
SS
2599 }
2600
96baa820 2601 extract_sfmt_bvd:
c906108c 2602 {
7a292a7a 2603 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2604 CGEN_INSN_INT insn = base_insn;
96baa820 2605#define FLD(f) abuf->fields.sfmt_brad.f
9846de1b 2606 SI f_rel9;
c906108c 2607
9846de1b 2608 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2609
2610 /* Record the fields for the semantic handler. */
2611 FLD (i_label9) = f_rel9;
96baa820 2612 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bvd", "label9 0x%x", 'x', f_rel9, (char *) 0));
c906108c
SS
2613
2614#if WITH_PROFILE_MODEL_P
2615 /* Record the fields for profiling. */
2616 if (PROFILE_MODEL_P (current_cpu))
2617 {
2618 }
2619#endif
2620#undef FLD
7a292a7a 2621 return idesc;
c906108c
SS
2622 }
2623
96baa820 2624 extract_sfmt_bltd:
c906108c 2625 {
7a292a7a 2626 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2627 CGEN_INSN_INT insn = base_insn;
96baa820 2628#define FLD(f) abuf->fields.sfmt_brad.f
9846de1b 2629 SI f_rel9;
c906108c 2630
9846de1b 2631 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2632
2633 /* Record the fields for the semantic handler. */
2634 FLD (i_label9) = f_rel9;
96baa820 2635 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bltd", "label9 0x%x", 'x', f_rel9, (char *) 0));
c906108c
SS
2636
2637#if WITH_PROFILE_MODEL_P
2638 /* Record the fields for profiling. */
2639 if (PROFILE_MODEL_P (current_cpu))
2640 {
2641 }
2642#endif
2643#undef FLD
7a292a7a 2644 return idesc;
c906108c
SS
2645 }
2646
96baa820 2647 extract_sfmt_bled:
c906108c 2648 {
7a292a7a 2649 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2650 CGEN_INSN_INT insn = base_insn;
96baa820 2651#define FLD(f) abuf->fields.sfmt_brad.f
9846de1b 2652 SI f_rel9;
c906108c 2653
9846de1b 2654 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2655
2656 /* Record the fields for the semantic handler. */
2657 FLD (i_label9) = f_rel9;
96baa820 2658 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bled", "label9 0x%x", 'x', f_rel9, (char *) 0));
c906108c
SS
2659
2660#if WITH_PROFILE_MODEL_P
2661 /* Record the fields for profiling. */
2662 if (PROFILE_MODEL_P (current_cpu))
2663 {
2664 }
2665#endif
2666#undef FLD
7a292a7a 2667 return idesc;
c906108c
SS
2668 }
2669
96baa820 2670 extract_sfmt_blsd:
c906108c 2671 {
7a292a7a 2672 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2673 CGEN_INSN_INT insn = base_insn;
96baa820 2674#define FLD(f) abuf->fields.sfmt_brad.f
9846de1b 2675 SI f_rel9;
c906108c 2676
9846de1b 2677 f_rel9 = ((((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (1))) + (((pc) + (2))));
c906108c
SS
2678
2679 /* Record the fields for the semantic handler. */
2680 FLD (i_label9) = f_rel9;
96baa820 2681 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_blsd", "label9 0x%x", 'x', f_rel9, (char *) 0));
c906108c
SS
2682
2683#if WITH_PROFILE_MODEL_P
2684 /* Record the fields for profiling. */
2685 if (PROFILE_MODEL_P (current_cpu))
2686 {
2687 }
2688#endif
2689#undef FLD
7a292a7a 2690 return idesc;
c906108c
SS
2691 }
2692
96baa820 2693 extract_sfmt_dmovr13:
c906108c 2694 {
7a292a7a 2695 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2696 CGEN_INSN_INT insn = base_insn;
96baa820 2697#define FLD(f) abuf->fields.sfmt_dmovr13pi.f
9846de1b 2698 USI f_dir10;
c906108c 2699
9846de1b 2700 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2701
2702 /* Record the fields for the semantic handler. */
2703 FLD (f_dir10) = f_dir10;
96baa820 2704 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
c906108c
SS
2705
2706#if WITH_PROFILE_MODEL_P
2707 /* Record the fields for profiling. */
2708 if (PROFILE_MODEL_P (current_cpu))
2709 {
3e43c635 2710 FLD (in_h_gr_SI_13) = 13;
c906108c
SS
2711 }
2712#endif
2713#undef FLD
7a292a7a 2714 return idesc;
c906108c
SS
2715 }
2716
96baa820 2717 extract_sfmt_dmovr13h:
c906108c 2718 {
7a292a7a 2719 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2720 CGEN_INSN_INT insn = base_insn;
96baa820 2721#define FLD(f) abuf->fields.sfmt_dmovr13pih.f
9846de1b 2722 USI f_dir9;
c906108c 2723
9846de1b 2724 f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
c906108c
SS
2725
2726 /* Record the fields for the semantic handler. */
2727 FLD (f_dir9) = f_dir9;
96baa820 2728 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13h", "f_dir9 0x%x", 'x', f_dir9, (char *) 0));
c906108c
SS
2729
2730#if WITH_PROFILE_MODEL_P
2731 /* Record the fields for profiling. */
2732 if (PROFILE_MODEL_P (current_cpu))
2733 {
3e43c635 2734 FLD (in_h_gr_SI_13) = 13;
c906108c
SS
2735 }
2736#endif
2737#undef FLD
7a292a7a 2738 return idesc;
c906108c
SS
2739 }
2740
96baa820 2741 extract_sfmt_dmovr13b:
c906108c 2742 {
7a292a7a 2743 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2744 CGEN_INSN_INT insn = base_insn;
96baa820 2745#define FLD(f) abuf->fields.sfmt_dmovr13pib.f
9846de1b 2746 UINT f_dir8;
c906108c 2747
9846de1b 2748 f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2749
2750 /* Record the fields for the semantic handler. */
2751 FLD (f_dir8) = f_dir8;
96baa820 2752 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13b", "f_dir8 0x%x", 'x', f_dir8, (char *) 0));
c906108c
SS
2753
2754#if WITH_PROFILE_MODEL_P
2755 /* Record the fields for profiling. */
2756 if (PROFILE_MODEL_P (current_cpu))
2757 {
3e43c635 2758 FLD (in_h_gr_SI_13) = 13;
c906108c
SS
2759 }
2760#endif
2761#undef FLD
7a292a7a 2762 return idesc;
c906108c
SS
2763 }
2764
96baa820 2765 extract_sfmt_dmovr13pi:
c906108c 2766 {
7a292a7a 2767 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2768 CGEN_INSN_INT insn = base_insn;
96baa820 2769#define FLD(f) abuf->fields.sfmt_dmovr13pi.f
9846de1b 2770 USI f_dir10;
c906108c 2771
9846de1b 2772 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2773
2774 /* Record the fields for the semantic handler. */
2775 FLD (f_dir10) = f_dir10;
96baa820 2776 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
c906108c
SS
2777
2778#if WITH_PROFILE_MODEL_P
2779 /* Record the fields for profiling. */
2780 if (PROFILE_MODEL_P (current_cpu))
2781 {
3e43c635
DB
2782 FLD (in_h_gr_SI_13) = 13;
2783 FLD (out_h_gr_SI_13) = 13;
c906108c
SS
2784 }
2785#endif
2786#undef FLD
7a292a7a 2787 return idesc;
c906108c
SS
2788 }
2789
96baa820 2790 extract_sfmt_dmovr13pih:
c906108c 2791 {
7a292a7a 2792 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2793 CGEN_INSN_INT insn = base_insn;
96baa820 2794#define FLD(f) abuf->fields.sfmt_dmovr13pih.f
9846de1b 2795 USI f_dir9;
c906108c 2796
9846de1b 2797 f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
c906108c
SS
2798
2799 /* Record the fields for the semantic handler. */
2800 FLD (f_dir9) = f_dir9;
96baa820 2801 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13pih", "f_dir9 0x%x", 'x', f_dir9, (char *) 0));
c906108c
SS
2802
2803#if WITH_PROFILE_MODEL_P
2804 /* Record the fields for profiling. */
2805 if (PROFILE_MODEL_P (current_cpu))
2806 {
3e43c635
DB
2807 FLD (in_h_gr_SI_13) = 13;
2808 FLD (out_h_gr_SI_13) = 13;
c906108c
SS
2809 }
2810#endif
2811#undef FLD
7a292a7a 2812 return idesc;
c906108c
SS
2813 }
2814
96baa820 2815 extract_sfmt_dmovr13pib:
c906108c 2816 {
7a292a7a 2817 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2818 CGEN_INSN_INT insn = base_insn;
96baa820 2819#define FLD(f) abuf->fields.sfmt_dmovr13pib.f
9846de1b 2820 UINT f_dir8;
c906108c 2821
9846de1b 2822 f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2823
2824 /* Record the fields for the semantic handler. */
2825 FLD (f_dir8) = f_dir8;
96baa820 2826 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr13pib", "f_dir8 0x%x", 'x', f_dir8, (char *) 0));
c906108c
SS
2827
2828#if WITH_PROFILE_MODEL_P
2829 /* Record the fields for profiling. */
2830 if (PROFILE_MODEL_P (current_cpu))
2831 {
3e43c635
DB
2832 FLD (in_h_gr_SI_13) = 13;
2833 FLD (out_h_gr_SI_13) = 13;
c906108c
SS
2834 }
2835#endif
2836#undef FLD
7a292a7a 2837 return idesc;
c906108c
SS
2838 }
2839
96baa820 2840 extract_sfmt_dmovr15pi:
c906108c 2841 {
7a292a7a 2842 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2843 CGEN_INSN_INT insn = base_insn;
96baa820 2844#define FLD(f) abuf->fields.sfmt_dmovr15pi.f
9846de1b 2845 USI f_dir10;
c906108c 2846
9846de1b 2847 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2848
2849 /* Record the fields for the semantic handler. */
2850 FLD (f_dir10) = f_dir10;
96baa820 2851 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmovr15pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
c906108c
SS
2852
2853#if WITH_PROFILE_MODEL_P
2854 /* Record the fields for profiling. */
2855 if (PROFILE_MODEL_P (current_cpu))
2856 {
3e43c635
DB
2857 FLD (in_h_gr_SI_15) = 15;
2858 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
2859 }
2860#endif
2861#undef FLD
7a292a7a 2862 return idesc;
c906108c
SS
2863 }
2864
96baa820 2865 extract_sfmt_dmov2r13:
c906108c 2866 {
7a292a7a 2867 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2868 CGEN_INSN_INT insn = base_insn;
96baa820 2869#define FLD(f) abuf->fields.sfmt_dmovr13pi.f
9846de1b 2870 USI f_dir10;
c906108c 2871
9846de1b 2872 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2873
2874 /* Record the fields for the semantic handler. */
2875 FLD (f_dir10) = f_dir10;
96baa820 2876 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
c906108c
SS
2877
2878#if WITH_PROFILE_MODEL_P
2879 /* Record the fields for profiling. */
2880 if (PROFILE_MODEL_P (current_cpu))
2881 {
3e43c635 2882 FLD (out_h_gr_SI_13) = 13;
c906108c
SS
2883 }
2884#endif
2885#undef FLD
7a292a7a 2886 return idesc;
c906108c
SS
2887 }
2888
96baa820 2889 extract_sfmt_dmov2r13h:
c906108c 2890 {
7a292a7a 2891 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2892 CGEN_INSN_INT insn = base_insn;
96baa820 2893#define FLD(f) abuf->fields.sfmt_dmovr13pih.f
9846de1b 2894 USI f_dir9;
c906108c 2895
9846de1b 2896 f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
c906108c
SS
2897
2898 /* Record the fields for the semantic handler. */
2899 FLD (f_dir9) = f_dir9;
96baa820 2900 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13h", "f_dir9 0x%x", 'x', f_dir9, (char *) 0));
c906108c
SS
2901
2902#if WITH_PROFILE_MODEL_P
2903 /* Record the fields for profiling. */
2904 if (PROFILE_MODEL_P (current_cpu))
2905 {
3e43c635 2906 FLD (out_h_gr_SI_13) = 13;
c906108c
SS
2907 }
2908#endif
2909#undef FLD
7a292a7a 2910 return idesc;
c906108c
SS
2911 }
2912
96baa820 2913 extract_sfmt_dmov2r13b:
c906108c 2914 {
7a292a7a 2915 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2916 CGEN_INSN_INT insn = base_insn;
96baa820 2917#define FLD(f) abuf->fields.sfmt_dmovr13pib.f
9846de1b 2918 UINT f_dir8;
c906108c 2919
9846de1b 2920 f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2921
2922 /* Record the fields for the semantic handler. */
2923 FLD (f_dir8) = f_dir8;
96baa820 2924 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13b", "f_dir8 0x%x", 'x', f_dir8, (char *) 0));
c906108c
SS
2925
2926#if WITH_PROFILE_MODEL_P
2927 /* Record the fields for profiling. */
2928 if (PROFILE_MODEL_P (current_cpu))
2929 {
3e43c635 2930 FLD (out_h_gr_SI_13) = 13;
c906108c
SS
2931 }
2932#endif
2933#undef FLD
7a292a7a 2934 return idesc;
c906108c
SS
2935 }
2936
96baa820 2937 extract_sfmt_dmov2r13pi:
c906108c 2938 {
7a292a7a 2939 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2940 CGEN_INSN_INT insn = base_insn;
96baa820 2941#define FLD(f) abuf->fields.sfmt_dmovr13pi.f
9846de1b 2942 USI f_dir10;
c906108c 2943
9846de1b 2944 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
2945
2946 /* Record the fields for the semantic handler. */
2947 FLD (f_dir10) = f_dir10;
96baa820 2948 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13pi", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
c906108c
SS
2949
2950#if WITH_PROFILE_MODEL_P
2951 /* Record the fields for profiling. */
2952 if (PROFILE_MODEL_P (current_cpu))
2953 {
3e43c635
DB
2954 FLD (in_h_gr_SI_13) = 13;
2955 FLD (out_h_gr_SI_13) = 13;
c906108c
SS
2956 }
2957#endif
2958#undef FLD
7a292a7a 2959 return idesc;
c906108c
SS
2960 }
2961
96baa820 2962 extract_sfmt_dmov2r13pih:
c906108c 2963 {
7a292a7a 2964 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2965 CGEN_INSN_INT insn = base_insn;
96baa820 2966#define FLD(f) abuf->fields.sfmt_dmovr13pih.f
9846de1b 2967 USI f_dir9;
c906108c 2968
9846de1b 2969 f_dir9 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (1));
c906108c
SS
2970
2971 /* Record the fields for the semantic handler. */
2972 FLD (f_dir9) = f_dir9;
96baa820 2973 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13pih", "f_dir9 0x%x", 'x', f_dir9, (char *) 0));
c906108c
SS
2974
2975#if WITH_PROFILE_MODEL_P
2976 /* Record the fields for profiling. */
2977 if (PROFILE_MODEL_P (current_cpu))
2978 {
3e43c635
DB
2979 FLD (in_h_gr_SI_13) = 13;
2980 FLD (out_h_gr_SI_13) = 13;
c906108c
SS
2981 }
2982#endif
2983#undef FLD
7a292a7a 2984 return idesc;
c906108c
SS
2985 }
2986
96baa820 2987 extract_sfmt_dmov2r13pib:
c906108c 2988 {
7a292a7a 2989 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 2990 CGEN_INSN_INT insn = base_insn;
96baa820 2991#define FLD(f) abuf->fields.sfmt_dmovr13pib.f
9846de1b 2992 UINT f_dir8;
c906108c 2993
9846de1b 2994 f_dir8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
2995
2996 /* Record the fields for the semantic handler. */
2997 FLD (f_dir8) = f_dir8;
96baa820 2998 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r13pib", "f_dir8 0x%x", 'x', f_dir8, (char *) 0));
c906108c
SS
2999
3000#if WITH_PROFILE_MODEL_P
3001 /* Record the fields for profiling. */
3002 if (PROFILE_MODEL_P (current_cpu))
3003 {
3e43c635
DB
3004 FLD (in_h_gr_SI_13) = 13;
3005 FLD (out_h_gr_SI_13) = 13;
c906108c
SS
3006 }
3007#endif
3008#undef FLD
7a292a7a 3009 return idesc;
c906108c
SS
3010 }
3011
96baa820 3012 extract_sfmt_dmov2r15pd:
c906108c 3013 {
7a292a7a 3014 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3015 CGEN_INSN_INT insn = base_insn;
96baa820 3016#define FLD(f) abuf->fields.sfmt_dmovr15pi.f
9846de1b 3017 USI f_dir10;
c906108c 3018
9846de1b 3019 f_dir10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
3020
3021 /* Record the fields for the semantic handler. */
3022 FLD (f_dir10) = f_dir10;
96baa820 3023 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_dmov2r15pd", "f_dir10 0x%x", 'x', f_dir10, (char *) 0));
c906108c
SS
3024
3025#if WITH_PROFILE_MODEL_P
3026 /* Record the fields for profiling. */
3027 if (PROFILE_MODEL_P (current_cpu))
3028 {
3e43c635
DB
3029 FLD (in_h_gr_SI_15) = 15;
3030 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
3031 }
3032#endif
3033#undef FLD
7a292a7a 3034 return idesc;
c906108c
SS
3035 }
3036
96baa820 3037 extract_sfmt_ldres:
c906108c 3038 {
7a292a7a 3039 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3040 CGEN_INSN_INT insn = base_insn;
96baa820 3041#define FLD(f) abuf->fields.sfmt_add2.f
9846de1b 3042 UINT f_Ri;
c906108c 3043
9846de1b 3044 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
3045
3046 /* Record the fields for the semantic handler. */
e5c59029 3047 FLD (f_Ri) = f_Ri;
c906108c 3048 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 3049 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldres", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
3050
3051#if WITH_PROFILE_MODEL_P
3052 /* Record the fields for profiling. */
3053 if (PROFILE_MODEL_P (current_cpu))
3054 {
3055 FLD (in_Ri) = f_Ri;
3056 FLD (out_Ri) = f_Ri;
3057 }
3058#endif
3059#undef FLD
7a292a7a 3060 return idesc;
c906108c
SS
3061 }
3062
96baa820 3063 extract_sfmt_copop:
c906108c 3064 {
7a292a7a 3065 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 3066#define FLD(f) abuf->fields.fmt_empty.f
9846de1b
JM
3067 /* Contents of trailing part of insn. */
3068 UINT word_1;
c906108c 3069
9846de1b 3070 word_1 = GETIMEMUHI (current_cpu, pc + 2);
c906108c
SS
3071
3072 /* Record the fields for the semantic handler. */
96baa820 3073 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_copop", (char *) 0));
c906108c 3074
c906108c 3075#undef FLD
7a292a7a 3076 return idesc;
c906108c
SS
3077 }
3078
96baa820 3079 extract_sfmt_andccr:
c906108c 3080 {
7a292a7a 3081 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3082 CGEN_INSN_INT insn = base_insn;
96baa820 3083#define FLD(f) abuf->fields.sfmt_int.f
9846de1b 3084 UINT f_u8;
c906108c 3085
9846de1b 3086 f_u8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
3087
3088 /* Record the fields for the semantic handler. */
3089 FLD (f_u8) = f_u8;
96baa820 3090 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_andccr", "f_u8 0x%x", 'x', f_u8, (char *) 0));
c906108c
SS
3091
3092#undef FLD
7a292a7a 3093 return idesc;
c906108c
SS
3094 }
3095
96baa820 3096 extract_sfmt_stilm:
c906108c 3097 {
7a292a7a 3098 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3099 CGEN_INSN_INT insn = base_insn;
96baa820 3100#define FLD(f) abuf->fields.sfmt_int.f
9846de1b 3101 UINT f_u8;
c906108c 3102
9846de1b 3103 f_u8 = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
3104
3105 /* Record the fields for the semantic handler. */
3106 FLD (f_u8) = f_u8;
96baa820 3107 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stilm", "f_u8 0x%x", 'x', f_u8, (char *) 0));
c906108c
SS
3108
3109#undef FLD
7a292a7a 3110 return idesc;
c906108c
SS
3111 }
3112
96baa820 3113 extract_sfmt_addsp:
c906108c 3114 {
7a292a7a 3115 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3116 CGEN_INSN_INT insn = base_insn;
96baa820 3117#define FLD(f) abuf->fields.sfmt_addsp.f
9846de1b 3118 SI f_s10;
c906108c 3119
9846de1b 3120 f_s10 = ((EXTRACT_MSB0_INT (insn, 16, 8, 8)) << (2));
c906108c
SS
3121
3122 /* Record the fields for the semantic handler. */
3123 FLD (f_s10) = f_s10;
96baa820 3124 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_addsp", "f_s10 0x%x", 'x', f_s10, (char *) 0));
c906108c
SS
3125
3126#if WITH_PROFILE_MODEL_P
3127 /* Record the fields for profiling. */
3128 if (PROFILE_MODEL_P (current_cpu))
3129 {
3e43c635
DB
3130 FLD (in_h_gr_SI_15) = 15;
3131 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
3132 }
3133#endif
3134#undef FLD
7a292a7a 3135 return idesc;
c906108c
SS
3136 }
3137
96baa820 3138 extract_sfmt_extsb:
c906108c 3139 {
7a292a7a 3140 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3141 CGEN_INSN_INT insn = base_insn;
96baa820 3142#define FLD(f) abuf->fields.sfmt_add2.f
9846de1b 3143 UINT f_Ri;
c906108c 3144
9846de1b 3145 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
3146
3147 /* Record the fields for the semantic handler. */
e5c59029 3148 FLD (f_Ri) = f_Ri;
c906108c 3149 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 3150 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_extsb", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
3151
3152#if WITH_PROFILE_MODEL_P
3153 /* Record the fields for profiling. */
3154 if (PROFILE_MODEL_P (current_cpu))
3155 {
3156 FLD (in_Ri) = f_Ri;
3157 FLD (out_Ri) = f_Ri;
3158 }
3159#endif
3160#undef FLD
7a292a7a 3161 return idesc;
c906108c
SS
3162 }
3163
96baa820 3164 extract_sfmt_extub:
c906108c 3165 {
7a292a7a 3166 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3167 CGEN_INSN_INT insn = base_insn;
96baa820 3168#define FLD(f) abuf->fields.sfmt_add2.f
9846de1b 3169 UINT f_Ri;
c906108c 3170
9846de1b 3171 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
3172
3173 /* Record the fields for the semantic handler. */
e5c59029 3174 FLD (f_Ri) = f_Ri;
c906108c 3175 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 3176 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_extub", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
3177
3178#if WITH_PROFILE_MODEL_P
3179 /* Record the fields for profiling. */
3180 if (PROFILE_MODEL_P (current_cpu))
3181 {
3182 FLD (in_Ri) = f_Ri;
3183 FLD (out_Ri) = f_Ri;
3184 }
3185#endif
3186#undef FLD
7a292a7a 3187 return idesc;
c906108c
SS
3188 }
3189
96baa820 3190 extract_sfmt_extsh:
c906108c 3191 {
7a292a7a 3192 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3193 CGEN_INSN_INT insn = base_insn;
96baa820 3194#define FLD(f) abuf->fields.sfmt_add2.f
9846de1b 3195 UINT f_Ri;
c906108c 3196
9846de1b 3197 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
3198
3199 /* Record the fields for the semantic handler. */
e5c59029 3200 FLD (f_Ri) = f_Ri;
c906108c 3201 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 3202 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_extsh", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
3203
3204#if WITH_PROFILE_MODEL_P
3205 /* Record the fields for profiling. */
3206 if (PROFILE_MODEL_P (current_cpu))
3207 {
3208 FLD (in_Ri) = f_Ri;
3209 FLD (out_Ri) = f_Ri;
3210 }
3211#endif
3212#undef FLD
7a292a7a 3213 return idesc;
c906108c
SS
3214 }
3215
96baa820 3216 extract_sfmt_extuh:
c906108c 3217 {
7a292a7a 3218 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3219 CGEN_INSN_INT insn = base_insn;
96baa820 3220#define FLD(f) abuf->fields.sfmt_add2.f
9846de1b 3221 UINT f_Ri;
c906108c 3222
9846de1b 3223 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
3224
3225 /* Record the fields for the semantic handler. */
e5c59029 3226 FLD (f_Ri) = f_Ri;
c906108c 3227 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
e5c59029 3228 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_extuh", "f_Ri 0x%x", 'x', f_Ri, "Ri 0x%x", 'x', f_Ri, (char *) 0));
c906108c
SS
3229
3230#if WITH_PROFILE_MODEL_P
3231 /* Record the fields for profiling. */
3232 if (PROFILE_MODEL_P (current_cpu))
3233 {
3234 FLD (in_Ri) = f_Ri;
3235 FLD (out_Ri) = f_Ri;
3236 }
3237#endif
3238#undef FLD
7a292a7a 3239 return idesc;
c906108c
SS
3240 }
3241
96baa820 3242 extract_sfmt_ldm0:
c906108c 3243 {
7a292a7a 3244 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3245 CGEN_INSN_INT insn = base_insn;
96baa820 3246#define FLD(f) abuf->fields.sfmt_ldm0.f
9846de1b 3247 UINT f_reglist_low_ld;
c906108c 3248
9846de1b 3249 f_reglist_low_ld = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
3250
3251 /* Record the fields for the semantic handler. */
3252 FLD (f_reglist_low_ld) = f_reglist_low_ld;
96baa820 3253 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldm0", "f_reglist_low_ld 0x%x", 'x', f_reglist_low_ld, (char *) 0));
c906108c
SS
3254
3255#if WITH_PROFILE_MODEL_P
3256 /* Record the fields for profiling. */
3257 if (PROFILE_MODEL_P (current_cpu))
3258 {
3e43c635
DB
3259 FLD (in_h_gr_SI_15) = 15;
3260 FLD (out_h_gr_SI_0) = 0;
3261 FLD (out_h_gr_SI_1) = 1;
3262 FLD (out_h_gr_SI_15) = 15;
3263 FLD (out_h_gr_SI_2) = 2;
3264 FLD (out_h_gr_SI_3) = 3;
3265 FLD (out_h_gr_SI_4) = 4;
3266 FLD (out_h_gr_SI_5) = 5;
3267 FLD (out_h_gr_SI_6) = 6;
3268 FLD (out_h_gr_SI_7) = 7;
c906108c
SS
3269 }
3270#endif
3271#undef FLD
7a292a7a 3272 return idesc;
c906108c
SS
3273 }
3274
96baa820 3275 extract_sfmt_ldm1:
c906108c 3276 {
7a292a7a 3277 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3278 CGEN_INSN_INT insn = base_insn;
96baa820 3279#define FLD(f) abuf->fields.sfmt_ldm1.f
9846de1b 3280 UINT f_reglist_hi_ld;
c906108c 3281
9846de1b 3282 f_reglist_hi_ld = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
3283
3284 /* Record the fields for the semantic handler. */
3285 FLD (f_reglist_hi_ld) = f_reglist_hi_ld;
96baa820 3286 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldm1", "f_reglist_hi_ld 0x%x", 'x', f_reglist_hi_ld, (char *) 0));
c906108c
SS
3287
3288#if WITH_PROFILE_MODEL_P
3289 /* Record the fields for profiling. */
3290 if (PROFILE_MODEL_P (current_cpu))
3291 {
3e43c635
DB
3292 FLD (in_h_gr_SI_15) = 15;
3293 FLD (out_h_gr_SI_10) = 10;
3294 FLD (out_h_gr_SI_11) = 11;
3295 FLD (out_h_gr_SI_12) = 12;
3296 FLD (out_h_gr_SI_13) = 13;
3297 FLD (out_h_gr_SI_14) = 14;
3298 FLD (out_h_gr_SI_15) = 15;
3299 FLD (out_h_gr_SI_8) = 8;
3300 FLD (out_h_gr_SI_9) = 9;
c906108c
SS
3301 }
3302#endif
3303#undef FLD
7a292a7a 3304 return idesc;
c906108c
SS
3305 }
3306
96baa820 3307 extract_sfmt_stm0:
c906108c 3308 {
7a292a7a 3309 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3310 CGEN_INSN_INT insn = base_insn;
96baa820 3311#define FLD(f) abuf->fields.sfmt_stm0.f
9846de1b 3312 UINT f_reglist_low_st;
c906108c 3313
9846de1b 3314 f_reglist_low_st = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
3315
3316 /* Record the fields for the semantic handler. */
3317 FLD (f_reglist_low_st) = f_reglist_low_st;
96baa820 3318 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stm0", "f_reglist_low_st 0x%x", 'x', f_reglist_low_st, (char *) 0));
c906108c
SS
3319
3320#if WITH_PROFILE_MODEL_P
3321 /* Record the fields for profiling. */
3322 if (PROFILE_MODEL_P (current_cpu))
3323 {
3e43c635
DB
3324 FLD (in_h_gr_SI_0) = 0;
3325 FLD (in_h_gr_SI_1) = 1;
3326 FLD (in_h_gr_SI_15) = 15;
3327 FLD (in_h_gr_SI_2) = 2;
3328 FLD (in_h_gr_SI_3) = 3;
3329 FLD (in_h_gr_SI_4) = 4;
3330 FLD (in_h_gr_SI_5) = 5;
3331 FLD (in_h_gr_SI_6) = 6;
3332 FLD (in_h_gr_SI_7) = 7;
3333 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
3334 }
3335#endif
3336#undef FLD
7a292a7a 3337 return idesc;
c906108c
SS
3338 }
3339
96baa820 3340 extract_sfmt_stm1:
c906108c 3341 {
7a292a7a 3342 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3343 CGEN_INSN_INT insn = base_insn;
96baa820 3344#define FLD(f) abuf->fields.sfmt_stm1.f
9846de1b 3345 UINT f_reglist_hi_st;
c906108c 3346
9846de1b 3347 f_reglist_hi_st = EXTRACT_MSB0_UINT (insn, 16, 8, 8);
c906108c
SS
3348
3349 /* Record the fields for the semantic handler. */
3350 FLD (f_reglist_hi_st) = f_reglist_hi_st;
96baa820 3351 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stm1", "f_reglist_hi_st 0x%x", 'x', f_reglist_hi_st, (char *) 0));
c906108c
SS
3352
3353#if WITH_PROFILE_MODEL_P
3354 /* Record the fields for profiling. */
3355 if (PROFILE_MODEL_P (current_cpu))
3356 {
3e43c635
DB
3357 FLD (in_h_gr_SI_10) = 10;
3358 FLD (in_h_gr_SI_11) = 11;
3359 FLD (in_h_gr_SI_12) = 12;
3360 FLD (in_h_gr_SI_13) = 13;
3361 FLD (in_h_gr_SI_14) = 14;
3362 FLD (in_h_gr_SI_15) = 15;
3363 FLD (in_h_gr_SI_8) = 8;
3364 FLD (in_h_gr_SI_9) = 9;
3365 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
3366 }
3367#endif
3368#undef FLD
7a292a7a 3369 return idesc;
c906108c
SS
3370 }
3371
96baa820 3372 extract_sfmt_enter:
c906108c 3373 {
7a292a7a 3374 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3375 CGEN_INSN_INT insn = base_insn;
96baa820 3376#define FLD(f) abuf->fields.sfmt_enter.f
9846de1b 3377 USI f_u10;
c906108c 3378
9846de1b 3379 f_u10 = ((EXTRACT_MSB0_UINT (insn, 16, 8, 8)) << (2));
c906108c
SS
3380
3381 /* Record the fields for the semantic handler. */
3382 FLD (f_u10) = f_u10;
96baa820 3383 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_enter", "f_u10 0x%x", 'x', f_u10, (char *) 0));
c906108c
SS
3384
3385#if WITH_PROFILE_MODEL_P
3386 /* Record the fields for profiling. */
3387 if (PROFILE_MODEL_P (current_cpu))
3388 {
3e43c635
DB
3389 FLD (in_h_gr_SI_14) = 14;
3390 FLD (in_h_gr_SI_15) = 15;
3391 FLD (out_h_gr_SI_14) = 14;
3392 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
3393 }
3394#endif
3395#undef FLD
7a292a7a 3396 return idesc;
c906108c
SS
3397 }
3398
96baa820 3399 extract_sfmt_leave:
c906108c 3400 {
7a292a7a 3401 const IDESC *idesc = &fr30bf_insn_data[itype];
96baa820 3402#define FLD(f) abuf->fields.sfmt_enter.f
c906108c 3403
c906108c
SS
3404
3405 /* Record the fields for the semantic handler. */
96baa820 3406 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_leave", (char *) 0));
c906108c
SS
3407
3408#if WITH_PROFILE_MODEL_P
3409 /* Record the fields for profiling. */
3410 if (PROFILE_MODEL_P (current_cpu))
3411 {
3e43c635
DB
3412 FLD (in_h_gr_SI_14) = 14;
3413 FLD (in_h_gr_SI_15) = 15;
3414 FLD (out_h_gr_SI_14) = 14;
3415 FLD (out_h_gr_SI_15) = 15;
c906108c
SS
3416 }
3417#endif
3418#undef FLD
7a292a7a 3419 return idesc;
c906108c
SS
3420 }
3421
96baa820 3422 extract_sfmt_xchb:
c906108c 3423 {
7a292a7a 3424 const IDESC *idesc = &fr30bf_insn_data[itype];
3e43c635 3425 CGEN_INSN_INT insn = base_insn;
96baa820 3426#define FLD(f) abuf->fields.sfmt_add.f
9846de1b
JM
3427 UINT f_Rj;
3428 UINT f_Ri;
c906108c 3429
9846de1b
JM
3430 f_Rj = EXTRACT_MSB0_UINT (insn, 16, 8, 4);
3431 f_Ri = EXTRACT_MSB0_UINT (insn, 16, 12, 4);
c906108c
SS
3432
3433 /* Record the fields for the semantic handler. */
e5c59029
DB
3434 FLD (f_Ri) = f_Ri;
3435 FLD (f_Rj) = f_Rj;
c906108c
SS
3436 FLD (i_Ri) = & CPU (h_gr)[f_Ri];
3437 FLD (i_Rj) = & CPU (h_gr)[f_Rj];
e5c59029 3438 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_xchb", "f_Ri 0x%x", 'x', f_Ri, "f_Rj 0x%x", 'x', f_Rj, "Ri 0x%x", 'x', f_Ri, "Rj 0x%x", 'x', f_Rj, (char *) 0));
c906108c
SS
3439
3440#if WITH_PROFILE_MODEL_P
3441 /* Record the fields for profiling. */
3442 if (PROFILE_MODEL_P (current_cpu))
3443 {
3444 FLD (in_Ri) = f_Ri;
3445 FLD (in_Rj) = f_Rj;
3446 FLD (out_Ri) = f_Ri;
3447 }
3448#endif
3449#undef FLD
7a292a7a 3450 return idesc;
c906108c
SS
3451 }
3452
c906108c 3453}
This page took 0.290969 seconds and 4 git commands to generate.