]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/i960/decode.c
Oops, forgot to save ChangeLog before committing
[thirdparty/binutils-gdb.git] / sim / i960 / decode.c
1 /* Simulator instruction decoder for i960base.
2
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
4
5 Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
6
7 This file is part of the GNU Simulators.
8
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
12 any later version.
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
18
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
23 */
24
25 #define WANT_CPU i960base
26 #define WANT_CPU_I960BASE
27
28 #include "sim-main.h"
29 #include "sim-assert.h"
30
31 /* The instruction descriptor array.
32 This is computed at runtime. Space for it is not malloc'd to save a
33 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
34 but won't be done until necessary (we don't currently support the runtime
35 addition of instructions nor an SMP machine with different cpus). */
36 static IDESC i960base_insn_data[I960BASE_INSN_MAX];
37
38 /* Commas between elements are contained in the macros.
39 Some of these are conditionally compiled out. */
40
41 static const struct insn_sem i960base_insn_sem[] =
42 {
43 { VIRTUAL_INSN_X_INVALID, I960BASE_INSN_X_INVALID, I960BASE_SFMT_EMPTY },
44 { VIRTUAL_INSN_X_AFTER, I960BASE_INSN_X_AFTER, I960BASE_SFMT_EMPTY },
45 { VIRTUAL_INSN_X_BEFORE, I960BASE_INSN_X_BEFORE, I960BASE_SFMT_EMPTY },
46 { VIRTUAL_INSN_X_CTI_CHAIN, I960BASE_INSN_X_CTI_CHAIN, I960BASE_SFMT_EMPTY },
47 { VIRTUAL_INSN_X_CHAIN, I960BASE_INSN_X_CHAIN, I960BASE_SFMT_EMPTY },
48 { VIRTUAL_INSN_X_BEGIN, I960BASE_INSN_X_BEGIN, I960BASE_SFMT_EMPTY },
49 { I960_INSN_MULO, I960BASE_INSN_MULO, I960BASE_SFMT_MULO },
50 { I960_INSN_MULO1, I960BASE_INSN_MULO1, I960BASE_SFMT_MULO1 },
51 { I960_INSN_MULO2, I960BASE_INSN_MULO2, I960BASE_SFMT_MULO2 },
52 { I960_INSN_MULO3, I960BASE_INSN_MULO3, I960BASE_SFMT_MULO3 },
53 { I960_INSN_REMO, I960BASE_INSN_REMO, I960BASE_SFMT_MULO },
54 { I960_INSN_REMO1, I960BASE_INSN_REMO1, I960BASE_SFMT_MULO1 },
55 { I960_INSN_REMO2, I960BASE_INSN_REMO2, I960BASE_SFMT_MULO2 },
56 { I960_INSN_REMO3, I960BASE_INSN_REMO3, I960BASE_SFMT_MULO3 },
57 { I960_INSN_DIVO, I960BASE_INSN_DIVO, I960BASE_SFMT_MULO },
58 { I960_INSN_DIVO1, I960BASE_INSN_DIVO1, I960BASE_SFMT_MULO1 },
59 { I960_INSN_DIVO2, I960BASE_INSN_DIVO2, I960BASE_SFMT_MULO2 },
60 { I960_INSN_DIVO3, I960BASE_INSN_DIVO3, I960BASE_SFMT_MULO3 },
61 { I960_INSN_REMI, I960BASE_INSN_REMI, I960BASE_SFMT_MULO },
62 { I960_INSN_REMI1, I960BASE_INSN_REMI1, I960BASE_SFMT_MULO1 },
63 { I960_INSN_REMI2, I960BASE_INSN_REMI2, I960BASE_SFMT_MULO2 },
64 { I960_INSN_REMI3, I960BASE_INSN_REMI3, I960BASE_SFMT_MULO3 },
65 { I960_INSN_DIVI, I960BASE_INSN_DIVI, I960BASE_SFMT_MULO },
66 { I960_INSN_DIVI1, I960BASE_INSN_DIVI1, I960BASE_SFMT_MULO1 },
67 { I960_INSN_DIVI2, I960BASE_INSN_DIVI2, I960BASE_SFMT_MULO2 },
68 { I960_INSN_DIVI3, I960BASE_INSN_DIVI3, I960BASE_SFMT_MULO3 },
69 { I960_INSN_ADDO, I960BASE_INSN_ADDO, I960BASE_SFMT_MULO },
70 { I960_INSN_ADDO1, I960BASE_INSN_ADDO1, I960BASE_SFMT_MULO1 },
71 { I960_INSN_ADDO2, I960BASE_INSN_ADDO2, I960BASE_SFMT_MULO2 },
72 { I960_INSN_ADDO3, I960BASE_INSN_ADDO3, I960BASE_SFMT_MULO3 },
73 { I960_INSN_SUBO, I960BASE_INSN_SUBO, I960BASE_SFMT_MULO },
74 { I960_INSN_SUBO1, I960BASE_INSN_SUBO1, I960BASE_SFMT_MULO1 },
75 { I960_INSN_SUBO2, I960BASE_INSN_SUBO2, I960BASE_SFMT_MULO2 },
76 { I960_INSN_SUBO3, I960BASE_INSN_SUBO3, I960BASE_SFMT_MULO3 },
77 { I960_INSN_NOTBIT, I960BASE_INSN_NOTBIT, I960BASE_SFMT_NOTBIT },
78 { I960_INSN_NOTBIT1, I960BASE_INSN_NOTBIT1, I960BASE_SFMT_NOTBIT1 },
79 { I960_INSN_NOTBIT2, I960BASE_INSN_NOTBIT2, I960BASE_SFMT_NOTBIT2 },
80 { I960_INSN_NOTBIT3, I960BASE_INSN_NOTBIT3, I960BASE_SFMT_NOTBIT3 },
81 { I960_INSN_AND, I960BASE_INSN_AND, I960BASE_SFMT_MULO },
82 { I960_INSN_AND1, I960BASE_INSN_AND1, I960BASE_SFMT_MULO1 },
83 { I960_INSN_AND2, I960BASE_INSN_AND2, I960BASE_SFMT_MULO2 },
84 { I960_INSN_AND3, I960BASE_INSN_AND3, I960BASE_SFMT_MULO3 },
85 { I960_INSN_ANDNOT, I960BASE_INSN_ANDNOT, I960BASE_SFMT_MULO },
86 { I960_INSN_ANDNOT1, I960BASE_INSN_ANDNOT1, I960BASE_SFMT_MULO1 },
87 { I960_INSN_ANDNOT2, I960BASE_INSN_ANDNOT2, I960BASE_SFMT_MULO2 },
88 { I960_INSN_ANDNOT3, I960BASE_INSN_ANDNOT3, I960BASE_SFMT_MULO3 },
89 { I960_INSN_SETBIT, I960BASE_INSN_SETBIT, I960BASE_SFMT_NOTBIT },
90 { I960_INSN_SETBIT1, I960BASE_INSN_SETBIT1, I960BASE_SFMT_NOTBIT1 },
91 { I960_INSN_SETBIT2, I960BASE_INSN_SETBIT2, I960BASE_SFMT_NOTBIT2 },
92 { I960_INSN_SETBIT3, I960BASE_INSN_SETBIT3, I960BASE_SFMT_NOTBIT3 },
93 { I960_INSN_NOTAND, I960BASE_INSN_NOTAND, I960BASE_SFMT_MULO },
94 { I960_INSN_NOTAND1, I960BASE_INSN_NOTAND1, I960BASE_SFMT_MULO1 },
95 { I960_INSN_NOTAND2, I960BASE_INSN_NOTAND2, I960BASE_SFMT_MULO2 },
96 { I960_INSN_NOTAND3, I960BASE_INSN_NOTAND3, I960BASE_SFMT_MULO3 },
97 { I960_INSN_XOR, I960BASE_INSN_XOR, I960BASE_SFMT_MULO },
98 { I960_INSN_XOR1, I960BASE_INSN_XOR1, I960BASE_SFMT_MULO1 },
99 { I960_INSN_XOR2, I960BASE_INSN_XOR2, I960BASE_SFMT_MULO2 },
100 { I960_INSN_XOR3, I960BASE_INSN_XOR3, I960BASE_SFMT_MULO3 },
101 { I960_INSN_OR, I960BASE_INSN_OR, I960BASE_SFMT_MULO },
102 { I960_INSN_OR1, I960BASE_INSN_OR1, I960BASE_SFMT_MULO1 },
103 { I960_INSN_OR2, I960BASE_INSN_OR2, I960BASE_SFMT_MULO2 },
104 { I960_INSN_OR3, I960BASE_INSN_OR3, I960BASE_SFMT_MULO3 },
105 { I960_INSN_NOR, I960BASE_INSN_NOR, I960BASE_SFMT_MULO },
106 { I960_INSN_NOR1, I960BASE_INSN_NOR1, I960BASE_SFMT_MULO1 },
107 { I960_INSN_NOR2, I960BASE_INSN_NOR2, I960BASE_SFMT_MULO2 },
108 { I960_INSN_NOR3, I960BASE_INSN_NOR3, I960BASE_SFMT_MULO3 },
109 { I960_INSN_XNOR, I960BASE_INSN_XNOR, I960BASE_SFMT_MULO },
110 { I960_INSN_XNOR1, I960BASE_INSN_XNOR1, I960BASE_SFMT_MULO1 },
111 { I960_INSN_XNOR2, I960BASE_INSN_XNOR2, I960BASE_SFMT_MULO2 },
112 { I960_INSN_XNOR3, I960BASE_INSN_XNOR3, I960BASE_SFMT_MULO3 },
113 { I960_INSN_NOT, I960BASE_INSN_NOT, I960BASE_SFMT_NOT },
114 { I960_INSN_NOT1, I960BASE_INSN_NOT1, I960BASE_SFMT_NOT1 },
115 { I960_INSN_NOT2, I960BASE_INSN_NOT2, I960BASE_SFMT_NOT },
116 { I960_INSN_NOT3, I960BASE_INSN_NOT3, I960BASE_SFMT_NOT1 },
117 { I960_INSN_ORNOT, I960BASE_INSN_ORNOT, I960BASE_SFMT_MULO },
118 { I960_INSN_ORNOT1, I960BASE_INSN_ORNOT1, I960BASE_SFMT_MULO1 },
119 { I960_INSN_ORNOT2, I960BASE_INSN_ORNOT2, I960BASE_SFMT_MULO2 },
120 { I960_INSN_ORNOT3, I960BASE_INSN_ORNOT3, I960BASE_SFMT_MULO3 },
121 { I960_INSN_CLRBIT, I960BASE_INSN_CLRBIT, I960BASE_SFMT_NOTBIT },
122 { I960_INSN_CLRBIT1, I960BASE_INSN_CLRBIT1, I960BASE_SFMT_NOTBIT1 },
123 { I960_INSN_CLRBIT2, I960BASE_INSN_CLRBIT2, I960BASE_SFMT_NOTBIT2 },
124 { I960_INSN_CLRBIT3, I960BASE_INSN_CLRBIT3, I960BASE_SFMT_NOTBIT3 },
125 { I960_INSN_SHLO, I960BASE_INSN_SHLO, I960BASE_SFMT_SHLO },
126 { I960_INSN_SHLO1, I960BASE_INSN_SHLO1, I960BASE_SFMT_SHLO1 },
127 { I960_INSN_SHLO2, I960BASE_INSN_SHLO2, I960BASE_SFMT_SHLO2 },
128 { I960_INSN_SHLO3, I960BASE_INSN_SHLO3, I960BASE_SFMT_SHLO3 },
129 { I960_INSN_SHRO, I960BASE_INSN_SHRO, I960BASE_SFMT_SHLO },
130 { I960_INSN_SHRO1, I960BASE_INSN_SHRO1, I960BASE_SFMT_SHLO1 },
131 { I960_INSN_SHRO2, I960BASE_INSN_SHRO2, I960BASE_SFMT_SHLO2 },
132 { I960_INSN_SHRO3, I960BASE_INSN_SHRO3, I960BASE_SFMT_SHLO3 },
133 { I960_INSN_SHLI, I960BASE_INSN_SHLI, I960BASE_SFMT_SHLO },
134 { I960_INSN_SHLI1, I960BASE_INSN_SHLI1, I960BASE_SFMT_SHLO1 },
135 { I960_INSN_SHLI2, I960BASE_INSN_SHLI2, I960BASE_SFMT_SHLO2 },
136 { I960_INSN_SHLI3, I960BASE_INSN_SHLI3, I960BASE_SFMT_SHLO3 },
137 { I960_INSN_SHRI, I960BASE_INSN_SHRI, I960BASE_SFMT_SHLO },
138 { I960_INSN_SHRI1, I960BASE_INSN_SHRI1, I960BASE_SFMT_SHLO1 },
139 { I960_INSN_SHRI2, I960BASE_INSN_SHRI2, I960BASE_SFMT_SHLO2 },
140 { I960_INSN_SHRI3, I960BASE_INSN_SHRI3, I960BASE_SFMT_SHLO3 },
141 { I960_INSN_EMUL, I960BASE_INSN_EMUL, I960BASE_SFMT_EMUL },
142 { I960_INSN_EMUL1, I960BASE_INSN_EMUL1, I960BASE_SFMT_EMUL1 },
143 { I960_INSN_EMUL2, I960BASE_INSN_EMUL2, I960BASE_SFMT_EMUL2 },
144 { I960_INSN_EMUL3, I960BASE_INSN_EMUL3, I960BASE_SFMT_EMUL3 },
145 { I960_INSN_MOV, I960BASE_INSN_MOV, I960BASE_SFMT_NOT },
146 { I960_INSN_MOV1, I960BASE_INSN_MOV1, I960BASE_SFMT_NOT1 },
147 { I960_INSN_MOVL, I960BASE_INSN_MOVL, I960BASE_SFMT_MOVL },
148 { I960_INSN_MOVL1, I960BASE_INSN_MOVL1, I960BASE_SFMT_MOVL1 },
149 { I960_INSN_MOVT, I960BASE_INSN_MOVT, I960BASE_SFMT_MOVT },
150 { I960_INSN_MOVT1, I960BASE_INSN_MOVT1, I960BASE_SFMT_MOVT1 },
151 { I960_INSN_MOVQ, I960BASE_INSN_MOVQ, I960BASE_SFMT_MOVQ },
152 { I960_INSN_MOVQ1, I960BASE_INSN_MOVQ1, I960BASE_SFMT_MOVQ1 },
153 { I960_INSN_MODPC, I960BASE_INSN_MODPC, I960BASE_SFMT_MODPC },
154 { I960_INSN_MODAC, I960BASE_INSN_MODAC, I960BASE_SFMT_MODPC },
155 { I960_INSN_LDA_OFFSET, I960BASE_INSN_LDA_OFFSET, I960BASE_SFMT_LDA_OFFSET },
156 { I960_INSN_LDA_INDIRECT_OFFSET, I960BASE_INSN_LDA_INDIRECT_OFFSET, I960BASE_SFMT_LDA_INDIRECT_OFFSET },
157 { I960_INSN_LDA_INDIRECT, I960BASE_INSN_LDA_INDIRECT, I960BASE_SFMT_LDA_INDIRECT },
158 { I960_INSN_LDA_INDIRECT_INDEX, I960BASE_INSN_LDA_INDIRECT_INDEX, I960BASE_SFMT_LDA_INDIRECT_INDEX },
159 { I960_INSN_LDA_DISP, I960BASE_INSN_LDA_DISP, I960BASE_SFMT_LDA_DISP },
160 { I960_INSN_LDA_INDIRECT_DISP, I960BASE_INSN_LDA_INDIRECT_DISP, I960BASE_SFMT_LDA_INDIRECT_DISP },
161 { I960_INSN_LDA_INDEX_DISP, I960BASE_INSN_LDA_INDEX_DISP, I960BASE_SFMT_LDA_INDEX_DISP },
162 { I960_INSN_LDA_INDIRECT_INDEX_DISP, I960BASE_INSN_LDA_INDIRECT_INDEX_DISP, I960BASE_SFMT_LDA_INDIRECT_INDEX_DISP },
163 { I960_INSN_LD_OFFSET, I960BASE_INSN_LD_OFFSET, I960BASE_SFMT_LD_OFFSET },
164 { I960_INSN_LD_INDIRECT_OFFSET, I960BASE_INSN_LD_INDIRECT_OFFSET, I960BASE_SFMT_LD_INDIRECT_OFFSET },
165 { I960_INSN_LD_INDIRECT, I960BASE_INSN_LD_INDIRECT, I960BASE_SFMT_LD_INDIRECT },
166 { I960_INSN_LD_INDIRECT_INDEX, I960BASE_INSN_LD_INDIRECT_INDEX, I960BASE_SFMT_LD_INDIRECT_INDEX },
167 { I960_INSN_LD_DISP, I960BASE_INSN_LD_DISP, I960BASE_SFMT_LD_DISP },
168 { I960_INSN_LD_INDIRECT_DISP, I960BASE_INSN_LD_INDIRECT_DISP, I960BASE_SFMT_LD_INDIRECT_DISP },
169 { I960_INSN_LD_INDEX_DISP, I960BASE_INSN_LD_INDEX_DISP, I960BASE_SFMT_LD_INDEX_DISP },
170 { I960_INSN_LD_INDIRECT_INDEX_DISP, I960BASE_INSN_LD_INDIRECT_INDEX_DISP, I960BASE_SFMT_LD_INDIRECT_INDEX_DISP },
171 { I960_INSN_LDOB_OFFSET, I960BASE_INSN_LDOB_OFFSET, I960BASE_SFMT_LD_OFFSET },
172 { I960_INSN_LDOB_INDIRECT_OFFSET, I960BASE_INSN_LDOB_INDIRECT_OFFSET, I960BASE_SFMT_LD_INDIRECT_OFFSET },
173 { I960_INSN_LDOB_INDIRECT, I960BASE_INSN_LDOB_INDIRECT, I960BASE_SFMT_LD_INDIRECT },
174 { I960_INSN_LDOB_INDIRECT_INDEX, I960BASE_INSN_LDOB_INDIRECT_INDEX, I960BASE_SFMT_LD_INDIRECT_INDEX },
175 { I960_INSN_LDOB_DISP, I960BASE_INSN_LDOB_DISP, I960BASE_SFMT_LD_DISP },
176 { I960_INSN_LDOB_INDIRECT_DISP, I960BASE_INSN_LDOB_INDIRECT_DISP, I960BASE_SFMT_LD_INDIRECT_DISP },
177 { I960_INSN_LDOB_INDEX_DISP, I960BASE_INSN_LDOB_INDEX_DISP, I960BASE_SFMT_LD_INDEX_DISP },
178 { I960_INSN_LDOB_INDIRECT_INDEX_DISP, I960BASE_INSN_LDOB_INDIRECT_INDEX_DISP, I960BASE_SFMT_LD_INDIRECT_INDEX_DISP },
179 { I960_INSN_LDOS_OFFSET, I960BASE_INSN_LDOS_OFFSET, I960BASE_SFMT_LD_OFFSET },
180 { I960_INSN_LDOS_INDIRECT_OFFSET, I960BASE_INSN_LDOS_INDIRECT_OFFSET, I960BASE_SFMT_LD_INDIRECT_OFFSET },
181 { I960_INSN_LDOS_INDIRECT, I960BASE_INSN_LDOS_INDIRECT, I960BASE_SFMT_LD_INDIRECT },
182 { I960_INSN_LDOS_INDIRECT_INDEX, I960BASE_INSN_LDOS_INDIRECT_INDEX, I960BASE_SFMT_LD_INDIRECT_INDEX },
183 { I960_INSN_LDOS_DISP, I960BASE_INSN_LDOS_DISP, I960BASE_SFMT_LD_DISP },
184 { I960_INSN_LDOS_INDIRECT_DISP, I960BASE_INSN_LDOS_INDIRECT_DISP, I960BASE_SFMT_LD_INDIRECT_DISP },
185 { I960_INSN_LDOS_INDEX_DISP, I960BASE_INSN_LDOS_INDEX_DISP, I960BASE_SFMT_LD_INDEX_DISP },
186 { I960_INSN_LDOS_INDIRECT_INDEX_DISP, I960BASE_INSN_LDOS_INDIRECT_INDEX_DISP, I960BASE_SFMT_LD_INDIRECT_INDEX_DISP },
187 { I960_INSN_LDIB_OFFSET, I960BASE_INSN_LDIB_OFFSET, I960BASE_SFMT_LD_OFFSET },
188 { I960_INSN_LDIB_INDIRECT_OFFSET, I960BASE_INSN_LDIB_INDIRECT_OFFSET, I960BASE_SFMT_LD_INDIRECT_OFFSET },
189 { I960_INSN_LDIB_INDIRECT, I960BASE_INSN_LDIB_INDIRECT, I960BASE_SFMT_LD_INDIRECT },
190 { I960_INSN_LDIB_INDIRECT_INDEX, I960BASE_INSN_LDIB_INDIRECT_INDEX, I960BASE_SFMT_LD_INDIRECT_INDEX },
191 { I960_INSN_LDIB_DISP, I960BASE_INSN_LDIB_DISP, I960BASE_SFMT_LD_DISP },
192 { I960_INSN_LDIB_INDIRECT_DISP, I960BASE_INSN_LDIB_INDIRECT_DISP, I960BASE_SFMT_LD_INDIRECT_DISP },
193 { I960_INSN_LDIB_INDEX_DISP, I960BASE_INSN_LDIB_INDEX_DISP, I960BASE_SFMT_LD_INDEX_DISP },
194 { I960_INSN_LDIB_INDIRECT_INDEX_DISP, I960BASE_INSN_LDIB_INDIRECT_INDEX_DISP, I960BASE_SFMT_LD_INDIRECT_INDEX_DISP },
195 { I960_INSN_LDIS_OFFSET, I960BASE_INSN_LDIS_OFFSET, I960BASE_SFMT_LD_OFFSET },
196 { I960_INSN_LDIS_INDIRECT_OFFSET, I960BASE_INSN_LDIS_INDIRECT_OFFSET, I960BASE_SFMT_LD_INDIRECT_OFFSET },
197 { I960_INSN_LDIS_INDIRECT, I960BASE_INSN_LDIS_INDIRECT, I960BASE_SFMT_LD_INDIRECT },
198 { I960_INSN_LDIS_INDIRECT_INDEX, I960BASE_INSN_LDIS_INDIRECT_INDEX, I960BASE_SFMT_LD_INDIRECT_INDEX },
199 { I960_INSN_LDIS_DISP, I960BASE_INSN_LDIS_DISP, I960BASE_SFMT_LD_DISP },
200 { I960_INSN_LDIS_INDIRECT_DISP, I960BASE_INSN_LDIS_INDIRECT_DISP, I960BASE_SFMT_LD_INDIRECT_DISP },
201 { I960_INSN_LDIS_INDEX_DISP, I960BASE_INSN_LDIS_INDEX_DISP, I960BASE_SFMT_LD_INDEX_DISP },
202 { I960_INSN_LDIS_INDIRECT_INDEX_DISP, I960BASE_INSN_LDIS_INDIRECT_INDEX_DISP, I960BASE_SFMT_LD_INDIRECT_INDEX_DISP },
203 { I960_INSN_LDL_OFFSET, I960BASE_INSN_LDL_OFFSET, I960BASE_SFMT_LDL_OFFSET },
204 { I960_INSN_LDL_INDIRECT_OFFSET, I960BASE_INSN_LDL_INDIRECT_OFFSET, I960BASE_SFMT_LDL_INDIRECT_OFFSET },
205 { I960_INSN_LDL_INDIRECT, I960BASE_INSN_LDL_INDIRECT, I960BASE_SFMT_LDL_INDIRECT },
206 { I960_INSN_LDL_INDIRECT_INDEX, I960BASE_INSN_LDL_INDIRECT_INDEX, I960BASE_SFMT_LDL_INDIRECT_INDEX },
207 { I960_INSN_LDL_DISP, I960BASE_INSN_LDL_DISP, I960BASE_SFMT_LDL_DISP },
208 { I960_INSN_LDL_INDIRECT_DISP, I960BASE_INSN_LDL_INDIRECT_DISP, I960BASE_SFMT_LDL_INDIRECT_DISP },
209 { I960_INSN_LDL_INDEX_DISP, I960BASE_INSN_LDL_INDEX_DISP, I960BASE_SFMT_LDL_INDEX_DISP },
210 { I960_INSN_LDL_INDIRECT_INDEX_DISP, I960BASE_INSN_LDL_INDIRECT_INDEX_DISP, I960BASE_SFMT_LDL_INDIRECT_INDEX_DISP },
211 { I960_INSN_LDT_OFFSET, I960BASE_INSN_LDT_OFFSET, I960BASE_SFMT_LDT_OFFSET },
212 { I960_INSN_LDT_INDIRECT_OFFSET, I960BASE_INSN_LDT_INDIRECT_OFFSET, I960BASE_SFMT_LDT_INDIRECT_OFFSET },
213 { I960_INSN_LDT_INDIRECT, I960BASE_INSN_LDT_INDIRECT, I960BASE_SFMT_LDT_INDIRECT },
214 { I960_INSN_LDT_INDIRECT_INDEX, I960BASE_INSN_LDT_INDIRECT_INDEX, I960BASE_SFMT_LDT_INDIRECT_INDEX },
215 { I960_INSN_LDT_DISP, I960BASE_INSN_LDT_DISP, I960BASE_SFMT_LDT_DISP },
216 { I960_INSN_LDT_INDIRECT_DISP, I960BASE_INSN_LDT_INDIRECT_DISP, I960BASE_SFMT_LDT_INDIRECT_DISP },
217 { I960_INSN_LDT_INDEX_DISP, I960BASE_INSN_LDT_INDEX_DISP, I960BASE_SFMT_LDT_INDEX_DISP },
218 { I960_INSN_LDT_INDIRECT_INDEX_DISP, I960BASE_INSN_LDT_INDIRECT_INDEX_DISP, I960BASE_SFMT_LDT_INDIRECT_INDEX_DISP },
219 { I960_INSN_LDQ_OFFSET, I960BASE_INSN_LDQ_OFFSET, I960BASE_SFMT_LDQ_OFFSET },
220 { I960_INSN_LDQ_INDIRECT_OFFSET, I960BASE_INSN_LDQ_INDIRECT_OFFSET, I960BASE_SFMT_LDQ_INDIRECT_OFFSET },
221 { I960_INSN_LDQ_INDIRECT, I960BASE_INSN_LDQ_INDIRECT, I960BASE_SFMT_LDQ_INDIRECT },
222 { I960_INSN_LDQ_INDIRECT_INDEX, I960BASE_INSN_LDQ_INDIRECT_INDEX, I960BASE_SFMT_LDQ_INDIRECT_INDEX },
223 { I960_INSN_LDQ_DISP, I960BASE_INSN_LDQ_DISP, I960BASE_SFMT_LDQ_DISP },
224 { I960_INSN_LDQ_INDIRECT_DISP, I960BASE_INSN_LDQ_INDIRECT_DISP, I960BASE_SFMT_LDQ_INDIRECT_DISP },
225 { I960_INSN_LDQ_INDEX_DISP, I960BASE_INSN_LDQ_INDEX_DISP, I960BASE_SFMT_LDQ_INDEX_DISP },
226 { I960_INSN_LDQ_INDIRECT_INDEX_DISP, I960BASE_INSN_LDQ_INDIRECT_INDEX_DISP, I960BASE_SFMT_LDQ_INDIRECT_INDEX_DISP },
227 { I960_INSN_ST_OFFSET, I960BASE_INSN_ST_OFFSET, I960BASE_SFMT_ST_OFFSET },
228 { I960_INSN_ST_INDIRECT_OFFSET, I960BASE_INSN_ST_INDIRECT_OFFSET, I960BASE_SFMT_ST_INDIRECT_OFFSET },
229 { I960_INSN_ST_INDIRECT, I960BASE_INSN_ST_INDIRECT, I960BASE_SFMT_ST_INDIRECT },
230 { I960_INSN_ST_INDIRECT_INDEX, I960BASE_INSN_ST_INDIRECT_INDEX, I960BASE_SFMT_ST_INDIRECT_INDEX },
231 { I960_INSN_ST_DISP, I960BASE_INSN_ST_DISP, I960BASE_SFMT_ST_DISP },
232 { I960_INSN_ST_INDIRECT_DISP, I960BASE_INSN_ST_INDIRECT_DISP, I960BASE_SFMT_ST_INDIRECT_DISP },
233 { I960_INSN_ST_INDEX_DISP, I960BASE_INSN_ST_INDEX_DISP, I960BASE_SFMT_ST_INDEX_DISP },
234 { I960_INSN_ST_INDIRECT_INDEX_DISP, I960BASE_INSN_ST_INDIRECT_INDEX_DISP, I960BASE_SFMT_ST_INDIRECT_INDEX_DISP },
235 { I960_INSN_STOB_OFFSET, I960BASE_INSN_STOB_OFFSET, I960BASE_SFMT_ST_OFFSET },
236 { I960_INSN_STOB_INDIRECT_OFFSET, I960BASE_INSN_STOB_INDIRECT_OFFSET, I960BASE_SFMT_ST_INDIRECT_OFFSET },
237 { I960_INSN_STOB_INDIRECT, I960BASE_INSN_STOB_INDIRECT, I960BASE_SFMT_ST_INDIRECT },
238 { I960_INSN_STOB_INDIRECT_INDEX, I960BASE_INSN_STOB_INDIRECT_INDEX, I960BASE_SFMT_ST_INDIRECT_INDEX },
239 { I960_INSN_STOB_DISP, I960BASE_INSN_STOB_DISP, I960BASE_SFMT_ST_DISP },
240 { I960_INSN_STOB_INDIRECT_DISP, I960BASE_INSN_STOB_INDIRECT_DISP, I960BASE_SFMT_ST_INDIRECT_DISP },
241 { I960_INSN_STOB_INDEX_DISP, I960BASE_INSN_STOB_INDEX_DISP, I960BASE_SFMT_ST_INDEX_DISP },
242 { I960_INSN_STOB_INDIRECT_INDEX_DISP, I960BASE_INSN_STOB_INDIRECT_INDEX_DISP, I960BASE_SFMT_ST_INDIRECT_INDEX_DISP },
243 { I960_INSN_STOS_OFFSET, I960BASE_INSN_STOS_OFFSET, I960BASE_SFMT_ST_OFFSET },
244 { I960_INSN_STOS_INDIRECT_OFFSET, I960BASE_INSN_STOS_INDIRECT_OFFSET, I960BASE_SFMT_ST_INDIRECT_OFFSET },
245 { I960_INSN_STOS_INDIRECT, I960BASE_INSN_STOS_INDIRECT, I960BASE_SFMT_ST_INDIRECT },
246 { I960_INSN_STOS_INDIRECT_INDEX, I960BASE_INSN_STOS_INDIRECT_INDEX, I960BASE_SFMT_ST_INDIRECT_INDEX },
247 { I960_INSN_STOS_DISP, I960BASE_INSN_STOS_DISP, I960BASE_SFMT_ST_DISP },
248 { I960_INSN_STOS_INDIRECT_DISP, I960BASE_INSN_STOS_INDIRECT_DISP, I960BASE_SFMT_ST_INDIRECT_DISP },
249 { I960_INSN_STOS_INDEX_DISP, I960BASE_INSN_STOS_INDEX_DISP, I960BASE_SFMT_ST_INDEX_DISP },
250 { I960_INSN_STOS_INDIRECT_INDEX_DISP, I960BASE_INSN_STOS_INDIRECT_INDEX_DISP, I960BASE_SFMT_ST_INDIRECT_INDEX_DISP },
251 { I960_INSN_STL_OFFSET, I960BASE_INSN_STL_OFFSET, I960BASE_SFMT_STL_OFFSET },
252 { I960_INSN_STL_INDIRECT_OFFSET, I960BASE_INSN_STL_INDIRECT_OFFSET, I960BASE_SFMT_STL_INDIRECT_OFFSET },
253 { I960_INSN_STL_INDIRECT, I960BASE_INSN_STL_INDIRECT, I960BASE_SFMT_STL_INDIRECT },
254 { I960_INSN_STL_INDIRECT_INDEX, I960BASE_INSN_STL_INDIRECT_INDEX, I960BASE_SFMT_STL_INDIRECT_INDEX },
255 { I960_INSN_STL_DISP, I960BASE_INSN_STL_DISP, I960BASE_SFMT_STL_DISP },
256 { I960_INSN_STL_INDIRECT_DISP, I960BASE_INSN_STL_INDIRECT_DISP, I960BASE_SFMT_STL_INDIRECT_DISP },
257 { I960_INSN_STL_INDEX_DISP, I960BASE_INSN_STL_INDEX_DISP, I960BASE_SFMT_STL_INDEX_DISP },
258 { I960_INSN_STL_INDIRECT_INDEX_DISP, I960BASE_INSN_STL_INDIRECT_INDEX_DISP, I960BASE_SFMT_STL_INDIRECT_INDEX_DISP },
259 { I960_INSN_STT_OFFSET, I960BASE_INSN_STT_OFFSET, I960BASE_SFMT_STT_OFFSET },
260 { I960_INSN_STT_INDIRECT_OFFSET, I960BASE_INSN_STT_INDIRECT_OFFSET, I960BASE_SFMT_STT_INDIRECT_OFFSET },
261 { I960_INSN_STT_INDIRECT, I960BASE_INSN_STT_INDIRECT, I960BASE_SFMT_STT_INDIRECT },
262 { I960_INSN_STT_INDIRECT_INDEX, I960BASE_INSN_STT_INDIRECT_INDEX, I960BASE_SFMT_STT_INDIRECT_INDEX },
263 { I960_INSN_STT_DISP, I960BASE_INSN_STT_DISP, I960BASE_SFMT_STT_DISP },
264 { I960_INSN_STT_INDIRECT_DISP, I960BASE_INSN_STT_INDIRECT_DISP, I960BASE_SFMT_STT_INDIRECT_DISP },
265 { I960_INSN_STT_INDEX_DISP, I960BASE_INSN_STT_INDEX_DISP, I960BASE_SFMT_STT_INDEX_DISP },
266 { I960_INSN_STT_INDIRECT_INDEX_DISP, I960BASE_INSN_STT_INDIRECT_INDEX_DISP, I960BASE_SFMT_STT_INDIRECT_INDEX_DISP },
267 { I960_INSN_STQ_OFFSET, I960BASE_INSN_STQ_OFFSET, I960BASE_SFMT_STQ_OFFSET },
268 { I960_INSN_STQ_INDIRECT_OFFSET, I960BASE_INSN_STQ_INDIRECT_OFFSET, I960BASE_SFMT_STQ_INDIRECT_OFFSET },
269 { I960_INSN_STQ_INDIRECT, I960BASE_INSN_STQ_INDIRECT, I960BASE_SFMT_STQ_INDIRECT },
270 { I960_INSN_STQ_INDIRECT_INDEX, I960BASE_INSN_STQ_INDIRECT_INDEX, I960BASE_SFMT_STQ_INDIRECT_INDEX },
271 { I960_INSN_STQ_DISP, I960BASE_INSN_STQ_DISP, I960BASE_SFMT_STQ_DISP },
272 { I960_INSN_STQ_INDIRECT_DISP, I960BASE_INSN_STQ_INDIRECT_DISP, I960BASE_SFMT_STQ_INDIRECT_DISP },
273 { I960_INSN_STQ_INDEX_DISP, I960BASE_INSN_STQ_INDEX_DISP, I960BASE_SFMT_STQ_INDEX_DISP },
274 { I960_INSN_STQ_INDIRECT_INDEX_DISP, I960BASE_INSN_STQ_INDIRECT_INDEX_DISP, I960BASE_SFMT_STQ_INDIRECT_INDEX_DISP },
275 { I960_INSN_CMPOBE_REG, I960BASE_INSN_CMPOBE_REG, I960BASE_SFMT_CMPOBE_REG },
276 { I960_INSN_CMPOBE_LIT, I960BASE_INSN_CMPOBE_LIT, I960BASE_SFMT_CMPOBE_LIT },
277 { I960_INSN_CMPOBNE_REG, I960BASE_INSN_CMPOBNE_REG, I960BASE_SFMT_CMPOBE_REG },
278 { I960_INSN_CMPOBNE_LIT, I960BASE_INSN_CMPOBNE_LIT, I960BASE_SFMT_CMPOBE_LIT },
279 { I960_INSN_CMPOBL_REG, I960BASE_INSN_CMPOBL_REG, I960BASE_SFMT_CMPOBL_REG },
280 { I960_INSN_CMPOBL_LIT, I960BASE_INSN_CMPOBL_LIT, I960BASE_SFMT_CMPOBL_LIT },
281 { I960_INSN_CMPOBLE_REG, I960BASE_INSN_CMPOBLE_REG, I960BASE_SFMT_CMPOBL_REG },
282 { I960_INSN_CMPOBLE_LIT, I960BASE_INSN_CMPOBLE_LIT, I960BASE_SFMT_CMPOBL_LIT },
283 { I960_INSN_CMPOBG_REG, I960BASE_INSN_CMPOBG_REG, I960BASE_SFMT_CMPOBL_REG },
284 { I960_INSN_CMPOBG_LIT, I960BASE_INSN_CMPOBG_LIT, I960BASE_SFMT_CMPOBL_LIT },
285 { I960_INSN_CMPOBGE_REG, I960BASE_INSN_CMPOBGE_REG, I960BASE_SFMT_CMPOBL_REG },
286 { I960_INSN_CMPOBGE_LIT, I960BASE_INSN_CMPOBGE_LIT, I960BASE_SFMT_CMPOBL_LIT },
287 { I960_INSN_CMPIBE_REG, I960BASE_INSN_CMPIBE_REG, I960BASE_SFMT_CMPOBE_REG },
288 { I960_INSN_CMPIBE_LIT, I960BASE_INSN_CMPIBE_LIT, I960BASE_SFMT_CMPOBE_LIT },
289 { I960_INSN_CMPIBNE_REG, I960BASE_INSN_CMPIBNE_REG, I960BASE_SFMT_CMPOBE_REG },
290 { I960_INSN_CMPIBNE_LIT, I960BASE_INSN_CMPIBNE_LIT, I960BASE_SFMT_CMPOBE_LIT },
291 { I960_INSN_CMPIBL_REG, I960BASE_INSN_CMPIBL_REG, I960BASE_SFMT_CMPOBE_REG },
292 { I960_INSN_CMPIBL_LIT, I960BASE_INSN_CMPIBL_LIT, I960BASE_SFMT_CMPOBE_LIT },
293 { I960_INSN_CMPIBLE_REG, I960BASE_INSN_CMPIBLE_REG, I960BASE_SFMT_CMPOBE_REG },
294 { I960_INSN_CMPIBLE_LIT, I960BASE_INSN_CMPIBLE_LIT, I960BASE_SFMT_CMPOBE_LIT },
295 { I960_INSN_CMPIBG_REG, I960BASE_INSN_CMPIBG_REG, I960BASE_SFMT_CMPOBE_REG },
296 { I960_INSN_CMPIBG_LIT, I960BASE_INSN_CMPIBG_LIT, I960BASE_SFMT_CMPOBE_LIT },
297 { I960_INSN_CMPIBGE_REG, I960BASE_INSN_CMPIBGE_REG, I960BASE_SFMT_CMPOBE_REG },
298 { I960_INSN_CMPIBGE_LIT, I960BASE_INSN_CMPIBGE_LIT, I960BASE_SFMT_CMPOBE_LIT },
299 { I960_INSN_BBC_REG, I960BASE_INSN_BBC_REG, I960BASE_SFMT_BBC_REG },
300 { I960_INSN_BBC_LIT, I960BASE_INSN_BBC_LIT, I960BASE_SFMT_BBC_LIT },
301 { I960_INSN_BBS_REG, I960BASE_INSN_BBS_REG, I960BASE_SFMT_BBC_REG },
302 { I960_INSN_BBS_LIT, I960BASE_INSN_BBS_LIT, I960BASE_SFMT_BBC_LIT },
303 { I960_INSN_CMPI, I960BASE_INSN_CMPI, I960BASE_SFMT_CMPI },
304 { I960_INSN_CMPI1, I960BASE_INSN_CMPI1, I960BASE_SFMT_CMPI1 },
305 { I960_INSN_CMPI2, I960BASE_INSN_CMPI2, I960BASE_SFMT_CMPI2 },
306 { I960_INSN_CMPI3, I960BASE_INSN_CMPI3, I960BASE_SFMT_CMPI3 },
307 { I960_INSN_CMPO, I960BASE_INSN_CMPO, I960BASE_SFMT_CMPO },
308 { I960_INSN_CMPO1, I960BASE_INSN_CMPO1, I960BASE_SFMT_CMPO1 },
309 { I960_INSN_CMPO2, I960BASE_INSN_CMPO2, I960BASE_SFMT_CMPO2 },
310 { I960_INSN_CMPO3, I960BASE_INSN_CMPO3, I960BASE_SFMT_CMPO3 },
311 { I960_INSN_TESTNO_REG, I960BASE_INSN_TESTNO_REG, I960BASE_SFMT_TESTNO_REG },
312 { I960_INSN_TESTG_REG, I960BASE_INSN_TESTG_REG, I960BASE_SFMT_TESTNO_REG },
313 { I960_INSN_TESTE_REG, I960BASE_INSN_TESTE_REG, I960BASE_SFMT_TESTNO_REG },
314 { I960_INSN_TESTGE_REG, I960BASE_INSN_TESTGE_REG, I960BASE_SFMT_TESTNO_REG },
315 { I960_INSN_TESTL_REG, I960BASE_INSN_TESTL_REG, I960BASE_SFMT_TESTNO_REG },
316 { I960_INSN_TESTNE_REG, I960BASE_INSN_TESTNE_REG, I960BASE_SFMT_TESTNO_REG },
317 { I960_INSN_TESTLE_REG, I960BASE_INSN_TESTLE_REG, I960BASE_SFMT_TESTNO_REG },
318 { I960_INSN_TESTO_REG, I960BASE_INSN_TESTO_REG, I960BASE_SFMT_TESTNO_REG },
319 { I960_INSN_BNO, I960BASE_INSN_BNO, I960BASE_SFMT_BNO },
320 { I960_INSN_BG, I960BASE_INSN_BG, I960BASE_SFMT_BNO },
321 { I960_INSN_BE, I960BASE_INSN_BE, I960BASE_SFMT_BNO },
322 { I960_INSN_BGE, I960BASE_INSN_BGE, I960BASE_SFMT_BNO },
323 { I960_INSN_BL, I960BASE_INSN_BL, I960BASE_SFMT_BNO },
324 { I960_INSN_BNE, I960BASE_INSN_BNE, I960BASE_SFMT_BNO },
325 { I960_INSN_BLE, I960BASE_INSN_BLE, I960BASE_SFMT_BNO },
326 { I960_INSN_BO, I960BASE_INSN_BO, I960BASE_SFMT_BNO },
327 { I960_INSN_B, I960BASE_INSN_B, I960BASE_SFMT_B },
328 { I960_INSN_BX_INDIRECT_OFFSET, I960BASE_INSN_BX_INDIRECT_OFFSET, I960BASE_SFMT_BX_INDIRECT_OFFSET },
329 { I960_INSN_BX_INDIRECT, I960BASE_INSN_BX_INDIRECT, I960BASE_SFMT_BX_INDIRECT },
330 { I960_INSN_BX_INDIRECT_INDEX, I960BASE_INSN_BX_INDIRECT_INDEX, I960BASE_SFMT_BX_INDIRECT_INDEX },
331 { I960_INSN_BX_DISP, I960BASE_INSN_BX_DISP, I960BASE_SFMT_BX_DISP },
332 { I960_INSN_BX_INDIRECT_DISP, I960BASE_INSN_BX_INDIRECT_DISP, I960BASE_SFMT_BX_INDIRECT_DISP },
333 { I960_INSN_CALLX_DISP, I960BASE_INSN_CALLX_DISP, I960BASE_SFMT_CALLX_DISP },
334 { I960_INSN_CALLX_INDIRECT, I960BASE_INSN_CALLX_INDIRECT, I960BASE_SFMT_CALLX_INDIRECT },
335 { I960_INSN_CALLX_INDIRECT_OFFSET, I960BASE_INSN_CALLX_INDIRECT_OFFSET, I960BASE_SFMT_CALLX_INDIRECT_OFFSET },
336 { I960_INSN_RET, I960BASE_INSN_RET, I960BASE_SFMT_RET },
337 { I960_INSN_CALLS, I960BASE_INSN_CALLS, I960BASE_SFMT_CALLS },
338 { I960_INSN_FMARK, I960BASE_INSN_FMARK, I960BASE_SFMT_FMARK },
339 { I960_INSN_FLUSHREG, I960BASE_INSN_FLUSHREG, I960BASE_SFMT_FLUSHREG },
340 };
341
342 static const struct insn_sem i960base_insn_sem_invalid = {
343 VIRTUAL_INSN_X_INVALID, I960BASE_INSN_X_INVALID, I960BASE_SFMT_EMPTY
344 };
345
346 /* Initialize an IDESC from the compile-time computable parts. */
347
348 static INLINE void
349 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
350 {
351 const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
352
353 id->num = t->index;
354 id->sfmt = t->sfmt;
355 if ((int) t->type <= 0)
356 id->idata = & cgen_virtual_insn_table[- (int) t->type];
357 else
358 id->idata = & insn_table[t->type];
359 id->attrs = CGEN_INSN_ATTRS (id->idata);
360 /* Oh my god, a magic number. */
361 id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
362
363 #if WITH_PROFILE_MODEL_P
364 id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
365 {
366 SIM_DESC sd = CPU_STATE (cpu);
367 SIM_ASSERT (t->index == id->timing->num);
368 }
369 #endif
370
371 /* Semantic pointers are initialized elsewhere. */
372 }
373
374 /* Initialize the instruction descriptor table. */
375
376 void
377 i960base_init_idesc_table (SIM_CPU *cpu)
378 {
379 IDESC *id,*tabend;
380 const struct insn_sem *t,*tend;
381 int tabsize = I960BASE_INSN_MAX;
382 IDESC *table = i960base_insn_data;
383
384 memset (table, 0, tabsize * sizeof (IDESC));
385
386 /* First set all entries to the `invalid insn'. */
387 t = & i960base_insn_sem_invalid;
388 for (id = table, tabend = table + tabsize; id < tabend; ++id)
389 init_idesc (cpu, id, t);
390
391 /* Now fill in the values for the chosen cpu. */
392 for (t = i960base_insn_sem, tend = t + sizeof (i960base_insn_sem) / sizeof (*t);
393 t != tend; ++t)
394 {
395 init_idesc (cpu, & table[t->index], t);
396 }
397
398 /* Link the IDESC table into the cpu. */
399 CPU_IDESC (cpu) = table;
400 }
401
402 /* Given an instruction, return a pointer to its IDESC entry. */
403
404 const IDESC *
405 i960base_decode (SIM_CPU *current_cpu, IADDR pc,
406 CGEN_INSN_INT base_insn,
407 ARGBUF *abuf)
408 {
409 /* Result of decoder. */
410 I960BASE_INSN_TYPE itype;
411
412 {
413 CGEN_INSN_INT insn = base_insn;
414
415 {
416 unsigned int val = (((insn >> 24) & (255 << 0)));
417 switch (val)
418 {
419 case 8 : itype = I960BASE_INSN_B; goto extract_sfmt_b;
420 case 10 : itype = I960BASE_INSN_RET; goto extract_sfmt_ret;
421 case 16 : itype = I960BASE_INSN_BNO; goto extract_sfmt_bno;
422 case 17 : itype = I960BASE_INSN_BG; goto extract_sfmt_bno;
423 case 18 : itype = I960BASE_INSN_BE; goto extract_sfmt_bno;
424 case 19 : itype = I960BASE_INSN_BGE; goto extract_sfmt_bno;
425 case 20 : itype = I960BASE_INSN_BL; goto extract_sfmt_bno;
426 case 21 : itype = I960BASE_INSN_BNE; goto extract_sfmt_bno;
427 case 22 : itype = I960BASE_INSN_BLE; goto extract_sfmt_bno;
428 case 23 : itype = I960BASE_INSN_BO; goto extract_sfmt_bno;
429 case 32 : itype = I960BASE_INSN_TESTNO_REG; goto extract_sfmt_testno_reg;
430 case 33 : itype = I960BASE_INSN_TESTG_REG; goto extract_sfmt_testno_reg;
431 case 34 : itype = I960BASE_INSN_TESTE_REG; goto extract_sfmt_testno_reg;
432 case 35 : itype = I960BASE_INSN_TESTGE_REG; goto extract_sfmt_testno_reg;
433 case 36 : itype = I960BASE_INSN_TESTL_REG; goto extract_sfmt_testno_reg;
434 case 37 : itype = I960BASE_INSN_TESTNE_REG; goto extract_sfmt_testno_reg;
435 case 38 : itype = I960BASE_INSN_TESTLE_REG; goto extract_sfmt_testno_reg;
436 case 39 : itype = I960BASE_INSN_TESTO_REG; goto extract_sfmt_testno_reg;
437 case 48 :
438 {
439 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
440 switch (val)
441 {
442 case 0 : itype = I960BASE_INSN_BBC_REG; goto extract_sfmt_bbc_reg;
443 case 4 : itype = I960BASE_INSN_BBC_LIT; goto extract_sfmt_bbc_lit;
444 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
445 }
446 }
447 case 49 :
448 {
449 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
450 switch (val)
451 {
452 case 0 : itype = I960BASE_INSN_CMPOBG_REG; goto extract_sfmt_cmpobl_reg;
453 case 4 : itype = I960BASE_INSN_CMPOBG_LIT; goto extract_sfmt_cmpobl_lit;
454 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
455 }
456 }
457 case 50 :
458 {
459 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
460 switch (val)
461 {
462 case 0 : itype = I960BASE_INSN_CMPOBE_REG; goto extract_sfmt_cmpobe_reg;
463 case 4 : itype = I960BASE_INSN_CMPOBE_LIT; goto extract_sfmt_cmpobe_lit;
464 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
465 }
466 }
467 case 51 :
468 {
469 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
470 switch (val)
471 {
472 case 0 : itype = I960BASE_INSN_CMPOBGE_REG; goto extract_sfmt_cmpobl_reg;
473 case 4 : itype = I960BASE_INSN_CMPOBGE_LIT; goto extract_sfmt_cmpobl_lit;
474 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
475 }
476 }
477 case 52 :
478 {
479 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
480 switch (val)
481 {
482 case 0 : itype = I960BASE_INSN_CMPOBL_REG; goto extract_sfmt_cmpobl_reg;
483 case 4 : itype = I960BASE_INSN_CMPOBL_LIT; goto extract_sfmt_cmpobl_lit;
484 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
485 }
486 }
487 case 53 :
488 {
489 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
490 switch (val)
491 {
492 case 0 : itype = I960BASE_INSN_CMPOBNE_REG; goto extract_sfmt_cmpobe_reg;
493 case 4 : itype = I960BASE_INSN_CMPOBNE_LIT; goto extract_sfmt_cmpobe_lit;
494 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
495 }
496 }
497 case 54 :
498 {
499 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
500 switch (val)
501 {
502 case 0 : itype = I960BASE_INSN_CMPOBLE_REG; goto extract_sfmt_cmpobl_reg;
503 case 4 : itype = I960BASE_INSN_CMPOBLE_LIT; goto extract_sfmt_cmpobl_lit;
504 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
505 }
506 }
507 case 55 :
508 {
509 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
510 switch (val)
511 {
512 case 0 : itype = I960BASE_INSN_BBS_REG; goto extract_sfmt_bbc_reg;
513 case 4 : itype = I960BASE_INSN_BBS_LIT; goto extract_sfmt_bbc_lit;
514 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
515 }
516 }
517 case 57 :
518 {
519 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
520 switch (val)
521 {
522 case 0 : itype = I960BASE_INSN_CMPIBG_REG; goto extract_sfmt_cmpobe_reg;
523 case 4 : itype = I960BASE_INSN_CMPIBG_LIT; goto extract_sfmt_cmpobe_lit;
524 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
525 }
526 }
527 case 58 :
528 {
529 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
530 switch (val)
531 {
532 case 0 : itype = I960BASE_INSN_CMPIBE_REG; goto extract_sfmt_cmpobe_reg;
533 case 4 : itype = I960BASE_INSN_CMPIBE_LIT; goto extract_sfmt_cmpobe_lit;
534 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
535 }
536 }
537 case 59 :
538 {
539 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
540 switch (val)
541 {
542 case 0 : itype = I960BASE_INSN_CMPIBGE_REG; goto extract_sfmt_cmpobe_reg;
543 case 4 : itype = I960BASE_INSN_CMPIBGE_LIT; goto extract_sfmt_cmpobe_lit;
544 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
545 }
546 }
547 case 60 :
548 {
549 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
550 switch (val)
551 {
552 case 0 : itype = I960BASE_INSN_CMPIBL_REG; goto extract_sfmt_cmpobe_reg;
553 case 4 : itype = I960BASE_INSN_CMPIBL_LIT; goto extract_sfmt_cmpobe_lit;
554 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
555 }
556 }
557 case 61 :
558 {
559 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
560 switch (val)
561 {
562 case 0 : itype = I960BASE_INSN_CMPIBNE_REG; goto extract_sfmt_cmpobe_reg;
563 case 4 : itype = I960BASE_INSN_CMPIBNE_LIT; goto extract_sfmt_cmpobe_lit;
564 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
565 }
566 }
567 case 62 :
568 {
569 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
570 switch (val)
571 {
572 case 0 : itype = I960BASE_INSN_CMPIBLE_REG; goto extract_sfmt_cmpobe_reg;
573 case 4 : itype = I960BASE_INSN_CMPIBLE_LIT; goto extract_sfmt_cmpobe_lit;
574 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
575 }
576 }
577 case 88 :
578 {
579 unsigned int val = (((insn >> 10) & (15 << 0)));
580 switch (val)
581 {
582 case 0 :
583 {
584 unsigned int val = (((insn >> 6) & (15 << 0)));
585 switch (val)
586 {
587 case 0 : itype = I960BASE_INSN_NOTBIT; goto extract_sfmt_notbit;
588 case 2 : itype = I960BASE_INSN_AND; goto extract_sfmt_mulo;
589 case 4 : itype = I960BASE_INSN_ANDNOT; goto extract_sfmt_mulo;
590 case 6 : itype = I960BASE_INSN_SETBIT; goto extract_sfmt_notbit;
591 case 8 : itype = I960BASE_INSN_NOTAND; goto extract_sfmt_mulo;
592 case 12 : itype = I960BASE_INSN_XOR; goto extract_sfmt_mulo;
593 case 14 : itype = I960BASE_INSN_OR; goto extract_sfmt_mulo;
594 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
595 }
596 }
597 case 1 :
598 {
599 unsigned int val = (((insn >> 6) & (15 << 0)));
600 switch (val)
601 {
602 case 0 : itype = I960BASE_INSN_NOR; goto extract_sfmt_mulo;
603 case 2 : itype = I960BASE_INSN_XNOR; goto extract_sfmt_mulo;
604 case 4 : itype = I960BASE_INSN_NOT; goto extract_sfmt_not;
605 case 6 : itype = I960BASE_INSN_ORNOT; goto extract_sfmt_mulo;
606 case 8 : itype = I960BASE_INSN_CLRBIT; goto extract_sfmt_notbit;
607 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
608 }
609 }
610 case 2 :
611 {
612 unsigned int val = (((insn >> 6) & (15 << 0)));
613 switch (val)
614 {
615 case 0 : itype = I960BASE_INSN_NOTBIT1; goto extract_sfmt_notbit1;
616 case 2 : itype = I960BASE_INSN_AND1; goto extract_sfmt_mulo1;
617 case 4 : itype = I960BASE_INSN_ANDNOT1; goto extract_sfmt_mulo1;
618 case 6 : itype = I960BASE_INSN_SETBIT1; goto extract_sfmt_notbit1;
619 case 8 : itype = I960BASE_INSN_NOTAND1; goto extract_sfmt_mulo1;
620 case 12 : itype = I960BASE_INSN_XOR1; goto extract_sfmt_mulo1;
621 case 14 : itype = I960BASE_INSN_OR1; goto extract_sfmt_mulo1;
622 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
623 }
624 }
625 case 3 :
626 {
627 unsigned int val = (((insn >> 6) & (15 << 0)));
628 switch (val)
629 {
630 case 0 : itype = I960BASE_INSN_NOR1; goto extract_sfmt_mulo1;
631 case 2 : itype = I960BASE_INSN_XNOR1; goto extract_sfmt_mulo1;
632 case 4 : itype = I960BASE_INSN_NOT1; goto extract_sfmt_not1;
633 case 6 : itype = I960BASE_INSN_ORNOT1; goto extract_sfmt_mulo1;
634 case 8 : itype = I960BASE_INSN_CLRBIT1; goto extract_sfmt_notbit1;
635 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
636 }
637 }
638 case 4 :
639 {
640 unsigned int val = (((insn >> 6) & (15 << 0)));
641 switch (val)
642 {
643 case 0 : itype = I960BASE_INSN_NOTBIT2; goto extract_sfmt_notbit2;
644 case 2 : itype = I960BASE_INSN_AND2; goto extract_sfmt_mulo2;
645 case 4 : itype = I960BASE_INSN_ANDNOT2; goto extract_sfmt_mulo2;
646 case 6 : itype = I960BASE_INSN_SETBIT2; goto extract_sfmt_notbit2;
647 case 8 : itype = I960BASE_INSN_NOTAND2; goto extract_sfmt_mulo2;
648 case 12 : itype = I960BASE_INSN_XOR2; goto extract_sfmt_mulo2;
649 case 14 : itype = I960BASE_INSN_OR2; goto extract_sfmt_mulo2;
650 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
651 }
652 }
653 case 5 :
654 {
655 unsigned int val = (((insn >> 6) & (15 << 0)));
656 switch (val)
657 {
658 case 0 : itype = I960BASE_INSN_NOR2; goto extract_sfmt_mulo2;
659 case 2 : itype = I960BASE_INSN_XNOR2; goto extract_sfmt_mulo2;
660 case 4 : itype = I960BASE_INSN_NOT2; goto extract_sfmt_not;
661 case 6 : itype = I960BASE_INSN_ORNOT2; goto extract_sfmt_mulo2;
662 case 8 : itype = I960BASE_INSN_CLRBIT2; goto extract_sfmt_notbit2;
663 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
664 }
665 }
666 case 6 :
667 {
668 unsigned int val = (((insn >> 6) & (15 << 0)));
669 switch (val)
670 {
671 case 0 : itype = I960BASE_INSN_NOTBIT3; goto extract_sfmt_notbit3;
672 case 2 : itype = I960BASE_INSN_AND3; goto extract_sfmt_mulo3;
673 case 4 : itype = I960BASE_INSN_ANDNOT3; goto extract_sfmt_mulo3;
674 case 6 : itype = I960BASE_INSN_SETBIT3; goto extract_sfmt_notbit3;
675 case 8 : itype = I960BASE_INSN_NOTAND3; goto extract_sfmt_mulo3;
676 case 12 : itype = I960BASE_INSN_XOR3; goto extract_sfmt_mulo3;
677 case 14 : itype = I960BASE_INSN_OR3; goto extract_sfmt_mulo3;
678 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
679 }
680 }
681 case 7 :
682 {
683 unsigned int val = (((insn >> 6) & (15 << 0)));
684 switch (val)
685 {
686 case 0 : itype = I960BASE_INSN_NOR3; goto extract_sfmt_mulo3;
687 case 2 : itype = I960BASE_INSN_XNOR3; goto extract_sfmt_mulo3;
688 case 4 : itype = I960BASE_INSN_NOT3; goto extract_sfmt_not1;
689 case 6 : itype = I960BASE_INSN_ORNOT3; goto extract_sfmt_mulo3;
690 case 8 : itype = I960BASE_INSN_CLRBIT3; goto extract_sfmt_notbit3;
691 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
692 }
693 }
694 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
695 }
696 }
697 case 89 :
698 {
699 unsigned int val = (((insn >> 10) & (15 << 0)));
700 switch (val)
701 {
702 case 0 :
703 {
704 unsigned int val = (((insn >> 6) & (15 << 0)));
705 switch (val)
706 {
707 case 0 : itype = I960BASE_INSN_ADDO; goto extract_sfmt_mulo;
708 case 4 : itype = I960BASE_INSN_SUBO; goto extract_sfmt_mulo;
709 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
710 }
711 }
712 case 1 :
713 {
714 unsigned int val = (((insn >> 6) & (15 << 0)));
715 switch (val)
716 {
717 case 0 : itype = I960BASE_INSN_SHRO; goto extract_sfmt_shlo;
718 case 6 : itype = I960BASE_INSN_SHRI; goto extract_sfmt_shlo;
719 case 8 : itype = I960BASE_INSN_SHLO; goto extract_sfmt_shlo;
720 case 12 : itype = I960BASE_INSN_SHLI; goto extract_sfmt_shlo;
721 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
722 }
723 }
724 case 2 :
725 {
726 unsigned int val = (((insn >> 6) & (15 << 0)));
727 switch (val)
728 {
729 case 0 : itype = I960BASE_INSN_ADDO1; goto extract_sfmt_mulo1;
730 case 4 : itype = I960BASE_INSN_SUBO1; goto extract_sfmt_mulo1;
731 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
732 }
733 }
734 case 3 :
735 {
736 unsigned int val = (((insn >> 6) & (15 << 0)));
737 switch (val)
738 {
739 case 0 : itype = I960BASE_INSN_SHRO1; goto extract_sfmt_shlo1;
740 case 6 : itype = I960BASE_INSN_SHRI1; goto extract_sfmt_shlo1;
741 case 8 : itype = I960BASE_INSN_SHLO1; goto extract_sfmt_shlo1;
742 case 12 : itype = I960BASE_INSN_SHLI1; goto extract_sfmt_shlo1;
743 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
744 }
745 }
746 case 4 :
747 {
748 unsigned int val = (((insn >> 6) & (15 << 0)));
749 switch (val)
750 {
751 case 0 : itype = I960BASE_INSN_ADDO2; goto extract_sfmt_mulo2;
752 case 4 : itype = I960BASE_INSN_SUBO2; goto extract_sfmt_mulo2;
753 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
754 }
755 }
756 case 5 :
757 {
758 unsigned int val = (((insn >> 6) & (15 << 0)));
759 switch (val)
760 {
761 case 0 : itype = I960BASE_INSN_SHRO2; goto extract_sfmt_shlo2;
762 case 6 : itype = I960BASE_INSN_SHRI2; goto extract_sfmt_shlo2;
763 case 8 : itype = I960BASE_INSN_SHLO2; goto extract_sfmt_shlo2;
764 case 12 : itype = I960BASE_INSN_SHLI2; goto extract_sfmt_shlo2;
765 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
766 }
767 }
768 case 6 :
769 {
770 unsigned int val = (((insn >> 6) & (15 << 0)));
771 switch (val)
772 {
773 case 0 : itype = I960BASE_INSN_ADDO3; goto extract_sfmt_mulo3;
774 case 4 : itype = I960BASE_INSN_SUBO3; goto extract_sfmt_mulo3;
775 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
776 }
777 }
778 case 7 :
779 {
780 unsigned int val = (((insn >> 6) & (15 << 0)));
781 switch (val)
782 {
783 case 0 : itype = I960BASE_INSN_SHRO3; goto extract_sfmt_shlo3;
784 case 6 : itype = I960BASE_INSN_SHRI3; goto extract_sfmt_shlo3;
785 case 8 : itype = I960BASE_INSN_SHLO3; goto extract_sfmt_shlo3;
786 case 12 : itype = I960BASE_INSN_SHLI3; goto extract_sfmt_shlo3;
787 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
788 }
789 }
790 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
791 }
792 }
793 case 90 :
794 {
795 unsigned int val = (((insn >> 10) & (15 << 0)));
796 switch (val)
797 {
798 case 8 :
799 {
800 unsigned int val = (((insn >> 6) & (15 << 0)));
801 switch (val)
802 {
803 case 0 : itype = I960BASE_INSN_CMPO; goto extract_sfmt_cmpo;
804 case 2 : itype = I960BASE_INSN_CMPI; goto extract_sfmt_cmpi;
805 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
806 }
807 }
808 case 10 :
809 {
810 unsigned int val = (((insn >> 6) & (15 << 0)));
811 switch (val)
812 {
813 case 0 : itype = I960BASE_INSN_CMPO1; goto extract_sfmt_cmpo1;
814 case 2 : itype = I960BASE_INSN_CMPI1; goto extract_sfmt_cmpi1;
815 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
816 }
817 }
818 case 12 :
819 {
820 unsigned int val = (((insn >> 6) & (15 << 0)));
821 switch (val)
822 {
823 case 0 : itype = I960BASE_INSN_CMPO2; goto extract_sfmt_cmpo2;
824 case 2 : itype = I960BASE_INSN_CMPI2; goto extract_sfmt_cmpi2;
825 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
826 }
827 }
828 case 14 :
829 {
830 unsigned int val = (((insn >> 6) & (15 << 0)));
831 switch (val)
832 {
833 case 0 : itype = I960BASE_INSN_CMPO3; goto extract_sfmt_cmpo3;
834 case 2 : itype = I960BASE_INSN_CMPI3; goto extract_sfmt_cmpi3;
835 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
836 }
837 }
838 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
839 }
840 }
841 case 92 :
842 {
843 unsigned int val = (((insn >> 10) & (15 << 0)));
844 switch (val)
845 {
846 case 5 : itype = I960BASE_INSN_MOV; goto extract_sfmt_not;
847 case 7 : itype = I960BASE_INSN_MOV1; goto extract_sfmt_not1;
848 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
849 }
850 }
851 case 93 :
852 {
853 unsigned int val = (((insn >> 10) & (15 << 0)));
854 switch (val)
855 {
856 case 5 : itype = I960BASE_INSN_MOVL; goto extract_sfmt_movl;
857 case 7 : itype = I960BASE_INSN_MOVL1; goto extract_sfmt_movl1;
858 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
859 }
860 }
861 case 94 :
862 {
863 unsigned int val = (((insn >> 10) & (15 << 0)));
864 switch (val)
865 {
866 case 5 : itype = I960BASE_INSN_MOVT; goto extract_sfmt_movt;
867 case 7 : itype = I960BASE_INSN_MOVT1; goto extract_sfmt_movt1;
868 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
869 }
870 }
871 case 95 :
872 {
873 unsigned int val = (((insn >> 10) & (15 << 0)));
874 switch (val)
875 {
876 case 5 : itype = I960BASE_INSN_MOVQ; goto extract_sfmt_movq;
877 case 7 : itype = I960BASE_INSN_MOVQ1; goto extract_sfmt_movq1;
878 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
879 }
880 }
881 case 100 : itype = I960BASE_INSN_MODAC; goto extract_sfmt_modpc;
882 case 101 : itype = I960BASE_INSN_MODPC; goto extract_sfmt_modpc;
883 case 102 :
884 {
885 unsigned int val = (((insn >> 10) & (15 << 0)));
886 switch (val)
887 {
888 case 12 : itype = I960BASE_INSN_CALLS; goto extract_sfmt_calls;
889 case 15 :
890 {
891 unsigned int val = (((insn >> 6) & (15 << 0)));
892 switch (val)
893 {
894 case 8 : itype = I960BASE_INSN_FMARK; goto extract_sfmt_fmark;
895 case 10 : itype = I960BASE_INSN_FLUSHREG; goto extract_sfmt_flushreg;
896 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
897 }
898 }
899 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
900 }
901 }
902 case 103 :
903 {
904 unsigned int val = (((insn >> 10) & (15 << 0)));
905 switch (val)
906 {
907 case 0 : itype = I960BASE_INSN_EMUL; goto extract_sfmt_emul;
908 case 2 : itype = I960BASE_INSN_EMUL1; goto extract_sfmt_emul1;
909 case 4 : itype = I960BASE_INSN_EMUL2; goto extract_sfmt_emul2;
910 case 6 : itype = I960BASE_INSN_EMUL3; goto extract_sfmt_emul3;
911 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
912 }
913 }
914 case 112 :
915 {
916 unsigned int val = (((insn >> 10) & (15 << 0)));
917 switch (val)
918 {
919 case 0 : itype = I960BASE_INSN_MULO; goto extract_sfmt_mulo;
920 case 1 :
921 {
922 unsigned int val = (((insn >> 6) & (15 << 0)));
923 switch (val)
924 {
925 case 0 : itype = I960BASE_INSN_REMO; goto extract_sfmt_mulo;
926 case 6 : itype = I960BASE_INSN_DIVO; goto extract_sfmt_mulo;
927 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
928 }
929 }
930 case 2 : itype = I960BASE_INSN_MULO1; goto extract_sfmt_mulo1;
931 case 3 :
932 {
933 unsigned int val = (((insn >> 6) & (15 << 0)));
934 switch (val)
935 {
936 case 0 : itype = I960BASE_INSN_REMO1; goto extract_sfmt_mulo1;
937 case 6 : itype = I960BASE_INSN_DIVO1; goto extract_sfmt_mulo1;
938 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
939 }
940 }
941 case 4 : itype = I960BASE_INSN_MULO2; goto extract_sfmt_mulo2;
942 case 5 :
943 {
944 unsigned int val = (((insn >> 6) & (15 << 0)));
945 switch (val)
946 {
947 case 0 : itype = I960BASE_INSN_REMO2; goto extract_sfmt_mulo2;
948 case 6 : itype = I960BASE_INSN_DIVO2; goto extract_sfmt_mulo2;
949 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
950 }
951 }
952 case 6 : itype = I960BASE_INSN_MULO3; goto extract_sfmt_mulo3;
953 case 7 :
954 {
955 unsigned int val = (((insn >> 6) & (15 << 0)));
956 switch (val)
957 {
958 case 0 : itype = I960BASE_INSN_REMO3; goto extract_sfmt_mulo3;
959 case 6 : itype = I960BASE_INSN_DIVO3; goto extract_sfmt_mulo3;
960 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
961 }
962 }
963 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
964 }
965 }
966 case 116 :
967 {
968 unsigned int val = (((insn >> 10) & (15 << 0)));
969 switch (val)
970 {
971 case 1 :
972 {
973 unsigned int val = (((insn >> 6) & (15 << 0)));
974 switch (val)
975 {
976 case 0 : itype = I960BASE_INSN_REMI; goto extract_sfmt_mulo;
977 case 6 : itype = I960BASE_INSN_DIVI; goto extract_sfmt_mulo;
978 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
979 }
980 }
981 case 3 :
982 {
983 unsigned int val = (((insn >> 6) & (15 << 0)));
984 switch (val)
985 {
986 case 0 : itype = I960BASE_INSN_REMI1; goto extract_sfmt_mulo1;
987 case 6 : itype = I960BASE_INSN_DIVI1; goto extract_sfmt_mulo1;
988 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
989 }
990 }
991 case 5 :
992 {
993 unsigned int val = (((insn >> 6) & (15 << 0)));
994 switch (val)
995 {
996 case 0 : itype = I960BASE_INSN_REMI2; goto extract_sfmt_mulo2;
997 case 6 : itype = I960BASE_INSN_DIVI2; goto extract_sfmt_mulo2;
998 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
999 }
1000 }
1001 case 7 :
1002 {
1003 unsigned int val = (((insn >> 6) & (15 << 0)));
1004 switch (val)
1005 {
1006 case 0 : itype = I960BASE_INSN_REMI3; goto extract_sfmt_mulo3;
1007 case 6 : itype = I960BASE_INSN_DIVI3; goto extract_sfmt_mulo3;
1008 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1009 }
1010 }
1011 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1012 }
1013 }
1014 case 128 :
1015 {
1016 unsigned int val = (((insn >> 10) & (15 << 0)));
1017 switch (val)
1018 {
1019 case 0 : /* fall through */
1020 case 1 : /* fall through */
1021 case 2 : /* fall through */
1022 case 3 : itype = I960BASE_INSN_LDOB_OFFSET; goto extract_sfmt_ld_offset;
1023 case 4 : itype = I960BASE_INSN_LDOB_INDIRECT; goto extract_sfmt_ld_indirect;
1024 case 7 : itype = I960BASE_INSN_LDOB_INDIRECT_INDEX; goto extract_sfmt_ld_indirect_index;
1025 case 8 : /* fall through */
1026 case 9 : /* fall through */
1027 case 10 : /* fall through */
1028 case 11 : itype = I960BASE_INSN_LDOB_INDIRECT_OFFSET; goto extract_sfmt_ld_indirect_offset;
1029 case 12 : itype = I960BASE_INSN_LDOB_DISP; goto extract_sfmt_ld_disp;
1030 case 13 : itype = I960BASE_INSN_LDOB_INDIRECT_DISP; goto extract_sfmt_ld_indirect_disp;
1031 case 14 : itype = I960BASE_INSN_LDOB_INDEX_DISP; goto extract_sfmt_ld_index_disp;
1032 case 15 : itype = I960BASE_INSN_LDOB_INDIRECT_INDEX_DISP; goto extract_sfmt_ld_indirect_index_disp;
1033 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1034 }
1035 }
1036 case 130 :
1037 {
1038 unsigned int val = (((insn >> 10) & (15 << 0)));
1039 switch (val)
1040 {
1041 case 0 : /* fall through */
1042 case 1 : /* fall through */
1043 case 2 : /* fall through */
1044 case 3 : itype = I960BASE_INSN_STOB_OFFSET; goto extract_sfmt_st_offset;
1045 case 4 : itype = I960BASE_INSN_STOB_INDIRECT; goto extract_sfmt_st_indirect;
1046 case 7 : itype = I960BASE_INSN_STOB_INDIRECT_INDEX; goto extract_sfmt_st_indirect_index;
1047 case 8 : /* fall through */
1048 case 9 : /* fall through */
1049 case 10 : /* fall through */
1050 case 11 : itype = I960BASE_INSN_STOB_INDIRECT_OFFSET; goto extract_sfmt_st_indirect_offset;
1051 case 12 : itype = I960BASE_INSN_STOB_DISP; goto extract_sfmt_st_disp;
1052 case 13 : itype = I960BASE_INSN_STOB_INDIRECT_DISP; goto extract_sfmt_st_indirect_disp;
1053 case 14 : itype = I960BASE_INSN_STOB_INDEX_DISP; goto extract_sfmt_st_index_disp;
1054 case 15 : itype = I960BASE_INSN_STOB_INDIRECT_INDEX_DISP; goto extract_sfmt_st_indirect_index_disp;
1055 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1056 }
1057 }
1058 case 132 :
1059 {
1060 unsigned int val = (((insn >> 10) & (15 << 0)));
1061 switch (val)
1062 {
1063 case 4 : itype = I960BASE_INSN_BX_INDIRECT; goto extract_sfmt_bx_indirect;
1064 case 7 : itype = I960BASE_INSN_BX_INDIRECT_INDEX; goto extract_sfmt_bx_indirect_index;
1065 case 8 : /* fall through */
1066 case 9 : /* fall through */
1067 case 10 : /* fall through */
1068 case 11 : itype = I960BASE_INSN_BX_INDIRECT_OFFSET; goto extract_sfmt_bx_indirect_offset;
1069 case 12 : itype = I960BASE_INSN_BX_DISP; goto extract_sfmt_bx_disp;
1070 case 13 : itype = I960BASE_INSN_BX_INDIRECT_DISP; goto extract_sfmt_bx_indirect_disp;
1071 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1072 }
1073 }
1074 case 134 :
1075 {
1076 unsigned int val = (((insn >> 10) & (15 << 0)));
1077 switch (val)
1078 {
1079 case 4 : itype = I960BASE_INSN_CALLX_INDIRECT; goto extract_sfmt_callx_indirect;
1080 case 8 : /* fall through */
1081 case 9 : /* fall through */
1082 case 10 : /* fall through */
1083 case 11 : itype = I960BASE_INSN_CALLX_INDIRECT_OFFSET; goto extract_sfmt_callx_indirect_offset;
1084 case 12 : itype = I960BASE_INSN_CALLX_DISP; goto extract_sfmt_callx_disp;
1085 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1086 }
1087 }
1088 case 136 :
1089 {
1090 unsigned int val = (((insn >> 10) & (15 << 0)));
1091 switch (val)
1092 {
1093 case 0 : /* fall through */
1094 case 1 : /* fall through */
1095 case 2 : /* fall through */
1096 case 3 : itype = I960BASE_INSN_LDOS_OFFSET; goto extract_sfmt_ld_offset;
1097 case 4 : itype = I960BASE_INSN_LDOS_INDIRECT; goto extract_sfmt_ld_indirect;
1098 case 7 : itype = I960BASE_INSN_LDOS_INDIRECT_INDEX; goto extract_sfmt_ld_indirect_index;
1099 case 8 : /* fall through */
1100 case 9 : /* fall through */
1101 case 10 : /* fall through */
1102 case 11 : itype = I960BASE_INSN_LDOS_INDIRECT_OFFSET; goto extract_sfmt_ld_indirect_offset;
1103 case 12 : itype = I960BASE_INSN_LDOS_DISP; goto extract_sfmt_ld_disp;
1104 case 13 : itype = I960BASE_INSN_LDOS_INDIRECT_DISP; goto extract_sfmt_ld_indirect_disp;
1105 case 14 : itype = I960BASE_INSN_LDOS_INDEX_DISP; goto extract_sfmt_ld_index_disp;
1106 case 15 : itype = I960BASE_INSN_LDOS_INDIRECT_INDEX_DISP; goto extract_sfmt_ld_indirect_index_disp;
1107 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1108 }
1109 }
1110 case 138 :
1111 {
1112 unsigned int val = (((insn >> 10) & (15 << 0)));
1113 switch (val)
1114 {
1115 case 0 : /* fall through */
1116 case 1 : /* fall through */
1117 case 2 : /* fall through */
1118 case 3 : itype = I960BASE_INSN_STOS_OFFSET; goto extract_sfmt_st_offset;
1119 case 4 : itype = I960BASE_INSN_STOS_INDIRECT; goto extract_sfmt_st_indirect;
1120 case 7 : itype = I960BASE_INSN_STOS_INDIRECT_INDEX; goto extract_sfmt_st_indirect_index;
1121 case 8 : /* fall through */
1122 case 9 : /* fall through */
1123 case 10 : /* fall through */
1124 case 11 : itype = I960BASE_INSN_STOS_INDIRECT_OFFSET; goto extract_sfmt_st_indirect_offset;
1125 case 12 : itype = I960BASE_INSN_STOS_DISP; goto extract_sfmt_st_disp;
1126 case 13 : itype = I960BASE_INSN_STOS_INDIRECT_DISP; goto extract_sfmt_st_indirect_disp;
1127 case 14 : itype = I960BASE_INSN_STOS_INDEX_DISP; goto extract_sfmt_st_index_disp;
1128 case 15 : itype = I960BASE_INSN_STOS_INDIRECT_INDEX_DISP; goto extract_sfmt_st_indirect_index_disp;
1129 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1130 }
1131 }
1132 case 140 :
1133 {
1134 unsigned int val = (((insn >> 10) & (15 << 0)));
1135 switch (val)
1136 {
1137 case 0 : /* fall through */
1138 case 1 : /* fall through */
1139 case 2 : /* fall through */
1140 case 3 : itype = I960BASE_INSN_LDA_OFFSET; goto extract_sfmt_lda_offset;
1141 case 4 : itype = I960BASE_INSN_LDA_INDIRECT; goto extract_sfmt_lda_indirect;
1142 case 7 : itype = I960BASE_INSN_LDA_INDIRECT_INDEX; goto extract_sfmt_lda_indirect_index;
1143 case 8 : /* fall through */
1144 case 9 : /* fall through */
1145 case 10 : /* fall through */
1146 case 11 : itype = I960BASE_INSN_LDA_INDIRECT_OFFSET; goto extract_sfmt_lda_indirect_offset;
1147 case 12 : itype = I960BASE_INSN_LDA_DISP; goto extract_sfmt_lda_disp;
1148 case 13 : itype = I960BASE_INSN_LDA_INDIRECT_DISP; goto extract_sfmt_lda_indirect_disp;
1149 case 14 : itype = I960BASE_INSN_LDA_INDEX_DISP; goto extract_sfmt_lda_index_disp;
1150 case 15 : itype = I960BASE_INSN_LDA_INDIRECT_INDEX_DISP; goto extract_sfmt_lda_indirect_index_disp;
1151 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1152 }
1153 }
1154 case 144 :
1155 {
1156 unsigned int val = (((insn >> 10) & (15 << 0)));
1157 switch (val)
1158 {
1159 case 0 : /* fall through */
1160 case 1 : /* fall through */
1161 case 2 : /* fall through */
1162 case 3 : itype = I960BASE_INSN_LD_OFFSET; goto extract_sfmt_ld_offset;
1163 case 4 : itype = I960BASE_INSN_LD_INDIRECT; goto extract_sfmt_ld_indirect;
1164 case 7 : itype = I960BASE_INSN_LD_INDIRECT_INDEX; goto extract_sfmt_ld_indirect_index;
1165 case 8 : /* fall through */
1166 case 9 : /* fall through */
1167 case 10 : /* fall through */
1168 case 11 : itype = I960BASE_INSN_LD_INDIRECT_OFFSET; goto extract_sfmt_ld_indirect_offset;
1169 case 12 : itype = I960BASE_INSN_LD_DISP; goto extract_sfmt_ld_disp;
1170 case 13 : itype = I960BASE_INSN_LD_INDIRECT_DISP; goto extract_sfmt_ld_indirect_disp;
1171 case 14 : itype = I960BASE_INSN_LD_INDEX_DISP; goto extract_sfmt_ld_index_disp;
1172 case 15 : itype = I960BASE_INSN_LD_INDIRECT_INDEX_DISP; goto extract_sfmt_ld_indirect_index_disp;
1173 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1174 }
1175 }
1176 case 146 :
1177 {
1178 unsigned int val = (((insn >> 10) & (15 << 0)));
1179 switch (val)
1180 {
1181 case 0 : /* fall through */
1182 case 1 : /* fall through */
1183 case 2 : /* fall through */
1184 case 3 : itype = I960BASE_INSN_ST_OFFSET; goto extract_sfmt_st_offset;
1185 case 4 : itype = I960BASE_INSN_ST_INDIRECT; goto extract_sfmt_st_indirect;
1186 case 7 : itype = I960BASE_INSN_ST_INDIRECT_INDEX; goto extract_sfmt_st_indirect_index;
1187 case 8 : /* fall through */
1188 case 9 : /* fall through */
1189 case 10 : /* fall through */
1190 case 11 : itype = I960BASE_INSN_ST_INDIRECT_OFFSET; goto extract_sfmt_st_indirect_offset;
1191 case 12 : itype = I960BASE_INSN_ST_DISP; goto extract_sfmt_st_disp;
1192 case 13 : itype = I960BASE_INSN_ST_INDIRECT_DISP; goto extract_sfmt_st_indirect_disp;
1193 case 14 : itype = I960BASE_INSN_ST_INDEX_DISP; goto extract_sfmt_st_index_disp;
1194 case 15 : itype = I960BASE_INSN_ST_INDIRECT_INDEX_DISP; goto extract_sfmt_st_indirect_index_disp;
1195 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1196 }
1197 }
1198 case 152 :
1199 {
1200 unsigned int val = (((insn >> 10) & (15 << 0)));
1201 switch (val)
1202 {
1203 case 0 : /* fall through */
1204 case 1 : /* fall through */
1205 case 2 : /* fall through */
1206 case 3 : itype = I960BASE_INSN_LDL_OFFSET; goto extract_sfmt_ldl_offset;
1207 case 4 : itype = I960BASE_INSN_LDL_INDIRECT; goto extract_sfmt_ldl_indirect;
1208 case 7 : itype = I960BASE_INSN_LDL_INDIRECT_INDEX; goto extract_sfmt_ldl_indirect_index;
1209 case 8 : /* fall through */
1210 case 9 : /* fall through */
1211 case 10 : /* fall through */
1212 case 11 : itype = I960BASE_INSN_LDL_INDIRECT_OFFSET; goto extract_sfmt_ldl_indirect_offset;
1213 case 12 : itype = I960BASE_INSN_LDL_DISP; goto extract_sfmt_ldl_disp;
1214 case 13 : itype = I960BASE_INSN_LDL_INDIRECT_DISP; goto extract_sfmt_ldl_indirect_disp;
1215 case 14 : itype = I960BASE_INSN_LDL_INDEX_DISP; goto extract_sfmt_ldl_index_disp;
1216 case 15 : itype = I960BASE_INSN_LDL_INDIRECT_INDEX_DISP; goto extract_sfmt_ldl_indirect_index_disp;
1217 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1218 }
1219 }
1220 case 154 :
1221 {
1222 unsigned int val = (((insn >> 10) & (15 << 0)));
1223 switch (val)
1224 {
1225 case 0 : /* fall through */
1226 case 1 : /* fall through */
1227 case 2 : /* fall through */
1228 case 3 : itype = I960BASE_INSN_STL_OFFSET; goto extract_sfmt_stl_offset;
1229 case 4 : itype = I960BASE_INSN_STL_INDIRECT; goto extract_sfmt_stl_indirect;
1230 case 7 : itype = I960BASE_INSN_STL_INDIRECT_INDEX; goto extract_sfmt_stl_indirect_index;
1231 case 8 : /* fall through */
1232 case 9 : /* fall through */
1233 case 10 : /* fall through */
1234 case 11 : itype = I960BASE_INSN_STL_INDIRECT_OFFSET; goto extract_sfmt_stl_indirect_offset;
1235 case 12 : itype = I960BASE_INSN_STL_DISP; goto extract_sfmt_stl_disp;
1236 case 13 : itype = I960BASE_INSN_STL_INDIRECT_DISP; goto extract_sfmt_stl_indirect_disp;
1237 case 14 : itype = I960BASE_INSN_STL_INDEX_DISP; goto extract_sfmt_stl_index_disp;
1238 case 15 : itype = I960BASE_INSN_STL_INDIRECT_INDEX_DISP; goto extract_sfmt_stl_indirect_index_disp;
1239 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1240 }
1241 }
1242 case 160 :
1243 {
1244 unsigned int val = (((insn >> 10) & (15 << 0)));
1245 switch (val)
1246 {
1247 case 0 : /* fall through */
1248 case 1 : /* fall through */
1249 case 2 : /* fall through */
1250 case 3 : itype = I960BASE_INSN_LDT_OFFSET; goto extract_sfmt_ldt_offset;
1251 case 4 : itype = I960BASE_INSN_LDT_INDIRECT; goto extract_sfmt_ldt_indirect;
1252 case 7 : itype = I960BASE_INSN_LDT_INDIRECT_INDEX; goto extract_sfmt_ldt_indirect_index;
1253 case 8 : /* fall through */
1254 case 9 : /* fall through */
1255 case 10 : /* fall through */
1256 case 11 : itype = I960BASE_INSN_LDT_INDIRECT_OFFSET; goto extract_sfmt_ldt_indirect_offset;
1257 case 12 : itype = I960BASE_INSN_LDT_DISP; goto extract_sfmt_ldt_disp;
1258 case 13 : itype = I960BASE_INSN_LDT_INDIRECT_DISP; goto extract_sfmt_ldt_indirect_disp;
1259 case 14 : itype = I960BASE_INSN_LDT_INDEX_DISP; goto extract_sfmt_ldt_index_disp;
1260 case 15 : itype = I960BASE_INSN_LDT_INDIRECT_INDEX_DISP; goto extract_sfmt_ldt_indirect_index_disp;
1261 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1262 }
1263 }
1264 case 162 :
1265 {
1266 unsigned int val = (((insn >> 10) & (15 << 0)));
1267 switch (val)
1268 {
1269 case 0 : /* fall through */
1270 case 1 : /* fall through */
1271 case 2 : /* fall through */
1272 case 3 : itype = I960BASE_INSN_STT_OFFSET; goto extract_sfmt_stt_offset;
1273 case 4 : itype = I960BASE_INSN_STT_INDIRECT; goto extract_sfmt_stt_indirect;
1274 case 7 : itype = I960BASE_INSN_STT_INDIRECT_INDEX; goto extract_sfmt_stt_indirect_index;
1275 case 8 : /* fall through */
1276 case 9 : /* fall through */
1277 case 10 : /* fall through */
1278 case 11 : itype = I960BASE_INSN_STT_INDIRECT_OFFSET; goto extract_sfmt_stt_indirect_offset;
1279 case 12 : itype = I960BASE_INSN_STT_DISP; goto extract_sfmt_stt_disp;
1280 case 13 : itype = I960BASE_INSN_STT_INDIRECT_DISP; goto extract_sfmt_stt_indirect_disp;
1281 case 14 : itype = I960BASE_INSN_STT_INDEX_DISP; goto extract_sfmt_stt_index_disp;
1282 case 15 : itype = I960BASE_INSN_STT_INDIRECT_INDEX_DISP; goto extract_sfmt_stt_indirect_index_disp;
1283 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1284 }
1285 }
1286 case 176 :
1287 {
1288 unsigned int val = (((insn >> 10) & (15 << 0)));
1289 switch (val)
1290 {
1291 case 0 : /* fall through */
1292 case 1 : /* fall through */
1293 case 2 : /* fall through */
1294 case 3 : itype = I960BASE_INSN_LDQ_OFFSET; goto extract_sfmt_ldq_offset;
1295 case 4 : itype = I960BASE_INSN_LDQ_INDIRECT; goto extract_sfmt_ldq_indirect;
1296 case 7 : itype = I960BASE_INSN_LDQ_INDIRECT_INDEX; goto extract_sfmt_ldq_indirect_index;
1297 case 8 : /* fall through */
1298 case 9 : /* fall through */
1299 case 10 : /* fall through */
1300 case 11 : itype = I960BASE_INSN_LDQ_INDIRECT_OFFSET; goto extract_sfmt_ldq_indirect_offset;
1301 case 12 : itype = I960BASE_INSN_LDQ_DISP; goto extract_sfmt_ldq_disp;
1302 case 13 : itype = I960BASE_INSN_LDQ_INDIRECT_DISP; goto extract_sfmt_ldq_indirect_disp;
1303 case 14 : itype = I960BASE_INSN_LDQ_INDEX_DISP; goto extract_sfmt_ldq_index_disp;
1304 case 15 : itype = I960BASE_INSN_LDQ_INDIRECT_INDEX_DISP; goto extract_sfmt_ldq_indirect_index_disp;
1305 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1306 }
1307 }
1308 case 178 :
1309 {
1310 unsigned int val = (((insn >> 10) & (15 << 0)));
1311 switch (val)
1312 {
1313 case 0 : /* fall through */
1314 case 1 : /* fall through */
1315 case 2 : /* fall through */
1316 case 3 : itype = I960BASE_INSN_STQ_OFFSET; goto extract_sfmt_stq_offset;
1317 case 4 : itype = I960BASE_INSN_STQ_INDIRECT; goto extract_sfmt_stq_indirect;
1318 case 7 : itype = I960BASE_INSN_STQ_INDIRECT_INDEX; goto extract_sfmt_stq_indirect_index;
1319 case 8 : /* fall through */
1320 case 9 : /* fall through */
1321 case 10 : /* fall through */
1322 case 11 : itype = I960BASE_INSN_STQ_INDIRECT_OFFSET; goto extract_sfmt_stq_indirect_offset;
1323 case 12 : itype = I960BASE_INSN_STQ_DISP; goto extract_sfmt_stq_disp;
1324 case 13 : itype = I960BASE_INSN_STQ_INDIRECT_DISP; goto extract_sfmt_stq_indirect_disp;
1325 case 14 : itype = I960BASE_INSN_STQ_INDEX_DISP; goto extract_sfmt_stq_index_disp;
1326 case 15 : itype = I960BASE_INSN_STQ_INDIRECT_INDEX_DISP; goto extract_sfmt_stq_indirect_index_disp;
1327 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1328 }
1329 }
1330 case 192 :
1331 {
1332 unsigned int val = (((insn >> 10) & (15 << 0)));
1333 switch (val)
1334 {
1335 case 0 : /* fall through */
1336 case 1 : /* fall through */
1337 case 2 : /* fall through */
1338 case 3 : itype = I960BASE_INSN_LDIB_OFFSET; goto extract_sfmt_ld_offset;
1339 case 4 : itype = I960BASE_INSN_LDIB_INDIRECT; goto extract_sfmt_ld_indirect;
1340 case 7 : itype = I960BASE_INSN_LDIB_INDIRECT_INDEX; goto extract_sfmt_ld_indirect_index;
1341 case 8 : /* fall through */
1342 case 9 : /* fall through */
1343 case 10 : /* fall through */
1344 case 11 : itype = I960BASE_INSN_LDIB_INDIRECT_OFFSET; goto extract_sfmt_ld_indirect_offset;
1345 case 12 : itype = I960BASE_INSN_LDIB_DISP; goto extract_sfmt_ld_disp;
1346 case 13 : itype = I960BASE_INSN_LDIB_INDIRECT_DISP; goto extract_sfmt_ld_indirect_disp;
1347 case 14 : itype = I960BASE_INSN_LDIB_INDEX_DISP; goto extract_sfmt_ld_index_disp;
1348 case 15 : itype = I960BASE_INSN_LDIB_INDIRECT_INDEX_DISP; goto extract_sfmt_ld_indirect_index_disp;
1349 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1350 }
1351 }
1352 case 200 :
1353 {
1354 unsigned int val = (((insn >> 10) & (15 << 0)));
1355 switch (val)
1356 {
1357 case 0 : /* fall through */
1358 case 1 : /* fall through */
1359 case 2 : /* fall through */
1360 case 3 : itype = I960BASE_INSN_LDIS_OFFSET; goto extract_sfmt_ld_offset;
1361 case 4 : itype = I960BASE_INSN_LDIS_INDIRECT; goto extract_sfmt_ld_indirect;
1362 case 7 : itype = I960BASE_INSN_LDIS_INDIRECT_INDEX; goto extract_sfmt_ld_indirect_index;
1363 case 8 : /* fall through */
1364 case 9 : /* fall through */
1365 case 10 : /* fall through */
1366 case 11 : itype = I960BASE_INSN_LDIS_INDIRECT_OFFSET; goto extract_sfmt_ld_indirect_offset;
1367 case 12 : itype = I960BASE_INSN_LDIS_DISP; goto extract_sfmt_ld_disp;
1368 case 13 : itype = I960BASE_INSN_LDIS_INDIRECT_DISP; goto extract_sfmt_ld_indirect_disp;
1369 case 14 : itype = I960BASE_INSN_LDIS_INDEX_DISP; goto extract_sfmt_ld_index_disp;
1370 case 15 : itype = I960BASE_INSN_LDIS_INDIRECT_INDEX_DISP; goto extract_sfmt_ld_indirect_index_disp;
1371 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1372 }
1373 }
1374 default : itype = I960BASE_INSN_X_INVALID; goto extract_sfmt_empty;
1375 }
1376 }
1377 }
1378
1379 /* The instruction has been decoded, now extract the fields. */
1380
1381 extract_sfmt_empty:
1382 {
1383 const IDESC *idesc = &i960base_insn_data[itype];
1384 CGEN_INSN_INT insn = base_insn;
1385 #define FLD(f) abuf->fields.fmt_empty.f
1386
1387
1388 /* Record the fields for the semantic handler. */
1389 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_empty", (char *) 0));
1390
1391 #undef FLD
1392 return idesc;
1393 }
1394
1395 extract_sfmt_mulo:
1396 {
1397 const IDESC *idesc = &i960base_insn_data[itype];
1398 CGEN_INSN_INT insn = base_insn;
1399 #define FLD(f) abuf->fields.sfmt_emul.f
1400 UINT f_srcdst;
1401 UINT f_src2;
1402 UINT f_src1;
1403
1404 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1405 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1406 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1407
1408 /* Record the fields for the semantic handler. */
1409 FLD (i_src1) = & CPU (h_gr)[f_src1];
1410 FLD (i_src2) = & CPU (h_gr)[f_src2];
1411 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1412 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulo", "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1413
1414 #if WITH_PROFILE_MODEL_P
1415 /* Record the fields for profiling. */
1416 if (PROFILE_MODEL_P (current_cpu))
1417 {
1418 FLD (in_src1) = f_src1;
1419 FLD (in_src2) = f_src2;
1420 FLD (out_dst) = f_srcdst;
1421 }
1422 #endif
1423 #undef FLD
1424 return idesc;
1425 }
1426
1427 extract_sfmt_mulo1:
1428 {
1429 const IDESC *idesc = &i960base_insn_data[itype];
1430 CGEN_INSN_INT insn = base_insn;
1431 #define FLD(f) abuf->fields.sfmt_emul1.f
1432 UINT f_srcdst;
1433 UINT f_src2;
1434 UINT f_src1;
1435
1436 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1437 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1438 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1439
1440 /* Record the fields for the semantic handler. */
1441 FLD (f_src1) = f_src1;
1442 FLD (i_src2) = & CPU (h_gr)[f_src2];
1443 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1444 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulo1", "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1445
1446 #if WITH_PROFILE_MODEL_P
1447 /* Record the fields for profiling. */
1448 if (PROFILE_MODEL_P (current_cpu))
1449 {
1450 FLD (in_src2) = f_src2;
1451 FLD (out_dst) = f_srcdst;
1452 }
1453 #endif
1454 #undef FLD
1455 return idesc;
1456 }
1457
1458 extract_sfmt_mulo2:
1459 {
1460 const IDESC *idesc = &i960base_insn_data[itype];
1461 CGEN_INSN_INT insn = base_insn;
1462 #define FLD(f) abuf->fields.sfmt_emul2.f
1463 UINT f_srcdst;
1464 UINT f_src2;
1465 UINT f_src1;
1466
1467 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1468 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1469 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1470
1471 /* Record the fields for the semantic handler. */
1472 FLD (f_src2) = f_src2;
1473 FLD (i_src1) = & CPU (h_gr)[f_src1];
1474 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1475 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulo2", "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1476
1477 #if WITH_PROFILE_MODEL_P
1478 /* Record the fields for profiling. */
1479 if (PROFILE_MODEL_P (current_cpu))
1480 {
1481 FLD (in_src1) = f_src1;
1482 FLD (out_dst) = f_srcdst;
1483 }
1484 #endif
1485 #undef FLD
1486 return idesc;
1487 }
1488
1489 extract_sfmt_mulo3:
1490 {
1491 const IDESC *idesc = &i960base_insn_data[itype];
1492 CGEN_INSN_INT insn = base_insn;
1493 #define FLD(f) abuf->fields.sfmt_emul3.f
1494 UINT f_srcdst;
1495 UINT f_src2;
1496 UINT f_src1;
1497
1498 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1499 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1500 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1501
1502 /* Record the fields for the semantic handler. */
1503 FLD (f_src1) = f_src1;
1504 FLD (f_src2) = f_src2;
1505 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1506 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_mulo3", "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1507
1508 #if WITH_PROFILE_MODEL_P
1509 /* Record the fields for profiling. */
1510 if (PROFILE_MODEL_P (current_cpu))
1511 {
1512 FLD (out_dst) = f_srcdst;
1513 }
1514 #endif
1515 #undef FLD
1516 return idesc;
1517 }
1518
1519 extract_sfmt_notbit:
1520 {
1521 const IDESC *idesc = &i960base_insn_data[itype];
1522 CGEN_INSN_INT insn = base_insn;
1523 #define FLD(f) abuf->fields.sfmt_emul.f
1524 UINT f_srcdst;
1525 UINT f_src2;
1526 UINT f_src1;
1527
1528 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1529 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1530 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1531
1532 /* Record the fields for the semantic handler. */
1533 FLD (i_src1) = & CPU (h_gr)[f_src1];
1534 FLD (i_src2) = & CPU (h_gr)[f_src2];
1535 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1536 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_notbit", "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1537
1538 #if WITH_PROFILE_MODEL_P
1539 /* Record the fields for profiling. */
1540 if (PROFILE_MODEL_P (current_cpu))
1541 {
1542 FLD (in_src1) = f_src1;
1543 FLD (in_src2) = f_src2;
1544 FLD (out_dst) = f_srcdst;
1545 }
1546 #endif
1547 #undef FLD
1548 return idesc;
1549 }
1550
1551 extract_sfmt_notbit1:
1552 {
1553 const IDESC *idesc = &i960base_insn_data[itype];
1554 CGEN_INSN_INT insn = base_insn;
1555 #define FLD(f) abuf->fields.sfmt_emul1.f
1556 UINT f_srcdst;
1557 UINT f_src2;
1558 UINT f_src1;
1559
1560 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1561 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1562 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1563
1564 /* Record the fields for the semantic handler. */
1565 FLD (f_src1) = f_src1;
1566 FLD (i_src2) = & CPU (h_gr)[f_src2];
1567 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1568 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_notbit1", "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1569
1570 #if WITH_PROFILE_MODEL_P
1571 /* Record the fields for profiling. */
1572 if (PROFILE_MODEL_P (current_cpu))
1573 {
1574 FLD (in_src2) = f_src2;
1575 FLD (out_dst) = f_srcdst;
1576 }
1577 #endif
1578 #undef FLD
1579 return idesc;
1580 }
1581
1582 extract_sfmt_notbit2:
1583 {
1584 const IDESC *idesc = &i960base_insn_data[itype];
1585 CGEN_INSN_INT insn = base_insn;
1586 #define FLD(f) abuf->fields.sfmt_emul2.f
1587 UINT f_srcdst;
1588 UINT f_src2;
1589 UINT f_src1;
1590
1591 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1592 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1593 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1594
1595 /* Record the fields for the semantic handler. */
1596 FLD (f_src2) = f_src2;
1597 FLD (i_src1) = & CPU (h_gr)[f_src1];
1598 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1599 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_notbit2", "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1600
1601 #if WITH_PROFILE_MODEL_P
1602 /* Record the fields for profiling. */
1603 if (PROFILE_MODEL_P (current_cpu))
1604 {
1605 FLD (in_src1) = f_src1;
1606 FLD (out_dst) = f_srcdst;
1607 }
1608 #endif
1609 #undef FLD
1610 return idesc;
1611 }
1612
1613 extract_sfmt_notbit3:
1614 {
1615 const IDESC *idesc = &i960base_insn_data[itype];
1616 CGEN_INSN_INT insn = base_insn;
1617 #define FLD(f) abuf->fields.sfmt_emul3.f
1618 UINT f_srcdst;
1619 UINT f_src2;
1620 UINT f_src1;
1621
1622 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1623 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1624 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1625
1626 /* Record the fields for the semantic handler. */
1627 FLD (f_src1) = f_src1;
1628 FLD (f_src2) = f_src2;
1629 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1630 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_notbit3", "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1631
1632 #if WITH_PROFILE_MODEL_P
1633 /* Record the fields for profiling. */
1634 if (PROFILE_MODEL_P (current_cpu))
1635 {
1636 FLD (out_dst) = f_srcdst;
1637 }
1638 #endif
1639 #undef FLD
1640 return idesc;
1641 }
1642
1643 extract_sfmt_not:
1644 {
1645 const IDESC *idesc = &i960base_insn_data[itype];
1646 CGEN_INSN_INT insn = base_insn;
1647 #define FLD(f) abuf->fields.sfmt_emul2.f
1648 UINT f_srcdst;
1649 UINT f_src1;
1650
1651 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1652 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1653
1654 /* Record the fields for the semantic handler. */
1655 FLD (i_src1) = & CPU (h_gr)[f_src1];
1656 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1657 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_not", "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1658
1659 #if WITH_PROFILE_MODEL_P
1660 /* Record the fields for profiling. */
1661 if (PROFILE_MODEL_P (current_cpu))
1662 {
1663 FLD (in_src1) = f_src1;
1664 FLD (out_dst) = f_srcdst;
1665 }
1666 #endif
1667 #undef FLD
1668 return idesc;
1669 }
1670
1671 extract_sfmt_not1:
1672 {
1673 const IDESC *idesc = &i960base_insn_data[itype];
1674 CGEN_INSN_INT insn = base_insn;
1675 #define FLD(f) abuf->fields.sfmt_emul3.f
1676 UINT f_srcdst;
1677 UINT f_src1;
1678
1679 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1680 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1681
1682 /* Record the fields for the semantic handler. */
1683 FLD (f_src1) = f_src1;
1684 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1685 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_not1", "f_src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1686
1687 #if WITH_PROFILE_MODEL_P
1688 /* Record the fields for profiling. */
1689 if (PROFILE_MODEL_P (current_cpu))
1690 {
1691 FLD (out_dst) = f_srcdst;
1692 }
1693 #endif
1694 #undef FLD
1695 return idesc;
1696 }
1697
1698 extract_sfmt_shlo:
1699 {
1700 const IDESC *idesc = &i960base_insn_data[itype];
1701 CGEN_INSN_INT insn = base_insn;
1702 #define FLD(f) abuf->fields.sfmt_emul.f
1703 UINT f_srcdst;
1704 UINT f_src2;
1705 UINT f_src1;
1706
1707 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1708 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1709 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1710
1711 /* Record the fields for the semantic handler. */
1712 FLD (i_src1) = & CPU (h_gr)[f_src1];
1713 FLD (i_src2) = & CPU (h_gr)[f_src2];
1714 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1715 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_shlo", "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1716
1717 #if WITH_PROFILE_MODEL_P
1718 /* Record the fields for profiling. */
1719 if (PROFILE_MODEL_P (current_cpu))
1720 {
1721 FLD (in_src1) = f_src1;
1722 FLD (in_src2) = f_src2;
1723 FLD (out_dst) = f_srcdst;
1724 }
1725 #endif
1726 #undef FLD
1727 return idesc;
1728 }
1729
1730 extract_sfmt_shlo1:
1731 {
1732 const IDESC *idesc = &i960base_insn_data[itype];
1733 CGEN_INSN_INT insn = base_insn;
1734 #define FLD(f) abuf->fields.sfmt_emul1.f
1735 UINT f_srcdst;
1736 UINT f_src2;
1737 UINT f_src1;
1738
1739 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1740 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1741 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1742
1743 /* Record the fields for the semantic handler. */
1744 FLD (f_src1) = f_src1;
1745 FLD (i_src2) = & CPU (h_gr)[f_src2];
1746 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1747 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_shlo1", "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1748
1749 #if WITH_PROFILE_MODEL_P
1750 /* Record the fields for profiling. */
1751 if (PROFILE_MODEL_P (current_cpu))
1752 {
1753 FLD (in_src2) = f_src2;
1754 FLD (out_dst) = f_srcdst;
1755 }
1756 #endif
1757 #undef FLD
1758 return idesc;
1759 }
1760
1761 extract_sfmt_shlo2:
1762 {
1763 const IDESC *idesc = &i960base_insn_data[itype];
1764 CGEN_INSN_INT insn = base_insn;
1765 #define FLD(f) abuf->fields.sfmt_emul2.f
1766 UINT f_srcdst;
1767 UINT f_src2;
1768 UINT f_src1;
1769
1770 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1771 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1772 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1773
1774 /* Record the fields for the semantic handler. */
1775 FLD (f_src2) = f_src2;
1776 FLD (i_src1) = & CPU (h_gr)[f_src1];
1777 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1778 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_shlo2", "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1779
1780 #if WITH_PROFILE_MODEL_P
1781 /* Record the fields for profiling. */
1782 if (PROFILE_MODEL_P (current_cpu))
1783 {
1784 FLD (in_src1) = f_src1;
1785 FLD (out_dst) = f_srcdst;
1786 }
1787 #endif
1788 #undef FLD
1789 return idesc;
1790 }
1791
1792 extract_sfmt_shlo3:
1793 {
1794 const IDESC *idesc = &i960base_insn_data[itype];
1795 CGEN_INSN_INT insn = base_insn;
1796 #define FLD(f) abuf->fields.sfmt_emul3.f
1797 UINT f_srcdst;
1798 UINT f_src2;
1799 UINT f_src1;
1800
1801 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1802 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1803 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1804
1805 /* Record the fields for the semantic handler. */
1806 FLD (f_src1) = f_src1;
1807 FLD (f_src2) = f_src2;
1808 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1809 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_shlo3", "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1810
1811 #if WITH_PROFILE_MODEL_P
1812 /* Record the fields for profiling. */
1813 if (PROFILE_MODEL_P (current_cpu))
1814 {
1815 FLD (out_dst) = f_srcdst;
1816 }
1817 #endif
1818 #undef FLD
1819 return idesc;
1820 }
1821
1822 extract_sfmt_emul:
1823 {
1824 const IDESC *idesc = &i960base_insn_data[itype];
1825 CGEN_INSN_INT insn = base_insn;
1826 #define FLD(f) abuf->fields.sfmt_emul.f
1827 UINT f_srcdst;
1828 UINT f_src2;
1829 UINT f_src1;
1830
1831 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1832 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1833 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1834
1835 /* Record the fields for the semantic handler. */
1836 FLD (f_srcdst) = f_srcdst;
1837 FLD (i_src1) = & CPU (h_gr)[f_src1];
1838 FLD (i_src2) = & CPU (h_gr)[f_src2];
1839 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1840 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_emul", "f_srcdst 0x%x", 'x', f_srcdst, "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1841
1842 #if WITH_PROFILE_MODEL_P
1843 /* Record the fields for profiling. */
1844 if (PROFILE_MODEL_P (current_cpu))
1845 {
1846 FLD (in_src1) = f_src1;
1847 FLD (in_src2) = f_src2;
1848 FLD (out_dst) = f_srcdst;
1849 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
1850 }
1851 #endif
1852 #undef FLD
1853 return idesc;
1854 }
1855
1856 extract_sfmt_emul1:
1857 {
1858 const IDESC *idesc = &i960base_insn_data[itype];
1859 CGEN_INSN_INT insn = base_insn;
1860 #define FLD(f) abuf->fields.sfmt_emul1.f
1861 UINT f_srcdst;
1862 UINT f_src2;
1863 UINT f_src1;
1864
1865 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1866 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1867 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1868
1869 /* Record the fields for the semantic handler. */
1870 FLD (f_srcdst) = f_srcdst;
1871 FLD (f_src1) = f_src1;
1872 FLD (i_src2) = & CPU (h_gr)[f_src2];
1873 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1874 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_emul1", "f_srcdst 0x%x", 'x', f_srcdst, "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1875
1876 #if WITH_PROFILE_MODEL_P
1877 /* Record the fields for profiling. */
1878 if (PROFILE_MODEL_P (current_cpu))
1879 {
1880 FLD (in_src2) = f_src2;
1881 FLD (out_dst) = f_srcdst;
1882 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
1883 }
1884 #endif
1885 #undef FLD
1886 return idesc;
1887 }
1888
1889 extract_sfmt_emul2:
1890 {
1891 const IDESC *idesc = &i960base_insn_data[itype];
1892 CGEN_INSN_INT insn = base_insn;
1893 #define FLD(f) abuf->fields.sfmt_emul2.f
1894 UINT f_srcdst;
1895 UINT f_src2;
1896 UINT f_src1;
1897
1898 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1899 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1900 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1901
1902 /* Record the fields for the semantic handler. */
1903 FLD (f_srcdst) = f_srcdst;
1904 FLD (f_src2) = f_src2;
1905 FLD (i_src1) = & CPU (h_gr)[f_src1];
1906 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1907 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_emul2", "f_srcdst 0x%x", 'x', f_srcdst, "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1908
1909 #if WITH_PROFILE_MODEL_P
1910 /* Record the fields for profiling. */
1911 if (PROFILE_MODEL_P (current_cpu))
1912 {
1913 FLD (in_src1) = f_src1;
1914 FLD (out_dst) = f_srcdst;
1915 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
1916 }
1917 #endif
1918 #undef FLD
1919 return idesc;
1920 }
1921
1922 extract_sfmt_emul3:
1923 {
1924 const IDESC *idesc = &i960base_insn_data[itype];
1925 CGEN_INSN_INT insn = base_insn;
1926 #define FLD(f) abuf->fields.sfmt_emul3.f
1927 UINT f_srcdst;
1928 UINT f_src2;
1929 UINT f_src1;
1930
1931 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1932 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
1933 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1934
1935 /* Record the fields for the semantic handler. */
1936 FLD (f_srcdst) = f_srcdst;
1937 FLD (f_src1) = f_src1;
1938 FLD (f_src2) = f_src2;
1939 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1940 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_emul3", "f_srcdst 0x%x", 'x', f_srcdst, "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1941
1942 #if WITH_PROFILE_MODEL_P
1943 /* Record the fields for profiling. */
1944 if (PROFILE_MODEL_P (current_cpu))
1945 {
1946 FLD (out_dst) = f_srcdst;
1947 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
1948 }
1949 #endif
1950 #undef FLD
1951 return idesc;
1952 }
1953
1954 extract_sfmt_movl:
1955 {
1956 const IDESC *idesc = &i960base_insn_data[itype];
1957 CGEN_INSN_INT insn = base_insn;
1958 #define FLD(f) abuf->fields.sfmt_movq.f
1959 UINT f_srcdst;
1960 UINT f_src1;
1961
1962 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1963 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1964
1965 /* Record the fields for the semantic handler. */
1966 FLD (f_src1) = f_src1;
1967 FLD (f_srcdst) = f_srcdst;
1968 FLD (i_src1) = & CPU (h_gr)[f_src1];
1969 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1970 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl", "f_src1 0x%x", 'x', f_src1, "f_srcdst 0x%x", 'x', f_srcdst, "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1971
1972 #if WITH_PROFILE_MODEL_P
1973 /* Record the fields for profiling. */
1974 if (PROFILE_MODEL_P (current_cpu))
1975 {
1976 FLD (in_h_gr_add__DFLT_index_of__DFLT_src1_1) = ((FLD (f_src1)) + (1));
1977 FLD (in_src1) = f_src1;
1978 FLD (out_dst) = f_srcdst;
1979 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
1980 }
1981 #endif
1982 #undef FLD
1983 return idesc;
1984 }
1985
1986 extract_sfmt_movl1:
1987 {
1988 const IDESC *idesc = &i960base_insn_data[itype];
1989 CGEN_INSN_INT insn = base_insn;
1990 #define FLD(f) abuf->fields.sfmt_emul3.f
1991 UINT f_srcdst;
1992 UINT f_src1;
1993
1994 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
1995 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
1996
1997 /* Record the fields for the semantic handler. */
1998 FLD (f_srcdst) = f_srcdst;
1999 FLD (f_src1) = f_src1;
2000 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2001 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movl1", "f_srcdst 0x%x", 'x', f_srcdst, "f_src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2002
2003 #if WITH_PROFILE_MODEL_P
2004 /* Record the fields for profiling. */
2005 if (PROFILE_MODEL_P (current_cpu))
2006 {
2007 FLD (out_dst) = f_srcdst;
2008 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2009 }
2010 #endif
2011 #undef FLD
2012 return idesc;
2013 }
2014
2015 extract_sfmt_movt:
2016 {
2017 const IDESC *idesc = &i960base_insn_data[itype];
2018 CGEN_INSN_INT insn = base_insn;
2019 #define FLD(f) abuf->fields.sfmt_movq.f
2020 UINT f_srcdst;
2021 UINT f_src1;
2022
2023 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2024 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2025
2026 /* Record the fields for the semantic handler. */
2027 FLD (f_src1) = f_src1;
2028 FLD (f_srcdst) = f_srcdst;
2029 FLD (i_src1) = & CPU (h_gr)[f_src1];
2030 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2031 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movt", "f_src1 0x%x", 'x', f_src1, "f_srcdst 0x%x", 'x', f_srcdst, "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2032
2033 #if WITH_PROFILE_MODEL_P
2034 /* Record the fields for profiling. */
2035 if (PROFILE_MODEL_P (current_cpu))
2036 {
2037 FLD (in_h_gr_add__DFLT_index_of__DFLT_src1_1) = ((FLD (f_src1)) + (1));
2038 FLD (in_h_gr_add__DFLT_index_of__DFLT_src1_2) = ((FLD (f_src1)) + (2));
2039 FLD (in_src1) = f_src1;
2040 FLD (out_dst) = f_srcdst;
2041 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2042 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
2043 }
2044 #endif
2045 #undef FLD
2046 return idesc;
2047 }
2048
2049 extract_sfmt_movt1:
2050 {
2051 const IDESC *idesc = &i960base_insn_data[itype];
2052 CGEN_INSN_INT insn = base_insn;
2053 #define FLD(f) abuf->fields.sfmt_movq.f
2054 UINT f_srcdst;
2055 UINT f_src1;
2056
2057 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2058 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2059
2060 /* Record the fields for the semantic handler. */
2061 FLD (f_srcdst) = f_srcdst;
2062 FLD (f_src1) = f_src1;
2063 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2064 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movt1", "f_srcdst 0x%x", 'x', f_srcdst, "f_src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2065
2066 #if WITH_PROFILE_MODEL_P
2067 /* Record the fields for profiling. */
2068 if (PROFILE_MODEL_P (current_cpu))
2069 {
2070 FLD (out_dst) = f_srcdst;
2071 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2072 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
2073 }
2074 #endif
2075 #undef FLD
2076 return idesc;
2077 }
2078
2079 extract_sfmt_movq:
2080 {
2081 const IDESC *idesc = &i960base_insn_data[itype];
2082 CGEN_INSN_INT insn = base_insn;
2083 #define FLD(f) abuf->fields.sfmt_movq.f
2084 UINT f_srcdst;
2085 UINT f_src1;
2086
2087 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2088 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2089
2090 /* Record the fields for the semantic handler. */
2091 FLD (f_src1) = f_src1;
2092 FLD (f_srcdst) = f_srcdst;
2093 FLD (i_src1) = & CPU (h_gr)[f_src1];
2094 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2095 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movq", "f_src1 0x%x", 'x', f_src1, "f_srcdst 0x%x", 'x', f_srcdst, "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2096
2097 #if WITH_PROFILE_MODEL_P
2098 /* Record the fields for profiling. */
2099 if (PROFILE_MODEL_P (current_cpu))
2100 {
2101 FLD (in_h_gr_add__DFLT_index_of__DFLT_src1_1) = ((FLD (f_src1)) + (1));
2102 FLD (in_h_gr_add__DFLT_index_of__DFLT_src1_2) = ((FLD (f_src1)) + (2));
2103 FLD (in_h_gr_add__DFLT_index_of__DFLT_src1_3) = ((FLD (f_src1)) + (3));
2104 FLD (in_src1) = f_src1;
2105 FLD (out_dst) = f_srcdst;
2106 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2107 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
2108 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_3) = ((FLD (f_srcdst)) + (3));
2109 }
2110 #endif
2111 #undef FLD
2112 return idesc;
2113 }
2114
2115 extract_sfmt_movq1:
2116 {
2117 const IDESC *idesc = &i960base_insn_data[itype];
2118 CGEN_INSN_INT insn = base_insn;
2119 #define FLD(f) abuf->fields.sfmt_movq.f
2120 UINT f_srcdst;
2121 UINT f_src1;
2122
2123 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2124 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2125
2126 /* Record the fields for the semantic handler. */
2127 FLD (f_srcdst) = f_srcdst;
2128 FLD (f_src1) = f_src1;
2129 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2130 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_movq1", "f_srcdst 0x%x", 'x', f_srcdst, "f_src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2131
2132 #if WITH_PROFILE_MODEL_P
2133 /* Record the fields for profiling. */
2134 if (PROFILE_MODEL_P (current_cpu))
2135 {
2136 FLD (out_dst) = f_srcdst;
2137 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2138 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
2139 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_3) = ((FLD (f_srcdst)) + (3));
2140 }
2141 #endif
2142 #undef FLD
2143 return idesc;
2144 }
2145
2146 extract_sfmt_modpc:
2147 {
2148 const IDESC *idesc = &i960base_insn_data[itype];
2149 CGEN_INSN_INT insn = base_insn;
2150 #define FLD(f) abuf->fields.sfmt_emul1.f
2151 UINT f_srcdst;
2152 UINT f_src2;
2153
2154 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2155 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2156
2157 /* Record the fields for the semantic handler. */
2158 FLD (i_src2) = & CPU (h_gr)[f_src2];
2159 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2160 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_modpc", "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2161
2162 #if WITH_PROFILE_MODEL_P
2163 /* Record the fields for profiling. */
2164 if (PROFILE_MODEL_P (current_cpu))
2165 {
2166 FLD (in_src2) = f_src2;
2167 FLD (out_dst) = f_srcdst;
2168 }
2169 #endif
2170 #undef FLD
2171 return idesc;
2172 }
2173
2174 extract_sfmt_lda_offset:
2175 {
2176 const IDESC *idesc = &i960base_insn_data[itype];
2177 CGEN_INSN_INT insn = base_insn;
2178 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
2179 UINT f_srcdst;
2180 UINT f_offset;
2181
2182 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2183 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
2184
2185 /* Record the fields for the semantic handler. */
2186 FLD (f_offset) = f_offset;
2187 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2188 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lda_offset", "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2189
2190 #if WITH_PROFILE_MODEL_P
2191 /* Record the fields for profiling. */
2192 if (PROFILE_MODEL_P (current_cpu))
2193 {
2194 FLD (out_dst) = f_srcdst;
2195 }
2196 #endif
2197 #undef FLD
2198 return idesc;
2199 }
2200
2201 extract_sfmt_lda_indirect_offset:
2202 {
2203 const IDESC *idesc = &i960base_insn_data[itype];
2204 CGEN_INSN_INT insn = base_insn;
2205 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
2206 UINT f_srcdst;
2207 UINT f_abase;
2208 UINT f_offset;
2209
2210 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2211 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2212 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
2213
2214 /* Record the fields for the semantic handler. */
2215 FLD (f_offset) = f_offset;
2216 FLD (i_abase) = & CPU (h_gr)[f_abase];
2217 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2218 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lda_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2219
2220 #if WITH_PROFILE_MODEL_P
2221 /* Record the fields for profiling. */
2222 if (PROFILE_MODEL_P (current_cpu))
2223 {
2224 FLD (in_abase) = f_abase;
2225 FLD (out_dst) = f_srcdst;
2226 }
2227 #endif
2228 #undef FLD
2229 return idesc;
2230 }
2231
2232 extract_sfmt_lda_indirect:
2233 {
2234 const IDESC *idesc = &i960base_insn_data[itype];
2235 CGEN_INSN_INT insn = base_insn;
2236 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
2237 UINT f_srcdst;
2238 UINT f_abase;
2239
2240 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2241 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2242
2243 /* Record the fields for the semantic handler. */
2244 FLD (i_abase) = & CPU (h_gr)[f_abase];
2245 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2246 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lda_indirect", "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2247
2248 #if WITH_PROFILE_MODEL_P
2249 /* Record the fields for profiling. */
2250 if (PROFILE_MODEL_P (current_cpu))
2251 {
2252 FLD (in_abase) = f_abase;
2253 FLD (out_dst) = f_srcdst;
2254 }
2255 #endif
2256 #undef FLD
2257 return idesc;
2258 }
2259
2260 extract_sfmt_lda_indirect_index:
2261 {
2262 const IDESC *idesc = &i960base_insn_data[itype];
2263 CGEN_INSN_INT insn = base_insn;
2264 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2265 UINT f_srcdst;
2266 UINT f_abase;
2267 UINT f_scale;
2268 UINT f_index;
2269
2270 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2271 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2272 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
2273 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2274
2275 /* Record the fields for the semantic handler. */
2276 FLD (f_scale) = f_scale;
2277 FLD (i_abase) = & CPU (h_gr)[f_abase];
2278 FLD (i_index) = & CPU (h_gr)[f_index];
2279 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2280 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lda_indirect_index", "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2281
2282 #if WITH_PROFILE_MODEL_P
2283 /* Record the fields for profiling. */
2284 if (PROFILE_MODEL_P (current_cpu))
2285 {
2286 FLD (in_abase) = f_abase;
2287 FLD (in_index) = f_index;
2288 FLD (out_dst) = f_srcdst;
2289 }
2290 #endif
2291 #undef FLD
2292 return idesc;
2293 }
2294
2295 extract_sfmt_lda_disp:
2296 {
2297 const IDESC *idesc = &i960base_insn_data[itype];
2298 CGEN_INSN_INT insn = base_insn;
2299 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2300 UINT f_optdisp;
2301 UINT f_srcdst;
2302 /* Contents of trailing part of insn. */
2303 UINT word_1;
2304
2305 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2306 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2307 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2308
2309 /* Record the fields for the semantic handler. */
2310 FLD (f_optdisp) = f_optdisp;
2311 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2312 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lda_disp", "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2313
2314 #if WITH_PROFILE_MODEL_P
2315 /* Record the fields for profiling. */
2316 if (PROFILE_MODEL_P (current_cpu))
2317 {
2318 FLD (out_dst) = f_srcdst;
2319 }
2320 #endif
2321 #undef FLD
2322 return idesc;
2323 }
2324
2325 extract_sfmt_lda_indirect_disp:
2326 {
2327 const IDESC *idesc = &i960base_insn_data[itype];
2328 CGEN_INSN_INT insn = base_insn;
2329 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2330 UINT f_optdisp;
2331 UINT f_srcdst;
2332 UINT f_abase;
2333 /* Contents of trailing part of insn. */
2334 UINT word_1;
2335
2336 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2337 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2338 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2339 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2340
2341 /* Record the fields for the semantic handler. */
2342 FLD (f_optdisp) = f_optdisp;
2343 FLD (i_abase) = & CPU (h_gr)[f_abase];
2344 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2345 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lda_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2346
2347 #if WITH_PROFILE_MODEL_P
2348 /* Record the fields for profiling. */
2349 if (PROFILE_MODEL_P (current_cpu))
2350 {
2351 FLD (in_abase) = f_abase;
2352 FLD (out_dst) = f_srcdst;
2353 }
2354 #endif
2355 #undef FLD
2356 return idesc;
2357 }
2358
2359 extract_sfmt_lda_index_disp:
2360 {
2361 const IDESC *idesc = &i960base_insn_data[itype];
2362 CGEN_INSN_INT insn = base_insn;
2363 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2364 UINT f_optdisp;
2365 UINT f_srcdst;
2366 UINT f_scale;
2367 UINT f_index;
2368 /* Contents of trailing part of insn. */
2369 UINT word_1;
2370
2371 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2372 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2373 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2374 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
2375 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2376
2377 /* Record the fields for the semantic handler. */
2378 FLD (f_optdisp) = f_optdisp;
2379 FLD (f_scale) = f_scale;
2380 FLD (i_index) = & CPU (h_gr)[f_index];
2381 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2382 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lda_index_disp", "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2383
2384 #if WITH_PROFILE_MODEL_P
2385 /* Record the fields for profiling. */
2386 if (PROFILE_MODEL_P (current_cpu))
2387 {
2388 FLD (in_index) = f_index;
2389 FLD (out_dst) = f_srcdst;
2390 }
2391 #endif
2392 #undef FLD
2393 return idesc;
2394 }
2395
2396 extract_sfmt_lda_indirect_index_disp:
2397 {
2398 const IDESC *idesc = &i960base_insn_data[itype];
2399 CGEN_INSN_INT insn = base_insn;
2400 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2401 UINT f_optdisp;
2402 UINT f_srcdst;
2403 UINT f_abase;
2404 UINT f_scale;
2405 UINT f_index;
2406 /* Contents of trailing part of insn. */
2407 UINT word_1;
2408
2409 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2410 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2411 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2412 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2413 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
2414 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2415
2416 /* Record the fields for the semantic handler. */
2417 FLD (f_optdisp) = f_optdisp;
2418 FLD (f_scale) = f_scale;
2419 FLD (i_abase) = & CPU (h_gr)[f_abase];
2420 FLD (i_index) = & CPU (h_gr)[f_index];
2421 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2422 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_lda_indirect_index_disp", "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2423
2424 #if WITH_PROFILE_MODEL_P
2425 /* Record the fields for profiling. */
2426 if (PROFILE_MODEL_P (current_cpu))
2427 {
2428 FLD (in_abase) = f_abase;
2429 FLD (in_index) = f_index;
2430 FLD (out_dst) = f_srcdst;
2431 }
2432 #endif
2433 #undef FLD
2434 return idesc;
2435 }
2436
2437 extract_sfmt_ld_offset:
2438 {
2439 const IDESC *idesc = &i960base_insn_data[itype];
2440 CGEN_INSN_INT insn = base_insn;
2441 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
2442 UINT f_srcdst;
2443 UINT f_offset;
2444
2445 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2446 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
2447
2448 /* Record the fields for the semantic handler. */
2449 FLD (f_offset) = f_offset;
2450 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2451 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_offset", "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2452
2453 #if WITH_PROFILE_MODEL_P
2454 /* Record the fields for profiling. */
2455 if (PROFILE_MODEL_P (current_cpu))
2456 {
2457 FLD (out_dst) = f_srcdst;
2458 }
2459 #endif
2460 #undef FLD
2461 return idesc;
2462 }
2463
2464 extract_sfmt_ld_indirect_offset:
2465 {
2466 const IDESC *idesc = &i960base_insn_data[itype];
2467 CGEN_INSN_INT insn = base_insn;
2468 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
2469 UINT f_srcdst;
2470 UINT f_abase;
2471 UINT f_offset;
2472
2473 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2474 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2475 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
2476
2477 /* Record the fields for the semantic handler. */
2478 FLD (f_offset) = f_offset;
2479 FLD (i_abase) = & CPU (h_gr)[f_abase];
2480 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2481 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2482
2483 #if WITH_PROFILE_MODEL_P
2484 /* Record the fields for profiling. */
2485 if (PROFILE_MODEL_P (current_cpu))
2486 {
2487 FLD (in_abase) = f_abase;
2488 FLD (out_dst) = f_srcdst;
2489 }
2490 #endif
2491 #undef FLD
2492 return idesc;
2493 }
2494
2495 extract_sfmt_ld_indirect:
2496 {
2497 const IDESC *idesc = &i960base_insn_data[itype];
2498 CGEN_INSN_INT insn = base_insn;
2499 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
2500 UINT f_srcdst;
2501 UINT f_abase;
2502
2503 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2504 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2505
2506 /* Record the fields for the semantic handler. */
2507 FLD (i_abase) = & CPU (h_gr)[f_abase];
2508 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2509 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_indirect", "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2510
2511 #if WITH_PROFILE_MODEL_P
2512 /* Record the fields for profiling. */
2513 if (PROFILE_MODEL_P (current_cpu))
2514 {
2515 FLD (in_abase) = f_abase;
2516 FLD (out_dst) = f_srcdst;
2517 }
2518 #endif
2519 #undef FLD
2520 return idesc;
2521 }
2522
2523 extract_sfmt_ld_indirect_index:
2524 {
2525 const IDESC *idesc = &i960base_insn_data[itype];
2526 CGEN_INSN_INT insn = base_insn;
2527 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2528 UINT f_srcdst;
2529 UINT f_abase;
2530 UINT f_scale;
2531 UINT f_index;
2532
2533 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2534 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2535 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
2536 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2537
2538 /* Record the fields for the semantic handler. */
2539 FLD (f_scale) = f_scale;
2540 FLD (i_abase) = & CPU (h_gr)[f_abase];
2541 FLD (i_index) = & CPU (h_gr)[f_index];
2542 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2543 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_indirect_index", "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2544
2545 #if WITH_PROFILE_MODEL_P
2546 /* Record the fields for profiling. */
2547 if (PROFILE_MODEL_P (current_cpu))
2548 {
2549 FLD (in_abase) = f_abase;
2550 FLD (in_index) = f_index;
2551 FLD (out_dst) = f_srcdst;
2552 }
2553 #endif
2554 #undef FLD
2555 return idesc;
2556 }
2557
2558 extract_sfmt_ld_disp:
2559 {
2560 const IDESC *idesc = &i960base_insn_data[itype];
2561 CGEN_INSN_INT insn = base_insn;
2562 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2563 UINT f_optdisp;
2564 UINT f_srcdst;
2565 /* Contents of trailing part of insn. */
2566 UINT word_1;
2567
2568 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2569 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2570 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2571
2572 /* Record the fields for the semantic handler. */
2573 FLD (f_optdisp) = f_optdisp;
2574 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2575 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_disp", "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2576
2577 #if WITH_PROFILE_MODEL_P
2578 /* Record the fields for profiling. */
2579 if (PROFILE_MODEL_P (current_cpu))
2580 {
2581 FLD (out_dst) = f_srcdst;
2582 }
2583 #endif
2584 #undef FLD
2585 return idesc;
2586 }
2587
2588 extract_sfmt_ld_indirect_disp:
2589 {
2590 const IDESC *idesc = &i960base_insn_data[itype];
2591 CGEN_INSN_INT insn = base_insn;
2592 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2593 UINT f_optdisp;
2594 UINT f_srcdst;
2595 UINT f_abase;
2596 /* Contents of trailing part of insn. */
2597 UINT word_1;
2598
2599 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2600 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2601 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2602 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2603
2604 /* Record the fields for the semantic handler. */
2605 FLD (f_optdisp) = f_optdisp;
2606 FLD (i_abase) = & CPU (h_gr)[f_abase];
2607 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2608 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2609
2610 #if WITH_PROFILE_MODEL_P
2611 /* Record the fields for profiling. */
2612 if (PROFILE_MODEL_P (current_cpu))
2613 {
2614 FLD (in_abase) = f_abase;
2615 FLD (out_dst) = f_srcdst;
2616 }
2617 #endif
2618 #undef FLD
2619 return idesc;
2620 }
2621
2622 extract_sfmt_ld_index_disp:
2623 {
2624 const IDESC *idesc = &i960base_insn_data[itype];
2625 CGEN_INSN_INT insn = base_insn;
2626 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2627 UINT f_optdisp;
2628 UINT f_srcdst;
2629 UINT f_scale;
2630 UINT f_index;
2631 /* Contents of trailing part of insn. */
2632 UINT word_1;
2633
2634 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2635 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2636 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2637 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
2638 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2639
2640 /* Record the fields for the semantic handler. */
2641 FLD (f_optdisp) = f_optdisp;
2642 FLD (f_scale) = f_scale;
2643 FLD (i_index) = & CPU (h_gr)[f_index];
2644 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2645 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_index_disp", "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2646
2647 #if WITH_PROFILE_MODEL_P
2648 /* Record the fields for profiling. */
2649 if (PROFILE_MODEL_P (current_cpu))
2650 {
2651 FLD (in_index) = f_index;
2652 FLD (out_dst) = f_srcdst;
2653 }
2654 #endif
2655 #undef FLD
2656 return idesc;
2657 }
2658
2659 extract_sfmt_ld_indirect_index_disp:
2660 {
2661 const IDESC *idesc = &i960base_insn_data[itype];
2662 CGEN_INSN_INT insn = base_insn;
2663 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2664 UINT f_optdisp;
2665 UINT f_srcdst;
2666 UINT f_abase;
2667 UINT f_scale;
2668 UINT f_index;
2669 /* Contents of trailing part of insn. */
2670 UINT word_1;
2671
2672 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2673 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2674 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2675 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2676 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
2677 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2678
2679 /* Record the fields for the semantic handler. */
2680 FLD (f_optdisp) = f_optdisp;
2681 FLD (f_scale) = f_scale;
2682 FLD (i_abase) = & CPU (h_gr)[f_abase];
2683 FLD (i_index) = & CPU (h_gr)[f_index];
2684 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2685 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ld_indirect_index_disp", "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2686
2687 #if WITH_PROFILE_MODEL_P
2688 /* Record the fields for profiling. */
2689 if (PROFILE_MODEL_P (current_cpu))
2690 {
2691 FLD (in_abase) = f_abase;
2692 FLD (in_index) = f_index;
2693 FLD (out_dst) = f_srcdst;
2694 }
2695 #endif
2696 #undef FLD
2697 return idesc;
2698 }
2699
2700 extract_sfmt_ldl_offset:
2701 {
2702 const IDESC *idesc = &i960base_insn_data[itype];
2703 CGEN_INSN_INT insn = base_insn;
2704 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
2705 UINT f_srcdst;
2706 UINT f_offset;
2707
2708 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2709 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
2710
2711 /* Record the fields for the semantic handler. */
2712 FLD (f_srcdst) = f_srcdst;
2713 FLD (f_offset) = f_offset;
2714 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2715 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldl_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2716
2717 #if WITH_PROFILE_MODEL_P
2718 /* Record the fields for profiling. */
2719 if (PROFILE_MODEL_P (current_cpu))
2720 {
2721 FLD (out_dst) = f_srcdst;
2722 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2723 }
2724 #endif
2725 #undef FLD
2726 return idesc;
2727 }
2728
2729 extract_sfmt_ldl_indirect_offset:
2730 {
2731 const IDESC *idesc = &i960base_insn_data[itype];
2732 CGEN_INSN_INT insn = base_insn;
2733 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
2734 UINT f_srcdst;
2735 UINT f_abase;
2736 UINT f_offset;
2737
2738 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2739 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2740 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
2741
2742 /* Record the fields for the semantic handler. */
2743 FLD (f_srcdst) = f_srcdst;
2744 FLD (f_offset) = f_offset;
2745 FLD (i_abase) = & CPU (h_gr)[f_abase];
2746 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2747 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldl_indirect_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2748
2749 #if WITH_PROFILE_MODEL_P
2750 /* Record the fields for profiling. */
2751 if (PROFILE_MODEL_P (current_cpu))
2752 {
2753 FLD (in_abase) = f_abase;
2754 FLD (out_dst) = f_srcdst;
2755 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2756 }
2757 #endif
2758 #undef FLD
2759 return idesc;
2760 }
2761
2762 extract_sfmt_ldl_indirect:
2763 {
2764 const IDESC *idesc = &i960base_insn_data[itype];
2765 CGEN_INSN_INT insn = base_insn;
2766 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
2767 UINT f_srcdst;
2768 UINT f_abase;
2769
2770 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2771 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2772
2773 /* Record the fields for the semantic handler. */
2774 FLD (f_srcdst) = f_srcdst;
2775 FLD (i_abase) = & CPU (h_gr)[f_abase];
2776 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2777 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldl_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2778
2779 #if WITH_PROFILE_MODEL_P
2780 /* Record the fields for profiling. */
2781 if (PROFILE_MODEL_P (current_cpu))
2782 {
2783 FLD (in_abase) = f_abase;
2784 FLD (out_dst) = f_srcdst;
2785 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2786 }
2787 #endif
2788 #undef FLD
2789 return idesc;
2790 }
2791
2792 extract_sfmt_ldl_indirect_index:
2793 {
2794 const IDESC *idesc = &i960base_insn_data[itype];
2795 CGEN_INSN_INT insn = base_insn;
2796 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2797 UINT f_srcdst;
2798 UINT f_abase;
2799 UINT f_scale;
2800 UINT f_index;
2801
2802 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2803 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2804 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
2805 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2806
2807 /* Record the fields for the semantic handler. */
2808 FLD (f_srcdst) = f_srcdst;
2809 FLD (f_scale) = f_scale;
2810 FLD (i_abase) = & CPU (h_gr)[f_abase];
2811 FLD (i_index) = & CPU (h_gr)[f_index];
2812 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2813 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldl_indirect_index", "f_srcdst 0x%x", 'x', f_srcdst, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2814
2815 #if WITH_PROFILE_MODEL_P
2816 /* Record the fields for profiling. */
2817 if (PROFILE_MODEL_P (current_cpu))
2818 {
2819 FLD (in_abase) = f_abase;
2820 FLD (in_index) = f_index;
2821 FLD (out_dst) = f_srcdst;
2822 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2823 }
2824 #endif
2825 #undef FLD
2826 return idesc;
2827 }
2828
2829 extract_sfmt_ldl_disp:
2830 {
2831 const IDESC *idesc = &i960base_insn_data[itype];
2832 CGEN_INSN_INT insn = base_insn;
2833 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2834 UINT f_optdisp;
2835 UINT f_srcdst;
2836 /* Contents of trailing part of insn. */
2837 UINT word_1;
2838
2839 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2840 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2841 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2842
2843 /* Record the fields for the semantic handler. */
2844 FLD (f_srcdst) = f_srcdst;
2845 FLD (f_optdisp) = f_optdisp;
2846 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2847 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldl_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2848
2849 #if WITH_PROFILE_MODEL_P
2850 /* Record the fields for profiling. */
2851 if (PROFILE_MODEL_P (current_cpu))
2852 {
2853 FLD (out_dst) = f_srcdst;
2854 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2855 }
2856 #endif
2857 #undef FLD
2858 return idesc;
2859 }
2860
2861 extract_sfmt_ldl_indirect_disp:
2862 {
2863 const IDESC *idesc = &i960base_insn_data[itype];
2864 CGEN_INSN_INT insn = base_insn;
2865 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2866 UINT f_optdisp;
2867 UINT f_srcdst;
2868 UINT f_abase;
2869 /* Contents of trailing part of insn. */
2870 UINT word_1;
2871
2872 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2873 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2874 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2875 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2876
2877 /* Record the fields for the semantic handler. */
2878 FLD (f_srcdst) = f_srcdst;
2879 FLD (f_optdisp) = f_optdisp;
2880 FLD (i_abase) = & CPU (h_gr)[f_abase];
2881 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2882 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldl_indirect_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2883
2884 #if WITH_PROFILE_MODEL_P
2885 /* Record the fields for profiling. */
2886 if (PROFILE_MODEL_P (current_cpu))
2887 {
2888 FLD (in_abase) = f_abase;
2889 FLD (out_dst) = f_srcdst;
2890 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2891 }
2892 #endif
2893 #undef FLD
2894 return idesc;
2895 }
2896
2897 extract_sfmt_ldl_index_disp:
2898 {
2899 const IDESC *idesc = &i960base_insn_data[itype];
2900 CGEN_INSN_INT insn = base_insn;
2901 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2902 UINT f_optdisp;
2903 UINT f_srcdst;
2904 UINT f_scale;
2905 UINT f_index;
2906 /* Contents of trailing part of insn. */
2907 UINT word_1;
2908
2909 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2910 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2911 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2912 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
2913 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2914
2915 /* Record the fields for the semantic handler. */
2916 FLD (f_srcdst) = f_srcdst;
2917 FLD (f_optdisp) = f_optdisp;
2918 FLD (f_scale) = f_scale;
2919 FLD (i_index) = & CPU (h_gr)[f_index];
2920 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2921 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldl_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2922
2923 #if WITH_PROFILE_MODEL_P
2924 /* Record the fields for profiling. */
2925 if (PROFILE_MODEL_P (current_cpu))
2926 {
2927 FLD (in_index) = f_index;
2928 FLD (out_dst) = f_srcdst;
2929 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2930 }
2931 #endif
2932 #undef FLD
2933 return idesc;
2934 }
2935
2936 extract_sfmt_ldl_indirect_index_disp:
2937 {
2938 const IDESC *idesc = &i960base_insn_data[itype];
2939 CGEN_INSN_INT insn = base_insn;
2940 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
2941 UINT f_optdisp;
2942 UINT f_srcdst;
2943 UINT f_abase;
2944 UINT f_scale;
2945 UINT f_index;
2946 /* Contents of trailing part of insn. */
2947 UINT word_1;
2948
2949 word_1 = GETIMEMUSI (current_cpu, pc + 4);
2950 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
2951 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2952 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
2953 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
2954 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
2955
2956 /* Record the fields for the semantic handler. */
2957 FLD (f_srcdst) = f_srcdst;
2958 FLD (f_optdisp) = f_optdisp;
2959 FLD (f_scale) = f_scale;
2960 FLD (i_abase) = & CPU (h_gr)[f_abase];
2961 FLD (i_index) = & CPU (h_gr)[f_index];
2962 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2963 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldl_indirect_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2964
2965 #if WITH_PROFILE_MODEL_P
2966 /* Record the fields for profiling. */
2967 if (PROFILE_MODEL_P (current_cpu))
2968 {
2969 FLD (in_abase) = f_abase;
2970 FLD (in_index) = f_index;
2971 FLD (out_dst) = f_srcdst;
2972 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
2973 }
2974 #endif
2975 #undef FLD
2976 return idesc;
2977 }
2978
2979 extract_sfmt_ldt_offset:
2980 {
2981 const IDESC *idesc = &i960base_insn_data[itype];
2982 CGEN_INSN_INT insn = base_insn;
2983 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
2984 UINT f_srcdst;
2985 UINT f_offset;
2986
2987 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
2988 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
2989
2990 /* Record the fields for the semantic handler. */
2991 FLD (f_srcdst) = f_srcdst;
2992 FLD (f_offset) = f_offset;
2993 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2994 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldt_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2995
2996 #if WITH_PROFILE_MODEL_P
2997 /* Record the fields for profiling. */
2998 if (PROFILE_MODEL_P (current_cpu))
2999 {
3000 FLD (out_dst) = f_srcdst;
3001 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3002 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3003 }
3004 #endif
3005 #undef FLD
3006 return idesc;
3007 }
3008
3009 extract_sfmt_ldt_indirect_offset:
3010 {
3011 const IDESC *idesc = &i960base_insn_data[itype];
3012 CGEN_INSN_INT insn = base_insn;
3013 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
3014 UINT f_srcdst;
3015 UINT f_abase;
3016 UINT f_offset;
3017
3018 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3019 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3020 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
3021
3022 /* Record the fields for the semantic handler. */
3023 FLD (f_srcdst) = f_srcdst;
3024 FLD (f_offset) = f_offset;
3025 FLD (i_abase) = & CPU (h_gr)[f_abase];
3026 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3027 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldt_indirect_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3028
3029 #if WITH_PROFILE_MODEL_P
3030 /* Record the fields for profiling. */
3031 if (PROFILE_MODEL_P (current_cpu))
3032 {
3033 FLD (in_abase) = f_abase;
3034 FLD (out_dst) = f_srcdst;
3035 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3036 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3037 }
3038 #endif
3039 #undef FLD
3040 return idesc;
3041 }
3042
3043 extract_sfmt_ldt_indirect:
3044 {
3045 const IDESC *idesc = &i960base_insn_data[itype];
3046 CGEN_INSN_INT insn = base_insn;
3047 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
3048 UINT f_srcdst;
3049 UINT f_abase;
3050
3051 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3052 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3053
3054 /* Record the fields for the semantic handler. */
3055 FLD (f_srcdst) = f_srcdst;
3056 FLD (i_abase) = & CPU (h_gr)[f_abase];
3057 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3058 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldt_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3059
3060 #if WITH_PROFILE_MODEL_P
3061 /* Record the fields for profiling. */
3062 if (PROFILE_MODEL_P (current_cpu))
3063 {
3064 FLD (in_abase) = f_abase;
3065 FLD (out_dst) = f_srcdst;
3066 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3067 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3068 }
3069 #endif
3070 #undef FLD
3071 return idesc;
3072 }
3073
3074 extract_sfmt_ldt_indirect_index:
3075 {
3076 const IDESC *idesc = &i960base_insn_data[itype];
3077 CGEN_INSN_INT insn = base_insn;
3078 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
3079 UINT f_srcdst;
3080 UINT f_abase;
3081 UINT f_scale;
3082 UINT f_index;
3083
3084 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3085 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3086 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
3087 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
3088
3089 /* Record the fields for the semantic handler. */
3090 FLD (f_srcdst) = f_srcdst;
3091 FLD (f_scale) = f_scale;
3092 FLD (i_abase) = & CPU (h_gr)[f_abase];
3093 FLD (i_index) = & CPU (h_gr)[f_index];
3094 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3095 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldt_indirect_index", "f_srcdst 0x%x", 'x', f_srcdst, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3096
3097 #if WITH_PROFILE_MODEL_P
3098 /* Record the fields for profiling. */
3099 if (PROFILE_MODEL_P (current_cpu))
3100 {
3101 FLD (in_abase) = f_abase;
3102 FLD (in_index) = f_index;
3103 FLD (out_dst) = f_srcdst;
3104 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3105 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3106 }
3107 #endif
3108 #undef FLD
3109 return idesc;
3110 }
3111
3112 extract_sfmt_ldt_disp:
3113 {
3114 const IDESC *idesc = &i960base_insn_data[itype];
3115 CGEN_INSN_INT insn = base_insn;
3116 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
3117 UINT f_optdisp;
3118 UINT f_srcdst;
3119 /* Contents of trailing part of insn. */
3120 UINT word_1;
3121
3122 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3123 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3124 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3125
3126 /* Record the fields for the semantic handler. */
3127 FLD (f_srcdst) = f_srcdst;
3128 FLD (f_optdisp) = f_optdisp;
3129 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3130 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldt_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3131
3132 #if WITH_PROFILE_MODEL_P
3133 /* Record the fields for profiling. */
3134 if (PROFILE_MODEL_P (current_cpu))
3135 {
3136 FLD (out_dst) = f_srcdst;
3137 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3138 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3139 }
3140 #endif
3141 #undef FLD
3142 return idesc;
3143 }
3144
3145 extract_sfmt_ldt_indirect_disp:
3146 {
3147 const IDESC *idesc = &i960base_insn_data[itype];
3148 CGEN_INSN_INT insn = base_insn;
3149 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
3150 UINT f_optdisp;
3151 UINT f_srcdst;
3152 UINT f_abase;
3153 /* Contents of trailing part of insn. */
3154 UINT word_1;
3155
3156 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3157 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3158 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3159 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3160
3161 /* Record the fields for the semantic handler. */
3162 FLD (f_srcdst) = f_srcdst;
3163 FLD (f_optdisp) = f_optdisp;
3164 FLD (i_abase) = & CPU (h_gr)[f_abase];
3165 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3166 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldt_indirect_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3167
3168 #if WITH_PROFILE_MODEL_P
3169 /* Record the fields for profiling. */
3170 if (PROFILE_MODEL_P (current_cpu))
3171 {
3172 FLD (in_abase) = f_abase;
3173 FLD (out_dst) = f_srcdst;
3174 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3175 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3176 }
3177 #endif
3178 #undef FLD
3179 return idesc;
3180 }
3181
3182 extract_sfmt_ldt_index_disp:
3183 {
3184 const IDESC *idesc = &i960base_insn_data[itype];
3185 CGEN_INSN_INT insn = base_insn;
3186 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
3187 UINT f_optdisp;
3188 UINT f_srcdst;
3189 UINT f_scale;
3190 UINT f_index;
3191 /* Contents of trailing part of insn. */
3192 UINT word_1;
3193
3194 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3195 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3196 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3197 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
3198 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
3199
3200 /* Record the fields for the semantic handler. */
3201 FLD (f_srcdst) = f_srcdst;
3202 FLD (f_optdisp) = f_optdisp;
3203 FLD (f_scale) = f_scale;
3204 FLD (i_index) = & CPU (h_gr)[f_index];
3205 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3206 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldt_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3207
3208 #if WITH_PROFILE_MODEL_P
3209 /* Record the fields for profiling. */
3210 if (PROFILE_MODEL_P (current_cpu))
3211 {
3212 FLD (in_index) = f_index;
3213 FLD (out_dst) = f_srcdst;
3214 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3215 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3216 }
3217 #endif
3218 #undef FLD
3219 return idesc;
3220 }
3221
3222 extract_sfmt_ldt_indirect_index_disp:
3223 {
3224 const IDESC *idesc = &i960base_insn_data[itype];
3225 CGEN_INSN_INT insn = base_insn;
3226 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
3227 UINT f_optdisp;
3228 UINT f_srcdst;
3229 UINT f_abase;
3230 UINT f_scale;
3231 UINT f_index;
3232 /* Contents of trailing part of insn. */
3233 UINT word_1;
3234
3235 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3236 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3237 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3238 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3239 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
3240 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
3241
3242 /* Record the fields for the semantic handler. */
3243 FLD (f_srcdst) = f_srcdst;
3244 FLD (f_optdisp) = f_optdisp;
3245 FLD (f_scale) = f_scale;
3246 FLD (i_abase) = & CPU (h_gr)[f_abase];
3247 FLD (i_index) = & CPU (h_gr)[f_index];
3248 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3249 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldt_indirect_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3250
3251 #if WITH_PROFILE_MODEL_P
3252 /* Record the fields for profiling. */
3253 if (PROFILE_MODEL_P (current_cpu))
3254 {
3255 FLD (in_abase) = f_abase;
3256 FLD (in_index) = f_index;
3257 FLD (out_dst) = f_srcdst;
3258 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3259 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3260 }
3261 #endif
3262 #undef FLD
3263 return idesc;
3264 }
3265
3266 extract_sfmt_ldq_offset:
3267 {
3268 const IDESC *idesc = &i960base_insn_data[itype];
3269 CGEN_INSN_INT insn = base_insn;
3270 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
3271 UINT f_srcdst;
3272 UINT f_offset;
3273
3274 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3275 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
3276
3277 /* Record the fields for the semantic handler. */
3278 FLD (f_srcdst) = f_srcdst;
3279 FLD (f_offset) = f_offset;
3280 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3281 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldq_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3282
3283 #if WITH_PROFILE_MODEL_P
3284 /* Record the fields for profiling. */
3285 if (PROFILE_MODEL_P (current_cpu))
3286 {
3287 FLD (out_dst) = f_srcdst;
3288 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3289 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3290 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_3) = ((FLD (f_srcdst)) + (3));
3291 }
3292 #endif
3293 #undef FLD
3294 return idesc;
3295 }
3296
3297 extract_sfmt_ldq_indirect_offset:
3298 {
3299 const IDESC *idesc = &i960base_insn_data[itype];
3300 CGEN_INSN_INT insn = base_insn;
3301 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
3302 UINT f_srcdst;
3303 UINT f_abase;
3304 UINT f_offset;
3305
3306 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3307 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3308 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
3309
3310 /* Record the fields for the semantic handler. */
3311 FLD (f_srcdst) = f_srcdst;
3312 FLD (f_offset) = f_offset;
3313 FLD (i_abase) = & CPU (h_gr)[f_abase];
3314 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3315 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldq_indirect_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3316
3317 #if WITH_PROFILE_MODEL_P
3318 /* Record the fields for profiling. */
3319 if (PROFILE_MODEL_P (current_cpu))
3320 {
3321 FLD (in_abase) = f_abase;
3322 FLD (out_dst) = f_srcdst;
3323 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3324 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3325 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_3) = ((FLD (f_srcdst)) + (3));
3326 }
3327 #endif
3328 #undef FLD
3329 return idesc;
3330 }
3331
3332 extract_sfmt_ldq_indirect:
3333 {
3334 const IDESC *idesc = &i960base_insn_data[itype];
3335 CGEN_INSN_INT insn = base_insn;
3336 #define FLD(f) abuf->fields.sfmt_ldq_indirect_offset.f
3337 UINT f_srcdst;
3338 UINT f_abase;
3339
3340 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3341 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3342
3343 /* Record the fields for the semantic handler. */
3344 FLD (f_srcdst) = f_srcdst;
3345 FLD (i_abase) = & CPU (h_gr)[f_abase];
3346 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3347 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldq_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3348
3349 #if WITH_PROFILE_MODEL_P
3350 /* Record the fields for profiling. */
3351 if (PROFILE_MODEL_P (current_cpu))
3352 {
3353 FLD (in_abase) = f_abase;
3354 FLD (out_dst) = f_srcdst;
3355 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3356 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3357 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_3) = ((FLD (f_srcdst)) + (3));
3358 }
3359 #endif
3360 #undef FLD
3361 return idesc;
3362 }
3363
3364 extract_sfmt_ldq_indirect_index:
3365 {
3366 const IDESC *idesc = &i960base_insn_data[itype];
3367 CGEN_INSN_INT insn = base_insn;
3368 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
3369 UINT f_srcdst;
3370 UINT f_abase;
3371 UINT f_scale;
3372 UINT f_index;
3373
3374 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3375 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3376 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
3377 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
3378
3379 /* Record the fields for the semantic handler. */
3380 FLD (f_srcdst) = f_srcdst;
3381 FLD (f_scale) = f_scale;
3382 FLD (i_abase) = & CPU (h_gr)[f_abase];
3383 FLD (i_index) = & CPU (h_gr)[f_index];
3384 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3385 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldq_indirect_index", "f_srcdst 0x%x", 'x', f_srcdst, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3386
3387 #if WITH_PROFILE_MODEL_P
3388 /* Record the fields for profiling. */
3389 if (PROFILE_MODEL_P (current_cpu))
3390 {
3391 FLD (in_abase) = f_abase;
3392 FLD (in_index) = f_index;
3393 FLD (out_dst) = f_srcdst;
3394 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3395 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3396 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_3) = ((FLD (f_srcdst)) + (3));
3397 }
3398 #endif
3399 #undef FLD
3400 return idesc;
3401 }
3402
3403 extract_sfmt_ldq_disp:
3404 {
3405 const IDESC *idesc = &i960base_insn_data[itype];
3406 CGEN_INSN_INT insn = base_insn;
3407 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
3408 UINT f_optdisp;
3409 UINT f_srcdst;
3410 /* Contents of trailing part of insn. */
3411 UINT word_1;
3412
3413 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3414 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3415 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3416
3417 /* Record the fields for the semantic handler. */
3418 FLD (f_srcdst) = f_srcdst;
3419 FLD (f_optdisp) = f_optdisp;
3420 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3421 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldq_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3422
3423 #if WITH_PROFILE_MODEL_P
3424 /* Record the fields for profiling. */
3425 if (PROFILE_MODEL_P (current_cpu))
3426 {
3427 FLD (out_dst) = f_srcdst;
3428 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3429 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3430 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_3) = ((FLD (f_srcdst)) + (3));
3431 }
3432 #endif
3433 #undef FLD
3434 return idesc;
3435 }
3436
3437 extract_sfmt_ldq_indirect_disp:
3438 {
3439 const IDESC *idesc = &i960base_insn_data[itype];
3440 CGEN_INSN_INT insn = base_insn;
3441 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
3442 UINT f_optdisp;
3443 UINT f_srcdst;
3444 UINT f_abase;
3445 /* Contents of trailing part of insn. */
3446 UINT word_1;
3447
3448 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3449 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3450 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3451 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3452
3453 /* Record the fields for the semantic handler. */
3454 FLD (f_srcdst) = f_srcdst;
3455 FLD (f_optdisp) = f_optdisp;
3456 FLD (i_abase) = & CPU (h_gr)[f_abase];
3457 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3458 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldq_indirect_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3459
3460 #if WITH_PROFILE_MODEL_P
3461 /* Record the fields for profiling. */
3462 if (PROFILE_MODEL_P (current_cpu))
3463 {
3464 FLD (in_abase) = f_abase;
3465 FLD (out_dst) = f_srcdst;
3466 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3467 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3468 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_3) = ((FLD (f_srcdst)) + (3));
3469 }
3470 #endif
3471 #undef FLD
3472 return idesc;
3473 }
3474
3475 extract_sfmt_ldq_index_disp:
3476 {
3477 const IDESC *idesc = &i960base_insn_data[itype];
3478 CGEN_INSN_INT insn = base_insn;
3479 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
3480 UINT f_optdisp;
3481 UINT f_srcdst;
3482 UINT f_scale;
3483 UINT f_index;
3484 /* Contents of trailing part of insn. */
3485 UINT word_1;
3486
3487 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3488 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3489 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3490 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
3491 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
3492
3493 /* Record the fields for the semantic handler. */
3494 FLD (f_srcdst) = f_srcdst;
3495 FLD (f_optdisp) = f_optdisp;
3496 FLD (f_scale) = f_scale;
3497 FLD (i_index) = & CPU (h_gr)[f_index];
3498 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3499 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldq_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3500
3501 #if WITH_PROFILE_MODEL_P
3502 /* Record the fields for profiling. */
3503 if (PROFILE_MODEL_P (current_cpu))
3504 {
3505 FLD (in_index) = f_index;
3506 FLD (out_dst) = f_srcdst;
3507 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3508 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3509 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_3) = ((FLD (f_srcdst)) + (3));
3510 }
3511 #endif
3512 #undef FLD
3513 return idesc;
3514 }
3515
3516 extract_sfmt_ldq_indirect_index_disp:
3517 {
3518 const IDESC *idesc = &i960base_insn_data[itype];
3519 CGEN_INSN_INT insn = base_insn;
3520 #define FLD(f) abuf->fields.sfmt_ldq_indirect_index_disp.f
3521 UINT f_optdisp;
3522 UINT f_srcdst;
3523 UINT f_abase;
3524 UINT f_scale;
3525 UINT f_index;
3526 /* Contents of trailing part of insn. */
3527 UINT word_1;
3528
3529 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3530 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3531 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3532 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3533 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
3534 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
3535
3536 /* Record the fields for the semantic handler. */
3537 FLD (f_srcdst) = f_srcdst;
3538 FLD (f_optdisp) = f_optdisp;
3539 FLD (f_scale) = f_scale;
3540 FLD (i_abase) = & CPU (h_gr)[f_abase];
3541 FLD (i_index) = & CPU (h_gr)[f_index];
3542 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3543 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ldq_indirect_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3544
3545 #if WITH_PROFILE_MODEL_P
3546 /* Record the fields for profiling. */
3547 if (PROFILE_MODEL_P (current_cpu))
3548 {
3549 FLD (in_abase) = f_abase;
3550 FLD (in_index) = f_index;
3551 FLD (out_dst) = f_srcdst;
3552 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_1) = ((FLD (f_srcdst)) + (1));
3553 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_2) = ((FLD (f_srcdst)) + (2));
3554 FLD (out_h_gr_add__DFLT_index_of__DFLT_dst_3) = ((FLD (f_srcdst)) + (3));
3555 }
3556 #endif
3557 #undef FLD
3558 return idesc;
3559 }
3560
3561 extract_sfmt_st_offset:
3562 {
3563 const IDESC *idesc = &i960base_insn_data[itype];
3564 CGEN_INSN_INT insn = base_insn;
3565 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
3566 UINT f_srcdst;
3567 UINT f_offset;
3568
3569 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3570 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
3571
3572 /* Record the fields for the semantic handler. */
3573 FLD (f_offset) = f_offset;
3574 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3575 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_offset", "f_offset 0x%x", 'x', f_offset, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3576
3577 #if WITH_PROFILE_MODEL_P
3578 /* Record the fields for profiling. */
3579 if (PROFILE_MODEL_P (current_cpu))
3580 {
3581 FLD (in_st_src) = f_srcdst;
3582 }
3583 #endif
3584 #undef FLD
3585 return idesc;
3586 }
3587
3588 extract_sfmt_st_indirect_offset:
3589 {
3590 const IDESC *idesc = &i960base_insn_data[itype];
3591 CGEN_INSN_INT insn = base_insn;
3592 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
3593 UINT f_srcdst;
3594 UINT f_abase;
3595 UINT f_offset;
3596
3597 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3598 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3599 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
3600
3601 /* Record the fields for the semantic handler. */
3602 FLD (f_offset) = f_offset;
3603 FLD (i_abase) = & CPU (h_gr)[f_abase];
3604 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3605 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3606
3607 #if WITH_PROFILE_MODEL_P
3608 /* Record the fields for profiling. */
3609 if (PROFILE_MODEL_P (current_cpu))
3610 {
3611 FLD (in_abase) = f_abase;
3612 FLD (in_st_src) = f_srcdst;
3613 }
3614 #endif
3615 #undef FLD
3616 return idesc;
3617 }
3618
3619 extract_sfmt_st_indirect:
3620 {
3621 const IDESC *idesc = &i960base_insn_data[itype];
3622 CGEN_INSN_INT insn = base_insn;
3623 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
3624 UINT f_srcdst;
3625 UINT f_abase;
3626
3627 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3628 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3629
3630 /* Record the fields for the semantic handler. */
3631 FLD (i_abase) = & CPU (h_gr)[f_abase];
3632 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3633 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_indirect", "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3634
3635 #if WITH_PROFILE_MODEL_P
3636 /* Record the fields for profiling. */
3637 if (PROFILE_MODEL_P (current_cpu))
3638 {
3639 FLD (in_abase) = f_abase;
3640 FLD (in_st_src) = f_srcdst;
3641 }
3642 #endif
3643 #undef FLD
3644 return idesc;
3645 }
3646
3647 extract_sfmt_st_indirect_index:
3648 {
3649 const IDESC *idesc = &i960base_insn_data[itype];
3650 CGEN_INSN_INT insn = base_insn;
3651 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
3652 UINT f_srcdst;
3653 UINT f_abase;
3654 UINT f_scale;
3655 UINT f_index;
3656
3657 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3658 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3659 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
3660 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
3661
3662 /* Record the fields for the semantic handler. */
3663 FLD (f_scale) = f_scale;
3664 FLD (i_abase) = & CPU (h_gr)[f_abase];
3665 FLD (i_index) = & CPU (h_gr)[f_index];
3666 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3667 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_indirect_index", "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3668
3669 #if WITH_PROFILE_MODEL_P
3670 /* Record the fields for profiling. */
3671 if (PROFILE_MODEL_P (current_cpu))
3672 {
3673 FLD (in_abase) = f_abase;
3674 FLD (in_index) = f_index;
3675 FLD (in_st_src) = f_srcdst;
3676 }
3677 #endif
3678 #undef FLD
3679 return idesc;
3680 }
3681
3682 extract_sfmt_st_disp:
3683 {
3684 const IDESC *idesc = &i960base_insn_data[itype];
3685 CGEN_INSN_INT insn = base_insn;
3686 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
3687 UINT f_optdisp;
3688 UINT f_srcdst;
3689 /* Contents of trailing part of insn. */
3690 UINT word_1;
3691
3692 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3693 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3694 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3695
3696 /* Record the fields for the semantic handler. */
3697 FLD (f_optdisp) = f_optdisp;
3698 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3699 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_disp", "f_optdisp 0x%x", 'x', f_optdisp, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3700
3701 #if WITH_PROFILE_MODEL_P
3702 /* Record the fields for profiling. */
3703 if (PROFILE_MODEL_P (current_cpu))
3704 {
3705 FLD (in_st_src) = f_srcdst;
3706 }
3707 #endif
3708 #undef FLD
3709 return idesc;
3710 }
3711
3712 extract_sfmt_st_indirect_disp:
3713 {
3714 const IDESC *idesc = &i960base_insn_data[itype];
3715 CGEN_INSN_INT insn = base_insn;
3716 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
3717 UINT f_optdisp;
3718 UINT f_srcdst;
3719 UINT f_abase;
3720 /* Contents of trailing part of insn. */
3721 UINT word_1;
3722
3723 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3724 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3725 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3726 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3727
3728 /* Record the fields for the semantic handler. */
3729 FLD (f_optdisp) = f_optdisp;
3730 FLD (i_abase) = & CPU (h_gr)[f_abase];
3731 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3732 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3733
3734 #if WITH_PROFILE_MODEL_P
3735 /* Record the fields for profiling. */
3736 if (PROFILE_MODEL_P (current_cpu))
3737 {
3738 FLD (in_abase) = f_abase;
3739 FLD (in_st_src) = f_srcdst;
3740 }
3741 #endif
3742 #undef FLD
3743 return idesc;
3744 }
3745
3746 extract_sfmt_st_index_disp:
3747 {
3748 const IDESC *idesc = &i960base_insn_data[itype];
3749 CGEN_INSN_INT insn = base_insn;
3750 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
3751 UINT f_optdisp;
3752 UINT f_srcdst;
3753 UINT f_scale;
3754 UINT f_index;
3755 /* Contents of trailing part of insn. */
3756 UINT word_1;
3757
3758 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3759 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3760 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3761 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
3762 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
3763
3764 /* Record the fields for the semantic handler. */
3765 FLD (f_optdisp) = f_optdisp;
3766 FLD (f_scale) = f_scale;
3767 FLD (i_index) = & CPU (h_gr)[f_index];
3768 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3769 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_index_disp", "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3770
3771 #if WITH_PROFILE_MODEL_P
3772 /* Record the fields for profiling. */
3773 if (PROFILE_MODEL_P (current_cpu))
3774 {
3775 FLD (in_index) = f_index;
3776 FLD (in_st_src) = f_srcdst;
3777 }
3778 #endif
3779 #undef FLD
3780 return idesc;
3781 }
3782
3783 extract_sfmt_st_indirect_index_disp:
3784 {
3785 const IDESC *idesc = &i960base_insn_data[itype];
3786 CGEN_INSN_INT insn = base_insn;
3787 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
3788 UINT f_optdisp;
3789 UINT f_srcdst;
3790 UINT f_abase;
3791 UINT f_scale;
3792 UINT f_index;
3793 /* Contents of trailing part of insn. */
3794 UINT word_1;
3795
3796 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3797 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3798 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3799 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3800 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
3801 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
3802
3803 /* Record the fields for the semantic handler. */
3804 FLD (f_optdisp) = f_optdisp;
3805 FLD (f_scale) = f_scale;
3806 FLD (i_abase) = & CPU (h_gr)[f_abase];
3807 FLD (i_index) = & CPU (h_gr)[f_index];
3808 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3809 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_st_indirect_index_disp", "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3810
3811 #if WITH_PROFILE_MODEL_P
3812 /* Record the fields for profiling. */
3813 if (PROFILE_MODEL_P (current_cpu))
3814 {
3815 FLD (in_abase) = f_abase;
3816 FLD (in_index) = f_index;
3817 FLD (in_st_src) = f_srcdst;
3818 }
3819 #endif
3820 #undef FLD
3821 return idesc;
3822 }
3823
3824 extract_sfmt_stl_offset:
3825 {
3826 const IDESC *idesc = &i960base_insn_data[itype];
3827 CGEN_INSN_INT insn = base_insn;
3828 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
3829 UINT f_srcdst;
3830 UINT f_offset;
3831
3832 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3833 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
3834
3835 /* Record the fields for the semantic handler. */
3836 FLD (f_srcdst) = f_srcdst;
3837 FLD (f_offset) = f_offset;
3838 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3839 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stl_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3840
3841 #if WITH_PROFILE_MODEL_P
3842 /* Record the fields for profiling. */
3843 if (PROFILE_MODEL_P (current_cpu))
3844 {
3845 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
3846 FLD (in_st_src) = f_srcdst;
3847 }
3848 #endif
3849 #undef FLD
3850 return idesc;
3851 }
3852
3853 extract_sfmt_stl_indirect_offset:
3854 {
3855 const IDESC *idesc = &i960base_insn_data[itype];
3856 CGEN_INSN_INT insn = base_insn;
3857 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
3858 UINT f_srcdst;
3859 UINT f_abase;
3860 UINT f_offset;
3861
3862 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3863 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3864 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
3865
3866 /* Record the fields for the semantic handler. */
3867 FLD (f_srcdst) = f_srcdst;
3868 FLD (f_offset) = f_offset;
3869 FLD (i_abase) = & CPU (h_gr)[f_abase];
3870 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3871 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stl_indirect_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3872
3873 #if WITH_PROFILE_MODEL_P
3874 /* Record the fields for profiling. */
3875 if (PROFILE_MODEL_P (current_cpu))
3876 {
3877 FLD (in_abase) = f_abase;
3878 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
3879 FLD (in_st_src) = f_srcdst;
3880 }
3881 #endif
3882 #undef FLD
3883 return idesc;
3884 }
3885
3886 extract_sfmt_stl_indirect:
3887 {
3888 const IDESC *idesc = &i960base_insn_data[itype];
3889 CGEN_INSN_INT insn = base_insn;
3890 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
3891 UINT f_srcdst;
3892 UINT f_abase;
3893
3894 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3895 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3896
3897 /* Record the fields for the semantic handler. */
3898 FLD (f_srcdst) = f_srcdst;
3899 FLD (i_abase) = & CPU (h_gr)[f_abase];
3900 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3901 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stl_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3902
3903 #if WITH_PROFILE_MODEL_P
3904 /* Record the fields for profiling. */
3905 if (PROFILE_MODEL_P (current_cpu))
3906 {
3907 FLD (in_abase) = f_abase;
3908 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
3909 FLD (in_st_src) = f_srcdst;
3910 }
3911 #endif
3912 #undef FLD
3913 return idesc;
3914 }
3915
3916 extract_sfmt_stl_indirect_index:
3917 {
3918 const IDESC *idesc = &i960base_insn_data[itype];
3919 CGEN_INSN_INT insn = base_insn;
3920 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
3921 UINT f_srcdst;
3922 UINT f_abase;
3923 UINT f_scale;
3924 UINT f_index;
3925
3926 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3927 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
3928 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
3929 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
3930
3931 /* Record the fields for the semantic handler. */
3932 FLD (f_srcdst) = f_srcdst;
3933 FLD (f_scale) = f_scale;
3934 FLD (i_abase) = & CPU (h_gr)[f_abase];
3935 FLD (i_index) = & CPU (h_gr)[f_index];
3936 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3937 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stl_indirect_index", "f_srcdst 0x%x", 'x', f_srcdst, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3938
3939 #if WITH_PROFILE_MODEL_P
3940 /* Record the fields for profiling. */
3941 if (PROFILE_MODEL_P (current_cpu))
3942 {
3943 FLD (in_abase) = f_abase;
3944 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
3945 FLD (in_index) = f_index;
3946 FLD (in_st_src) = f_srcdst;
3947 }
3948 #endif
3949 #undef FLD
3950 return idesc;
3951 }
3952
3953 extract_sfmt_stl_disp:
3954 {
3955 const IDESC *idesc = &i960base_insn_data[itype];
3956 CGEN_INSN_INT insn = base_insn;
3957 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
3958 UINT f_optdisp;
3959 UINT f_srcdst;
3960 /* Contents of trailing part of insn. */
3961 UINT word_1;
3962
3963 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3964 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3965 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3966
3967 /* Record the fields for the semantic handler. */
3968 FLD (f_srcdst) = f_srcdst;
3969 FLD (f_optdisp) = f_optdisp;
3970 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
3971 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stl_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
3972
3973 #if WITH_PROFILE_MODEL_P
3974 /* Record the fields for profiling. */
3975 if (PROFILE_MODEL_P (current_cpu))
3976 {
3977 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
3978 FLD (in_st_src) = f_srcdst;
3979 }
3980 #endif
3981 #undef FLD
3982 return idesc;
3983 }
3984
3985 extract_sfmt_stl_indirect_disp:
3986 {
3987 const IDESC *idesc = &i960base_insn_data[itype];
3988 CGEN_INSN_INT insn = base_insn;
3989 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
3990 UINT f_optdisp;
3991 UINT f_srcdst;
3992 UINT f_abase;
3993 /* Contents of trailing part of insn. */
3994 UINT word_1;
3995
3996 word_1 = GETIMEMUSI (current_cpu, pc + 4);
3997 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
3998 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
3999 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4000
4001 /* Record the fields for the semantic handler. */
4002 FLD (f_srcdst) = f_srcdst;
4003 FLD (f_optdisp) = f_optdisp;
4004 FLD (i_abase) = & CPU (h_gr)[f_abase];
4005 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4006 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stl_indirect_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4007
4008 #if WITH_PROFILE_MODEL_P
4009 /* Record the fields for profiling. */
4010 if (PROFILE_MODEL_P (current_cpu))
4011 {
4012 FLD (in_abase) = f_abase;
4013 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4014 FLD (in_st_src) = f_srcdst;
4015 }
4016 #endif
4017 #undef FLD
4018 return idesc;
4019 }
4020
4021 extract_sfmt_stl_index_disp:
4022 {
4023 const IDESC *idesc = &i960base_insn_data[itype];
4024 CGEN_INSN_INT insn = base_insn;
4025 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4026 UINT f_optdisp;
4027 UINT f_srcdst;
4028 UINT f_scale;
4029 UINT f_index;
4030 /* Contents of trailing part of insn. */
4031 UINT word_1;
4032
4033 word_1 = GETIMEMUSI (current_cpu, pc + 4);
4034 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
4035 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4036 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
4037 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4038
4039 /* Record the fields for the semantic handler. */
4040 FLD (f_srcdst) = f_srcdst;
4041 FLD (f_optdisp) = f_optdisp;
4042 FLD (f_scale) = f_scale;
4043 FLD (i_index) = & CPU (h_gr)[f_index];
4044 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4045 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stl_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4046
4047 #if WITH_PROFILE_MODEL_P
4048 /* Record the fields for profiling. */
4049 if (PROFILE_MODEL_P (current_cpu))
4050 {
4051 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4052 FLD (in_index) = f_index;
4053 FLD (in_st_src) = f_srcdst;
4054 }
4055 #endif
4056 #undef FLD
4057 return idesc;
4058 }
4059
4060 extract_sfmt_stl_indirect_index_disp:
4061 {
4062 const IDESC *idesc = &i960base_insn_data[itype];
4063 CGEN_INSN_INT insn = base_insn;
4064 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4065 UINT f_optdisp;
4066 UINT f_srcdst;
4067 UINT f_abase;
4068 UINT f_scale;
4069 UINT f_index;
4070 /* Contents of trailing part of insn. */
4071 UINT word_1;
4072
4073 word_1 = GETIMEMUSI (current_cpu, pc + 4);
4074 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
4075 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4076 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4077 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
4078 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4079
4080 /* Record the fields for the semantic handler. */
4081 FLD (f_srcdst) = f_srcdst;
4082 FLD (f_optdisp) = f_optdisp;
4083 FLD (f_scale) = f_scale;
4084 FLD (i_abase) = & CPU (h_gr)[f_abase];
4085 FLD (i_index) = & CPU (h_gr)[f_index];
4086 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4087 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stl_indirect_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4088
4089 #if WITH_PROFILE_MODEL_P
4090 /* Record the fields for profiling. */
4091 if (PROFILE_MODEL_P (current_cpu))
4092 {
4093 FLD (in_abase) = f_abase;
4094 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4095 FLD (in_index) = f_index;
4096 FLD (in_st_src) = f_srcdst;
4097 }
4098 #endif
4099 #undef FLD
4100 return idesc;
4101 }
4102
4103 extract_sfmt_stt_offset:
4104 {
4105 const IDESC *idesc = &i960base_insn_data[itype];
4106 CGEN_INSN_INT insn = base_insn;
4107 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
4108 UINT f_srcdst;
4109 UINT f_offset;
4110
4111 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4112 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
4113
4114 /* Record the fields for the semantic handler. */
4115 FLD (f_srcdst) = f_srcdst;
4116 FLD (f_offset) = f_offset;
4117 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4118 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stt_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4119
4120 #if WITH_PROFILE_MODEL_P
4121 /* Record the fields for profiling. */
4122 if (PROFILE_MODEL_P (current_cpu))
4123 {
4124 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4125 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4126 FLD (in_st_src) = f_srcdst;
4127 }
4128 #endif
4129 #undef FLD
4130 return idesc;
4131 }
4132
4133 extract_sfmt_stt_indirect_offset:
4134 {
4135 const IDESC *idesc = &i960base_insn_data[itype];
4136 CGEN_INSN_INT insn = base_insn;
4137 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
4138 UINT f_srcdst;
4139 UINT f_abase;
4140 UINT f_offset;
4141
4142 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4143 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4144 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
4145
4146 /* Record the fields for the semantic handler. */
4147 FLD (f_srcdst) = f_srcdst;
4148 FLD (f_offset) = f_offset;
4149 FLD (i_abase) = & CPU (h_gr)[f_abase];
4150 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4151 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stt_indirect_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4152
4153 #if WITH_PROFILE_MODEL_P
4154 /* Record the fields for profiling. */
4155 if (PROFILE_MODEL_P (current_cpu))
4156 {
4157 FLD (in_abase) = f_abase;
4158 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4159 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4160 FLD (in_st_src) = f_srcdst;
4161 }
4162 #endif
4163 #undef FLD
4164 return idesc;
4165 }
4166
4167 extract_sfmt_stt_indirect:
4168 {
4169 const IDESC *idesc = &i960base_insn_data[itype];
4170 CGEN_INSN_INT insn = base_insn;
4171 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
4172 UINT f_srcdst;
4173 UINT f_abase;
4174
4175 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4176 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4177
4178 /* Record the fields for the semantic handler. */
4179 FLD (f_srcdst) = f_srcdst;
4180 FLD (i_abase) = & CPU (h_gr)[f_abase];
4181 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4182 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stt_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4183
4184 #if WITH_PROFILE_MODEL_P
4185 /* Record the fields for profiling. */
4186 if (PROFILE_MODEL_P (current_cpu))
4187 {
4188 FLD (in_abase) = f_abase;
4189 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4190 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4191 FLD (in_st_src) = f_srcdst;
4192 }
4193 #endif
4194 #undef FLD
4195 return idesc;
4196 }
4197
4198 extract_sfmt_stt_indirect_index:
4199 {
4200 const IDESC *idesc = &i960base_insn_data[itype];
4201 CGEN_INSN_INT insn = base_insn;
4202 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4203 UINT f_srcdst;
4204 UINT f_abase;
4205 UINT f_scale;
4206 UINT f_index;
4207
4208 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4209 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4210 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
4211 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4212
4213 /* Record the fields for the semantic handler. */
4214 FLD (f_srcdst) = f_srcdst;
4215 FLD (f_scale) = f_scale;
4216 FLD (i_abase) = & CPU (h_gr)[f_abase];
4217 FLD (i_index) = & CPU (h_gr)[f_index];
4218 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4219 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stt_indirect_index", "f_srcdst 0x%x", 'x', f_srcdst, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4220
4221 #if WITH_PROFILE_MODEL_P
4222 /* Record the fields for profiling. */
4223 if (PROFILE_MODEL_P (current_cpu))
4224 {
4225 FLD (in_abase) = f_abase;
4226 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4227 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4228 FLD (in_index) = f_index;
4229 FLD (in_st_src) = f_srcdst;
4230 }
4231 #endif
4232 #undef FLD
4233 return idesc;
4234 }
4235
4236 extract_sfmt_stt_disp:
4237 {
4238 const IDESC *idesc = &i960base_insn_data[itype];
4239 CGEN_INSN_INT insn = base_insn;
4240 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4241 UINT f_optdisp;
4242 UINT f_srcdst;
4243 /* Contents of trailing part of insn. */
4244 UINT word_1;
4245
4246 word_1 = GETIMEMUSI (current_cpu, pc + 4);
4247 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
4248 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4249
4250 /* Record the fields for the semantic handler. */
4251 FLD (f_srcdst) = f_srcdst;
4252 FLD (f_optdisp) = f_optdisp;
4253 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4254 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stt_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4255
4256 #if WITH_PROFILE_MODEL_P
4257 /* Record the fields for profiling. */
4258 if (PROFILE_MODEL_P (current_cpu))
4259 {
4260 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4261 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4262 FLD (in_st_src) = f_srcdst;
4263 }
4264 #endif
4265 #undef FLD
4266 return idesc;
4267 }
4268
4269 extract_sfmt_stt_indirect_disp:
4270 {
4271 const IDESC *idesc = &i960base_insn_data[itype];
4272 CGEN_INSN_INT insn = base_insn;
4273 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4274 UINT f_optdisp;
4275 UINT f_srcdst;
4276 UINT f_abase;
4277 /* Contents of trailing part of insn. */
4278 UINT word_1;
4279
4280 word_1 = GETIMEMUSI (current_cpu, pc + 4);
4281 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
4282 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4283 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4284
4285 /* Record the fields for the semantic handler. */
4286 FLD (f_srcdst) = f_srcdst;
4287 FLD (f_optdisp) = f_optdisp;
4288 FLD (i_abase) = & CPU (h_gr)[f_abase];
4289 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4290 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stt_indirect_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4291
4292 #if WITH_PROFILE_MODEL_P
4293 /* Record the fields for profiling. */
4294 if (PROFILE_MODEL_P (current_cpu))
4295 {
4296 FLD (in_abase) = f_abase;
4297 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4298 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4299 FLD (in_st_src) = f_srcdst;
4300 }
4301 #endif
4302 #undef FLD
4303 return idesc;
4304 }
4305
4306 extract_sfmt_stt_index_disp:
4307 {
4308 const IDESC *idesc = &i960base_insn_data[itype];
4309 CGEN_INSN_INT insn = base_insn;
4310 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4311 UINT f_optdisp;
4312 UINT f_srcdst;
4313 UINT f_scale;
4314 UINT f_index;
4315 /* Contents of trailing part of insn. */
4316 UINT word_1;
4317
4318 word_1 = GETIMEMUSI (current_cpu, pc + 4);
4319 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
4320 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4321 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
4322 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4323
4324 /* Record the fields for the semantic handler. */
4325 FLD (f_srcdst) = f_srcdst;
4326 FLD (f_optdisp) = f_optdisp;
4327 FLD (f_scale) = f_scale;
4328 FLD (i_index) = & CPU (h_gr)[f_index];
4329 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4330 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stt_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4331
4332 #if WITH_PROFILE_MODEL_P
4333 /* Record the fields for profiling. */
4334 if (PROFILE_MODEL_P (current_cpu))
4335 {
4336 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4337 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4338 FLD (in_index) = f_index;
4339 FLD (in_st_src) = f_srcdst;
4340 }
4341 #endif
4342 #undef FLD
4343 return idesc;
4344 }
4345
4346 extract_sfmt_stt_indirect_index_disp:
4347 {
4348 const IDESC *idesc = &i960base_insn_data[itype];
4349 CGEN_INSN_INT insn = base_insn;
4350 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4351 UINT f_optdisp;
4352 UINT f_srcdst;
4353 UINT f_abase;
4354 UINT f_scale;
4355 UINT f_index;
4356 /* Contents of trailing part of insn. */
4357 UINT word_1;
4358
4359 word_1 = GETIMEMUSI (current_cpu, pc + 4);
4360 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
4361 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4362 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4363 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
4364 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4365
4366 /* Record the fields for the semantic handler. */
4367 FLD (f_srcdst) = f_srcdst;
4368 FLD (f_optdisp) = f_optdisp;
4369 FLD (f_scale) = f_scale;
4370 FLD (i_abase) = & CPU (h_gr)[f_abase];
4371 FLD (i_index) = & CPU (h_gr)[f_index];
4372 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4373 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stt_indirect_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4374
4375 #if WITH_PROFILE_MODEL_P
4376 /* Record the fields for profiling. */
4377 if (PROFILE_MODEL_P (current_cpu))
4378 {
4379 FLD (in_abase) = f_abase;
4380 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4381 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4382 FLD (in_index) = f_index;
4383 FLD (in_st_src) = f_srcdst;
4384 }
4385 #endif
4386 #undef FLD
4387 return idesc;
4388 }
4389
4390 extract_sfmt_stq_offset:
4391 {
4392 const IDESC *idesc = &i960base_insn_data[itype];
4393 CGEN_INSN_INT insn = base_insn;
4394 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
4395 UINT f_srcdst;
4396 UINT f_offset;
4397
4398 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4399 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
4400
4401 /* Record the fields for the semantic handler. */
4402 FLD (f_srcdst) = f_srcdst;
4403 FLD (f_offset) = f_offset;
4404 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4405 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stq_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4406
4407 #if WITH_PROFILE_MODEL_P
4408 /* Record the fields for profiling. */
4409 if (PROFILE_MODEL_P (current_cpu))
4410 {
4411 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4412 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4413 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_3) = ((FLD (f_srcdst)) + (3));
4414 FLD (in_st_src) = f_srcdst;
4415 }
4416 #endif
4417 #undef FLD
4418 return idesc;
4419 }
4420
4421 extract_sfmt_stq_indirect_offset:
4422 {
4423 const IDESC *idesc = &i960base_insn_data[itype];
4424 CGEN_INSN_INT insn = base_insn;
4425 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
4426 UINT f_srcdst;
4427 UINT f_abase;
4428 UINT f_offset;
4429
4430 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4431 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4432 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
4433
4434 /* Record the fields for the semantic handler. */
4435 FLD (f_srcdst) = f_srcdst;
4436 FLD (f_offset) = f_offset;
4437 FLD (i_abase) = & CPU (h_gr)[f_abase];
4438 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4439 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stq_indirect_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4440
4441 #if WITH_PROFILE_MODEL_P
4442 /* Record the fields for profiling. */
4443 if (PROFILE_MODEL_P (current_cpu))
4444 {
4445 FLD (in_abase) = f_abase;
4446 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4447 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4448 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_3) = ((FLD (f_srcdst)) + (3));
4449 FLD (in_st_src) = f_srcdst;
4450 }
4451 #endif
4452 #undef FLD
4453 return idesc;
4454 }
4455
4456 extract_sfmt_stq_indirect:
4457 {
4458 const IDESC *idesc = &i960base_insn_data[itype];
4459 CGEN_INSN_INT insn = base_insn;
4460 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
4461 UINT f_srcdst;
4462 UINT f_abase;
4463
4464 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4465 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4466
4467 /* Record the fields for the semantic handler. */
4468 FLD (f_srcdst) = f_srcdst;
4469 FLD (i_abase) = & CPU (h_gr)[f_abase];
4470 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4471 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stq_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4472
4473 #if WITH_PROFILE_MODEL_P
4474 /* Record the fields for profiling. */
4475 if (PROFILE_MODEL_P (current_cpu))
4476 {
4477 FLD (in_abase) = f_abase;
4478 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4479 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4480 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_3) = ((FLD (f_srcdst)) + (3));
4481 FLD (in_st_src) = f_srcdst;
4482 }
4483 #endif
4484 #undef FLD
4485 return idesc;
4486 }
4487
4488 extract_sfmt_stq_indirect_index:
4489 {
4490 const IDESC *idesc = &i960base_insn_data[itype];
4491 CGEN_INSN_INT insn = base_insn;
4492 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4493 UINT f_srcdst;
4494 UINT f_abase;
4495 UINT f_scale;
4496 UINT f_index;
4497
4498 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4499 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4500 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
4501 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4502
4503 /* Record the fields for the semantic handler. */
4504 FLD (f_srcdst) = f_srcdst;
4505 FLD (f_scale) = f_scale;
4506 FLD (i_abase) = & CPU (h_gr)[f_abase];
4507 FLD (i_index) = & CPU (h_gr)[f_index];
4508 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4509 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stq_indirect_index", "f_srcdst 0x%x", 'x', f_srcdst, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4510
4511 #if WITH_PROFILE_MODEL_P
4512 /* Record the fields for profiling. */
4513 if (PROFILE_MODEL_P (current_cpu))
4514 {
4515 FLD (in_abase) = f_abase;
4516 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4517 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4518 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_3) = ((FLD (f_srcdst)) + (3));
4519 FLD (in_index) = f_index;
4520 FLD (in_st_src) = f_srcdst;
4521 }
4522 #endif
4523 #undef FLD
4524 return idesc;
4525 }
4526
4527 extract_sfmt_stq_disp:
4528 {
4529 const IDESC *idesc = &i960base_insn_data[itype];
4530 CGEN_INSN_INT insn = base_insn;
4531 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4532 UINT f_optdisp;
4533 UINT f_srcdst;
4534 /* Contents of trailing part of insn. */
4535 UINT word_1;
4536
4537 word_1 = GETIMEMUSI (current_cpu, pc + 4);
4538 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
4539 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4540
4541 /* Record the fields for the semantic handler. */
4542 FLD (f_srcdst) = f_srcdst;
4543 FLD (f_optdisp) = f_optdisp;
4544 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4545 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stq_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4546
4547 #if WITH_PROFILE_MODEL_P
4548 /* Record the fields for profiling. */
4549 if (PROFILE_MODEL_P (current_cpu))
4550 {
4551 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4552 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4553 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_3) = ((FLD (f_srcdst)) + (3));
4554 FLD (in_st_src) = f_srcdst;
4555 }
4556 #endif
4557 #undef FLD
4558 return idesc;
4559 }
4560
4561 extract_sfmt_stq_indirect_disp:
4562 {
4563 const IDESC *idesc = &i960base_insn_data[itype];
4564 CGEN_INSN_INT insn = base_insn;
4565 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4566 UINT f_optdisp;
4567 UINT f_srcdst;
4568 UINT f_abase;
4569 /* Contents of trailing part of insn. */
4570 UINT word_1;
4571
4572 word_1 = GETIMEMUSI (current_cpu, pc + 4);
4573 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
4574 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4575 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4576
4577 /* Record the fields for the semantic handler. */
4578 FLD (f_srcdst) = f_srcdst;
4579 FLD (f_optdisp) = f_optdisp;
4580 FLD (i_abase) = & CPU (h_gr)[f_abase];
4581 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4582 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stq_indirect_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4583
4584 #if WITH_PROFILE_MODEL_P
4585 /* Record the fields for profiling. */
4586 if (PROFILE_MODEL_P (current_cpu))
4587 {
4588 FLD (in_abase) = f_abase;
4589 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4590 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4591 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_3) = ((FLD (f_srcdst)) + (3));
4592 FLD (in_st_src) = f_srcdst;
4593 }
4594 #endif
4595 #undef FLD
4596 return idesc;
4597 }
4598
4599 extract_sfmt_stq_index_disp:
4600 {
4601 const IDESC *idesc = &i960base_insn_data[itype];
4602 CGEN_INSN_INT insn = base_insn;
4603 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4604 UINT f_optdisp;
4605 UINT f_srcdst;
4606 UINT f_scale;
4607 UINT f_index;
4608 /* Contents of trailing part of insn. */
4609 UINT word_1;
4610
4611 word_1 = GETIMEMUSI (current_cpu, pc + 4);
4612 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
4613 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4614 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
4615 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4616
4617 /* Record the fields for the semantic handler. */
4618 FLD (f_srcdst) = f_srcdst;
4619 FLD (f_optdisp) = f_optdisp;
4620 FLD (f_scale) = f_scale;
4621 FLD (i_index) = & CPU (h_gr)[f_index];
4622 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4623 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stq_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4624
4625 #if WITH_PROFILE_MODEL_P
4626 /* Record the fields for profiling. */
4627 if (PROFILE_MODEL_P (current_cpu))
4628 {
4629 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4630 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4631 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_3) = ((FLD (f_srcdst)) + (3));
4632 FLD (in_index) = f_index;
4633 FLD (in_st_src) = f_srcdst;
4634 }
4635 #endif
4636 #undef FLD
4637 return idesc;
4638 }
4639
4640 extract_sfmt_stq_indirect_index_disp:
4641 {
4642 const IDESC *idesc = &i960base_insn_data[itype];
4643 CGEN_INSN_INT insn = base_insn;
4644 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
4645 UINT f_optdisp;
4646 UINT f_srcdst;
4647 UINT f_abase;
4648 UINT f_scale;
4649 UINT f_index;
4650 /* Contents of trailing part of insn. */
4651 UINT word_1;
4652
4653 word_1 = GETIMEMUSI (current_cpu, pc + 4);
4654 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
4655 f_srcdst = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4656 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4657 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
4658 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4659
4660 /* Record the fields for the semantic handler. */
4661 FLD (f_srcdst) = f_srcdst;
4662 FLD (f_optdisp) = f_optdisp;
4663 FLD (f_scale) = f_scale;
4664 FLD (i_abase) = & CPU (h_gr)[f_abase];
4665 FLD (i_index) = & CPU (h_gr)[f_index];
4666 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4667 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_stq_indirect_index_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4668
4669 #if WITH_PROFILE_MODEL_P
4670 /* Record the fields for profiling. */
4671 if (PROFILE_MODEL_P (current_cpu))
4672 {
4673 FLD (in_abase) = f_abase;
4674 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_1) = ((FLD (f_srcdst)) + (1));
4675 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_2) = ((FLD (f_srcdst)) + (2));
4676 FLD (in_h_gr_add__DFLT_index_of__DFLT_st_src_3) = ((FLD (f_srcdst)) + (3));
4677 FLD (in_index) = f_index;
4678 FLD (in_st_src) = f_srcdst;
4679 }
4680 #endif
4681 #undef FLD
4682 return idesc;
4683 }
4684
4685 extract_sfmt_cmpobe_reg:
4686 {
4687 const IDESC *idesc = &i960base_insn_data[itype];
4688 CGEN_INSN_INT insn = base_insn;
4689 #define FLD(f) abuf->fields.sfmt_cmpobe_reg.f
4690 UINT f_br_src1;
4691 UINT f_br_src2;
4692 SI f_br_disp;
4693
4694 f_br_src1 = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4695 f_br_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4696 f_br_disp = ((((EXTRACT_MSB0_INT (insn, 32, 19, 11)) << (2))) + (pc));
4697
4698 /* Record the fields for the semantic handler. */
4699 FLD (i_br_disp) = f_br_disp;
4700 FLD (i_br_src1) = & CPU (h_gr)[f_br_src1];
4701 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
4702 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpobe_reg", "br_disp 0x%x", 'x', f_br_disp, "br_src1 0x%x", 'x', f_br_src1, "br_src2 0x%x", 'x', f_br_src2, (char *) 0));
4703
4704 #if WITH_PROFILE_MODEL_P
4705 /* Record the fields for profiling. */
4706 if (PROFILE_MODEL_P (current_cpu))
4707 {
4708 FLD (in_br_src1) = f_br_src1;
4709 FLD (in_br_src2) = f_br_src2;
4710 }
4711 #endif
4712 #undef FLD
4713 return idesc;
4714 }
4715
4716 extract_sfmt_cmpobe_lit:
4717 {
4718 const IDESC *idesc = &i960base_insn_data[itype];
4719 CGEN_INSN_INT insn = base_insn;
4720 #define FLD(f) abuf->fields.sfmt_cmpobe_lit.f
4721 UINT f_br_src1;
4722 UINT f_br_src2;
4723 SI f_br_disp;
4724
4725 f_br_src1 = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4726 f_br_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4727 f_br_disp = ((((EXTRACT_MSB0_INT (insn, 32, 19, 11)) << (2))) + (pc));
4728
4729 /* Record the fields for the semantic handler. */
4730 FLD (f_br_src1) = f_br_src1;
4731 FLD (i_br_disp) = f_br_disp;
4732 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
4733 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpobe_lit", "f_br_src1 0x%x", 'x', f_br_src1, "br_disp 0x%x", 'x', f_br_disp, "br_src2 0x%x", 'x', f_br_src2, (char *) 0));
4734
4735 #if WITH_PROFILE_MODEL_P
4736 /* Record the fields for profiling. */
4737 if (PROFILE_MODEL_P (current_cpu))
4738 {
4739 FLD (in_br_src2) = f_br_src2;
4740 }
4741 #endif
4742 #undef FLD
4743 return idesc;
4744 }
4745
4746 extract_sfmt_cmpobl_reg:
4747 {
4748 const IDESC *idesc = &i960base_insn_data[itype];
4749 CGEN_INSN_INT insn = base_insn;
4750 #define FLD(f) abuf->fields.sfmt_cmpobe_reg.f
4751 UINT f_br_src1;
4752 UINT f_br_src2;
4753 SI f_br_disp;
4754
4755 f_br_src1 = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4756 f_br_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4757 f_br_disp = ((((EXTRACT_MSB0_INT (insn, 32, 19, 11)) << (2))) + (pc));
4758
4759 /* Record the fields for the semantic handler. */
4760 FLD (i_br_disp) = f_br_disp;
4761 FLD (i_br_src1) = & CPU (h_gr)[f_br_src1];
4762 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
4763 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpobl_reg", "br_disp 0x%x", 'x', f_br_disp, "br_src1 0x%x", 'x', f_br_src1, "br_src2 0x%x", 'x', f_br_src2, (char *) 0));
4764
4765 #if WITH_PROFILE_MODEL_P
4766 /* Record the fields for profiling. */
4767 if (PROFILE_MODEL_P (current_cpu))
4768 {
4769 FLD (in_br_src1) = f_br_src1;
4770 FLD (in_br_src2) = f_br_src2;
4771 }
4772 #endif
4773 #undef FLD
4774 return idesc;
4775 }
4776
4777 extract_sfmt_cmpobl_lit:
4778 {
4779 const IDESC *idesc = &i960base_insn_data[itype];
4780 CGEN_INSN_INT insn = base_insn;
4781 #define FLD(f) abuf->fields.sfmt_cmpobe_lit.f
4782 UINT f_br_src1;
4783 UINT f_br_src2;
4784 SI f_br_disp;
4785
4786 f_br_src1 = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4787 f_br_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4788 f_br_disp = ((((EXTRACT_MSB0_INT (insn, 32, 19, 11)) << (2))) + (pc));
4789
4790 /* Record the fields for the semantic handler. */
4791 FLD (f_br_src1) = f_br_src1;
4792 FLD (i_br_disp) = f_br_disp;
4793 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
4794 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpobl_lit", "f_br_src1 0x%x", 'x', f_br_src1, "br_disp 0x%x", 'x', f_br_disp, "br_src2 0x%x", 'x', f_br_src2, (char *) 0));
4795
4796 #if WITH_PROFILE_MODEL_P
4797 /* Record the fields for profiling. */
4798 if (PROFILE_MODEL_P (current_cpu))
4799 {
4800 FLD (in_br_src2) = f_br_src2;
4801 }
4802 #endif
4803 #undef FLD
4804 return idesc;
4805 }
4806
4807 extract_sfmt_bbc_reg:
4808 {
4809 const IDESC *idesc = &i960base_insn_data[itype];
4810 CGEN_INSN_INT insn = base_insn;
4811 #define FLD(f) abuf->fields.sfmt_cmpobe_reg.f
4812 UINT f_br_src1;
4813 UINT f_br_src2;
4814 SI f_br_disp;
4815
4816 f_br_src1 = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4817 f_br_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4818 f_br_disp = ((((EXTRACT_MSB0_INT (insn, 32, 19, 11)) << (2))) + (pc));
4819
4820 /* Record the fields for the semantic handler. */
4821 FLD (i_br_disp) = f_br_disp;
4822 FLD (i_br_src1) = & CPU (h_gr)[f_br_src1];
4823 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
4824 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bbc_reg", "br_disp 0x%x", 'x', f_br_disp, "br_src1 0x%x", 'x', f_br_src1, "br_src2 0x%x", 'x', f_br_src2, (char *) 0));
4825
4826 #if WITH_PROFILE_MODEL_P
4827 /* Record the fields for profiling. */
4828 if (PROFILE_MODEL_P (current_cpu))
4829 {
4830 FLD (in_br_src1) = f_br_src1;
4831 FLD (in_br_src2) = f_br_src2;
4832 }
4833 #endif
4834 #undef FLD
4835 return idesc;
4836 }
4837
4838 extract_sfmt_bbc_lit:
4839 {
4840 const IDESC *idesc = &i960base_insn_data[itype];
4841 CGEN_INSN_INT insn = base_insn;
4842 #define FLD(f) abuf->fields.sfmt_cmpobe_lit.f
4843 UINT f_br_src1;
4844 UINT f_br_src2;
4845 SI f_br_disp;
4846
4847 f_br_src1 = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
4848 f_br_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4849 f_br_disp = ((((EXTRACT_MSB0_INT (insn, 32, 19, 11)) << (2))) + (pc));
4850
4851 /* Record the fields for the semantic handler. */
4852 FLD (f_br_src1) = f_br_src1;
4853 FLD (i_br_disp) = f_br_disp;
4854 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
4855 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bbc_lit", "f_br_src1 0x%x", 'x', f_br_src1, "br_disp 0x%x", 'x', f_br_disp, "br_src2 0x%x", 'x', f_br_src2, (char *) 0));
4856
4857 #if WITH_PROFILE_MODEL_P
4858 /* Record the fields for profiling. */
4859 if (PROFILE_MODEL_P (current_cpu))
4860 {
4861 FLD (in_br_src2) = f_br_src2;
4862 }
4863 #endif
4864 #undef FLD
4865 return idesc;
4866 }
4867
4868 extract_sfmt_cmpi:
4869 {
4870 const IDESC *idesc = &i960base_insn_data[itype];
4871 CGEN_INSN_INT insn = base_insn;
4872 #define FLD(f) abuf->fields.sfmt_emul.f
4873 UINT f_src2;
4874 UINT f_src1;
4875
4876 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4877 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4878
4879 /* Record the fields for the semantic handler. */
4880 FLD (i_src1) = & CPU (h_gr)[f_src1];
4881 FLD (i_src2) = & CPU (h_gr)[f_src2];
4882 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpi", "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, (char *) 0));
4883
4884 #if WITH_PROFILE_MODEL_P
4885 /* Record the fields for profiling. */
4886 if (PROFILE_MODEL_P (current_cpu))
4887 {
4888 FLD (in_src1) = f_src1;
4889 FLD (in_src2) = f_src2;
4890 }
4891 #endif
4892 #undef FLD
4893 return idesc;
4894 }
4895
4896 extract_sfmt_cmpi1:
4897 {
4898 const IDESC *idesc = &i960base_insn_data[itype];
4899 CGEN_INSN_INT insn = base_insn;
4900 #define FLD(f) abuf->fields.sfmt_emul1.f
4901 UINT f_src2;
4902 UINT f_src1;
4903
4904 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4905 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4906
4907 /* Record the fields for the semantic handler. */
4908 FLD (f_src1) = f_src1;
4909 FLD (i_src2) = & CPU (h_gr)[f_src2];
4910 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpi1", "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, (char *) 0));
4911
4912 #if WITH_PROFILE_MODEL_P
4913 /* Record the fields for profiling. */
4914 if (PROFILE_MODEL_P (current_cpu))
4915 {
4916 FLD (in_src2) = f_src2;
4917 }
4918 #endif
4919 #undef FLD
4920 return idesc;
4921 }
4922
4923 extract_sfmt_cmpi2:
4924 {
4925 const IDESC *idesc = &i960base_insn_data[itype];
4926 CGEN_INSN_INT insn = base_insn;
4927 #define FLD(f) abuf->fields.sfmt_emul2.f
4928 UINT f_src2;
4929 UINT f_src1;
4930
4931 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4932 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4933
4934 /* Record the fields for the semantic handler. */
4935 FLD (f_src2) = f_src2;
4936 FLD (i_src1) = & CPU (h_gr)[f_src1];
4937 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpi2", "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, (char *) 0));
4938
4939 #if WITH_PROFILE_MODEL_P
4940 /* Record the fields for profiling. */
4941 if (PROFILE_MODEL_P (current_cpu))
4942 {
4943 FLD (in_src1) = f_src1;
4944 }
4945 #endif
4946 #undef FLD
4947 return idesc;
4948 }
4949
4950 extract_sfmt_cmpi3:
4951 {
4952 const IDESC *idesc = &i960base_insn_data[itype];
4953 CGEN_INSN_INT insn = base_insn;
4954 #define FLD(f) abuf->fields.sfmt_emul3.f
4955 UINT f_src2;
4956 UINT f_src1;
4957
4958 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4959 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4960
4961 /* Record the fields for the semantic handler. */
4962 FLD (f_src1) = f_src1;
4963 FLD (f_src2) = f_src2;
4964 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpi3", "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, (char *) 0));
4965
4966 #if WITH_PROFILE_MODEL_P
4967 /* Record the fields for profiling. */
4968 if (PROFILE_MODEL_P (current_cpu))
4969 {
4970 }
4971 #endif
4972 #undef FLD
4973 return idesc;
4974 }
4975
4976 extract_sfmt_cmpo:
4977 {
4978 const IDESC *idesc = &i960base_insn_data[itype];
4979 CGEN_INSN_INT insn = base_insn;
4980 #define FLD(f) abuf->fields.sfmt_emul.f
4981 UINT f_src2;
4982 UINT f_src1;
4983
4984 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
4985 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
4986
4987 /* Record the fields for the semantic handler. */
4988 FLD (i_src1) = & CPU (h_gr)[f_src1];
4989 FLD (i_src2) = & CPU (h_gr)[f_src2];
4990 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpo", "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, (char *) 0));
4991
4992 #if WITH_PROFILE_MODEL_P
4993 /* Record the fields for profiling. */
4994 if (PROFILE_MODEL_P (current_cpu))
4995 {
4996 FLD (in_src1) = f_src1;
4997 FLD (in_src2) = f_src2;
4998 }
4999 #endif
5000 #undef FLD
5001 return idesc;
5002 }
5003
5004 extract_sfmt_cmpo1:
5005 {
5006 const IDESC *idesc = &i960base_insn_data[itype];
5007 CGEN_INSN_INT insn = base_insn;
5008 #define FLD(f) abuf->fields.sfmt_emul1.f
5009 UINT f_src2;
5010 UINT f_src1;
5011
5012 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
5013 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
5014
5015 /* Record the fields for the semantic handler. */
5016 FLD (f_src1) = f_src1;
5017 FLD (i_src2) = & CPU (h_gr)[f_src2];
5018 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpo1", "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, (char *) 0));
5019
5020 #if WITH_PROFILE_MODEL_P
5021 /* Record the fields for profiling. */
5022 if (PROFILE_MODEL_P (current_cpu))
5023 {
5024 FLD (in_src2) = f_src2;
5025 }
5026 #endif
5027 #undef FLD
5028 return idesc;
5029 }
5030
5031 extract_sfmt_cmpo2:
5032 {
5033 const IDESC *idesc = &i960base_insn_data[itype];
5034 CGEN_INSN_INT insn = base_insn;
5035 #define FLD(f) abuf->fields.sfmt_emul2.f
5036 UINT f_src2;
5037 UINT f_src1;
5038
5039 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
5040 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
5041
5042 /* Record the fields for the semantic handler. */
5043 FLD (f_src2) = f_src2;
5044 FLD (i_src1) = & CPU (h_gr)[f_src1];
5045 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpo2", "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, (char *) 0));
5046
5047 #if WITH_PROFILE_MODEL_P
5048 /* Record the fields for profiling. */
5049 if (PROFILE_MODEL_P (current_cpu))
5050 {
5051 FLD (in_src1) = f_src1;
5052 }
5053 #endif
5054 #undef FLD
5055 return idesc;
5056 }
5057
5058 extract_sfmt_cmpo3:
5059 {
5060 const IDESC *idesc = &i960base_insn_data[itype];
5061 CGEN_INSN_INT insn = base_insn;
5062 #define FLD(f) abuf->fields.sfmt_emul3.f
5063 UINT f_src2;
5064 UINT f_src1;
5065
5066 f_src2 = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
5067 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
5068
5069 /* Record the fields for the semantic handler. */
5070 FLD (f_src1) = f_src1;
5071 FLD (f_src2) = f_src2;
5072 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_cmpo3", "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, (char *) 0));
5073
5074 #if WITH_PROFILE_MODEL_P
5075 /* Record the fields for profiling. */
5076 if (PROFILE_MODEL_P (current_cpu))
5077 {
5078 }
5079 #endif
5080 #undef FLD
5081 return idesc;
5082 }
5083
5084 extract_sfmt_testno_reg:
5085 {
5086 const IDESC *idesc = &i960base_insn_data[itype];
5087 CGEN_INSN_INT insn = base_insn;
5088 #define FLD(f) abuf->fields.sfmt_testno_reg.f
5089 UINT f_br_src1;
5090
5091 f_br_src1 = EXTRACT_MSB0_UINT (insn, 32, 8, 5);
5092
5093 /* Record the fields for the semantic handler. */
5094 FLD (i_br_src1) = & CPU (h_gr)[f_br_src1];
5095 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_testno_reg", "br_src1 0x%x", 'x', f_br_src1, (char *) 0));
5096
5097 #if WITH_PROFILE_MODEL_P
5098 /* Record the fields for profiling. */
5099 if (PROFILE_MODEL_P (current_cpu))
5100 {
5101 FLD (out_br_src1) = f_br_src1;
5102 }
5103 #endif
5104 #undef FLD
5105 return idesc;
5106 }
5107
5108 extract_sfmt_bno:
5109 {
5110 const IDESC *idesc = &i960base_insn_data[itype];
5111 CGEN_INSN_INT insn = base_insn;
5112 #define FLD(f) abuf->fields.sfmt_bno.f
5113 SI f_ctrl_disp;
5114
5115 f_ctrl_disp = ((((EXTRACT_MSB0_INT (insn, 32, 8, 22)) << (2))) + (pc));
5116
5117 /* Record the fields for the semantic handler. */
5118 FLD (i_ctrl_disp) = f_ctrl_disp;
5119 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bno", "ctrl_disp 0x%x", 'x', f_ctrl_disp, (char *) 0));
5120
5121 #if WITH_PROFILE_MODEL_P
5122 /* Record the fields for profiling. */
5123 if (PROFILE_MODEL_P (current_cpu))
5124 {
5125 }
5126 #endif
5127 #undef FLD
5128 return idesc;
5129 }
5130
5131 extract_sfmt_b:
5132 {
5133 const IDESC *idesc = &i960base_insn_data[itype];
5134 CGEN_INSN_INT insn = base_insn;
5135 #define FLD(f) abuf->fields.sfmt_bno.f
5136 SI f_ctrl_disp;
5137
5138 f_ctrl_disp = ((((EXTRACT_MSB0_INT (insn, 32, 8, 22)) << (2))) + (pc));
5139
5140 /* Record the fields for the semantic handler. */
5141 FLD (i_ctrl_disp) = f_ctrl_disp;
5142 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_b", "ctrl_disp 0x%x", 'x', f_ctrl_disp, (char *) 0));
5143
5144 #if WITH_PROFILE_MODEL_P
5145 /* Record the fields for profiling. */
5146 if (PROFILE_MODEL_P (current_cpu))
5147 {
5148 }
5149 #endif
5150 #undef FLD
5151 return idesc;
5152 }
5153
5154 extract_sfmt_bx_indirect_offset:
5155 {
5156 const IDESC *idesc = &i960base_insn_data[itype];
5157 CGEN_INSN_INT insn = base_insn;
5158 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
5159 UINT f_abase;
5160 UINT f_offset;
5161
5162 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
5163 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
5164
5165 /* Record the fields for the semantic handler. */
5166 FLD (f_offset) = f_offset;
5167 FLD (i_abase) = & CPU (h_gr)[f_abase];
5168 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bx_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, (char *) 0));
5169
5170 #if WITH_PROFILE_MODEL_P
5171 /* Record the fields for profiling. */
5172 if (PROFILE_MODEL_P (current_cpu))
5173 {
5174 FLD (in_abase) = f_abase;
5175 }
5176 #endif
5177 #undef FLD
5178 return idesc;
5179 }
5180
5181 extract_sfmt_bx_indirect:
5182 {
5183 const IDESC *idesc = &i960base_insn_data[itype];
5184 CGEN_INSN_INT insn = base_insn;
5185 #define FLD(f) abuf->fields.sfmt_stq_indirect_offset.f
5186 UINT f_abase;
5187
5188 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
5189
5190 /* Record the fields for the semantic handler. */
5191 FLD (i_abase) = & CPU (h_gr)[f_abase];
5192 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bx_indirect", "abase 0x%x", 'x', f_abase, (char *) 0));
5193
5194 #if WITH_PROFILE_MODEL_P
5195 /* Record the fields for profiling. */
5196 if (PROFILE_MODEL_P (current_cpu))
5197 {
5198 FLD (in_abase) = f_abase;
5199 }
5200 #endif
5201 #undef FLD
5202 return idesc;
5203 }
5204
5205 extract_sfmt_bx_indirect_index:
5206 {
5207 const IDESC *idesc = &i960base_insn_data[itype];
5208 CGEN_INSN_INT insn = base_insn;
5209 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
5210 UINT f_abase;
5211 UINT f_scale;
5212 UINT f_index;
5213
5214 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
5215 f_scale = EXTRACT_MSB0_UINT (insn, 32, 22, 3);
5216 f_index = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
5217
5218 /* Record the fields for the semantic handler. */
5219 FLD (f_scale) = f_scale;
5220 FLD (i_abase) = & CPU (h_gr)[f_abase];
5221 FLD (i_index) = & CPU (h_gr)[f_index];
5222 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bx_indirect_index", "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, (char *) 0));
5223
5224 #if WITH_PROFILE_MODEL_P
5225 /* Record the fields for profiling. */
5226 if (PROFILE_MODEL_P (current_cpu))
5227 {
5228 FLD (in_abase) = f_abase;
5229 FLD (in_index) = f_index;
5230 }
5231 #endif
5232 #undef FLD
5233 return idesc;
5234 }
5235
5236 extract_sfmt_bx_disp:
5237 {
5238 const IDESC *idesc = &i960base_insn_data[itype];
5239 CGEN_INSN_INT insn = base_insn;
5240 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
5241 UINT f_optdisp;
5242 /* Contents of trailing part of insn. */
5243 UINT word_1;
5244
5245 word_1 = GETIMEMUSI (current_cpu, pc + 4);
5246 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
5247
5248 /* Record the fields for the semantic handler. */
5249 FLD (f_optdisp) = f_optdisp;
5250 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bx_disp", "f_optdisp 0x%x", 'x', f_optdisp, (char *) 0));
5251
5252 #if WITH_PROFILE_MODEL_P
5253 /* Record the fields for profiling. */
5254 if (PROFILE_MODEL_P (current_cpu))
5255 {
5256 }
5257 #endif
5258 #undef FLD
5259 return idesc;
5260 }
5261
5262 extract_sfmt_bx_indirect_disp:
5263 {
5264 const IDESC *idesc = &i960base_insn_data[itype];
5265 CGEN_INSN_INT insn = base_insn;
5266 #define FLD(f) abuf->fields.sfmt_stq_indirect_index_disp.f
5267 UINT f_optdisp;
5268 UINT f_abase;
5269 /* Contents of trailing part of insn. */
5270 UINT word_1;
5271
5272 word_1 = GETIMEMUSI (current_cpu, pc + 4);
5273 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
5274 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
5275
5276 /* Record the fields for the semantic handler. */
5277 FLD (f_optdisp) = f_optdisp;
5278 FLD (i_abase) = & CPU (h_gr)[f_abase];
5279 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_bx_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, (char *) 0));
5280
5281 #if WITH_PROFILE_MODEL_P
5282 /* Record the fields for profiling. */
5283 if (PROFILE_MODEL_P (current_cpu))
5284 {
5285 FLD (in_abase) = f_abase;
5286 }
5287 #endif
5288 #undef FLD
5289 return idesc;
5290 }
5291
5292 extract_sfmt_callx_disp:
5293 {
5294 const IDESC *idesc = &i960base_insn_data[itype];
5295 CGEN_INSN_INT insn = base_insn;
5296 #define FLD(f) abuf->fields.sfmt_callx_disp.f
5297 UINT f_optdisp;
5298 /* Contents of trailing part of insn. */
5299 UINT word_1;
5300
5301 word_1 = GETIMEMUSI (current_cpu, pc + 4);
5302 f_optdisp = (0|(EXTRACT_MSB0_UINT (word_1, 32, 0, 32) << 0));
5303
5304 /* Record the fields for the semantic handler. */
5305 FLD (f_optdisp) = f_optdisp;
5306 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_callx_disp", "f_optdisp 0x%x", 'x', f_optdisp, (char *) 0));
5307
5308 #if WITH_PROFILE_MODEL_P
5309 /* Record the fields for profiling. */
5310 if (PROFILE_MODEL_P (current_cpu))
5311 {
5312 FLD (in_h_gr_0) = 0;
5313 FLD (in_h_gr_1) = 1;
5314 FLD (in_h_gr_10) = 10;
5315 FLD (in_h_gr_11) = 11;
5316 FLD (in_h_gr_12) = 12;
5317 FLD (in_h_gr_13) = 13;
5318 FLD (in_h_gr_14) = 14;
5319 FLD (in_h_gr_15) = 15;
5320 FLD (in_h_gr_2) = 2;
5321 FLD (in_h_gr_3) = 3;
5322 FLD (in_h_gr_31) = 31;
5323 FLD (in_h_gr_4) = 4;
5324 FLD (in_h_gr_5) = 5;
5325 FLD (in_h_gr_6) = 6;
5326 FLD (in_h_gr_7) = 7;
5327 FLD (in_h_gr_8) = 8;
5328 FLD (in_h_gr_9) = 9;
5329 FLD (out_h_gr_0) = 0;
5330 FLD (out_h_gr_1) = 1;
5331 FLD (out_h_gr_10) = 10;
5332 FLD (out_h_gr_11) = 11;
5333 FLD (out_h_gr_12) = 12;
5334 FLD (out_h_gr_13) = 13;
5335 FLD (out_h_gr_14) = 14;
5336 FLD (out_h_gr_15) = 15;
5337 FLD (out_h_gr_2) = 2;
5338 FLD (out_h_gr_3) = 3;
5339 FLD (out_h_gr_31) = 31;
5340 FLD (out_h_gr_4) = 4;
5341 FLD (out_h_gr_5) = 5;
5342 FLD (out_h_gr_6) = 6;
5343 FLD (out_h_gr_7) = 7;
5344 FLD (out_h_gr_8) = 8;
5345 FLD (out_h_gr_9) = 9;
5346 }
5347 #endif
5348 #undef FLD
5349 return idesc;
5350 }
5351
5352 extract_sfmt_callx_indirect:
5353 {
5354 const IDESC *idesc = &i960base_insn_data[itype];
5355 CGEN_INSN_INT insn = base_insn;
5356 #define FLD(f) abuf->fields.sfmt_callx_indirect_offset.f
5357 UINT f_abase;
5358
5359 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
5360
5361 /* Record the fields for the semantic handler. */
5362 FLD (i_abase) = & CPU (h_gr)[f_abase];
5363 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_callx_indirect", "abase 0x%x", 'x', f_abase, (char *) 0));
5364
5365 #if WITH_PROFILE_MODEL_P
5366 /* Record the fields for profiling. */
5367 if (PROFILE_MODEL_P (current_cpu))
5368 {
5369 FLD (in_abase) = f_abase;
5370 FLD (in_h_gr_0) = 0;
5371 FLD (in_h_gr_1) = 1;
5372 FLD (in_h_gr_10) = 10;
5373 FLD (in_h_gr_11) = 11;
5374 FLD (in_h_gr_12) = 12;
5375 FLD (in_h_gr_13) = 13;
5376 FLD (in_h_gr_14) = 14;
5377 FLD (in_h_gr_15) = 15;
5378 FLD (in_h_gr_2) = 2;
5379 FLD (in_h_gr_3) = 3;
5380 FLD (in_h_gr_31) = 31;
5381 FLD (in_h_gr_4) = 4;
5382 FLD (in_h_gr_5) = 5;
5383 FLD (in_h_gr_6) = 6;
5384 FLD (in_h_gr_7) = 7;
5385 FLD (in_h_gr_8) = 8;
5386 FLD (in_h_gr_9) = 9;
5387 FLD (out_h_gr_0) = 0;
5388 FLD (out_h_gr_1) = 1;
5389 FLD (out_h_gr_10) = 10;
5390 FLD (out_h_gr_11) = 11;
5391 FLD (out_h_gr_12) = 12;
5392 FLD (out_h_gr_13) = 13;
5393 FLD (out_h_gr_14) = 14;
5394 FLD (out_h_gr_15) = 15;
5395 FLD (out_h_gr_2) = 2;
5396 FLD (out_h_gr_3) = 3;
5397 FLD (out_h_gr_31) = 31;
5398 FLD (out_h_gr_4) = 4;
5399 FLD (out_h_gr_5) = 5;
5400 FLD (out_h_gr_6) = 6;
5401 FLD (out_h_gr_7) = 7;
5402 FLD (out_h_gr_8) = 8;
5403 FLD (out_h_gr_9) = 9;
5404 }
5405 #endif
5406 #undef FLD
5407 return idesc;
5408 }
5409
5410 extract_sfmt_callx_indirect_offset:
5411 {
5412 const IDESC *idesc = &i960base_insn_data[itype];
5413 CGEN_INSN_INT insn = base_insn;
5414 #define FLD(f) abuf->fields.sfmt_callx_indirect_offset.f
5415 UINT f_abase;
5416 UINT f_offset;
5417
5418 f_abase = EXTRACT_MSB0_UINT (insn, 32, 13, 5);
5419 f_offset = EXTRACT_MSB0_UINT (insn, 32, 20, 12);
5420
5421 /* Record the fields for the semantic handler. */
5422 FLD (f_offset) = f_offset;
5423 FLD (i_abase) = & CPU (h_gr)[f_abase];
5424 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_callx_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, (char *) 0));
5425
5426 #if WITH_PROFILE_MODEL_P
5427 /* Record the fields for profiling. */
5428 if (PROFILE_MODEL_P (current_cpu))
5429 {
5430 FLD (in_abase) = f_abase;
5431 FLD (in_h_gr_0) = 0;
5432 FLD (in_h_gr_1) = 1;
5433 FLD (in_h_gr_10) = 10;
5434 FLD (in_h_gr_11) = 11;
5435 FLD (in_h_gr_12) = 12;
5436 FLD (in_h_gr_13) = 13;
5437 FLD (in_h_gr_14) = 14;
5438 FLD (in_h_gr_15) = 15;
5439 FLD (in_h_gr_2) = 2;
5440 FLD (in_h_gr_3) = 3;
5441 FLD (in_h_gr_31) = 31;
5442 FLD (in_h_gr_4) = 4;
5443 FLD (in_h_gr_5) = 5;
5444 FLD (in_h_gr_6) = 6;
5445 FLD (in_h_gr_7) = 7;
5446 FLD (in_h_gr_8) = 8;
5447 FLD (in_h_gr_9) = 9;
5448 FLD (out_h_gr_0) = 0;
5449 FLD (out_h_gr_1) = 1;
5450 FLD (out_h_gr_10) = 10;
5451 FLD (out_h_gr_11) = 11;
5452 FLD (out_h_gr_12) = 12;
5453 FLD (out_h_gr_13) = 13;
5454 FLD (out_h_gr_14) = 14;
5455 FLD (out_h_gr_15) = 15;
5456 FLD (out_h_gr_2) = 2;
5457 FLD (out_h_gr_3) = 3;
5458 FLD (out_h_gr_31) = 31;
5459 FLD (out_h_gr_4) = 4;
5460 FLD (out_h_gr_5) = 5;
5461 FLD (out_h_gr_6) = 6;
5462 FLD (out_h_gr_7) = 7;
5463 FLD (out_h_gr_8) = 8;
5464 FLD (out_h_gr_9) = 9;
5465 }
5466 #endif
5467 #undef FLD
5468 return idesc;
5469 }
5470
5471 extract_sfmt_ret:
5472 {
5473 const IDESC *idesc = &i960base_insn_data[itype];
5474 CGEN_INSN_INT insn = base_insn;
5475 #define FLD(f) abuf->fields.sfmt_callx_disp.f
5476
5477
5478 /* Record the fields for the semantic handler. */
5479 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_ret", (char *) 0));
5480
5481 #if WITH_PROFILE_MODEL_P
5482 /* Record the fields for profiling. */
5483 if (PROFILE_MODEL_P (current_cpu))
5484 {
5485 FLD (in_h_gr_0) = 0;
5486 FLD (in_h_gr_2) = 2;
5487 FLD (in_h_gr_31) = 31;
5488 FLD (out_h_gr_0) = 0;
5489 FLD (out_h_gr_1) = 1;
5490 FLD (out_h_gr_10) = 10;
5491 FLD (out_h_gr_11) = 11;
5492 FLD (out_h_gr_12) = 12;
5493 FLD (out_h_gr_13) = 13;
5494 FLD (out_h_gr_14) = 14;
5495 FLD (out_h_gr_15) = 15;
5496 FLD (out_h_gr_2) = 2;
5497 FLD (out_h_gr_3) = 3;
5498 FLD (out_h_gr_31) = 31;
5499 FLD (out_h_gr_4) = 4;
5500 FLD (out_h_gr_5) = 5;
5501 FLD (out_h_gr_6) = 6;
5502 FLD (out_h_gr_7) = 7;
5503 FLD (out_h_gr_8) = 8;
5504 FLD (out_h_gr_9) = 9;
5505 }
5506 #endif
5507 #undef FLD
5508 return idesc;
5509 }
5510
5511 extract_sfmt_calls:
5512 {
5513 const IDESC *idesc = &i960base_insn_data[itype];
5514 CGEN_INSN_INT insn = base_insn;
5515 #define FLD(f) abuf->fields.sfmt_emul2.f
5516 UINT f_src1;
5517
5518 f_src1 = EXTRACT_MSB0_UINT (insn, 32, 27, 5);
5519
5520 /* Record the fields for the semantic handler. */
5521 FLD (i_src1) = & CPU (h_gr)[f_src1];
5522 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_calls", "src1 0x%x", 'x', f_src1, (char *) 0));
5523
5524 #if WITH_PROFILE_MODEL_P
5525 /* Record the fields for profiling. */
5526 if (PROFILE_MODEL_P (current_cpu))
5527 {
5528 FLD (in_src1) = f_src1;
5529 }
5530 #endif
5531 #undef FLD
5532 return idesc;
5533 }
5534
5535 extract_sfmt_fmark:
5536 {
5537 const IDESC *idesc = &i960base_insn_data[itype];
5538 CGEN_INSN_INT insn = base_insn;
5539 #define FLD(f) abuf->fields.fmt_empty.f
5540
5541
5542 /* Record the fields for the semantic handler. */
5543 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_fmark", (char *) 0));
5544
5545 #if WITH_PROFILE_MODEL_P
5546 /* Record the fields for profiling. */
5547 if (PROFILE_MODEL_P (current_cpu))
5548 {
5549 }
5550 #endif
5551 #undef FLD
5552 return idesc;
5553 }
5554
5555 extract_sfmt_flushreg:
5556 {
5557 const IDESC *idesc = &i960base_insn_data[itype];
5558 CGEN_INSN_INT insn = base_insn;
5559 #define FLD(f) abuf->fields.fmt_empty.f
5560
5561
5562 /* Record the fields for the semantic handler. */
5563 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "sfmt_flushreg", (char *) 0));
5564
5565 #undef FLD
5566 return idesc;
5567 }
5568
5569 }