This commit was generated by cvs2svn to track changes on a CVS vendor
[deliverable/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 /* FIXME: Need to review choices for the following. */
32
33 #if WITH_SEM_SWITCH_FULL
34 #define FULL(fn)
35 #else
36 #define FULL(fn) CONCAT3 (i960base,_sem_,fn) ,
37 #endif
38
39 #if WITH_FAST
40 #if WITH_SEM_SWITCH_FAST
41 #define FAST(fn)
42 #else
43 #define FAST(fn) CONCAT3 (i960base,_semf_,fn) , /* f for fast */
44 #endif
45 #else
46 #define FAST(fn)
47 #endif
48
49 /* The INSN_ prefix is not here and is instead part of the `insn' argument
50 to avoid collisions with header files (e.g. `AND' in ansidecl.h). */
51 #define IDX(insn) CONCAT2 (I960BASE_,insn)
52 #define TYPE(insn) CONCAT2 (I960_,insn)
53
54 /* The instruction descriptor array.
55 This is computed at runtime. Space for it is not malloc'd to save a
56 teensy bit of cpu in the decoder. Moving it to malloc space is trivial
57 but won't be done until necessary (we don't currently support the runtime
58 addition of instructions nor an SMP machine with different cpus). */
59 static IDESC i960base_insn_data[I960BASE_INSN_MAX];
60
61 /* Commas between elements are contained in the macros.
62 Some of these are conditionally compiled out. */
63
64 static const struct insn_sem i960base_insn_sem[] =
65 {
66 { VIRTUAL_INSN_X_INVALID, IDX (INSN_X_INVALID), FULL (x_invalid) FAST (x_invalid) },
67 { VIRTUAL_INSN_X_AFTER, IDX (INSN_X_AFTER), FULL (x_after) FAST (x_after) },
68 { VIRTUAL_INSN_X_BEFORE, IDX (INSN_X_BEFORE), FULL (x_before) FAST (x_before) },
69 { VIRTUAL_INSN_X_CTI_CHAIN, IDX (INSN_X_CTI_CHAIN), FULL (x_cti_chain) FAST (x_cti_chain) },
70 { VIRTUAL_INSN_X_CHAIN, IDX (INSN_X_CHAIN), FULL (x_chain) FAST (x_chain) },
71 { VIRTUAL_INSN_X_BEGIN, IDX (INSN_X_BEGIN), FULL (x_begin) FAST (x_begin) },
72 { TYPE (INSN_MULO), IDX (INSN_MULO), FULL (mulo) FAST (mulo) },
73 { TYPE (INSN_MULO1), IDX (INSN_MULO1), FULL (mulo1) FAST (mulo1) },
74 { TYPE (INSN_MULO2), IDX (INSN_MULO2), FULL (mulo2) FAST (mulo2) },
75 { TYPE (INSN_MULO3), IDX (INSN_MULO3), FULL (mulo3) FAST (mulo3) },
76 { TYPE (INSN_REMO), IDX (INSN_REMO), FULL (remo) FAST (remo) },
77 { TYPE (INSN_REMO1), IDX (INSN_REMO1), FULL (remo1) FAST (remo1) },
78 { TYPE (INSN_REMO2), IDX (INSN_REMO2), FULL (remo2) FAST (remo2) },
79 { TYPE (INSN_REMO3), IDX (INSN_REMO3), FULL (remo3) FAST (remo3) },
80 { TYPE (INSN_DIVO), IDX (INSN_DIVO), FULL (divo) FAST (divo) },
81 { TYPE (INSN_DIVO1), IDX (INSN_DIVO1), FULL (divo1) FAST (divo1) },
82 { TYPE (INSN_DIVO2), IDX (INSN_DIVO2), FULL (divo2) FAST (divo2) },
83 { TYPE (INSN_DIVO3), IDX (INSN_DIVO3), FULL (divo3) FAST (divo3) },
84 { TYPE (INSN_REMI), IDX (INSN_REMI), FULL (remi) FAST (remi) },
85 { TYPE (INSN_REMI1), IDX (INSN_REMI1), FULL (remi1) FAST (remi1) },
86 { TYPE (INSN_REMI2), IDX (INSN_REMI2), FULL (remi2) FAST (remi2) },
87 { TYPE (INSN_REMI3), IDX (INSN_REMI3), FULL (remi3) FAST (remi3) },
88 { TYPE (INSN_DIVI), IDX (INSN_DIVI), FULL (divi) FAST (divi) },
89 { TYPE (INSN_DIVI1), IDX (INSN_DIVI1), FULL (divi1) FAST (divi1) },
90 { TYPE (INSN_DIVI2), IDX (INSN_DIVI2), FULL (divi2) FAST (divi2) },
91 { TYPE (INSN_DIVI3), IDX (INSN_DIVI3), FULL (divi3) FAST (divi3) },
92 { TYPE (INSN_ADDO), IDX (INSN_ADDO), FULL (addo) FAST (addo) },
93 { TYPE (INSN_ADDO1), IDX (INSN_ADDO1), FULL (addo1) FAST (addo1) },
94 { TYPE (INSN_ADDO2), IDX (INSN_ADDO2), FULL (addo2) FAST (addo2) },
95 { TYPE (INSN_ADDO3), IDX (INSN_ADDO3), FULL (addo3) FAST (addo3) },
96 { TYPE (INSN_SUBO), IDX (INSN_SUBO), FULL (subo) FAST (subo) },
97 { TYPE (INSN_SUBO1), IDX (INSN_SUBO1), FULL (subo1) FAST (subo1) },
98 { TYPE (INSN_SUBO2), IDX (INSN_SUBO2), FULL (subo2) FAST (subo2) },
99 { TYPE (INSN_SUBO3), IDX (INSN_SUBO3), FULL (subo3) FAST (subo3) },
100 { TYPE (INSN_NOTBIT), IDX (INSN_NOTBIT), FULL (notbit) FAST (notbit) },
101 { TYPE (INSN_NOTBIT1), IDX (INSN_NOTBIT1), FULL (notbit1) FAST (notbit1) },
102 { TYPE (INSN_NOTBIT2), IDX (INSN_NOTBIT2), FULL (notbit2) FAST (notbit2) },
103 { TYPE (INSN_NOTBIT3), IDX (INSN_NOTBIT3), FULL (notbit3) FAST (notbit3) },
104 { TYPE (INSN_AND), IDX (INSN_AND), FULL (and) FAST (and) },
105 { TYPE (INSN_AND1), IDX (INSN_AND1), FULL (and1) FAST (and1) },
106 { TYPE (INSN_AND2), IDX (INSN_AND2), FULL (and2) FAST (and2) },
107 { TYPE (INSN_AND3), IDX (INSN_AND3), FULL (and3) FAST (and3) },
108 { TYPE (INSN_ANDNOT), IDX (INSN_ANDNOT), FULL (andnot) FAST (andnot) },
109 { TYPE (INSN_ANDNOT1), IDX (INSN_ANDNOT1), FULL (andnot1) FAST (andnot1) },
110 { TYPE (INSN_ANDNOT2), IDX (INSN_ANDNOT2), FULL (andnot2) FAST (andnot2) },
111 { TYPE (INSN_ANDNOT3), IDX (INSN_ANDNOT3), FULL (andnot3) FAST (andnot3) },
112 { TYPE (INSN_SETBIT), IDX (INSN_SETBIT), FULL (setbit) FAST (setbit) },
113 { TYPE (INSN_SETBIT1), IDX (INSN_SETBIT1), FULL (setbit1) FAST (setbit1) },
114 { TYPE (INSN_SETBIT2), IDX (INSN_SETBIT2), FULL (setbit2) FAST (setbit2) },
115 { TYPE (INSN_SETBIT3), IDX (INSN_SETBIT3), FULL (setbit3) FAST (setbit3) },
116 { TYPE (INSN_NOTAND), IDX (INSN_NOTAND), FULL (notand) FAST (notand) },
117 { TYPE (INSN_NOTAND1), IDX (INSN_NOTAND1), FULL (notand1) FAST (notand1) },
118 { TYPE (INSN_NOTAND2), IDX (INSN_NOTAND2), FULL (notand2) FAST (notand2) },
119 { TYPE (INSN_NOTAND3), IDX (INSN_NOTAND3), FULL (notand3) FAST (notand3) },
120 { TYPE (INSN_XOR), IDX (INSN_XOR), FULL (xor) FAST (xor) },
121 { TYPE (INSN_XOR1), IDX (INSN_XOR1), FULL (xor1) FAST (xor1) },
122 { TYPE (INSN_XOR2), IDX (INSN_XOR2), FULL (xor2) FAST (xor2) },
123 { TYPE (INSN_XOR3), IDX (INSN_XOR3), FULL (xor3) FAST (xor3) },
124 { TYPE (INSN_OR), IDX (INSN_OR), FULL (or) FAST (or) },
125 { TYPE (INSN_OR1), IDX (INSN_OR1), FULL (or1) FAST (or1) },
126 { TYPE (INSN_OR2), IDX (INSN_OR2), FULL (or2) FAST (or2) },
127 { TYPE (INSN_OR3), IDX (INSN_OR3), FULL (or3) FAST (or3) },
128 { TYPE (INSN_NOR), IDX (INSN_NOR), FULL (nor) FAST (nor) },
129 { TYPE (INSN_NOR1), IDX (INSN_NOR1), FULL (nor1) FAST (nor1) },
130 { TYPE (INSN_NOR2), IDX (INSN_NOR2), FULL (nor2) FAST (nor2) },
131 { TYPE (INSN_NOR3), IDX (INSN_NOR3), FULL (nor3) FAST (nor3) },
132 { TYPE (INSN_XNOR), IDX (INSN_XNOR), FULL (xnor) FAST (xnor) },
133 { TYPE (INSN_XNOR1), IDX (INSN_XNOR1), FULL (xnor1) FAST (xnor1) },
134 { TYPE (INSN_XNOR2), IDX (INSN_XNOR2), FULL (xnor2) FAST (xnor2) },
135 { TYPE (INSN_XNOR3), IDX (INSN_XNOR3), FULL (xnor3) FAST (xnor3) },
136 { TYPE (INSN_NOT), IDX (INSN_NOT), FULL (not) FAST (not) },
137 { TYPE (INSN_NOT1), IDX (INSN_NOT1), FULL (not1) FAST (not1) },
138 { TYPE (INSN_NOT2), IDX (INSN_NOT2), FULL (not2) FAST (not2) },
139 { TYPE (INSN_NOT3), IDX (INSN_NOT3), FULL (not3) FAST (not3) },
140 { TYPE (INSN_ORNOT), IDX (INSN_ORNOT), FULL (ornot) FAST (ornot) },
141 { TYPE (INSN_ORNOT1), IDX (INSN_ORNOT1), FULL (ornot1) FAST (ornot1) },
142 { TYPE (INSN_ORNOT2), IDX (INSN_ORNOT2), FULL (ornot2) FAST (ornot2) },
143 { TYPE (INSN_ORNOT3), IDX (INSN_ORNOT3), FULL (ornot3) FAST (ornot3) },
144 { TYPE (INSN_CLRBIT), IDX (INSN_CLRBIT), FULL (clrbit) FAST (clrbit) },
145 { TYPE (INSN_CLRBIT1), IDX (INSN_CLRBIT1), FULL (clrbit1) FAST (clrbit1) },
146 { TYPE (INSN_CLRBIT2), IDX (INSN_CLRBIT2), FULL (clrbit2) FAST (clrbit2) },
147 { TYPE (INSN_CLRBIT3), IDX (INSN_CLRBIT3), FULL (clrbit3) FAST (clrbit3) },
148 { TYPE (INSN_SHLO), IDX (INSN_SHLO), FULL (shlo) FAST (shlo) },
149 { TYPE (INSN_SHLO1), IDX (INSN_SHLO1), FULL (shlo1) FAST (shlo1) },
150 { TYPE (INSN_SHLO2), IDX (INSN_SHLO2), FULL (shlo2) FAST (shlo2) },
151 { TYPE (INSN_SHLO3), IDX (INSN_SHLO3), FULL (shlo3) FAST (shlo3) },
152 { TYPE (INSN_SHRO), IDX (INSN_SHRO), FULL (shro) FAST (shro) },
153 { TYPE (INSN_SHRO1), IDX (INSN_SHRO1), FULL (shro1) FAST (shro1) },
154 { TYPE (INSN_SHRO2), IDX (INSN_SHRO2), FULL (shro2) FAST (shro2) },
155 { TYPE (INSN_SHRO3), IDX (INSN_SHRO3), FULL (shro3) FAST (shro3) },
156 { TYPE (INSN_SHLI), IDX (INSN_SHLI), FULL (shli) FAST (shli) },
157 { TYPE (INSN_SHLI1), IDX (INSN_SHLI1), FULL (shli1) FAST (shli1) },
158 { TYPE (INSN_SHLI2), IDX (INSN_SHLI2), FULL (shli2) FAST (shli2) },
159 { TYPE (INSN_SHLI3), IDX (INSN_SHLI3), FULL (shli3) FAST (shli3) },
160 { TYPE (INSN_SHRI), IDX (INSN_SHRI), FULL (shri) FAST (shri) },
161 { TYPE (INSN_SHRI1), IDX (INSN_SHRI1), FULL (shri1) FAST (shri1) },
162 { TYPE (INSN_SHRI2), IDX (INSN_SHRI2), FULL (shri2) FAST (shri2) },
163 { TYPE (INSN_SHRI3), IDX (INSN_SHRI3), FULL (shri3) FAST (shri3) },
164 { TYPE (INSN_EMUL), IDX (INSN_EMUL), FULL (emul) FAST (emul) },
165 { TYPE (INSN_EMUL1), IDX (INSN_EMUL1), FULL (emul1) FAST (emul1) },
166 { TYPE (INSN_EMUL2), IDX (INSN_EMUL2), FULL (emul2) FAST (emul2) },
167 { TYPE (INSN_EMUL3), IDX (INSN_EMUL3), FULL (emul3) FAST (emul3) },
168 { TYPE (INSN_MOV), IDX (INSN_MOV), FULL (mov) FAST (mov) },
169 { TYPE (INSN_MOV1), IDX (INSN_MOV1), FULL (mov1) FAST (mov1) },
170 { TYPE (INSN_MOVL), IDX (INSN_MOVL), FULL (movl) FAST (movl) },
171 { TYPE (INSN_MOVL1), IDX (INSN_MOVL1), FULL (movl1) FAST (movl1) },
172 { TYPE (INSN_MOVT), IDX (INSN_MOVT), FULL (movt) FAST (movt) },
173 { TYPE (INSN_MOVT1), IDX (INSN_MOVT1), FULL (movt1) FAST (movt1) },
174 { TYPE (INSN_MOVQ), IDX (INSN_MOVQ), FULL (movq) FAST (movq) },
175 { TYPE (INSN_MOVQ1), IDX (INSN_MOVQ1), FULL (movq1) FAST (movq1) },
176 { TYPE (INSN_MODPC), IDX (INSN_MODPC), FULL (modpc) FAST (modpc) },
177 { TYPE (INSN_MODAC), IDX (INSN_MODAC), FULL (modac) FAST (modac) },
178 { TYPE (INSN_LDA_OFFSET), IDX (INSN_LDA_OFFSET), FULL (lda_offset) FAST (lda_offset) },
179 { TYPE (INSN_LDA_INDIRECT_OFFSET), IDX (INSN_LDA_INDIRECT_OFFSET), FULL (lda_indirect_offset) FAST (lda_indirect_offset) },
180 { TYPE (INSN_LDA_INDIRECT), IDX (INSN_LDA_INDIRECT), FULL (lda_indirect) FAST (lda_indirect) },
181 { TYPE (INSN_LDA_INDIRECT_INDEX), IDX (INSN_LDA_INDIRECT_INDEX), FULL (lda_indirect_index) FAST (lda_indirect_index) },
182 { TYPE (INSN_LDA_DISP), IDX (INSN_LDA_DISP), FULL (lda_disp) FAST (lda_disp) },
183 { TYPE (INSN_LDA_INDIRECT_DISP), IDX (INSN_LDA_INDIRECT_DISP), FULL (lda_indirect_disp) FAST (lda_indirect_disp) },
184 { TYPE (INSN_LDA_INDEX_DISP), IDX (INSN_LDA_INDEX_DISP), FULL (lda_index_disp) FAST (lda_index_disp) },
185 { TYPE (INSN_LDA_INDIRECT_INDEX_DISP), IDX (INSN_LDA_INDIRECT_INDEX_DISP), FULL (lda_indirect_index_disp) FAST (lda_indirect_index_disp) },
186 { TYPE (INSN_LD_OFFSET), IDX (INSN_LD_OFFSET), FULL (ld_offset) FAST (ld_offset) },
187 { TYPE (INSN_LD_INDIRECT_OFFSET), IDX (INSN_LD_INDIRECT_OFFSET), FULL (ld_indirect_offset) FAST (ld_indirect_offset) },
188 { TYPE (INSN_LD_INDIRECT), IDX (INSN_LD_INDIRECT), FULL (ld_indirect) FAST (ld_indirect) },
189 { TYPE (INSN_LD_INDIRECT_INDEX), IDX (INSN_LD_INDIRECT_INDEX), FULL (ld_indirect_index) FAST (ld_indirect_index) },
190 { TYPE (INSN_LD_DISP), IDX (INSN_LD_DISP), FULL (ld_disp) FAST (ld_disp) },
191 { TYPE (INSN_LD_INDIRECT_DISP), IDX (INSN_LD_INDIRECT_DISP), FULL (ld_indirect_disp) FAST (ld_indirect_disp) },
192 { TYPE (INSN_LD_INDEX_DISP), IDX (INSN_LD_INDEX_DISP), FULL (ld_index_disp) FAST (ld_index_disp) },
193 { TYPE (INSN_LD_INDIRECT_INDEX_DISP), IDX (INSN_LD_INDIRECT_INDEX_DISP), FULL (ld_indirect_index_disp) FAST (ld_indirect_index_disp) },
194 { TYPE (INSN_LDOB_OFFSET), IDX (INSN_LDOB_OFFSET), FULL (ldob_offset) FAST (ldob_offset) },
195 { TYPE (INSN_LDOB_INDIRECT_OFFSET), IDX (INSN_LDOB_INDIRECT_OFFSET), FULL (ldob_indirect_offset) FAST (ldob_indirect_offset) },
196 { TYPE (INSN_LDOB_INDIRECT), IDX (INSN_LDOB_INDIRECT), FULL (ldob_indirect) FAST (ldob_indirect) },
197 { TYPE (INSN_LDOB_INDIRECT_INDEX), IDX (INSN_LDOB_INDIRECT_INDEX), FULL (ldob_indirect_index) FAST (ldob_indirect_index) },
198 { TYPE (INSN_LDOB_DISP), IDX (INSN_LDOB_DISP), FULL (ldob_disp) FAST (ldob_disp) },
199 { TYPE (INSN_LDOB_INDIRECT_DISP), IDX (INSN_LDOB_INDIRECT_DISP), FULL (ldob_indirect_disp) FAST (ldob_indirect_disp) },
200 { TYPE (INSN_LDOB_INDEX_DISP), IDX (INSN_LDOB_INDEX_DISP), FULL (ldob_index_disp) FAST (ldob_index_disp) },
201 { TYPE (INSN_LDOB_INDIRECT_INDEX_DISP), IDX (INSN_LDOB_INDIRECT_INDEX_DISP), FULL (ldob_indirect_index_disp) FAST (ldob_indirect_index_disp) },
202 { TYPE (INSN_LDOS_OFFSET), IDX (INSN_LDOS_OFFSET), FULL (ldos_offset) FAST (ldos_offset) },
203 { TYPE (INSN_LDOS_INDIRECT_OFFSET), IDX (INSN_LDOS_INDIRECT_OFFSET), FULL (ldos_indirect_offset) FAST (ldos_indirect_offset) },
204 { TYPE (INSN_LDOS_INDIRECT), IDX (INSN_LDOS_INDIRECT), FULL (ldos_indirect) FAST (ldos_indirect) },
205 { TYPE (INSN_LDOS_INDIRECT_INDEX), IDX (INSN_LDOS_INDIRECT_INDEX), FULL (ldos_indirect_index) FAST (ldos_indirect_index) },
206 { TYPE (INSN_LDOS_DISP), IDX (INSN_LDOS_DISP), FULL (ldos_disp) FAST (ldos_disp) },
207 { TYPE (INSN_LDOS_INDIRECT_DISP), IDX (INSN_LDOS_INDIRECT_DISP), FULL (ldos_indirect_disp) FAST (ldos_indirect_disp) },
208 { TYPE (INSN_LDOS_INDEX_DISP), IDX (INSN_LDOS_INDEX_DISP), FULL (ldos_index_disp) FAST (ldos_index_disp) },
209 { TYPE (INSN_LDOS_INDIRECT_INDEX_DISP), IDX (INSN_LDOS_INDIRECT_INDEX_DISP), FULL (ldos_indirect_index_disp) FAST (ldos_indirect_index_disp) },
210 { TYPE (INSN_LDIB_OFFSET), IDX (INSN_LDIB_OFFSET), FULL (ldib_offset) FAST (ldib_offset) },
211 { TYPE (INSN_LDIB_INDIRECT_OFFSET), IDX (INSN_LDIB_INDIRECT_OFFSET), FULL (ldib_indirect_offset) FAST (ldib_indirect_offset) },
212 { TYPE (INSN_LDIB_INDIRECT), IDX (INSN_LDIB_INDIRECT), FULL (ldib_indirect) FAST (ldib_indirect) },
213 { TYPE (INSN_LDIB_INDIRECT_INDEX), IDX (INSN_LDIB_INDIRECT_INDEX), FULL (ldib_indirect_index) FAST (ldib_indirect_index) },
214 { TYPE (INSN_LDIB_DISP), IDX (INSN_LDIB_DISP), FULL (ldib_disp) FAST (ldib_disp) },
215 { TYPE (INSN_LDIB_INDIRECT_DISP), IDX (INSN_LDIB_INDIRECT_DISP), FULL (ldib_indirect_disp) FAST (ldib_indirect_disp) },
216 { TYPE (INSN_LDIB_INDEX_DISP), IDX (INSN_LDIB_INDEX_DISP), FULL (ldib_index_disp) FAST (ldib_index_disp) },
217 { TYPE (INSN_LDIB_INDIRECT_INDEX_DISP), IDX (INSN_LDIB_INDIRECT_INDEX_DISP), FULL (ldib_indirect_index_disp) FAST (ldib_indirect_index_disp) },
218 { TYPE (INSN_LDIS_OFFSET), IDX (INSN_LDIS_OFFSET), FULL (ldis_offset) FAST (ldis_offset) },
219 { TYPE (INSN_LDIS_INDIRECT_OFFSET), IDX (INSN_LDIS_INDIRECT_OFFSET), FULL (ldis_indirect_offset) FAST (ldis_indirect_offset) },
220 { TYPE (INSN_LDIS_INDIRECT), IDX (INSN_LDIS_INDIRECT), FULL (ldis_indirect) FAST (ldis_indirect) },
221 { TYPE (INSN_LDIS_INDIRECT_INDEX), IDX (INSN_LDIS_INDIRECT_INDEX), FULL (ldis_indirect_index) FAST (ldis_indirect_index) },
222 { TYPE (INSN_LDIS_DISP), IDX (INSN_LDIS_DISP), FULL (ldis_disp) FAST (ldis_disp) },
223 { TYPE (INSN_LDIS_INDIRECT_DISP), IDX (INSN_LDIS_INDIRECT_DISP), FULL (ldis_indirect_disp) FAST (ldis_indirect_disp) },
224 { TYPE (INSN_LDIS_INDEX_DISP), IDX (INSN_LDIS_INDEX_DISP), FULL (ldis_index_disp) FAST (ldis_index_disp) },
225 { TYPE (INSN_LDIS_INDIRECT_INDEX_DISP), IDX (INSN_LDIS_INDIRECT_INDEX_DISP), FULL (ldis_indirect_index_disp) FAST (ldis_indirect_index_disp) },
226 { TYPE (INSN_LDL_OFFSET), IDX (INSN_LDL_OFFSET), FULL (ldl_offset) FAST (ldl_offset) },
227 { TYPE (INSN_LDL_INDIRECT_OFFSET), IDX (INSN_LDL_INDIRECT_OFFSET), FULL (ldl_indirect_offset) FAST (ldl_indirect_offset) },
228 { TYPE (INSN_LDL_INDIRECT), IDX (INSN_LDL_INDIRECT), FULL (ldl_indirect) FAST (ldl_indirect) },
229 { TYPE (INSN_LDL_INDIRECT_INDEX), IDX (INSN_LDL_INDIRECT_INDEX), FULL (ldl_indirect_index) FAST (ldl_indirect_index) },
230 { TYPE (INSN_LDL_DISP), IDX (INSN_LDL_DISP), FULL (ldl_disp) FAST (ldl_disp) },
231 { TYPE (INSN_LDL_INDIRECT_DISP), IDX (INSN_LDL_INDIRECT_DISP), FULL (ldl_indirect_disp) FAST (ldl_indirect_disp) },
232 { TYPE (INSN_LDL_INDEX_DISP), IDX (INSN_LDL_INDEX_DISP), FULL (ldl_index_disp) FAST (ldl_index_disp) },
233 { TYPE (INSN_LDL_INDIRECT_INDEX_DISP), IDX (INSN_LDL_INDIRECT_INDEX_DISP), FULL (ldl_indirect_index_disp) FAST (ldl_indirect_index_disp) },
234 { TYPE (INSN_LDT_OFFSET), IDX (INSN_LDT_OFFSET), FULL (ldt_offset) FAST (ldt_offset) },
235 { TYPE (INSN_LDT_INDIRECT_OFFSET), IDX (INSN_LDT_INDIRECT_OFFSET), FULL (ldt_indirect_offset) FAST (ldt_indirect_offset) },
236 { TYPE (INSN_LDT_INDIRECT), IDX (INSN_LDT_INDIRECT), FULL (ldt_indirect) FAST (ldt_indirect) },
237 { TYPE (INSN_LDT_INDIRECT_INDEX), IDX (INSN_LDT_INDIRECT_INDEX), FULL (ldt_indirect_index) FAST (ldt_indirect_index) },
238 { TYPE (INSN_LDT_DISP), IDX (INSN_LDT_DISP), FULL (ldt_disp) FAST (ldt_disp) },
239 { TYPE (INSN_LDT_INDIRECT_DISP), IDX (INSN_LDT_INDIRECT_DISP), FULL (ldt_indirect_disp) FAST (ldt_indirect_disp) },
240 { TYPE (INSN_LDT_INDEX_DISP), IDX (INSN_LDT_INDEX_DISP), FULL (ldt_index_disp) FAST (ldt_index_disp) },
241 { TYPE (INSN_LDT_INDIRECT_INDEX_DISP), IDX (INSN_LDT_INDIRECT_INDEX_DISP), FULL (ldt_indirect_index_disp) FAST (ldt_indirect_index_disp) },
242 { TYPE (INSN_LDQ_OFFSET), IDX (INSN_LDQ_OFFSET), FULL (ldq_offset) FAST (ldq_offset) },
243 { TYPE (INSN_LDQ_INDIRECT_OFFSET), IDX (INSN_LDQ_INDIRECT_OFFSET), FULL (ldq_indirect_offset) FAST (ldq_indirect_offset) },
244 { TYPE (INSN_LDQ_INDIRECT), IDX (INSN_LDQ_INDIRECT), FULL (ldq_indirect) FAST (ldq_indirect) },
245 { TYPE (INSN_LDQ_INDIRECT_INDEX), IDX (INSN_LDQ_INDIRECT_INDEX), FULL (ldq_indirect_index) FAST (ldq_indirect_index) },
246 { TYPE (INSN_LDQ_DISP), IDX (INSN_LDQ_DISP), FULL (ldq_disp) FAST (ldq_disp) },
247 { TYPE (INSN_LDQ_INDIRECT_DISP), IDX (INSN_LDQ_INDIRECT_DISP), FULL (ldq_indirect_disp) FAST (ldq_indirect_disp) },
248 { TYPE (INSN_LDQ_INDEX_DISP), IDX (INSN_LDQ_INDEX_DISP), FULL (ldq_index_disp) FAST (ldq_index_disp) },
249 { TYPE (INSN_LDQ_INDIRECT_INDEX_DISP), IDX (INSN_LDQ_INDIRECT_INDEX_DISP), FULL (ldq_indirect_index_disp) FAST (ldq_indirect_index_disp) },
250 { TYPE (INSN_ST_OFFSET), IDX (INSN_ST_OFFSET), FULL (st_offset) FAST (st_offset) },
251 { TYPE (INSN_ST_INDIRECT_OFFSET), IDX (INSN_ST_INDIRECT_OFFSET), FULL (st_indirect_offset) FAST (st_indirect_offset) },
252 { TYPE (INSN_ST_INDIRECT), IDX (INSN_ST_INDIRECT), FULL (st_indirect) FAST (st_indirect) },
253 { TYPE (INSN_ST_INDIRECT_INDEX), IDX (INSN_ST_INDIRECT_INDEX), FULL (st_indirect_index) FAST (st_indirect_index) },
254 { TYPE (INSN_ST_DISP), IDX (INSN_ST_DISP), FULL (st_disp) FAST (st_disp) },
255 { TYPE (INSN_ST_INDIRECT_DISP), IDX (INSN_ST_INDIRECT_DISP), FULL (st_indirect_disp) FAST (st_indirect_disp) },
256 { TYPE (INSN_ST_INDEX_DISP), IDX (INSN_ST_INDEX_DISP), FULL (st_index_disp) FAST (st_index_disp) },
257 { TYPE (INSN_ST_INDIRECT_INDEX_DISP), IDX (INSN_ST_INDIRECT_INDEX_DISP), FULL (st_indirect_index_disp) FAST (st_indirect_index_disp) },
258 { TYPE (INSN_STOB_OFFSET), IDX (INSN_STOB_OFFSET), FULL (stob_offset) FAST (stob_offset) },
259 { TYPE (INSN_STOB_INDIRECT_OFFSET), IDX (INSN_STOB_INDIRECT_OFFSET), FULL (stob_indirect_offset) FAST (stob_indirect_offset) },
260 { TYPE (INSN_STOB_INDIRECT), IDX (INSN_STOB_INDIRECT), FULL (stob_indirect) FAST (stob_indirect) },
261 { TYPE (INSN_STOB_INDIRECT_INDEX), IDX (INSN_STOB_INDIRECT_INDEX), FULL (stob_indirect_index) FAST (stob_indirect_index) },
262 { TYPE (INSN_STOB_DISP), IDX (INSN_STOB_DISP), FULL (stob_disp) FAST (stob_disp) },
263 { TYPE (INSN_STOB_INDIRECT_DISP), IDX (INSN_STOB_INDIRECT_DISP), FULL (stob_indirect_disp) FAST (stob_indirect_disp) },
264 { TYPE (INSN_STOB_INDEX_DISP), IDX (INSN_STOB_INDEX_DISP), FULL (stob_index_disp) FAST (stob_index_disp) },
265 { TYPE (INSN_STOB_INDIRECT_INDEX_DISP), IDX (INSN_STOB_INDIRECT_INDEX_DISP), FULL (stob_indirect_index_disp) FAST (stob_indirect_index_disp) },
266 { TYPE (INSN_STOS_OFFSET), IDX (INSN_STOS_OFFSET), FULL (stos_offset) FAST (stos_offset) },
267 { TYPE (INSN_STOS_INDIRECT_OFFSET), IDX (INSN_STOS_INDIRECT_OFFSET), FULL (stos_indirect_offset) FAST (stos_indirect_offset) },
268 { TYPE (INSN_STOS_INDIRECT), IDX (INSN_STOS_INDIRECT), FULL (stos_indirect) FAST (stos_indirect) },
269 { TYPE (INSN_STOS_INDIRECT_INDEX), IDX (INSN_STOS_INDIRECT_INDEX), FULL (stos_indirect_index) FAST (stos_indirect_index) },
270 { TYPE (INSN_STOS_DISP), IDX (INSN_STOS_DISP), FULL (stos_disp) FAST (stos_disp) },
271 { TYPE (INSN_STOS_INDIRECT_DISP), IDX (INSN_STOS_INDIRECT_DISP), FULL (stos_indirect_disp) FAST (stos_indirect_disp) },
272 { TYPE (INSN_STOS_INDEX_DISP), IDX (INSN_STOS_INDEX_DISP), FULL (stos_index_disp) FAST (stos_index_disp) },
273 { TYPE (INSN_STOS_INDIRECT_INDEX_DISP), IDX (INSN_STOS_INDIRECT_INDEX_DISP), FULL (stos_indirect_index_disp) FAST (stos_indirect_index_disp) },
274 { TYPE (INSN_STL_OFFSET), IDX (INSN_STL_OFFSET), FULL (stl_offset) FAST (stl_offset) },
275 { TYPE (INSN_STL_INDIRECT_OFFSET), IDX (INSN_STL_INDIRECT_OFFSET), FULL (stl_indirect_offset) FAST (stl_indirect_offset) },
276 { TYPE (INSN_STL_INDIRECT), IDX (INSN_STL_INDIRECT), FULL (stl_indirect) FAST (stl_indirect) },
277 { TYPE (INSN_STL_INDIRECT_INDEX), IDX (INSN_STL_INDIRECT_INDEX), FULL (stl_indirect_index) FAST (stl_indirect_index) },
278 { TYPE (INSN_STL_DISP), IDX (INSN_STL_DISP), FULL (stl_disp) FAST (stl_disp) },
279 { TYPE (INSN_STL_INDIRECT_DISP), IDX (INSN_STL_INDIRECT_DISP), FULL (stl_indirect_disp) FAST (stl_indirect_disp) },
280 { TYPE (INSN_STL_INDEX_DISP), IDX (INSN_STL_INDEX_DISP), FULL (stl_index_disp) FAST (stl_index_disp) },
281 { TYPE (INSN_STL_INDIRECT_INDEX_DISP), IDX (INSN_STL_INDIRECT_INDEX_DISP), FULL (stl_indirect_index_disp) FAST (stl_indirect_index_disp) },
282 { TYPE (INSN_STT_OFFSET), IDX (INSN_STT_OFFSET), FULL (stt_offset) FAST (stt_offset) },
283 { TYPE (INSN_STT_INDIRECT_OFFSET), IDX (INSN_STT_INDIRECT_OFFSET), FULL (stt_indirect_offset) FAST (stt_indirect_offset) },
284 { TYPE (INSN_STT_INDIRECT), IDX (INSN_STT_INDIRECT), FULL (stt_indirect) FAST (stt_indirect) },
285 { TYPE (INSN_STT_INDIRECT_INDEX), IDX (INSN_STT_INDIRECT_INDEX), FULL (stt_indirect_index) FAST (stt_indirect_index) },
286 { TYPE (INSN_STT_DISP), IDX (INSN_STT_DISP), FULL (stt_disp) FAST (stt_disp) },
287 { TYPE (INSN_STT_INDIRECT_DISP), IDX (INSN_STT_INDIRECT_DISP), FULL (stt_indirect_disp) FAST (stt_indirect_disp) },
288 { TYPE (INSN_STT_INDEX_DISP), IDX (INSN_STT_INDEX_DISP), FULL (stt_index_disp) FAST (stt_index_disp) },
289 { TYPE (INSN_STT_INDIRECT_INDEX_DISP), IDX (INSN_STT_INDIRECT_INDEX_DISP), FULL (stt_indirect_index_disp) FAST (stt_indirect_index_disp) },
290 { TYPE (INSN_STQ_OFFSET), IDX (INSN_STQ_OFFSET), FULL (stq_offset) FAST (stq_offset) },
291 { TYPE (INSN_STQ_INDIRECT_OFFSET), IDX (INSN_STQ_INDIRECT_OFFSET), FULL (stq_indirect_offset) FAST (stq_indirect_offset) },
292 { TYPE (INSN_STQ_INDIRECT), IDX (INSN_STQ_INDIRECT), FULL (stq_indirect) FAST (stq_indirect) },
293 { TYPE (INSN_STQ_INDIRECT_INDEX), IDX (INSN_STQ_INDIRECT_INDEX), FULL (stq_indirect_index) FAST (stq_indirect_index) },
294 { TYPE (INSN_STQ_DISP), IDX (INSN_STQ_DISP), FULL (stq_disp) FAST (stq_disp) },
295 { TYPE (INSN_STQ_INDIRECT_DISP), IDX (INSN_STQ_INDIRECT_DISP), FULL (stq_indirect_disp) FAST (stq_indirect_disp) },
296 { TYPE (INSN_STQ_INDEX_DISP), IDX (INSN_STQ_INDEX_DISP), FULL (stq_index_disp) FAST (stq_index_disp) },
297 { TYPE (INSN_STQ_INDIRECT_INDEX_DISP), IDX (INSN_STQ_INDIRECT_INDEX_DISP), FULL (stq_indirect_index_disp) FAST (stq_indirect_index_disp) },
298 { TYPE (INSN_CMPOBE_REG), IDX (INSN_CMPOBE_REG), FULL (cmpobe_reg) FAST (cmpobe_reg) },
299 { TYPE (INSN_CMPOBE_LIT), IDX (INSN_CMPOBE_LIT), FULL (cmpobe_lit) FAST (cmpobe_lit) },
300 { TYPE (INSN_CMPOBNE_REG), IDX (INSN_CMPOBNE_REG), FULL (cmpobne_reg) FAST (cmpobne_reg) },
301 { TYPE (INSN_CMPOBNE_LIT), IDX (INSN_CMPOBNE_LIT), FULL (cmpobne_lit) FAST (cmpobne_lit) },
302 { TYPE (INSN_CMPOBL_REG), IDX (INSN_CMPOBL_REG), FULL (cmpobl_reg) FAST (cmpobl_reg) },
303 { TYPE (INSN_CMPOBL_LIT), IDX (INSN_CMPOBL_LIT), FULL (cmpobl_lit) FAST (cmpobl_lit) },
304 { TYPE (INSN_CMPOBLE_REG), IDX (INSN_CMPOBLE_REG), FULL (cmpoble_reg) FAST (cmpoble_reg) },
305 { TYPE (INSN_CMPOBLE_LIT), IDX (INSN_CMPOBLE_LIT), FULL (cmpoble_lit) FAST (cmpoble_lit) },
306 { TYPE (INSN_CMPOBG_REG), IDX (INSN_CMPOBG_REG), FULL (cmpobg_reg) FAST (cmpobg_reg) },
307 { TYPE (INSN_CMPOBG_LIT), IDX (INSN_CMPOBG_LIT), FULL (cmpobg_lit) FAST (cmpobg_lit) },
308 { TYPE (INSN_CMPOBGE_REG), IDX (INSN_CMPOBGE_REG), FULL (cmpobge_reg) FAST (cmpobge_reg) },
309 { TYPE (INSN_CMPOBGE_LIT), IDX (INSN_CMPOBGE_LIT), FULL (cmpobge_lit) FAST (cmpobge_lit) },
310 { TYPE (INSN_CMPIBE_REG), IDX (INSN_CMPIBE_REG), FULL (cmpibe_reg) FAST (cmpibe_reg) },
311 { TYPE (INSN_CMPIBE_LIT), IDX (INSN_CMPIBE_LIT), FULL (cmpibe_lit) FAST (cmpibe_lit) },
312 { TYPE (INSN_CMPIBNE_REG), IDX (INSN_CMPIBNE_REG), FULL (cmpibne_reg) FAST (cmpibne_reg) },
313 { TYPE (INSN_CMPIBNE_LIT), IDX (INSN_CMPIBNE_LIT), FULL (cmpibne_lit) FAST (cmpibne_lit) },
314 { TYPE (INSN_CMPIBL_REG), IDX (INSN_CMPIBL_REG), FULL (cmpibl_reg) FAST (cmpibl_reg) },
315 { TYPE (INSN_CMPIBL_LIT), IDX (INSN_CMPIBL_LIT), FULL (cmpibl_lit) FAST (cmpibl_lit) },
316 { TYPE (INSN_CMPIBLE_REG), IDX (INSN_CMPIBLE_REG), FULL (cmpible_reg) FAST (cmpible_reg) },
317 { TYPE (INSN_CMPIBLE_LIT), IDX (INSN_CMPIBLE_LIT), FULL (cmpible_lit) FAST (cmpible_lit) },
318 { TYPE (INSN_CMPIBG_REG), IDX (INSN_CMPIBG_REG), FULL (cmpibg_reg) FAST (cmpibg_reg) },
319 { TYPE (INSN_CMPIBG_LIT), IDX (INSN_CMPIBG_LIT), FULL (cmpibg_lit) FAST (cmpibg_lit) },
320 { TYPE (INSN_CMPIBGE_REG), IDX (INSN_CMPIBGE_REG), FULL (cmpibge_reg) FAST (cmpibge_reg) },
321 { TYPE (INSN_CMPIBGE_LIT), IDX (INSN_CMPIBGE_LIT), FULL (cmpibge_lit) FAST (cmpibge_lit) },
322 { TYPE (INSN_BBC_REG), IDX (INSN_BBC_REG), FULL (bbc_reg) FAST (bbc_reg) },
323 { TYPE (INSN_BBC_LIT), IDX (INSN_BBC_LIT), FULL (bbc_lit) FAST (bbc_lit) },
324 { TYPE (INSN_BBS_REG), IDX (INSN_BBS_REG), FULL (bbs_reg) FAST (bbs_reg) },
325 { TYPE (INSN_BBS_LIT), IDX (INSN_BBS_LIT), FULL (bbs_lit) FAST (bbs_lit) },
326 { TYPE (INSN_CMPI), IDX (INSN_CMPI), FULL (cmpi) FAST (cmpi) },
327 { TYPE (INSN_CMPI1), IDX (INSN_CMPI1), FULL (cmpi1) FAST (cmpi1) },
328 { TYPE (INSN_CMPI2), IDX (INSN_CMPI2), FULL (cmpi2) FAST (cmpi2) },
329 { TYPE (INSN_CMPI3), IDX (INSN_CMPI3), FULL (cmpi3) FAST (cmpi3) },
330 { TYPE (INSN_CMPO), IDX (INSN_CMPO), FULL (cmpo) FAST (cmpo) },
331 { TYPE (INSN_CMPO1), IDX (INSN_CMPO1), FULL (cmpo1) FAST (cmpo1) },
332 { TYPE (INSN_CMPO2), IDX (INSN_CMPO2), FULL (cmpo2) FAST (cmpo2) },
333 { TYPE (INSN_CMPO3), IDX (INSN_CMPO3), FULL (cmpo3) FAST (cmpo3) },
334 { TYPE (INSN_TESTNO_REG), IDX (INSN_TESTNO_REG), FULL (testno_reg) FAST (testno_reg) },
335 { TYPE (INSN_TESTG_REG), IDX (INSN_TESTG_REG), FULL (testg_reg) FAST (testg_reg) },
336 { TYPE (INSN_TESTE_REG), IDX (INSN_TESTE_REG), FULL (teste_reg) FAST (teste_reg) },
337 { TYPE (INSN_TESTGE_REG), IDX (INSN_TESTGE_REG), FULL (testge_reg) FAST (testge_reg) },
338 { TYPE (INSN_TESTL_REG), IDX (INSN_TESTL_REG), FULL (testl_reg) FAST (testl_reg) },
339 { TYPE (INSN_TESTNE_REG), IDX (INSN_TESTNE_REG), FULL (testne_reg) FAST (testne_reg) },
340 { TYPE (INSN_TESTLE_REG), IDX (INSN_TESTLE_REG), FULL (testle_reg) FAST (testle_reg) },
341 { TYPE (INSN_TESTO_REG), IDX (INSN_TESTO_REG), FULL (testo_reg) FAST (testo_reg) },
342 { TYPE (INSN_BNO), IDX (INSN_BNO), FULL (bno) FAST (bno) },
343 { TYPE (INSN_BG), IDX (INSN_BG), FULL (bg) FAST (bg) },
344 { TYPE (INSN_BE), IDX (INSN_BE), FULL (be) FAST (be) },
345 { TYPE (INSN_BGE), IDX (INSN_BGE), FULL (bge) FAST (bge) },
346 { TYPE (INSN_BL), IDX (INSN_BL), FULL (bl) FAST (bl) },
347 { TYPE (INSN_BNE), IDX (INSN_BNE), FULL (bne) FAST (bne) },
348 { TYPE (INSN_BLE), IDX (INSN_BLE), FULL (ble) FAST (ble) },
349 { TYPE (INSN_BO), IDX (INSN_BO), FULL (bo) FAST (bo) },
350 { TYPE (INSN_B), IDX (INSN_B), FULL (b) FAST (b) },
351 { TYPE (INSN_BX_INDIRECT_OFFSET), IDX (INSN_BX_INDIRECT_OFFSET), FULL (bx_indirect_offset) FAST (bx_indirect_offset) },
352 { TYPE (INSN_BX_INDIRECT), IDX (INSN_BX_INDIRECT), FULL (bx_indirect) FAST (bx_indirect) },
353 { TYPE (INSN_BX_INDIRECT_INDEX), IDX (INSN_BX_INDIRECT_INDEX), FULL (bx_indirect_index) FAST (bx_indirect_index) },
354 { TYPE (INSN_BX_DISP), IDX (INSN_BX_DISP), FULL (bx_disp) FAST (bx_disp) },
355 { TYPE (INSN_BX_INDIRECT_DISP), IDX (INSN_BX_INDIRECT_DISP), FULL (bx_indirect_disp) FAST (bx_indirect_disp) },
356 { TYPE (INSN_CALLX_DISP), IDX (INSN_CALLX_DISP), FULL (callx_disp) FAST (callx_disp) },
357 { TYPE (INSN_CALLX_INDIRECT), IDX (INSN_CALLX_INDIRECT), FULL (callx_indirect) FAST (callx_indirect) },
358 { TYPE (INSN_CALLX_INDIRECT_OFFSET), IDX (INSN_CALLX_INDIRECT_OFFSET), FULL (callx_indirect_offset) FAST (callx_indirect_offset) },
359 { TYPE (INSN_RET), IDX (INSN_RET), FULL (ret) FAST (ret) },
360 { TYPE (INSN_CALLS), IDX (INSN_CALLS), FULL (calls) FAST (calls) },
361 { TYPE (INSN_FMARK), IDX (INSN_FMARK), FULL (fmark) FAST (fmark) },
362 { TYPE (INSN_FLUSHREG), IDX (INSN_FLUSHREG), FULL (flushreg) FAST (flushreg) },
363 };
364
365 static const struct insn_sem i960base_insn_sem_invalid =
366 {
367 VIRTUAL_INSN_X_INVALID, IDX (INSN_X_INVALID), FULL (x_invalid) FAST (x_invalid)
368 };
369
370 #undef FMT
371 #undef FULL
372 #undef FAST
373 #undef IDX
374 #undef TYPE
375
376 /* Initialize an IDESC from the compile-time computable parts. */
377
378 static INLINE void
379 init_idesc (SIM_CPU *cpu, IDESC *id, const struct insn_sem *t)
380 {
381 const CGEN_INSN *insn_table = CGEN_CPU_INSN_TABLE (CPU_CPU_DESC (cpu))->init_entries;
382
383 id->num = t->index;
384 if ((int) t->type <= 0)
385 id->idata = & cgen_virtual_insn_table[- (int) t->type];
386 else
387 id->idata = & insn_table[t->type];
388 id->attrs = CGEN_INSN_ATTRS (id->idata);
389 /* Oh my god, a magic number. */
390 id->length = CGEN_INSN_BITSIZE (id->idata) / 8;
391 #if ! WITH_SEM_SWITCH_FULL
392 id->sem_full = t->sem_full;
393 #endif
394 #if WITH_FAST && ! WITH_SEM_SWITCH_FAST
395 id->sem_fast = t->sem_fast;
396 #endif
397 #if WITH_PROFILE_MODEL_P
398 id->timing = & MODEL_TIMING (CPU_MODEL (cpu)) [t->index];
399 {
400 SIM_DESC sd = CPU_STATE (cpu);
401 SIM_ASSERT (t->index == id->timing->num);
402 }
403 #endif
404 }
405
406 /* Initialize the instruction descriptor table. */
407
408 void
409 i960base_init_idesc_table (SIM_CPU *cpu)
410 {
411 IDESC *id,*tabend;
412 const struct insn_sem *t,*tend;
413 int tabsize = I960BASE_INSN_MAX;
414 IDESC *table = i960base_insn_data;
415
416 memset (table, 0, tabsize * sizeof (IDESC));
417
418 /* First set all entries to the `invalid insn'. */
419 t = & i960base_insn_sem_invalid;
420 for (id = table, tabend = table + tabsize; id < tabend; ++id)
421 init_idesc (cpu, id, t);
422
423 /* Now fill in the values for the chosen cpu. */
424 for (t = i960base_insn_sem, tend = t + sizeof (i960base_insn_sem) / sizeof (*t);
425 t != tend; ++t)
426 {
427 init_idesc (cpu, & table[t->index], t);
428 }
429
430 /* Link the IDESC table into the cpu. */
431 CPU_IDESC (cpu) = table;
432 }
433
434 /* Given an instruction, return a pointer to its IDESC entry. */
435
436 const IDESC *
437 i960base_decode (SIM_CPU *current_cpu, IADDR pc,
438 CGEN_INSN_INT base_insn,
439 ARGBUF *abuf)
440 {
441 /* Result of decoder. */
442 I960BASE_INSN_TYPE itype;
443
444 {
445 CGEN_INSN_INT insn = base_insn;
446
447 {
448 unsigned int val = (((insn >> 24) & (255 << 0)));
449 switch (val)
450 {
451 case 8 : itype = I960BASE_INSN_B; goto extract_fmt_b;
452 case 10 : itype = I960BASE_INSN_RET; goto extract_fmt_ret;
453 case 16 : itype = I960BASE_INSN_BNO; goto extract_fmt_bno;
454 case 17 : itype = I960BASE_INSN_BG; goto extract_fmt_bno;
455 case 18 : itype = I960BASE_INSN_BE; goto extract_fmt_bno;
456 case 19 : itype = I960BASE_INSN_BGE; goto extract_fmt_bno;
457 case 20 : itype = I960BASE_INSN_BL; goto extract_fmt_bno;
458 case 21 : itype = I960BASE_INSN_BNE; goto extract_fmt_bno;
459 case 22 : itype = I960BASE_INSN_BLE; goto extract_fmt_bno;
460 case 23 : itype = I960BASE_INSN_BO; goto extract_fmt_bno;
461 case 32 : itype = I960BASE_INSN_TESTNO_REG; goto extract_fmt_testno_reg;
462 case 33 : itype = I960BASE_INSN_TESTG_REG; goto extract_fmt_testno_reg;
463 case 34 : itype = I960BASE_INSN_TESTE_REG; goto extract_fmt_testno_reg;
464 case 35 : itype = I960BASE_INSN_TESTGE_REG; goto extract_fmt_testno_reg;
465 case 36 : itype = I960BASE_INSN_TESTL_REG; goto extract_fmt_testno_reg;
466 case 37 : itype = I960BASE_INSN_TESTNE_REG; goto extract_fmt_testno_reg;
467 case 38 : itype = I960BASE_INSN_TESTLE_REG; goto extract_fmt_testno_reg;
468 case 39 : itype = I960BASE_INSN_TESTO_REG; goto extract_fmt_testno_reg;
469 case 48 :
470 {
471 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
472 switch (val)
473 {
474 case 0 : itype = I960BASE_INSN_BBC_REG; goto extract_fmt_bbc_reg;
475 case 4 : itype = I960BASE_INSN_BBC_LIT; goto extract_fmt_bbc_lit;
476 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
477 }
478 }
479 case 49 :
480 {
481 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
482 switch (val)
483 {
484 case 0 : itype = I960BASE_INSN_CMPOBG_REG; goto extract_fmt_cmpobl_reg;
485 case 4 : itype = I960BASE_INSN_CMPOBG_LIT; goto extract_fmt_cmpobl_lit;
486 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
487 }
488 }
489 case 50 :
490 {
491 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
492 switch (val)
493 {
494 case 0 : itype = I960BASE_INSN_CMPOBE_REG; goto extract_fmt_cmpobe_reg;
495 case 4 : itype = I960BASE_INSN_CMPOBE_LIT; goto extract_fmt_cmpobe_lit;
496 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
497 }
498 }
499 case 51 :
500 {
501 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
502 switch (val)
503 {
504 case 0 : itype = I960BASE_INSN_CMPOBGE_REG; goto extract_fmt_cmpobl_reg;
505 case 4 : itype = I960BASE_INSN_CMPOBGE_LIT; goto extract_fmt_cmpobl_lit;
506 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
507 }
508 }
509 case 52 :
510 {
511 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
512 switch (val)
513 {
514 case 0 : itype = I960BASE_INSN_CMPOBL_REG; goto extract_fmt_cmpobl_reg;
515 case 4 : itype = I960BASE_INSN_CMPOBL_LIT; goto extract_fmt_cmpobl_lit;
516 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
517 }
518 }
519 case 53 :
520 {
521 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
522 switch (val)
523 {
524 case 0 : itype = I960BASE_INSN_CMPOBNE_REG; goto extract_fmt_cmpobe_reg;
525 case 4 : itype = I960BASE_INSN_CMPOBNE_LIT; goto extract_fmt_cmpobe_lit;
526 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
527 }
528 }
529 case 54 :
530 {
531 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
532 switch (val)
533 {
534 case 0 : itype = I960BASE_INSN_CMPOBLE_REG; goto extract_fmt_cmpobl_reg;
535 case 4 : itype = I960BASE_INSN_CMPOBLE_LIT; goto extract_fmt_cmpobl_lit;
536 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
537 }
538 }
539 case 55 :
540 {
541 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
542 switch (val)
543 {
544 case 0 : itype = I960BASE_INSN_BBS_REG; goto extract_fmt_bbc_reg;
545 case 4 : itype = I960BASE_INSN_BBS_LIT; goto extract_fmt_bbc_lit;
546 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
547 }
548 }
549 case 57 :
550 {
551 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
552 switch (val)
553 {
554 case 0 : itype = I960BASE_INSN_CMPIBG_REG; goto extract_fmt_cmpobe_reg;
555 case 4 : itype = I960BASE_INSN_CMPIBG_LIT; goto extract_fmt_cmpobe_lit;
556 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
557 }
558 }
559 case 58 :
560 {
561 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
562 switch (val)
563 {
564 case 0 : itype = I960BASE_INSN_CMPIBE_REG; goto extract_fmt_cmpobe_reg;
565 case 4 : itype = I960BASE_INSN_CMPIBE_LIT; goto extract_fmt_cmpobe_lit;
566 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
567 }
568 }
569 case 59 :
570 {
571 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
572 switch (val)
573 {
574 case 0 : itype = I960BASE_INSN_CMPIBGE_REG; goto extract_fmt_cmpobe_reg;
575 case 4 : itype = I960BASE_INSN_CMPIBGE_LIT; goto extract_fmt_cmpobe_lit;
576 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
577 }
578 }
579 case 60 :
580 {
581 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
582 switch (val)
583 {
584 case 0 : itype = I960BASE_INSN_CMPIBL_REG; goto extract_fmt_cmpobe_reg;
585 case 4 : itype = I960BASE_INSN_CMPIBL_LIT; goto extract_fmt_cmpobe_lit;
586 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
587 }
588 }
589 case 61 :
590 {
591 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
592 switch (val)
593 {
594 case 0 : itype = I960BASE_INSN_CMPIBNE_REG; goto extract_fmt_cmpobe_reg;
595 case 4 : itype = I960BASE_INSN_CMPIBNE_LIT; goto extract_fmt_cmpobe_lit;
596 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
597 }
598 }
599 case 62 :
600 {
601 unsigned int val = (((insn >> 11) & (1 << 2)) | ((insn >> 0) & (3 << 0)));
602 switch (val)
603 {
604 case 0 : itype = I960BASE_INSN_CMPIBLE_REG; goto extract_fmt_cmpobe_reg;
605 case 4 : itype = I960BASE_INSN_CMPIBLE_LIT; goto extract_fmt_cmpobe_lit;
606 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
607 }
608 }
609 case 88 :
610 {
611 unsigned int val = (((insn >> 10) & (15 << 0)));
612 switch (val)
613 {
614 case 0 :
615 {
616 unsigned int val = (((insn >> 6) & (15 << 0)));
617 switch (val)
618 {
619 case 0 : itype = I960BASE_INSN_NOTBIT; goto extract_fmt_notbit;
620 case 2 : itype = I960BASE_INSN_AND; goto extract_fmt_mulo;
621 case 4 : itype = I960BASE_INSN_ANDNOT; goto extract_fmt_mulo;
622 case 6 : itype = I960BASE_INSN_SETBIT; goto extract_fmt_notbit;
623 case 8 : itype = I960BASE_INSN_NOTAND; goto extract_fmt_mulo;
624 case 12 : itype = I960BASE_INSN_XOR; goto extract_fmt_mulo;
625 case 14 : itype = I960BASE_INSN_OR; goto extract_fmt_mulo;
626 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
627 }
628 }
629 case 1 :
630 {
631 unsigned int val = (((insn >> 6) & (15 << 0)));
632 switch (val)
633 {
634 case 0 : itype = I960BASE_INSN_NOR; goto extract_fmt_mulo;
635 case 2 : itype = I960BASE_INSN_XNOR; goto extract_fmt_mulo;
636 case 4 : itype = I960BASE_INSN_NOT; goto extract_fmt_not;
637 case 6 : itype = I960BASE_INSN_ORNOT; goto extract_fmt_mulo;
638 case 8 : itype = I960BASE_INSN_CLRBIT; goto extract_fmt_notbit;
639 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
640 }
641 }
642 case 2 :
643 {
644 unsigned int val = (((insn >> 6) & (15 << 0)));
645 switch (val)
646 {
647 case 0 : itype = I960BASE_INSN_NOTBIT1; goto extract_fmt_notbit1;
648 case 2 : itype = I960BASE_INSN_AND1; goto extract_fmt_mulo1;
649 case 4 : itype = I960BASE_INSN_ANDNOT1; goto extract_fmt_mulo1;
650 case 6 : itype = I960BASE_INSN_SETBIT1; goto extract_fmt_notbit1;
651 case 8 : itype = I960BASE_INSN_NOTAND1; goto extract_fmt_mulo1;
652 case 12 : itype = I960BASE_INSN_XOR1; goto extract_fmt_mulo1;
653 case 14 : itype = I960BASE_INSN_OR1; goto extract_fmt_mulo1;
654 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
655 }
656 }
657 case 3 :
658 {
659 unsigned int val = (((insn >> 6) & (15 << 0)));
660 switch (val)
661 {
662 case 0 : itype = I960BASE_INSN_NOR1; goto extract_fmt_mulo1;
663 case 2 : itype = I960BASE_INSN_XNOR1; goto extract_fmt_mulo1;
664 case 4 : itype = I960BASE_INSN_NOT1; goto extract_fmt_not1;
665 case 6 : itype = I960BASE_INSN_ORNOT1; goto extract_fmt_mulo1;
666 case 8 : itype = I960BASE_INSN_CLRBIT1; goto extract_fmt_notbit1;
667 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
668 }
669 }
670 case 4 :
671 {
672 unsigned int val = (((insn >> 6) & (15 << 0)));
673 switch (val)
674 {
675 case 0 : itype = I960BASE_INSN_NOTBIT2; goto extract_fmt_notbit2;
676 case 2 : itype = I960BASE_INSN_AND2; goto extract_fmt_mulo2;
677 case 4 : itype = I960BASE_INSN_ANDNOT2; goto extract_fmt_mulo2;
678 case 6 : itype = I960BASE_INSN_SETBIT2; goto extract_fmt_notbit2;
679 case 8 : itype = I960BASE_INSN_NOTAND2; goto extract_fmt_mulo2;
680 case 12 : itype = I960BASE_INSN_XOR2; goto extract_fmt_mulo2;
681 case 14 : itype = I960BASE_INSN_OR2; goto extract_fmt_mulo2;
682 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
683 }
684 }
685 case 5 :
686 {
687 unsigned int val = (((insn >> 6) & (15 << 0)));
688 switch (val)
689 {
690 case 0 : itype = I960BASE_INSN_NOR2; goto extract_fmt_mulo2;
691 case 2 : itype = I960BASE_INSN_XNOR2; goto extract_fmt_mulo2;
692 case 4 : itype = I960BASE_INSN_NOT2; goto extract_fmt_not2;
693 case 6 : itype = I960BASE_INSN_ORNOT2; goto extract_fmt_mulo2;
694 case 8 : itype = I960BASE_INSN_CLRBIT2; goto extract_fmt_notbit2;
695 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
696 }
697 }
698 case 6 :
699 {
700 unsigned int val = (((insn >> 6) & (15 << 0)));
701 switch (val)
702 {
703 case 0 : itype = I960BASE_INSN_NOTBIT3; goto extract_fmt_notbit3;
704 case 2 : itype = I960BASE_INSN_AND3; goto extract_fmt_mulo3;
705 case 4 : itype = I960BASE_INSN_ANDNOT3; goto extract_fmt_mulo3;
706 case 6 : itype = I960BASE_INSN_SETBIT3; goto extract_fmt_notbit3;
707 case 8 : itype = I960BASE_INSN_NOTAND3; goto extract_fmt_mulo3;
708 case 12 : itype = I960BASE_INSN_XOR3; goto extract_fmt_mulo3;
709 case 14 : itype = I960BASE_INSN_OR3; goto extract_fmt_mulo3;
710 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
711 }
712 }
713 case 7 :
714 {
715 unsigned int val = (((insn >> 6) & (15 << 0)));
716 switch (val)
717 {
718 case 0 : itype = I960BASE_INSN_NOR3; goto extract_fmt_mulo3;
719 case 2 : itype = I960BASE_INSN_XNOR3; goto extract_fmt_mulo3;
720 case 4 : itype = I960BASE_INSN_NOT3; goto extract_fmt_not3;
721 case 6 : itype = I960BASE_INSN_ORNOT3; goto extract_fmt_mulo3;
722 case 8 : itype = I960BASE_INSN_CLRBIT3; goto extract_fmt_notbit3;
723 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
724 }
725 }
726 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
727 }
728 }
729 case 89 :
730 {
731 unsigned int val = (((insn >> 10) & (15 << 0)));
732 switch (val)
733 {
734 case 0 :
735 {
736 unsigned int val = (((insn >> 6) & (15 << 0)));
737 switch (val)
738 {
739 case 0 : itype = I960BASE_INSN_ADDO; goto extract_fmt_mulo;
740 case 4 : itype = I960BASE_INSN_SUBO; goto extract_fmt_mulo;
741 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
742 }
743 }
744 case 1 :
745 {
746 unsigned int val = (((insn >> 6) & (15 << 0)));
747 switch (val)
748 {
749 case 0 : itype = I960BASE_INSN_SHRO; goto extract_fmt_shlo;
750 case 6 : itype = I960BASE_INSN_SHRI; goto extract_fmt_shlo;
751 case 8 : itype = I960BASE_INSN_SHLO; goto extract_fmt_shlo;
752 case 12 : itype = I960BASE_INSN_SHLI; goto extract_fmt_shlo;
753 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
754 }
755 }
756 case 2 :
757 {
758 unsigned int val = (((insn >> 6) & (15 << 0)));
759 switch (val)
760 {
761 case 0 : itype = I960BASE_INSN_ADDO1; goto extract_fmt_mulo1;
762 case 4 : itype = I960BASE_INSN_SUBO1; goto extract_fmt_mulo1;
763 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
764 }
765 }
766 case 3 :
767 {
768 unsigned int val = (((insn >> 6) & (15 << 0)));
769 switch (val)
770 {
771 case 0 : itype = I960BASE_INSN_SHRO1; goto extract_fmt_shlo1;
772 case 6 : itype = I960BASE_INSN_SHRI1; goto extract_fmt_shlo1;
773 case 8 : itype = I960BASE_INSN_SHLO1; goto extract_fmt_shlo1;
774 case 12 : itype = I960BASE_INSN_SHLI1; goto extract_fmt_shlo1;
775 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
776 }
777 }
778 case 4 :
779 {
780 unsigned int val = (((insn >> 6) & (15 << 0)));
781 switch (val)
782 {
783 case 0 : itype = I960BASE_INSN_ADDO2; goto extract_fmt_mulo2;
784 case 4 : itype = I960BASE_INSN_SUBO2; goto extract_fmt_mulo2;
785 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
786 }
787 }
788 case 5 :
789 {
790 unsigned int val = (((insn >> 6) & (15 << 0)));
791 switch (val)
792 {
793 case 0 : itype = I960BASE_INSN_SHRO2; goto extract_fmt_shlo2;
794 case 6 : itype = I960BASE_INSN_SHRI2; goto extract_fmt_shlo2;
795 case 8 : itype = I960BASE_INSN_SHLO2; goto extract_fmt_shlo2;
796 case 12 : itype = I960BASE_INSN_SHLI2; goto extract_fmt_shlo2;
797 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
798 }
799 }
800 case 6 :
801 {
802 unsigned int val = (((insn >> 6) & (15 << 0)));
803 switch (val)
804 {
805 case 0 : itype = I960BASE_INSN_ADDO3; goto extract_fmt_mulo3;
806 case 4 : itype = I960BASE_INSN_SUBO3; goto extract_fmt_mulo3;
807 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
808 }
809 }
810 case 7 :
811 {
812 unsigned int val = (((insn >> 6) & (15 << 0)));
813 switch (val)
814 {
815 case 0 : itype = I960BASE_INSN_SHRO3; goto extract_fmt_shlo3;
816 case 6 : itype = I960BASE_INSN_SHRI3; goto extract_fmt_shlo3;
817 case 8 : itype = I960BASE_INSN_SHLO3; goto extract_fmt_shlo3;
818 case 12 : itype = I960BASE_INSN_SHLI3; goto extract_fmt_shlo3;
819 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
820 }
821 }
822 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
823 }
824 }
825 case 90 :
826 {
827 unsigned int val = (((insn >> 10) & (15 << 0)));
828 switch (val)
829 {
830 case 8 :
831 {
832 unsigned int val = (((insn >> 6) & (15 << 0)));
833 switch (val)
834 {
835 case 0 : itype = I960BASE_INSN_CMPO; goto extract_fmt_cmpo;
836 case 2 : itype = I960BASE_INSN_CMPI; goto extract_fmt_cmpi;
837 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
838 }
839 }
840 case 10 :
841 {
842 unsigned int val = (((insn >> 6) & (15 << 0)));
843 switch (val)
844 {
845 case 0 : itype = I960BASE_INSN_CMPO1; goto extract_fmt_cmpo1;
846 case 2 : itype = I960BASE_INSN_CMPI1; goto extract_fmt_cmpi1;
847 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
848 }
849 }
850 case 12 :
851 {
852 unsigned int val = (((insn >> 6) & (15 << 0)));
853 switch (val)
854 {
855 case 0 : itype = I960BASE_INSN_CMPO2; goto extract_fmt_cmpo2;
856 case 2 : itype = I960BASE_INSN_CMPI2; goto extract_fmt_cmpi2;
857 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
858 }
859 }
860 case 14 :
861 {
862 unsigned int val = (((insn >> 6) & (15 << 0)));
863 switch (val)
864 {
865 case 0 : itype = I960BASE_INSN_CMPO3; goto extract_fmt_cmpo3;
866 case 2 : itype = I960BASE_INSN_CMPI3; goto extract_fmt_cmpi3;
867 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
868 }
869 }
870 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
871 }
872 }
873 case 92 :
874 {
875 unsigned int val = (((insn >> 10) & (15 << 0)));
876 switch (val)
877 {
878 case 5 : itype = I960BASE_INSN_MOV; goto extract_fmt_not2;
879 case 7 : itype = I960BASE_INSN_MOV1; goto extract_fmt_not3;
880 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
881 }
882 }
883 case 93 :
884 {
885 unsigned int val = (((insn >> 10) & (15 << 0)));
886 switch (val)
887 {
888 case 5 : itype = I960BASE_INSN_MOVL; goto extract_fmt_movl;
889 case 7 : itype = I960BASE_INSN_MOVL1; goto extract_fmt_movl1;
890 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
891 }
892 }
893 case 94 :
894 {
895 unsigned int val = (((insn >> 10) & (15 << 0)));
896 switch (val)
897 {
898 case 5 : itype = I960BASE_INSN_MOVT; goto extract_fmt_movt;
899 case 7 : itype = I960BASE_INSN_MOVT1; goto extract_fmt_movt1;
900 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
901 }
902 }
903 case 95 :
904 {
905 unsigned int val = (((insn >> 10) & (15 << 0)));
906 switch (val)
907 {
908 case 5 : itype = I960BASE_INSN_MOVQ; goto extract_fmt_movq;
909 case 7 : itype = I960BASE_INSN_MOVQ1; goto extract_fmt_movq1;
910 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
911 }
912 }
913 case 100 : itype = I960BASE_INSN_MODAC; goto extract_fmt_modpc;
914 case 101 : itype = I960BASE_INSN_MODPC; goto extract_fmt_modpc;
915 case 102 :
916 {
917 unsigned int val = (((insn >> 10) & (15 << 0)));
918 switch (val)
919 {
920 case 12 : itype = I960BASE_INSN_CALLS; goto extract_fmt_calls;
921 case 15 :
922 {
923 unsigned int val = (((insn >> 6) & (15 << 0)));
924 switch (val)
925 {
926 case 8 : itype = I960BASE_INSN_FMARK; goto extract_fmt_fmark;
927 case 10 : itype = I960BASE_INSN_FLUSHREG; goto extract_fmt_flushreg;
928 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
929 }
930 }
931 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
932 }
933 }
934 case 103 :
935 {
936 unsigned int val = (((insn >> 10) & (15 << 0)));
937 switch (val)
938 {
939 case 0 : itype = I960BASE_INSN_EMUL; goto extract_fmt_emul;
940 case 2 : itype = I960BASE_INSN_EMUL1; goto extract_fmt_emul1;
941 case 4 : itype = I960BASE_INSN_EMUL2; goto extract_fmt_emul2;
942 case 6 : itype = I960BASE_INSN_EMUL3; goto extract_fmt_emul3;
943 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
944 }
945 }
946 case 112 :
947 {
948 unsigned int val = (((insn >> 10) & (15 << 0)));
949 switch (val)
950 {
951 case 0 : itype = I960BASE_INSN_MULO; goto extract_fmt_mulo;
952 case 1 :
953 {
954 unsigned int val = (((insn >> 6) & (15 << 0)));
955 switch (val)
956 {
957 case 0 : itype = I960BASE_INSN_REMO; goto extract_fmt_mulo;
958 case 6 : itype = I960BASE_INSN_DIVO; goto extract_fmt_mulo;
959 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
960 }
961 }
962 case 2 : itype = I960BASE_INSN_MULO1; goto extract_fmt_mulo1;
963 case 3 :
964 {
965 unsigned int val = (((insn >> 6) & (15 << 0)));
966 switch (val)
967 {
968 case 0 : itype = I960BASE_INSN_REMO1; goto extract_fmt_mulo1;
969 case 6 : itype = I960BASE_INSN_DIVO1; goto extract_fmt_mulo1;
970 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
971 }
972 }
973 case 4 : itype = I960BASE_INSN_MULO2; goto extract_fmt_mulo2;
974 case 5 :
975 {
976 unsigned int val = (((insn >> 6) & (15 << 0)));
977 switch (val)
978 {
979 case 0 : itype = I960BASE_INSN_REMO2; goto extract_fmt_mulo2;
980 case 6 : itype = I960BASE_INSN_DIVO2; goto extract_fmt_mulo2;
981 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
982 }
983 }
984 case 6 : itype = I960BASE_INSN_MULO3; goto extract_fmt_mulo3;
985 case 7 :
986 {
987 unsigned int val = (((insn >> 6) & (15 << 0)));
988 switch (val)
989 {
990 case 0 : itype = I960BASE_INSN_REMO3; goto extract_fmt_mulo3;
991 case 6 : itype = I960BASE_INSN_DIVO3; goto extract_fmt_mulo3;
992 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
993 }
994 }
995 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
996 }
997 }
998 case 116 :
999 {
1000 unsigned int val = (((insn >> 10) & (15 << 0)));
1001 switch (val)
1002 {
1003 case 1 :
1004 {
1005 unsigned int val = (((insn >> 6) & (15 << 0)));
1006 switch (val)
1007 {
1008 case 0 : itype = I960BASE_INSN_REMI; goto extract_fmt_mulo;
1009 case 6 : itype = I960BASE_INSN_DIVI; goto extract_fmt_mulo;
1010 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1011 }
1012 }
1013 case 3 :
1014 {
1015 unsigned int val = (((insn >> 6) & (15 << 0)));
1016 switch (val)
1017 {
1018 case 0 : itype = I960BASE_INSN_REMI1; goto extract_fmt_mulo1;
1019 case 6 : itype = I960BASE_INSN_DIVI1; goto extract_fmt_mulo1;
1020 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1021 }
1022 }
1023 case 5 :
1024 {
1025 unsigned int val = (((insn >> 6) & (15 << 0)));
1026 switch (val)
1027 {
1028 case 0 : itype = I960BASE_INSN_REMI2; goto extract_fmt_mulo2;
1029 case 6 : itype = I960BASE_INSN_DIVI2; goto extract_fmt_mulo2;
1030 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1031 }
1032 }
1033 case 7 :
1034 {
1035 unsigned int val = (((insn >> 6) & (15 << 0)));
1036 switch (val)
1037 {
1038 case 0 : itype = I960BASE_INSN_REMI3; goto extract_fmt_mulo3;
1039 case 6 : itype = I960BASE_INSN_DIVI3; goto extract_fmt_mulo3;
1040 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1041 }
1042 }
1043 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1044 }
1045 }
1046 case 128 :
1047 {
1048 unsigned int val = (((insn >> 10) & (15 << 0)));
1049 switch (val)
1050 {
1051 case 0 : /* fall through */
1052 case 1 : /* fall through */
1053 case 2 : /* fall through */
1054 case 3 : itype = I960BASE_INSN_LDOB_OFFSET; goto extract_fmt_ldob_offset;
1055 case 4 : itype = I960BASE_INSN_LDOB_INDIRECT; goto extract_fmt_ldob_indirect;
1056 case 7 : itype = I960BASE_INSN_LDOB_INDIRECT_INDEX; goto extract_fmt_ldob_indirect_index;
1057 case 8 : /* fall through */
1058 case 9 : /* fall through */
1059 case 10 : /* fall through */
1060 case 11 : itype = I960BASE_INSN_LDOB_INDIRECT_OFFSET; goto extract_fmt_ldob_indirect_offset;
1061 case 12 : itype = I960BASE_INSN_LDOB_DISP; goto extract_fmt_ldob_disp;
1062 case 13 : itype = I960BASE_INSN_LDOB_INDIRECT_DISP; goto extract_fmt_ldob_indirect_disp;
1063 case 14 : itype = I960BASE_INSN_LDOB_INDEX_DISP; goto extract_fmt_ldob_index_disp;
1064 case 15 : itype = I960BASE_INSN_LDOB_INDIRECT_INDEX_DISP; goto extract_fmt_ldob_indirect_index_disp;
1065 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1066 }
1067 }
1068 case 130 :
1069 {
1070 unsigned int val = (((insn >> 10) & (15 << 0)));
1071 switch (val)
1072 {
1073 case 0 : /* fall through */
1074 case 1 : /* fall through */
1075 case 2 : /* fall through */
1076 case 3 : itype = I960BASE_INSN_STOB_OFFSET; goto extract_fmt_stob_offset;
1077 case 4 : itype = I960BASE_INSN_STOB_INDIRECT; goto extract_fmt_stob_indirect;
1078 case 7 : itype = I960BASE_INSN_STOB_INDIRECT_INDEX; goto extract_fmt_stob_indirect_index;
1079 case 8 : /* fall through */
1080 case 9 : /* fall through */
1081 case 10 : /* fall through */
1082 case 11 : itype = I960BASE_INSN_STOB_INDIRECT_OFFSET; goto extract_fmt_stob_indirect_offset;
1083 case 12 : itype = I960BASE_INSN_STOB_DISP; goto extract_fmt_stob_disp;
1084 case 13 : itype = I960BASE_INSN_STOB_INDIRECT_DISP; goto extract_fmt_stob_indirect_disp;
1085 case 14 : itype = I960BASE_INSN_STOB_INDEX_DISP; goto extract_fmt_stob_index_disp;
1086 case 15 : itype = I960BASE_INSN_STOB_INDIRECT_INDEX_DISP; goto extract_fmt_stob_indirect_index_disp;
1087 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1088 }
1089 }
1090 case 132 :
1091 {
1092 unsigned int val = (((insn >> 10) & (15 << 0)));
1093 switch (val)
1094 {
1095 case 4 : itype = I960BASE_INSN_BX_INDIRECT; goto extract_fmt_bx_indirect;
1096 case 7 : itype = I960BASE_INSN_BX_INDIRECT_INDEX; goto extract_fmt_bx_indirect_index;
1097 case 8 : /* fall through */
1098 case 9 : /* fall through */
1099 case 10 : /* fall through */
1100 case 11 : itype = I960BASE_INSN_BX_INDIRECT_OFFSET; goto extract_fmt_bx_indirect_offset;
1101 case 12 : itype = I960BASE_INSN_BX_DISP; goto extract_fmt_bx_disp;
1102 case 13 : itype = I960BASE_INSN_BX_INDIRECT_DISP; goto extract_fmt_bx_indirect_disp;
1103 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1104 }
1105 }
1106 case 134 :
1107 {
1108 unsigned int val = (((insn >> 10) & (15 << 0)));
1109 switch (val)
1110 {
1111 case 4 : itype = I960BASE_INSN_CALLX_INDIRECT; goto extract_fmt_callx_indirect;
1112 case 8 : /* fall through */
1113 case 9 : /* fall through */
1114 case 10 : /* fall through */
1115 case 11 : itype = I960BASE_INSN_CALLX_INDIRECT_OFFSET; goto extract_fmt_callx_indirect_offset;
1116 case 12 : itype = I960BASE_INSN_CALLX_DISP; goto extract_fmt_callx_disp;
1117 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1118 }
1119 }
1120 case 136 :
1121 {
1122 unsigned int val = (((insn >> 10) & (15 << 0)));
1123 switch (val)
1124 {
1125 case 0 : /* fall through */
1126 case 1 : /* fall through */
1127 case 2 : /* fall through */
1128 case 3 : itype = I960BASE_INSN_LDOS_OFFSET; goto extract_fmt_ldos_offset;
1129 case 4 : itype = I960BASE_INSN_LDOS_INDIRECT; goto extract_fmt_ldos_indirect;
1130 case 7 : itype = I960BASE_INSN_LDOS_INDIRECT_INDEX; goto extract_fmt_ldos_indirect_index;
1131 case 8 : /* fall through */
1132 case 9 : /* fall through */
1133 case 10 : /* fall through */
1134 case 11 : itype = I960BASE_INSN_LDOS_INDIRECT_OFFSET; goto extract_fmt_ldos_indirect_offset;
1135 case 12 : itype = I960BASE_INSN_LDOS_DISP; goto extract_fmt_ldos_disp;
1136 case 13 : itype = I960BASE_INSN_LDOS_INDIRECT_DISP; goto extract_fmt_ldos_indirect_disp;
1137 case 14 : itype = I960BASE_INSN_LDOS_INDEX_DISP; goto extract_fmt_ldos_index_disp;
1138 case 15 : itype = I960BASE_INSN_LDOS_INDIRECT_INDEX_DISP; goto extract_fmt_ldos_indirect_index_disp;
1139 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1140 }
1141 }
1142 case 138 :
1143 {
1144 unsigned int val = (((insn >> 10) & (15 << 0)));
1145 switch (val)
1146 {
1147 case 0 : /* fall through */
1148 case 1 : /* fall through */
1149 case 2 : /* fall through */
1150 case 3 : itype = I960BASE_INSN_STOS_OFFSET; goto extract_fmt_stos_offset;
1151 case 4 : itype = I960BASE_INSN_STOS_INDIRECT; goto extract_fmt_stos_indirect;
1152 case 7 : itype = I960BASE_INSN_STOS_INDIRECT_INDEX; goto extract_fmt_stos_indirect_index;
1153 case 8 : /* fall through */
1154 case 9 : /* fall through */
1155 case 10 : /* fall through */
1156 case 11 : itype = I960BASE_INSN_STOS_INDIRECT_OFFSET; goto extract_fmt_stos_indirect_offset;
1157 case 12 : itype = I960BASE_INSN_STOS_DISP; goto extract_fmt_stos_disp;
1158 case 13 : itype = I960BASE_INSN_STOS_INDIRECT_DISP; goto extract_fmt_stos_indirect_disp;
1159 case 14 : itype = I960BASE_INSN_STOS_INDEX_DISP; goto extract_fmt_stos_index_disp;
1160 case 15 : itype = I960BASE_INSN_STOS_INDIRECT_INDEX_DISP; goto extract_fmt_stos_indirect_index_disp;
1161 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1162 }
1163 }
1164 case 140 :
1165 {
1166 unsigned int val = (((insn >> 10) & (15 << 0)));
1167 switch (val)
1168 {
1169 case 0 : /* fall through */
1170 case 1 : /* fall through */
1171 case 2 : /* fall through */
1172 case 3 : itype = I960BASE_INSN_LDA_OFFSET; goto extract_fmt_lda_offset;
1173 case 4 : itype = I960BASE_INSN_LDA_INDIRECT; goto extract_fmt_lda_indirect;
1174 case 7 : itype = I960BASE_INSN_LDA_INDIRECT_INDEX; goto extract_fmt_lda_indirect_index;
1175 case 8 : /* fall through */
1176 case 9 : /* fall through */
1177 case 10 : /* fall through */
1178 case 11 : itype = I960BASE_INSN_LDA_INDIRECT_OFFSET; goto extract_fmt_lda_indirect_offset;
1179 case 12 : itype = I960BASE_INSN_LDA_DISP; goto extract_fmt_lda_disp;
1180 case 13 : itype = I960BASE_INSN_LDA_INDIRECT_DISP; goto extract_fmt_lda_indirect_disp;
1181 case 14 : itype = I960BASE_INSN_LDA_INDEX_DISP; goto extract_fmt_lda_index_disp;
1182 case 15 : itype = I960BASE_INSN_LDA_INDIRECT_INDEX_DISP; goto extract_fmt_lda_indirect_index_disp;
1183 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1184 }
1185 }
1186 case 144 :
1187 {
1188 unsigned int val = (((insn >> 10) & (15 << 0)));
1189 switch (val)
1190 {
1191 case 0 : /* fall through */
1192 case 1 : /* fall through */
1193 case 2 : /* fall through */
1194 case 3 : itype = I960BASE_INSN_LD_OFFSET; goto extract_fmt_ld_offset;
1195 case 4 : itype = I960BASE_INSN_LD_INDIRECT; goto extract_fmt_ld_indirect;
1196 case 7 : itype = I960BASE_INSN_LD_INDIRECT_INDEX; goto extract_fmt_ld_indirect_index;
1197 case 8 : /* fall through */
1198 case 9 : /* fall through */
1199 case 10 : /* fall through */
1200 case 11 : itype = I960BASE_INSN_LD_INDIRECT_OFFSET; goto extract_fmt_ld_indirect_offset;
1201 case 12 : itype = I960BASE_INSN_LD_DISP; goto extract_fmt_ld_disp;
1202 case 13 : itype = I960BASE_INSN_LD_INDIRECT_DISP; goto extract_fmt_ld_indirect_disp;
1203 case 14 : itype = I960BASE_INSN_LD_INDEX_DISP; goto extract_fmt_ld_index_disp;
1204 case 15 : itype = I960BASE_INSN_LD_INDIRECT_INDEX_DISP; goto extract_fmt_ld_indirect_index_disp;
1205 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1206 }
1207 }
1208 case 146 :
1209 {
1210 unsigned int val = (((insn >> 10) & (15 << 0)));
1211 switch (val)
1212 {
1213 case 0 : /* fall through */
1214 case 1 : /* fall through */
1215 case 2 : /* fall through */
1216 case 3 : itype = I960BASE_INSN_ST_OFFSET; goto extract_fmt_st_offset;
1217 case 4 : itype = I960BASE_INSN_ST_INDIRECT; goto extract_fmt_st_indirect;
1218 case 7 : itype = I960BASE_INSN_ST_INDIRECT_INDEX; goto extract_fmt_st_indirect_index;
1219 case 8 : /* fall through */
1220 case 9 : /* fall through */
1221 case 10 : /* fall through */
1222 case 11 : itype = I960BASE_INSN_ST_INDIRECT_OFFSET; goto extract_fmt_st_indirect_offset;
1223 case 12 : itype = I960BASE_INSN_ST_DISP; goto extract_fmt_st_disp;
1224 case 13 : itype = I960BASE_INSN_ST_INDIRECT_DISP; goto extract_fmt_st_indirect_disp;
1225 case 14 : itype = I960BASE_INSN_ST_INDEX_DISP; goto extract_fmt_st_index_disp;
1226 case 15 : itype = I960BASE_INSN_ST_INDIRECT_INDEX_DISP; goto extract_fmt_st_indirect_index_disp;
1227 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1228 }
1229 }
1230 case 152 :
1231 {
1232 unsigned int val = (((insn >> 10) & (15 << 0)));
1233 switch (val)
1234 {
1235 case 0 : /* fall through */
1236 case 1 : /* fall through */
1237 case 2 : /* fall through */
1238 case 3 : itype = I960BASE_INSN_LDL_OFFSET; goto extract_fmt_ldl_offset;
1239 case 4 : itype = I960BASE_INSN_LDL_INDIRECT; goto extract_fmt_ldl_indirect;
1240 case 7 : itype = I960BASE_INSN_LDL_INDIRECT_INDEX; goto extract_fmt_ldl_indirect_index;
1241 case 8 : /* fall through */
1242 case 9 : /* fall through */
1243 case 10 : /* fall through */
1244 case 11 : itype = I960BASE_INSN_LDL_INDIRECT_OFFSET; goto extract_fmt_ldl_indirect_offset;
1245 case 12 : itype = I960BASE_INSN_LDL_DISP; goto extract_fmt_ldl_disp;
1246 case 13 : itype = I960BASE_INSN_LDL_INDIRECT_DISP; goto extract_fmt_ldl_indirect_disp;
1247 case 14 : itype = I960BASE_INSN_LDL_INDEX_DISP; goto extract_fmt_ldl_index_disp;
1248 case 15 : itype = I960BASE_INSN_LDL_INDIRECT_INDEX_DISP; goto extract_fmt_ldl_indirect_index_disp;
1249 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1250 }
1251 }
1252 case 154 :
1253 {
1254 unsigned int val = (((insn >> 10) & (15 << 0)));
1255 switch (val)
1256 {
1257 case 0 : /* fall through */
1258 case 1 : /* fall through */
1259 case 2 : /* fall through */
1260 case 3 : itype = I960BASE_INSN_STL_OFFSET; goto extract_fmt_stl_offset;
1261 case 4 : itype = I960BASE_INSN_STL_INDIRECT; goto extract_fmt_stl_indirect;
1262 case 7 : itype = I960BASE_INSN_STL_INDIRECT_INDEX; goto extract_fmt_stl_indirect_index;
1263 case 8 : /* fall through */
1264 case 9 : /* fall through */
1265 case 10 : /* fall through */
1266 case 11 : itype = I960BASE_INSN_STL_INDIRECT_OFFSET; goto extract_fmt_stl_indirect_offset;
1267 case 12 : itype = I960BASE_INSN_STL_DISP; goto extract_fmt_stl_disp;
1268 case 13 : itype = I960BASE_INSN_STL_INDIRECT_DISP; goto extract_fmt_stl_indirect_disp;
1269 case 14 : itype = I960BASE_INSN_STL_INDEX_DISP; goto extract_fmt_stl_index_disp;
1270 case 15 : itype = I960BASE_INSN_STL_INDIRECT_INDEX_DISP; goto extract_fmt_stl_indirect_index_disp;
1271 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1272 }
1273 }
1274 case 160 :
1275 {
1276 unsigned int val = (((insn >> 10) & (15 << 0)));
1277 switch (val)
1278 {
1279 case 0 : /* fall through */
1280 case 1 : /* fall through */
1281 case 2 : /* fall through */
1282 case 3 : itype = I960BASE_INSN_LDT_OFFSET; goto extract_fmt_ldt_offset;
1283 case 4 : itype = I960BASE_INSN_LDT_INDIRECT; goto extract_fmt_ldt_indirect;
1284 case 7 : itype = I960BASE_INSN_LDT_INDIRECT_INDEX; goto extract_fmt_ldt_indirect_index;
1285 case 8 : /* fall through */
1286 case 9 : /* fall through */
1287 case 10 : /* fall through */
1288 case 11 : itype = I960BASE_INSN_LDT_INDIRECT_OFFSET; goto extract_fmt_ldt_indirect_offset;
1289 case 12 : itype = I960BASE_INSN_LDT_DISP; goto extract_fmt_ldt_disp;
1290 case 13 : itype = I960BASE_INSN_LDT_INDIRECT_DISP; goto extract_fmt_ldt_indirect_disp;
1291 case 14 : itype = I960BASE_INSN_LDT_INDEX_DISP; goto extract_fmt_ldt_index_disp;
1292 case 15 : itype = I960BASE_INSN_LDT_INDIRECT_INDEX_DISP; goto extract_fmt_ldt_indirect_index_disp;
1293 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1294 }
1295 }
1296 case 162 :
1297 {
1298 unsigned int val = (((insn >> 10) & (15 << 0)));
1299 switch (val)
1300 {
1301 case 0 : /* fall through */
1302 case 1 : /* fall through */
1303 case 2 : /* fall through */
1304 case 3 : itype = I960BASE_INSN_STT_OFFSET; goto extract_fmt_stt_offset;
1305 case 4 : itype = I960BASE_INSN_STT_INDIRECT; goto extract_fmt_stt_indirect;
1306 case 7 : itype = I960BASE_INSN_STT_INDIRECT_INDEX; goto extract_fmt_stt_indirect_index;
1307 case 8 : /* fall through */
1308 case 9 : /* fall through */
1309 case 10 : /* fall through */
1310 case 11 : itype = I960BASE_INSN_STT_INDIRECT_OFFSET; goto extract_fmt_stt_indirect_offset;
1311 case 12 : itype = I960BASE_INSN_STT_DISP; goto extract_fmt_stt_disp;
1312 case 13 : itype = I960BASE_INSN_STT_INDIRECT_DISP; goto extract_fmt_stt_indirect_disp;
1313 case 14 : itype = I960BASE_INSN_STT_INDEX_DISP; goto extract_fmt_stt_index_disp;
1314 case 15 : itype = I960BASE_INSN_STT_INDIRECT_INDEX_DISP; goto extract_fmt_stt_indirect_index_disp;
1315 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1316 }
1317 }
1318 case 176 :
1319 {
1320 unsigned int val = (((insn >> 10) & (15 << 0)));
1321 switch (val)
1322 {
1323 case 0 : /* fall through */
1324 case 1 : /* fall through */
1325 case 2 : /* fall through */
1326 case 3 : itype = I960BASE_INSN_LDQ_OFFSET; goto extract_fmt_ldq_offset;
1327 case 4 : itype = I960BASE_INSN_LDQ_INDIRECT; goto extract_fmt_ldq_indirect;
1328 case 7 : itype = I960BASE_INSN_LDQ_INDIRECT_INDEX; goto extract_fmt_ldq_indirect_index;
1329 case 8 : /* fall through */
1330 case 9 : /* fall through */
1331 case 10 : /* fall through */
1332 case 11 : itype = I960BASE_INSN_LDQ_INDIRECT_OFFSET; goto extract_fmt_ldq_indirect_offset;
1333 case 12 : itype = I960BASE_INSN_LDQ_DISP; goto extract_fmt_ldq_disp;
1334 case 13 : itype = I960BASE_INSN_LDQ_INDIRECT_DISP; goto extract_fmt_ldq_indirect_disp;
1335 case 14 : itype = I960BASE_INSN_LDQ_INDEX_DISP; goto extract_fmt_ldq_index_disp;
1336 case 15 : itype = I960BASE_INSN_LDQ_INDIRECT_INDEX_DISP; goto extract_fmt_ldq_indirect_index_disp;
1337 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1338 }
1339 }
1340 case 178 :
1341 {
1342 unsigned int val = (((insn >> 10) & (15 << 0)));
1343 switch (val)
1344 {
1345 case 0 : /* fall through */
1346 case 1 : /* fall through */
1347 case 2 : /* fall through */
1348 case 3 : itype = I960BASE_INSN_STQ_OFFSET; goto extract_fmt_stq_offset;
1349 case 4 : itype = I960BASE_INSN_STQ_INDIRECT; goto extract_fmt_stq_indirect;
1350 case 7 : itype = I960BASE_INSN_STQ_INDIRECT_INDEX; goto extract_fmt_stq_indirect_index;
1351 case 8 : /* fall through */
1352 case 9 : /* fall through */
1353 case 10 : /* fall through */
1354 case 11 : itype = I960BASE_INSN_STQ_INDIRECT_OFFSET; goto extract_fmt_stq_indirect_offset;
1355 case 12 : itype = I960BASE_INSN_STQ_DISP; goto extract_fmt_stq_disp;
1356 case 13 : itype = I960BASE_INSN_STQ_INDIRECT_DISP; goto extract_fmt_stq_indirect_disp;
1357 case 14 : itype = I960BASE_INSN_STQ_INDEX_DISP; goto extract_fmt_stq_index_disp;
1358 case 15 : itype = I960BASE_INSN_STQ_INDIRECT_INDEX_DISP; goto extract_fmt_stq_indirect_index_disp;
1359 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1360 }
1361 }
1362 case 192 :
1363 {
1364 unsigned int val = (((insn >> 10) & (15 << 0)));
1365 switch (val)
1366 {
1367 case 0 : /* fall through */
1368 case 1 : /* fall through */
1369 case 2 : /* fall through */
1370 case 3 : itype = I960BASE_INSN_LDIB_OFFSET; goto extract_fmt_ldib_offset;
1371 case 4 : itype = I960BASE_INSN_LDIB_INDIRECT; goto extract_fmt_ldib_indirect;
1372 case 7 : itype = I960BASE_INSN_LDIB_INDIRECT_INDEX; goto extract_fmt_ldib_indirect_index;
1373 case 8 : /* fall through */
1374 case 9 : /* fall through */
1375 case 10 : /* fall through */
1376 case 11 : itype = I960BASE_INSN_LDIB_INDIRECT_OFFSET; goto extract_fmt_ldib_indirect_offset;
1377 case 12 : itype = I960BASE_INSN_LDIB_DISP; goto extract_fmt_ldib_disp;
1378 case 13 : itype = I960BASE_INSN_LDIB_INDIRECT_DISP; goto extract_fmt_ldib_indirect_disp;
1379 case 14 : itype = I960BASE_INSN_LDIB_INDEX_DISP; goto extract_fmt_ldib_index_disp;
1380 case 15 : itype = I960BASE_INSN_LDIB_INDIRECT_INDEX_DISP; goto extract_fmt_ldib_indirect_index_disp;
1381 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1382 }
1383 }
1384 case 200 :
1385 {
1386 unsigned int val = (((insn >> 10) & (15 << 0)));
1387 switch (val)
1388 {
1389 case 0 : /* fall through */
1390 case 1 : /* fall through */
1391 case 2 : /* fall through */
1392 case 3 : itype = I960BASE_INSN_LDIS_OFFSET; goto extract_fmt_ldis_offset;
1393 case 4 : itype = I960BASE_INSN_LDIS_INDIRECT; goto extract_fmt_ldis_indirect;
1394 case 7 : itype = I960BASE_INSN_LDIS_INDIRECT_INDEX; goto extract_fmt_ldis_indirect_index;
1395 case 8 : /* fall through */
1396 case 9 : /* fall through */
1397 case 10 : /* fall through */
1398 case 11 : itype = I960BASE_INSN_LDIS_INDIRECT_OFFSET; goto extract_fmt_ldis_indirect_offset;
1399 case 12 : itype = I960BASE_INSN_LDIS_DISP; goto extract_fmt_ldis_disp;
1400 case 13 : itype = I960BASE_INSN_LDIS_INDIRECT_DISP; goto extract_fmt_ldis_indirect_disp;
1401 case 14 : itype = I960BASE_INSN_LDIS_INDEX_DISP; goto extract_fmt_ldis_index_disp;
1402 case 15 : itype = I960BASE_INSN_LDIS_INDIRECT_INDEX_DISP; goto extract_fmt_ldis_indirect_index_disp;
1403 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1404 }
1405 }
1406 default : itype = I960BASE_INSN_X_INVALID; goto extract_fmt_empty;
1407 }
1408 }
1409 }
1410
1411 /* The instruction has been decoded, now extract the fields. */
1412
1413 extract_fmt_empty:
1414 {
1415 const IDESC *idesc = &i960base_insn_data[itype];
1416 CGEN_INSN_INT insn = base_insn;
1417 #define FLD(f) abuf->fields.fmt_empty.f
1418 EXTRACT_IFMT_EMPTY_VARS /* */
1419
1420 EXTRACT_IFMT_EMPTY_CODE
1421
1422 /* Record the fields for the semantic handler. */
1423 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_empty", (char *) 0));
1424
1425 #undef FLD
1426 return idesc;
1427 }
1428
1429 extract_fmt_mulo:
1430 {
1431 const IDESC *idesc = &i960base_insn_data[itype];
1432 CGEN_INSN_INT insn = base_insn;
1433 #define FLD(f) abuf->fields.fmt_mulo.f
1434 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1435
1436 EXTRACT_IFMT_MULO_CODE
1437
1438 /* Record the fields for the semantic handler. */
1439 FLD (i_src1) = & CPU (h_gr)[f_src1];
1440 FLD (i_src2) = & CPU (h_gr)[f_src2];
1441 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1442 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mulo", "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1443
1444 #if WITH_PROFILE_MODEL_P
1445 /* Record the fields for profiling. */
1446 if (PROFILE_MODEL_P (current_cpu))
1447 {
1448 FLD (in_src1) = f_src1;
1449 FLD (in_src2) = f_src2;
1450 FLD (out_dst) = f_srcdst;
1451 }
1452 #endif
1453 #undef FLD
1454 return idesc;
1455 }
1456
1457 extract_fmt_mulo1:
1458 {
1459 const IDESC *idesc = &i960base_insn_data[itype];
1460 CGEN_INSN_INT insn = base_insn;
1461 #define FLD(f) abuf->fields.fmt_mulo1.f
1462 EXTRACT_IFMT_MULO1_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1463
1464 EXTRACT_IFMT_MULO1_CODE
1465
1466 /* Record the fields for the semantic handler. */
1467 FLD (f_src1) = f_src1;
1468 FLD (i_src2) = & CPU (h_gr)[f_src2];
1469 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1470 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mulo1", "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1471
1472 #if WITH_PROFILE_MODEL_P
1473 /* Record the fields for profiling. */
1474 if (PROFILE_MODEL_P (current_cpu))
1475 {
1476 FLD (in_src2) = f_src2;
1477 FLD (out_dst) = f_srcdst;
1478 }
1479 #endif
1480 #undef FLD
1481 return idesc;
1482 }
1483
1484 extract_fmt_mulo2:
1485 {
1486 const IDESC *idesc = &i960base_insn_data[itype];
1487 CGEN_INSN_INT insn = base_insn;
1488 #define FLD(f) abuf->fields.fmt_mulo2.f
1489 EXTRACT_IFMT_MULO2_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1490
1491 EXTRACT_IFMT_MULO2_CODE
1492
1493 /* Record the fields for the semantic handler. */
1494 FLD (f_src2) = f_src2;
1495 FLD (i_src1) = & CPU (h_gr)[f_src1];
1496 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1497 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mulo2", "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1498
1499 #if WITH_PROFILE_MODEL_P
1500 /* Record the fields for profiling. */
1501 if (PROFILE_MODEL_P (current_cpu))
1502 {
1503 FLD (in_src1) = f_src1;
1504 FLD (out_dst) = f_srcdst;
1505 }
1506 #endif
1507 #undef FLD
1508 return idesc;
1509 }
1510
1511 extract_fmt_mulo3:
1512 {
1513 const IDESC *idesc = &i960base_insn_data[itype];
1514 CGEN_INSN_INT insn = base_insn;
1515 #define FLD(f) abuf->fields.fmt_mulo3.f
1516 EXTRACT_IFMT_MULO3_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1517
1518 EXTRACT_IFMT_MULO3_CODE
1519
1520 /* Record the fields for the semantic handler. */
1521 FLD (f_src1) = f_src1;
1522 FLD (f_src2) = f_src2;
1523 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1524 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_mulo3", "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1525
1526 #if WITH_PROFILE_MODEL_P
1527 /* Record the fields for profiling. */
1528 if (PROFILE_MODEL_P (current_cpu))
1529 {
1530 FLD (out_dst) = f_srcdst;
1531 }
1532 #endif
1533 #undef FLD
1534 return idesc;
1535 }
1536
1537 extract_fmt_notbit:
1538 {
1539 const IDESC *idesc = &i960base_insn_data[itype];
1540 CGEN_INSN_INT insn = base_insn;
1541 #define FLD(f) abuf->fields.fmt_notbit.f
1542 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1543
1544 EXTRACT_IFMT_MULO_CODE
1545
1546 /* Record the fields for the semantic handler. */
1547 FLD (i_src1) = & CPU (h_gr)[f_src1];
1548 FLD (i_src2) = & CPU (h_gr)[f_src2];
1549 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1550 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_notbit", "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1551
1552 #if WITH_PROFILE_MODEL_P
1553 /* Record the fields for profiling. */
1554 if (PROFILE_MODEL_P (current_cpu))
1555 {
1556 FLD (in_src1) = f_src1;
1557 FLD (in_src2) = f_src2;
1558 FLD (out_dst) = f_srcdst;
1559 }
1560 #endif
1561 #undef FLD
1562 return idesc;
1563 }
1564
1565 extract_fmt_notbit1:
1566 {
1567 const IDESC *idesc = &i960base_insn_data[itype];
1568 CGEN_INSN_INT insn = base_insn;
1569 #define FLD(f) abuf->fields.fmt_notbit1.f
1570 EXTRACT_IFMT_MULO1_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1571
1572 EXTRACT_IFMT_MULO1_CODE
1573
1574 /* Record the fields for the semantic handler. */
1575 FLD (f_src1) = f_src1;
1576 FLD (i_src2) = & CPU (h_gr)[f_src2];
1577 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1578 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_notbit1", "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1579
1580 #if WITH_PROFILE_MODEL_P
1581 /* Record the fields for profiling. */
1582 if (PROFILE_MODEL_P (current_cpu))
1583 {
1584 FLD (in_src2) = f_src2;
1585 FLD (out_dst) = f_srcdst;
1586 }
1587 #endif
1588 #undef FLD
1589 return idesc;
1590 }
1591
1592 extract_fmt_notbit2:
1593 {
1594 const IDESC *idesc = &i960base_insn_data[itype];
1595 CGEN_INSN_INT insn = base_insn;
1596 #define FLD(f) abuf->fields.fmt_notbit2.f
1597 EXTRACT_IFMT_MULO2_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1598
1599 EXTRACT_IFMT_MULO2_CODE
1600
1601 /* Record the fields for the semantic handler. */
1602 FLD (f_src2) = f_src2;
1603 FLD (i_src1) = & CPU (h_gr)[f_src1];
1604 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1605 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_notbit2", "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1606
1607 #if WITH_PROFILE_MODEL_P
1608 /* Record the fields for profiling. */
1609 if (PROFILE_MODEL_P (current_cpu))
1610 {
1611 FLD (in_src1) = f_src1;
1612 FLD (out_dst) = f_srcdst;
1613 }
1614 #endif
1615 #undef FLD
1616 return idesc;
1617 }
1618
1619 extract_fmt_notbit3:
1620 {
1621 const IDESC *idesc = &i960base_insn_data[itype];
1622 CGEN_INSN_INT insn = base_insn;
1623 #define FLD(f) abuf->fields.fmt_notbit3.f
1624 EXTRACT_IFMT_MULO3_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1625
1626 EXTRACT_IFMT_MULO3_CODE
1627
1628 /* Record the fields for the semantic handler. */
1629 FLD (f_src1) = f_src1;
1630 FLD (f_src2) = f_src2;
1631 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1632 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_notbit3", "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1633
1634 #if WITH_PROFILE_MODEL_P
1635 /* Record the fields for profiling. */
1636 if (PROFILE_MODEL_P (current_cpu))
1637 {
1638 FLD (out_dst) = f_srcdst;
1639 }
1640 #endif
1641 #undef FLD
1642 return idesc;
1643 }
1644
1645 extract_fmt_not:
1646 {
1647 const IDESC *idesc = &i960base_insn_data[itype];
1648 CGEN_INSN_INT insn = base_insn;
1649 #define FLD(f) abuf->fields.fmt_not.f
1650 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1651
1652 EXTRACT_IFMT_MULO_CODE
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, "fmt_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_fmt_not1:
1672 {
1673 const IDESC *idesc = &i960base_insn_data[itype];
1674 CGEN_INSN_INT insn = base_insn;
1675 #define FLD(f) abuf->fields.fmt_not1.f
1676 EXTRACT_IFMT_MULO1_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1677
1678 EXTRACT_IFMT_MULO1_CODE
1679
1680 /* Record the fields for the semantic handler. */
1681 FLD (f_src1) = f_src1;
1682 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1683 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_not1", "f_src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1684
1685 #if WITH_PROFILE_MODEL_P
1686 /* Record the fields for profiling. */
1687 if (PROFILE_MODEL_P (current_cpu))
1688 {
1689 FLD (out_dst) = f_srcdst;
1690 }
1691 #endif
1692 #undef FLD
1693 return idesc;
1694 }
1695
1696 extract_fmt_not2:
1697 {
1698 const IDESC *idesc = &i960base_insn_data[itype];
1699 CGEN_INSN_INT insn = base_insn;
1700 #define FLD(f) abuf->fields.fmt_not2.f
1701 EXTRACT_IFMT_MULO2_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1702
1703 EXTRACT_IFMT_MULO2_CODE
1704
1705 /* Record the fields for the semantic handler. */
1706 FLD (i_src1) = & CPU (h_gr)[f_src1];
1707 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1708 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_not2", "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1709
1710 #if WITH_PROFILE_MODEL_P
1711 /* Record the fields for profiling. */
1712 if (PROFILE_MODEL_P (current_cpu))
1713 {
1714 FLD (in_src1) = f_src1;
1715 FLD (out_dst) = f_srcdst;
1716 }
1717 #endif
1718 #undef FLD
1719 return idesc;
1720 }
1721
1722 extract_fmt_not3:
1723 {
1724 const IDESC *idesc = &i960base_insn_data[itype];
1725 CGEN_INSN_INT insn = base_insn;
1726 #define FLD(f) abuf->fields.fmt_not3.f
1727 EXTRACT_IFMT_MULO3_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1728
1729 EXTRACT_IFMT_MULO3_CODE
1730
1731 /* Record the fields for the semantic handler. */
1732 FLD (f_src1) = f_src1;
1733 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1734 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_not3", "f_src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1735
1736 #if WITH_PROFILE_MODEL_P
1737 /* Record the fields for profiling. */
1738 if (PROFILE_MODEL_P (current_cpu))
1739 {
1740 FLD (out_dst) = f_srcdst;
1741 }
1742 #endif
1743 #undef FLD
1744 return idesc;
1745 }
1746
1747 extract_fmt_shlo:
1748 {
1749 const IDESC *idesc = &i960base_insn_data[itype];
1750 CGEN_INSN_INT insn = base_insn;
1751 #define FLD(f) abuf->fields.fmt_shlo.f
1752 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1753
1754 EXTRACT_IFMT_MULO_CODE
1755
1756 /* Record the fields for the semantic handler. */
1757 FLD (i_src1) = & CPU (h_gr)[f_src1];
1758 FLD (i_src2) = & CPU (h_gr)[f_src2];
1759 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1760 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_shlo", "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1761
1762 #if WITH_PROFILE_MODEL_P
1763 /* Record the fields for profiling. */
1764 if (PROFILE_MODEL_P (current_cpu))
1765 {
1766 FLD (in_src1) = f_src1;
1767 FLD (in_src2) = f_src2;
1768 FLD (out_dst) = f_srcdst;
1769 }
1770 #endif
1771 #undef FLD
1772 return idesc;
1773 }
1774
1775 extract_fmt_shlo1:
1776 {
1777 const IDESC *idesc = &i960base_insn_data[itype];
1778 CGEN_INSN_INT insn = base_insn;
1779 #define FLD(f) abuf->fields.fmt_shlo1.f
1780 EXTRACT_IFMT_MULO1_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1781
1782 EXTRACT_IFMT_MULO1_CODE
1783
1784 /* Record the fields for the semantic handler. */
1785 FLD (f_src1) = f_src1;
1786 FLD (i_src2) = & CPU (h_gr)[f_src2];
1787 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1788 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_shlo1", "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1789
1790 #if WITH_PROFILE_MODEL_P
1791 /* Record the fields for profiling. */
1792 if (PROFILE_MODEL_P (current_cpu))
1793 {
1794 FLD (in_src2) = f_src2;
1795 FLD (out_dst) = f_srcdst;
1796 }
1797 #endif
1798 #undef FLD
1799 return idesc;
1800 }
1801
1802 extract_fmt_shlo2:
1803 {
1804 const IDESC *idesc = &i960base_insn_data[itype];
1805 CGEN_INSN_INT insn = base_insn;
1806 #define FLD(f) abuf->fields.fmt_shlo2.f
1807 EXTRACT_IFMT_MULO2_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1808
1809 EXTRACT_IFMT_MULO2_CODE
1810
1811 /* Record the fields for the semantic handler. */
1812 FLD (f_src2) = f_src2;
1813 FLD (i_src1) = & CPU (h_gr)[f_src1];
1814 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1815 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_shlo2", "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1816
1817 #if WITH_PROFILE_MODEL_P
1818 /* Record the fields for profiling. */
1819 if (PROFILE_MODEL_P (current_cpu))
1820 {
1821 FLD (in_src1) = f_src1;
1822 FLD (out_dst) = f_srcdst;
1823 }
1824 #endif
1825 #undef FLD
1826 return idesc;
1827 }
1828
1829 extract_fmt_shlo3:
1830 {
1831 const IDESC *idesc = &i960base_insn_data[itype];
1832 CGEN_INSN_INT insn = base_insn;
1833 #define FLD(f) abuf->fields.fmt_shlo3.f
1834 EXTRACT_IFMT_MULO3_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1835
1836 EXTRACT_IFMT_MULO3_CODE
1837
1838 /* Record the fields for the semantic handler. */
1839 FLD (f_src1) = f_src1;
1840 FLD (f_src2) = f_src2;
1841 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1842 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_shlo3", "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
1843
1844 #if WITH_PROFILE_MODEL_P
1845 /* Record the fields for profiling. */
1846 if (PROFILE_MODEL_P (current_cpu))
1847 {
1848 FLD (out_dst) = f_srcdst;
1849 }
1850 #endif
1851 #undef FLD
1852 return idesc;
1853 }
1854
1855 extract_fmt_emul:
1856 {
1857 const IDESC *idesc = &i960base_insn_data[itype];
1858 CGEN_INSN_INT insn = base_insn;
1859 #define FLD(f) abuf->fields.fmt_emul.f
1860 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1861
1862 EXTRACT_IFMT_MULO_CODE
1863
1864 /* Record the fields for the semantic handler. */
1865 FLD (f_srcdst) = f_srcdst;
1866 FLD (i_src1) = & CPU (h_gr)[f_src1];
1867 FLD (i_src2) = & CPU (h_gr)[f_src2];
1868 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1869 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
1870
1871 #if WITH_PROFILE_MODEL_P
1872 /* Record the fields for profiling. */
1873 if (PROFILE_MODEL_P (current_cpu))
1874 {
1875 FLD (in_src1) = f_src1;
1876 FLD (in_src2) = f_src2;
1877 FLD (out_dst) = f_srcdst;
1878 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
1879 }
1880 #endif
1881 #undef FLD
1882 return idesc;
1883 }
1884
1885 extract_fmt_emul1:
1886 {
1887 const IDESC *idesc = &i960base_insn_data[itype];
1888 CGEN_INSN_INT insn = base_insn;
1889 #define FLD(f) abuf->fields.fmt_emul1.f
1890 EXTRACT_IFMT_MULO1_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1891
1892 EXTRACT_IFMT_MULO1_CODE
1893
1894 /* Record the fields for the semantic handler. */
1895 FLD (f_srcdst) = f_srcdst;
1896 FLD (f_src1) = f_src1;
1897 FLD (i_src2) = & CPU (h_gr)[f_src2];
1898 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1899 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
1900
1901 #if WITH_PROFILE_MODEL_P
1902 /* Record the fields for profiling. */
1903 if (PROFILE_MODEL_P (current_cpu))
1904 {
1905 FLD (in_src2) = f_src2;
1906 FLD (out_dst) = f_srcdst;
1907 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
1908 }
1909 #endif
1910 #undef FLD
1911 return idesc;
1912 }
1913
1914 extract_fmt_emul2:
1915 {
1916 const IDESC *idesc = &i960base_insn_data[itype];
1917 CGEN_INSN_INT insn = base_insn;
1918 #define FLD(f) abuf->fields.fmt_emul2.f
1919 EXTRACT_IFMT_MULO2_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1920
1921 EXTRACT_IFMT_MULO2_CODE
1922
1923 /* Record the fields for the semantic handler. */
1924 FLD (f_srcdst) = f_srcdst;
1925 FLD (f_src2) = f_src2;
1926 FLD (i_src1) = & CPU (h_gr)[f_src1];
1927 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1928 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
1929
1930 #if WITH_PROFILE_MODEL_P
1931 /* Record the fields for profiling. */
1932 if (PROFILE_MODEL_P (current_cpu))
1933 {
1934 FLD (in_src1) = f_src1;
1935 FLD (out_dst) = f_srcdst;
1936 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
1937 }
1938 #endif
1939 #undef FLD
1940 return idesc;
1941 }
1942
1943 extract_fmt_emul3:
1944 {
1945 const IDESC *idesc = &i960base_insn_data[itype];
1946 CGEN_INSN_INT insn = base_insn;
1947 #define FLD(f) abuf->fields.fmt_emul3.f
1948 EXTRACT_IFMT_MULO3_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1949
1950 EXTRACT_IFMT_MULO3_CODE
1951
1952 /* Record the fields for the semantic handler. */
1953 FLD (f_srcdst) = f_srcdst;
1954 FLD (f_src1) = f_src1;
1955 FLD (f_src2) = f_src2;
1956 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1957 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
1958
1959 #if WITH_PROFILE_MODEL_P
1960 /* Record the fields for profiling. */
1961 if (PROFILE_MODEL_P (current_cpu))
1962 {
1963 FLD (out_dst) = f_srcdst;
1964 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
1965 }
1966 #endif
1967 #undef FLD
1968 return idesc;
1969 }
1970
1971 extract_fmt_movl:
1972 {
1973 const IDESC *idesc = &i960base_insn_data[itype];
1974 CGEN_INSN_INT insn = base_insn;
1975 #define FLD(f) abuf->fields.fmt_movl.f
1976 EXTRACT_IFMT_MULO2_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
1977
1978 EXTRACT_IFMT_MULO2_CODE
1979
1980 /* Record the fields for the semantic handler. */
1981 FLD (f_src1) = f_src1;
1982 FLD (f_srcdst) = f_srcdst;
1983 FLD (i_src1) = & CPU (h_gr)[f_src1];
1984 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
1985 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
1986
1987 #if WITH_PROFILE_MODEL_P
1988 /* Record the fields for profiling. */
1989 if (PROFILE_MODEL_P (current_cpu))
1990 {
1991 FLD (in_h_gr_add__VM_index_of_src1_1) = ((FLD (f_src1)) + (1));
1992 FLD (in_src1) = f_src1;
1993 FLD (out_dst) = f_srcdst;
1994 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
1995 }
1996 #endif
1997 #undef FLD
1998 return idesc;
1999 }
2000
2001 extract_fmt_movl1:
2002 {
2003 const IDESC *idesc = &i960base_insn_data[itype];
2004 CGEN_INSN_INT insn = base_insn;
2005 #define FLD(f) abuf->fields.fmt_movl1.f
2006 EXTRACT_IFMT_MULO3_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
2007
2008 EXTRACT_IFMT_MULO3_CODE
2009
2010 /* Record the fields for the semantic handler. */
2011 FLD (f_srcdst) = f_srcdst;
2012 FLD (f_src1) = f_src1;
2013 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2014 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_movl1", "f_srcdst 0x%x", 'x', f_srcdst, "f_src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2015
2016 #if WITH_PROFILE_MODEL_P
2017 /* Record the fields for profiling. */
2018 if (PROFILE_MODEL_P (current_cpu))
2019 {
2020 FLD (out_dst) = f_srcdst;
2021 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
2022 }
2023 #endif
2024 #undef FLD
2025 return idesc;
2026 }
2027
2028 extract_fmt_movt:
2029 {
2030 const IDESC *idesc = &i960base_insn_data[itype];
2031 CGEN_INSN_INT insn = base_insn;
2032 #define FLD(f) abuf->fields.fmt_movt.f
2033 EXTRACT_IFMT_MULO2_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
2034
2035 EXTRACT_IFMT_MULO2_CODE
2036
2037 /* Record the fields for the semantic handler. */
2038 FLD (f_src1) = f_src1;
2039 FLD (f_srcdst) = f_srcdst;
2040 FLD (i_src1) = & CPU (h_gr)[f_src1];
2041 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2042 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
2043
2044 #if WITH_PROFILE_MODEL_P
2045 /* Record the fields for profiling. */
2046 if (PROFILE_MODEL_P (current_cpu))
2047 {
2048 FLD (in_h_gr_add__VM_index_of_src1_1) = ((FLD (f_src1)) + (1));
2049 FLD (in_h_gr_add__VM_index_of_src1_2) = ((FLD (f_src1)) + (2));
2050 FLD (in_src1) = f_src1;
2051 FLD (out_dst) = f_srcdst;
2052 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
2053 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
2054 }
2055 #endif
2056 #undef FLD
2057 return idesc;
2058 }
2059
2060 extract_fmt_movt1:
2061 {
2062 const IDESC *idesc = &i960base_insn_data[itype];
2063 CGEN_INSN_INT insn = base_insn;
2064 #define FLD(f) abuf->fields.fmt_movt1.f
2065 EXTRACT_IFMT_MULO3_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
2066
2067 EXTRACT_IFMT_MULO3_CODE
2068
2069 /* Record the fields for the semantic handler. */
2070 FLD (f_srcdst) = f_srcdst;
2071 FLD (f_src1) = f_src1;
2072 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2073 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_movt1", "f_srcdst 0x%x", 'x', f_srcdst, "f_src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2074
2075 #if WITH_PROFILE_MODEL_P
2076 /* Record the fields for profiling. */
2077 if (PROFILE_MODEL_P (current_cpu))
2078 {
2079 FLD (out_dst) = f_srcdst;
2080 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
2081 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
2082 }
2083 #endif
2084 #undef FLD
2085 return idesc;
2086 }
2087
2088 extract_fmt_movq:
2089 {
2090 const IDESC *idesc = &i960base_insn_data[itype];
2091 CGEN_INSN_INT insn = base_insn;
2092 #define FLD(f) abuf->fields.fmt_movq.f
2093 EXTRACT_IFMT_MULO2_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
2094
2095 EXTRACT_IFMT_MULO2_CODE
2096
2097 /* Record the fields for the semantic handler. */
2098 FLD (f_src1) = f_src1;
2099 FLD (f_srcdst) = f_srcdst;
2100 FLD (i_src1) = & CPU (h_gr)[f_src1];
2101 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2102 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
2103
2104 #if WITH_PROFILE_MODEL_P
2105 /* Record the fields for profiling. */
2106 if (PROFILE_MODEL_P (current_cpu))
2107 {
2108 FLD (in_h_gr_add__VM_index_of_src1_1) = ((FLD (f_src1)) + (1));
2109 FLD (in_h_gr_add__VM_index_of_src1_2) = ((FLD (f_src1)) + (2));
2110 FLD (in_h_gr_add__VM_index_of_src1_3) = ((FLD (f_src1)) + (3));
2111 FLD (in_src1) = f_src1;
2112 FLD (out_dst) = f_srcdst;
2113 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
2114 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
2115 FLD (out_h_gr_add__VM_index_of_dst_3) = ((FLD (f_srcdst)) + (3));
2116 }
2117 #endif
2118 #undef FLD
2119 return idesc;
2120 }
2121
2122 extract_fmt_movq1:
2123 {
2124 const IDESC *idesc = &i960base_insn_data[itype];
2125 CGEN_INSN_INT insn = base_insn;
2126 #define FLD(f) abuf->fields.fmt_movq1.f
2127 EXTRACT_IFMT_MULO3_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
2128
2129 EXTRACT_IFMT_MULO3_CODE
2130
2131 /* Record the fields for the semantic handler. */
2132 FLD (f_srcdst) = f_srcdst;
2133 FLD (f_src1) = f_src1;
2134 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2135 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_movq1", "f_srcdst 0x%x", 'x', f_srcdst, "f_src1 0x%x", 'x', f_src1, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2136
2137 #if WITH_PROFILE_MODEL_P
2138 /* Record the fields for profiling. */
2139 if (PROFILE_MODEL_P (current_cpu))
2140 {
2141 FLD (out_dst) = f_srcdst;
2142 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
2143 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
2144 FLD (out_h_gr_add__VM_index_of_dst_3) = ((FLD (f_srcdst)) + (3));
2145 }
2146 #endif
2147 #undef FLD
2148 return idesc;
2149 }
2150
2151 extract_fmt_modpc:
2152 {
2153 const IDESC *idesc = &i960base_insn_data[itype];
2154 CGEN_INSN_INT insn = base_insn;
2155 #define FLD(f) abuf->fields.fmt_modpc.f
2156 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
2157
2158 EXTRACT_IFMT_MULO_CODE
2159
2160 /* Record the fields for the semantic handler. */
2161 FLD (i_src2) = & CPU (h_gr)[f_src2];
2162 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2163 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_modpc", "src2 0x%x", 'x', f_src2, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2164
2165 #if WITH_PROFILE_MODEL_P
2166 /* Record the fields for profiling. */
2167 if (PROFILE_MODEL_P (current_cpu))
2168 {
2169 FLD (in_src2) = f_src2;
2170 FLD (out_dst) = f_srcdst;
2171 }
2172 #endif
2173 #undef FLD
2174 return idesc;
2175 }
2176
2177 extract_fmt_lda_offset:
2178 {
2179 const IDESC *idesc = &i960base_insn_data[itype];
2180 CGEN_INSN_INT insn = base_insn;
2181 #define FLD(f) abuf->fields.fmt_lda_offset.f
2182 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
2183
2184 EXTRACT_IFMT_LDA_OFFSET_CODE
2185
2186 /* Record the fields for the semantic handler. */
2187 FLD (f_offset) = f_offset;
2188 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2189 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_lda_offset", "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2190
2191 #if WITH_PROFILE_MODEL_P
2192 /* Record the fields for profiling. */
2193 if (PROFILE_MODEL_P (current_cpu))
2194 {
2195 FLD (out_dst) = f_srcdst;
2196 }
2197 #endif
2198 #undef FLD
2199 return idesc;
2200 }
2201
2202 extract_fmt_lda_indirect_offset:
2203 {
2204 const IDESC *idesc = &i960base_insn_data[itype];
2205 CGEN_INSN_INT insn = base_insn;
2206 #define FLD(f) abuf->fields.fmt_lda_indirect_offset.f
2207 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
2208
2209 EXTRACT_IFMT_LDA_OFFSET_CODE
2210
2211 /* Record the fields for the semantic handler. */
2212 FLD (f_offset) = f_offset;
2213 FLD (i_abase) = & CPU (h_gr)[f_abase];
2214 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2215 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_lda_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2216
2217 #if WITH_PROFILE_MODEL_P
2218 /* Record the fields for profiling. */
2219 if (PROFILE_MODEL_P (current_cpu))
2220 {
2221 FLD (in_abase) = f_abase;
2222 FLD (out_dst) = f_srcdst;
2223 }
2224 #endif
2225 #undef FLD
2226 return idesc;
2227 }
2228
2229 extract_fmt_lda_indirect:
2230 {
2231 const IDESC *idesc = &i960base_insn_data[itype];
2232 CGEN_INSN_INT insn = base_insn;
2233 #define FLD(f) abuf->fields.fmt_lda_indirect.f
2234 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2235
2236 EXTRACT_IFMT_LDA_INDIRECT_CODE
2237
2238 /* Record the fields for the semantic handler. */
2239 FLD (i_abase) = & CPU (h_gr)[f_abase];
2240 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2241 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_lda_indirect", "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2242
2243 #if WITH_PROFILE_MODEL_P
2244 /* Record the fields for profiling. */
2245 if (PROFILE_MODEL_P (current_cpu))
2246 {
2247 FLD (in_abase) = f_abase;
2248 FLD (out_dst) = f_srcdst;
2249 }
2250 #endif
2251 #undef FLD
2252 return idesc;
2253 }
2254
2255 extract_fmt_lda_indirect_index:
2256 {
2257 const IDESC *idesc = &i960base_insn_data[itype];
2258 CGEN_INSN_INT insn = base_insn;
2259 #define FLD(f) abuf->fields.fmt_lda_indirect_index.f
2260 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2261
2262 EXTRACT_IFMT_LDA_INDIRECT_CODE
2263
2264 /* Record the fields for the semantic handler. */
2265 FLD (f_scale) = f_scale;
2266 FLD (i_abase) = & CPU (h_gr)[f_abase];
2267 FLD (i_index) = & CPU (h_gr)[f_index];
2268 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2269 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
2270
2271 #if WITH_PROFILE_MODEL_P
2272 /* Record the fields for profiling. */
2273 if (PROFILE_MODEL_P (current_cpu))
2274 {
2275 FLD (in_abase) = f_abase;
2276 FLD (in_index) = f_index;
2277 FLD (out_dst) = f_srcdst;
2278 }
2279 #endif
2280 #undef FLD
2281 return idesc;
2282 }
2283
2284 extract_fmt_lda_disp:
2285 {
2286 const IDESC *idesc = &i960base_insn_data[itype];
2287 CGEN_INSN_INT insn = base_insn;
2288 #define FLD(f) abuf->fields.fmt_lda_disp.f
2289 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2290
2291 EXTRACT_IFMT_LDA_DISP_CODE
2292
2293 /* Record the fields for the semantic handler. */
2294 FLD (f_optdisp) = f_optdisp;
2295 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2296 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_lda_disp", "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2297
2298 #if WITH_PROFILE_MODEL_P
2299 /* Record the fields for profiling. */
2300 if (PROFILE_MODEL_P (current_cpu))
2301 {
2302 FLD (out_dst) = f_srcdst;
2303 }
2304 #endif
2305 #undef FLD
2306 return idesc;
2307 }
2308
2309 extract_fmt_lda_indirect_disp:
2310 {
2311 const IDESC *idesc = &i960base_insn_data[itype];
2312 CGEN_INSN_INT insn = base_insn;
2313 #define FLD(f) abuf->fields.fmt_lda_indirect_disp.f
2314 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2315
2316 EXTRACT_IFMT_LDA_DISP_CODE
2317
2318 /* Record the fields for the semantic handler. */
2319 FLD (f_optdisp) = f_optdisp;
2320 FLD (i_abase) = & CPU (h_gr)[f_abase];
2321 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2322 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_lda_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2323
2324 #if WITH_PROFILE_MODEL_P
2325 /* Record the fields for profiling. */
2326 if (PROFILE_MODEL_P (current_cpu))
2327 {
2328 FLD (in_abase) = f_abase;
2329 FLD (out_dst) = f_srcdst;
2330 }
2331 #endif
2332 #undef FLD
2333 return idesc;
2334 }
2335
2336 extract_fmt_lda_index_disp:
2337 {
2338 const IDESC *idesc = &i960base_insn_data[itype];
2339 CGEN_INSN_INT insn = base_insn;
2340 #define FLD(f) abuf->fields.fmt_lda_index_disp.f
2341 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2342
2343 EXTRACT_IFMT_LDA_DISP_CODE
2344
2345 /* Record the fields for the semantic handler. */
2346 FLD (f_optdisp) = f_optdisp;
2347 FLD (f_scale) = f_scale;
2348 FLD (i_index) = & CPU (h_gr)[f_index];
2349 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2350 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
2351
2352 #if WITH_PROFILE_MODEL_P
2353 /* Record the fields for profiling. */
2354 if (PROFILE_MODEL_P (current_cpu))
2355 {
2356 FLD (in_index) = f_index;
2357 FLD (out_dst) = f_srcdst;
2358 }
2359 #endif
2360 #undef FLD
2361 return idesc;
2362 }
2363
2364 extract_fmt_lda_indirect_index_disp:
2365 {
2366 const IDESC *idesc = &i960base_insn_data[itype];
2367 CGEN_INSN_INT insn = base_insn;
2368 #define FLD(f) abuf->fields.fmt_lda_indirect_index_disp.f
2369 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2370
2371 EXTRACT_IFMT_LDA_DISP_CODE
2372
2373 /* Record the fields for the semantic handler. */
2374 FLD (f_optdisp) = f_optdisp;
2375 FLD (f_scale) = f_scale;
2376 FLD (i_abase) = & CPU (h_gr)[f_abase];
2377 FLD (i_index) = & CPU (h_gr)[f_index];
2378 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2379 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
2380
2381 #if WITH_PROFILE_MODEL_P
2382 /* Record the fields for profiling. */
2383 if (PROFILE_MODEL_P (current_cpu))
2384 {
2385 FLD (in_abase) = f_abase;
2386 FLD (in_index) = f_index;
2387 FLD (out_dst) = f_srcdst;
2388 }
2389 #endif
2390 #undef FLD
2391 return idesc;
2392 }
2393
2394 extract_fmt_ld_offset:
2395 {
2396 const IDESC *idesc = &i960base_insn_data[itype];
2397 CGEN_INSN_INT insn = base_insn;
2398 #define FLD(f) abuf->fields.fmt_ld_offset.f
2399 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
2400
2401 EXTRACT_IFMT_LDA_OFFSET_CODE
2402
2403 /* Record the fields for the semantic handler. */
2404 FLD (f_offset) = f_offset;
2405 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2406 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ld_offset", "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2407
2408 #if WITH_PROFILE_MODEL_P
2409 /* Record the fields for profiling. */
2410 if (PROFILE_MODEL_P (current_cpu))
2411 {
2412 FLD (out_dst) = f_srcdst;
2413 }
2414 #endif
2415 #undef FLD
2416 return idesc;
2417 }
2418
2419 extract_fmt_ld_indirect_offset:
2420 {
2421 const IDESC *idesc = &i960base_insn_data[itype];
2422 CGEN_INSN_INT insn = base_insn;
2423 #define FLD(f) abuf->fields.fmt_ld_indirect_offset.f
2424 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
2425
2426 EXTRACT_IFMT_LDA_OFFSET_CODE
2427
2428 /* Record the fields for the semantic handler. */
2429 FLD (f_offset) = f_offset;
2430 FLD (i_abase) = & CPU (h_gr)[f_abase];
2431 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2432 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ld_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2433
2434 #if WITH_PROFILE_MODEL_P
2435 /* Record the fields for profiling. */
2436 if (PROFILE_MODEL_P (current_cpu))
2437 {
2438 FLD (in_abase) = f_abase;
2439 FLD (out_dst) = f_srcdst;
2440 }
2441 #endif
2442 #undef FLD
2443 return idesc;
2444 }
2445
2446 extract_fmt_ld_indirect:
2447 {
2448 const IDESC *idesc = &i960base_insn_data[itype];
2449 CGEN_INSN_INT insn = base_insn;
2450 #define FLD(f) abuf->fields.fmt_ld_indirect.f
2451 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2452
2453 EXTRACT_IFMT_LDA_INDIRECT_CODE
2454
2455 /* Record the fields for the semantic handler. */
2456 FLD (i_abase) = & CPU (h_gr)[f_abase];
2457 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2458 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ld_indirect", "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2459
2460 #if WITH_PROFILE_MODEL_P
2461 /* Record the fields for profiling. */
2462 if (PROFILE_MODEL_P (current_cpu))
2463 {
2464 FLD (in_abase) = f_abase;
2465 FLD (out_dst) = f_srcdst;
2466 }
2467 #endif
2468 #undef FLD
2469 return idesc;
2470 }
2471
2472 extract_fmt_ld_indirect_index:
2473 {
2474 const IDESC *idesc = &i960base_insn_data[itype];
2475 CGEN_INSN_INT insn = base_insn;
2476 #define FLD(f) abuf->fields.fmt_ld_indirect_index.f
2477 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2478
2479 EXTRACT_IFMT_LDA_INDIRECT_CODE
2480
2481 /* Record the fields for the semantic handler. */
2482 FLD (f_scale) = f_scale;
2483 FLD (i_abase) = & CPU (h_gr)[f_abase];
2484 FLD (i_index) = & CPU (h_gr)[f_index];
2485 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2486 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
2487
2488 #if WITH_PROFILE_MODEL_P
2489 /* Record the fields for profiling. */
2490 if (PROFILE_MODEL_P (current_cpu))
2491 {
2492 FLD (in_abase) = f_abase;
2493 FLD (in_index) = f_index;
2494 FLD (out_dst) = f_srcdst;
2495 }
2496 #endif
2497 #undef FLD
2498 return idesc;
2499 }
2500
2501 extract_fmt_ld_disp:
2502 {
2503 const IDESC *idesc = &i960base_insn_data[itype];
2504 CGEN_INSN_INT insn = base_insn;
2505 #define FLD(f) abuf->fields.fmt_ld_disp.f
2506 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2507
2508 EXTRACT_IFMT_LDA_DISP_CODE
2509
2510 /* Record the fields for the semantic handler. */
2511 FLD (f_optdisp) = f_optdisp;
2512 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2513 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ld_disp", "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2514
2515 #if WITH_PROFILE_MODEL_P
2516 /* Record the fields for profiling. */
2517 if (PROFILE_MODEL_P (current_cpu))
2518 {
2519 FLD (out_dst) = f_srcdst;
2520 }
2521 #endif
2522 #undef FLD
2523 return idesc;
2524 }
2525
2526 extract_fmt_ld_indirect_disp:
2527 {
2528 const IDESC *idesc = &i960base_insn_data[itype];
2529 CGEN_INSN_INT insn = base_insn;
2530 #define FLD(f) abuf->fields.fmt_ld_indirect_disp.f
2531 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2532
2533 EXTRACT_IFMT_LDA_DISP_CODE
2534
2535 /* Record the fields for the semantic handler. */
2536 FLD (f_optdisp) = f_optdisp;
2537 FLD (i_abase) = & CPU (h_gr)[f_abase];
2538 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2539 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ld_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2540
2541 #if WITH_PROFILE_MODEL_P
2542 /* Record the fields for profiling. */
2543 if (PROFILE_MODEL_P (current_cpu))
2544 {
2545 FLD (in_abase) = f_abase;
2546 FLD (out_dst) = f_srcdst;
2547 }
2548 #endif
2549 #undef FLD
2550 return idesc;
2551 }
2552
2553 extract_fmt_ld_index_disp:
2554 {
2555 const IDESC *idesc = &i960base_insn_data[itype];
2556 CGEN_INSN_INT insn = base_insn;
2557 #define FLD(f) abuf->fields.fmt_ld_index_disp.f
2558 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2559
2560 EXTRACT_IFMT_LDA_DISP_CODE
2561
2562 /* Record the fields for the semantic handler. */
2563 FLD (f_optdisp) = f_optdisp;
2564 FLD (f_scale) = f_scale;
2565 FLD (i_index) = & CPU (h_gr)[f_index];
2566 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2567 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
2568
2569 #if WITH_PROFILE_MODEL_P
2570 /* Record the fields for profiling. */
2571 if (PROFILE_MODEL_P (current_cpu))
2572 {
2573 FLD (in_index) = f_index;
2574 FLD (out_dst) = f_srcdst;
2575 }
2576 #endif
2577 #undef FLD
2578 return idesc;
2579 }
2580
2581 extract_fmt_ld_indirect_index_disp:
2582 {
2583 const IDESC *idesc = &i960base_insn_data[itype];
2584 CGEN_INSN_INT insn = base_insn;
2585 #define FLD(f) abuf->fields.fmt_ld_indirect_index_disp.f
2586 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2587
2588 EXTRACT_IFMT_LDA_DISP_CODE
2589
2590 /* Record the fields for the semantic handler. */
2591 FLD (f_optdisp) = f_optdisp;
2592 FLD (f_scale) = f_scale;
2593 FLD (i_abase) = & CPU (h_gr)[f_abase];
2594 FLD (i_index) = & CPU (h_gr)[f_index];
2595 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2596 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
2597
2598 #if WITH_PROFILE_MODEL_P
2599 /* Record the fields for profiling. */
2600 if (PROFILE_MODEL_P (current_cpu))
2601 {
2602 FLD (in_abase) = f_abase;
2603 FLD (in_index) = f_index;
2604 FLD (out_dst) = f_srcdst;
2605 }
2606 #endif
2607 #undef FLD
2608 return idesc;
2609 }
2610
2611 extract_fmt_ldob_offset:
2612 {
2613 const IDESC *idesc = &i960base_insn_data[itype];
2614 CGEN_INSN_INT insn = base_insn;
2615 #define FLD(f) abuf->fields.fmt_ldob_offset.f
2616 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
2617
2618 EXTRACT_IFMT_LDA_OFFSET_CODE
2619
2620 /* Record the fields for the semantic handler. */
2621 FLD (f_offset) = f_offset;
2622 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2623 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldob_offset", "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2624
2625 #if WITH_PROFILE_MODEL_P
2626 /* Record the fields for profiling. */
2627 if (PROFILE_MODEL_P (current_cpu))
2628 {
2629 FLD (out_dst) = f_srcdst;
2630 }
2631 #endif
2632 #undef FLD
2633 return idesc;
2634 }
2635
2636 extract_fmt_ldob_indirect_offset:
2637 {
2638 const IDESC *idesc = &i960base_insn_data[itype];
2639 CGEN_INSN_INT insn = base_insn;
2640 #define FLD(f) abuf->fields.fmt_ldob_indirect_offset.f
2641 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
2642
2643 EXTRACT_IFMT_LDA_OFFSET_CODE
2644
2645 /* Record the fields for the semantic handler. */
2646 FLD (f_offset) = f_offset;
2647 FLD (i_abase) = & CPU (h_gr)[f_abase];
2648 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2649 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldob_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2650
2651 #if WITH_PROFILE_MODEL_P
2652 /* Record the fields for profiling. */
2653 if (PROFILE_MODEL_P (current_cpu))
2654 {
2655 FLD (in_abase) = f_abase;
2656 FLD (out_dst) = f_srcdst;
2657 }
2658 #endif
2659 #undef FLD
2660 return idesc;
2661 }
2662
2663 extract_fmt_ldob_indirect:
2664 {
2665 const IDESC *idesc = &i960base_insn_data[itype];
2666 CGEN_INSN_INT insn = base_insn;
2667 #define FLD(f) abuf->fields.fmt_ldob_indirect.f
2668 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2669
2670 EXTRACT_IFMT_LDA_INDIRECT_CODE
2671
2672 /* Record the fields for the semantic handler. */
2673 FLD (i_abase) = & CPU (h_gr)[f_abase];
2674 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2675 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldob_indirect", "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2676
2677 #if WITH_PROFILE_MODEL_P
2678 /* Record the fields for profiling. */
2679 if (PROFILE_MODEL_P (current_cpu))
2680 {
2681 FLD (in_abase) = f_abase;
2682 FLD (out_dst) = f_srcdst;
2683 }
2684 #endif
2685 #undef FLD
2686 return idesc;
2687 }
2688
2689 extract_fmt_ldob_indirect_index:
2690 {
2691 const IDESC *idesc = &i960base_insn_data[itype];
2692 CGEN_INSN_INT insn = base_insn;
2693 #define FLD(f) abuf->fields.fmt_ldob_indirect_index.f
2694 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2695
2696 EXTRACT_IFMT_LDA_INDIRECT_CODE
2697
2698 /* Record the fields for the semantic handler. */
2699 FLD (f_scale) = f_scale;
2700 FLD (i_abase) = & CPU (h_gr)[f_abase];
2701 FLD (i_index) = & CPU (h_gr)[f_index];
2702 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2703 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldob_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));
2704
2705 #if WITH_PROFILE_MODEL_P
2706 /* Record the fields for profiling. */
2707 if (PROFILE_MODEL_P (current_cpu))
2708 {
2709 FLD (in_abase) = f_abase;
2710 FLD (in_index) = f_index;
2711 FLD (out_dst) = f_srcdst;
2712 }
2713 #endif
2714 #undef FLD
2715 return idesc;
2716 }
2717
2718 extract_fmt_ldob_disp:
2719 {
2720 const IDESC *idesc = &i960base_insn_data[itype];
2721 CGEN_INSN_INT insn = base_insn;
2722 #define FLD(f) abuf->fields.fmt_ldob_disp.f
2723 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2724
2725 EXTRACT_IFMT_LDA_DISP_CODE
2726
2727 /* Record the fields for the semantic handler. */
2728 FLD (f_optdisp) = f_optdisp;
2729 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2730 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldob_disp", "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2731
2732 #if WITH_PROFILE_MODEL_P
2733 /* Record the fields for profiling. */
2734 if (PROFILE_MODEL_P (current_cpu))
2735 {
2736 FLD (out_dst) = f_srcdst;
2737 }
2738 #endif
2739 #undef FLD
2740 return idesc;
2741 }
2742
2743 extract_fmt_ldob_indirect_disp:
2744 {
2745 const IDESC *idesc = &i960base_insn_data[itype];
2746 CGEN_INSN_INT insn = base_insn;
2747 #define FLD(f) abuf->fields.fmt_ldob_indirect_disp.f
2748 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2749
2750 EXTRACT_IFMT_LDA_DISP_CODE
2751
2752 /* Record the fields for the semantic handler. */
2753 FLD (f_optdisp) = f_optdisp;
2754 FLD (i_abase) = & CPU (h_gr)[f_abase];
2755 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2756 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldob_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2757
2758 #if WITH_PROFILE_MODEL_P
2759 /* Record the fields for profiling. */
2760 if (PROFILE_MODEL_P (current_cpu))
2761 {
2762 FLD (in_abase) = f_abase;
2763 FLD (out_dst) = f_srcdst;
2764 }
2765 #endif
2766 #undef FLD
2767 return idesc;
2768 }
2769
2770 extract_fmt_ldob_index_disp:
2771 {
2772 const IDESC *idesc = &i960base_insn_data[itype];
2773 CGEN_INSN_INT insn = base_insn;
2774 #define FLD(f) abuf->fields.fmt_ldob_index_disp.f
2775 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2776
2777 EXTRACT_IFMT_LDA_DISP_CODE
2778
2779 /* Record the fields for the semantic handler. */
2780 FLD (f_optdisp) = f_optdisp;
2781 FLD (f_scale) = f_scale;
2782 FLD (i_index) = & CPU (h_gr)[f_index];
2783 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2784 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldob_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));
2785
2786 #if WITH_PROFILE_MODEL_P
2787 /* Record the fields for profiling. */
2788 if (PROFILE_MODEL_P (current_cpu))
2789 {
2790 FLD (in_index) = f_index;
2791 FLD (out_dst) = f_srcdst;
2792 }
2793 #endif
2794 #undef FLD
2795 return idesc;
2796 }
2797
2798 extract_fmt_ldob_indirect_index_disp:
2799 {
2800 const IDESC *idesc = &i960base_insn_data[itype];
2801 CGEN_INSN_INT insn = base_insn;
2802 #define FLD(f) abuf->fields.fmt_ldob_indirect_index_disp.f
2803 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2804
2805 EXTRACT_IFMT_LDA_DISP_CODE
2806
2807 /* Record the fields for the semantic handler. */
2808 FLD (f_optdisp) = f_optdisp;
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, "fmt_ldob_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));
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 }
2823 #endif
2824 #undef FLD
2825 return idesc;
2826 }
2827
2828 extract_fmt_ldos_offset:
2829 {
2830 const IDESC *idesc = &i960base_insn_data[itype];
2831 CGEN_INSN_INT insn = base_insn;
2832 #define FLD(f) abuf->fields.fmt_ldos_offset.f
2833 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
2834
2835 EXTRACT_IFMT_LDA_OFFSET_CODE
2836
2837 /* Record the fields for the semantic handler. */
2838 FLD (f_offset) = f_offset;
2839 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2840 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldos_offset", "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2841
2842 #if WITH_PROFILE_MODEL_P
2843 /* Record the fields for profiling. */
2844 if (PROFILE_MODEL_P (current_cpu))
2845 {
2846 FLD (out_dst) = f_srcdst;
2847 }
2848 #endif
2849 #undef FLD
2850 return idesc;
2851 }
2852
2853 extract_fmt_ldos_indirect_offset:
2854 {
2855 const IDESC *idesc = &i960base_insn_data[itype];
2856 CGEN_INSN_INT insn = base_insn;
2857 #define FLD(f) abuf->fields.fmt_ldos_indirect_offset.f
2858 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
2859
2860 EXTRACT_IFMT_LDA_OFFSET_CODE
2861
2862 /* Record the fields for the semantic handler. */
2863 FLD (f_offset) = f_offset;
2864 FLD (i_abase) = & CPU (h_gr)[f_abase];
2865 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2866 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldos_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2867
2868 #if WITH_PROFILE_MODEL_P
2869 /* Record the fields for profiling. */
2870 if (PROFILE_MODEL_P (current_cpu))
2871 {
2872 FLD (in_abase) = f_abase;
2873 FLD (out_dst) = f_srcdst;
2874 }
2875 #endif
2876 #undef FLD
2877 return idesc;
2878 }
2879
2880 extract_fmt_ldos_indirect:
2881 {
2882 const IDESC *idesc = &i960base_insn_data[itype];
2883 CGEN_INSN_INT insn = base_insn;
2884 #define FLD(f) abuf->fields.fmt_ldos_indirect.f
2885 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2886
2887 EXTRACT_IFMT_LDA_INDIRECT_CODE
2888
2889 /* Record the fields for the semantic handler. */
2890 FLD (i_abase) = & CPU (h_gr)[f_abase];
2891 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2892 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldos_indirect", "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2893
2894 #if WITH_PROFILE_MODEL_P
2895 /* Record the fields for profiling. */
2896 if (PROFILE_MODEL_P (current_cpu))
2897 {
2898 FLD (in_abase) = f_abase;
2899 FLD (out_dst) = f_srcdst;
2900 }
2901 #endif
2902 #undef FLD
2903 return idesc;
2904 }
2905
2906 extract_fmt_ldos_indirect_index:
2907 {
2908 const IDESC *idesc = &i960base_insn_data[itype];
2909 CGEN_INSN_INT insn = base_insn;
2910 #define FLD(f) abuf->fields.fmt_ldos_indirect_index.f
2911 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2912
2913 EXTRACT_IFMT_LDA_INDIRECT_CODE
2914
2915 /* Record the fields for the semantic handler. */
2916 FLD (f_scale) = f_scale;
2917 FLD (i_abase) = & CPU (h_gr)[f_abase];
2918 FLD (i_index) = & CPU (h_gr)[f_index];
2919 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2920 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldos_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));
2921
2922 #if WITH_PROFILE_MODEL_P
2923 /* Record the fields for profiling. */
2924 if (PROFILE_MODEL_P (current_cpu))
2925 {
2926 FLD (in_abase) = f_abase;
2927 FLD (in_index) = f_index;
2928 FLD (out_dst) = f_srcdst;
2929 }
2930 #endif
2931 #undef FLD
2932 return idesc;
2933 }
2934
2935 extract_fmt_ldos_disp:
2936 {
2937 const IDESC *idesc = &i960base_insn_data[itype];
2938 CGEN_INSN_INT insn = base_insn;
2939 #define FLD(f) abuf->fields.fmt_ldos_disp.f
2940 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2941
2942 EXTRACT_IFMT_LDA_DISP_CODE
2943
2944 /* Record the fields for the semantic handler. */
2945 FLD (f_optdisp) = f_optdisp;
2946 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2947 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldos_disp", "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2948
2949 #if WITH_PROFILE_MODEL_P
2950 /* Record the fields for profiling. */
2951 if (PROFILE_MODEL_P (current_cpu))
2952 {
2953 FLD (out_dst) = f_srcdst;
2954 }
2955 #endif
2956 #undef FLD
2957 return idesc;
2958 }
2959
2960 extract_fmt_ldos_indirect_disp:
2961 {
2962 const IDESC *idesc = &i960base_insn_data[itype];
2963 CGEN_INSN_INT insn = base_insn;
2964 #define FLD(f) abuf->fields.fmt_ldos_indirect_disp.f
2965 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2966
2967 EXTRACT_IFMT_LDA_DISP_CODE
2968
2969 /* Record the fields for the semantic handler. */
2970 FLD (f_optdisp) = f_optdisp;
2971 FLD (i_abase) = & CPU (h_gr)[f_abase];
2972 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
2973 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldos_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
2974
2975 #if WITH_PROFILE_MODEL_P
2976 /* Record the fields for profiling. */
2977 if (PROFILE_MODEL_P (current_cpu))
2978 {
2979 FLD (in_abase) = f_abase;
2980 FLD (out_dst) = f_srcdst;
2981 }
2982 #endif
2983 #undef FLD
2984 return idesc;
2985 }
2986
2987 extract_fmt_ldos_index_disp:
2988 {
2989 const IDESC *idesc = &i960base_insn_data[itype];
2990 CGEN_INSN_INT insn = base_insn;
2991 #define FLD(f) abuf->fields.fmt_ldos_index_disp.f
2992 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
2993
2994 EXTRACT_IFMT_LDA_DISP_CODE
2995
2996 /* Record the fields for the semantic handler. */
2997 FLD (f_optdisp) = f_optdisp;
2998 FLD (f_scale) = f_scale;
2999 FLD (i_index) = & CPU (h_gr)[f_index];
3000 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3001 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldos_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));
3002
3003 #if WITH_PROFILE_MODEL_P
3004 /* Record the fields for profiling. */
3005 if (PROFILE_MODEL_P (current_cpu))
3006 {
3007 FLD (in_index) = f_index;
3008 FLD (out_dst) = f_srcdst;
3009 }
3010 #endif
3011 #undef FLD
3012 return idesc;
3013 }
3014
3015 extract_fmt_ldos_indirect_index_disp:
3016 {
3017 const IDESC *idesc = &i960base_insn_data[itype];
3018 CGEN_INSN_INT insn = base_insn;
3019 #define FLD(f) abuf->fields.fmt_ldos_indirect_index_disp.f
3020 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3021
3022 EXTRACT_IFMT_LDA_DISP_CODE
3023
3024 /* Record the fields for the semantic handler. */
3025 FLD (f_optdisp) = f_optdisp;
3026 FLD (f_scale) = f_scale;
3027 FLD (i_abase) = & CPU (h_gr)[f_abase];
3028 FLD (i_index) = & CPU (h_gr)[f_index];
3029 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3030 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldos_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));
3031
3032 #if WITH_PROFILE_MODEL_P
3033 /* Record the fields for profiling. */
3034 if (PROFILE_MODEL_P (current_cpu))
3035 {
3036 FLD (in_abase) = f_abase;
3037 FLD (in_index) = f_index;
3038 FLD (out_dst) = f_srcdst;
3039 }
3040 #endif
3041 #undef FLD
3042 return idesc;
3043 }
3044
3045 extract_fmt_ldib_offset:
3046 {
3047 const IDESC *idesc = &i960base_insn_data[itype];
3048 CGEN_INSN_INT insn = base_insn;
3049 #define FLD(f) abuf->fields.fmt_ldib_offset.f
3050 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
3051
3052 EXTRACT_IFMT_LDA_OFFSET_CODE
3053
3054 /* Record the fields for the semantic handler. */
3055 FLD (f_offset) = f_offset;
3056 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3057 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldib_offset", "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3058
3059 #if WITH_PROFILE_MODEL_P
3060 /* Record the fields for profiling. */
3061 if (PROFILE_MODEL_P (current_cpu))
3062 {
3063 FLD (out_dst) = f_srcdst;
3064 }
3065 #endif
3066 #undef FLD
3067 return idesc;
3068 }
3069
3070 extract_fmt_ldib_indirect_offset:
3071 {
3072 const IDESC *idesc = &i960base_insn_data[itype];
3073 CGEN_INSN_INT insn = base_insn;
3074 #define FLD(f) abuf->fields.fmt_ldib_indirect_offset.f
3075 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
3076
3077 EXTRACT_IFMT_LDA_OFFSET_CODE
3078
3079 /* Record the fields for the semantic handler. */
3080 FLD (f_offset) = f_offset;
3081 FLD (i_abase) = & CPU (h_gr)[f_abase];
3082 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3083 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldib_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3084
3085 #if WITH_PROFILE_MODEL_P
3086 /* Record the fields for profiling. */
3087 if (PROFILE_MODEL_P (current_cpu))
3088 {
3089 FLD (in_abase) = f_abase;
3090 FLD (out_dst) = f_srcdst;
3091 }
3092 #endif
3093 #undef FLD
3094 return idesc;
3095 }
3096
3097 extract_fmt_ldib_indirect:
3098 {
3099 const IDESC *idesc = &i960base_insn_data[itype];
3100 CGEN_INSN_INT insn = base_insn;
3101 #define FLD(f) abuf->fields.fmt_ldib_indirect.f
3102 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3103
3104 EXTRACT_IFMT_LDA_INDIRECT_CODE
3105
3106 /* Record the fields for the semantic handler. */
3107 FLD (i_abase) = & CPU (h_gr)[f_abase];
3108 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3109 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldib_indirect", "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3110
3111 #if WITH_PROFILE_MODEL_P
3112 /* Record the fields for profiling. */
3113 if (PROFILE_MODEL_P (current_cpu))
3114 {
3115 FLD (in_abase) = f_abase;
3116 FLD (out_dst) = f_srcdst;
3117 }
3118 #endif
3119 #undef FLD
3120 return idesc;
3121 }
3122
3123 extract_fmt_ldib_indirect_index:
3124 {
3125 const IDESC *idesc = &i960base_insn_data[itype];
3126 CGEN_INSN_INT insn = base_insn;
3127 #define FLD(f) abuf->fields.fmt_ldib_indirect_index.f
3128 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3129
3130 EXTRACT_IFMT_LDA_INDIRECT_CODE
3131
3132 /* Record the fields for the semantic handler. */
3133 FLD (f_scale) = f_scale;
3134 FLD (i_abase) = & CPU (h_gr)[f_abase];
3135 FLD (i_index) = & CPU (h_gr)[f_index];
3136 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3137 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldib_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));
3138
3139 #if WITH_PROFILE_MODEL_P
3140 /* Record the fields for profiling. */
3141 if (PROFILE_MODEL_P (current_cpu))
3142 {
3143 FLD (in_abase) = f_abase;
3144 FLD (in_index) = f_index;
3145 FLD (out_dst) = f_srcdst;
3146 }
3147 #endif
3148 #undef FLD
3149 return idesc;
3150 }
3151
3152 extract_fmt_ldib_disp:
3153 {
3154 const IDESC *idesc = &i960base_insn_data[itype];
3155 CGEN_INSN_INT insn = base_insn;
3156 #define FLD(f) abuf->fields.fmt_ldib_disp.f
3157 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3158
3159 EXTRACT_IFMT_LDA_DISP_CODE
3160
3161 /* Record the fields for the semantic handler. */
3162 FLD (f_optdisp) = f_optdisp;
3163 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3164 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldib_disp", "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3165
3166 #if WITH_PROFILE_MODEL_P
3167 /* Record the fields for profiling. */
3168 if (PROFILE_MODEL_P (current_cpu))
3169 {
3170 FLD (out_dst) = f_srcdst;
3171 }
3172 #endif
3173 #undef FLD
3174 return idesc;
3175 }
3176
3177 extract_fmt_ldib_indirect_disp:
3178 {
3179 const IDESC *idesc = &i960base_insn_data[itype];
3180 CGEN_INSN_INT insn = base_insn;
3181 #define FLD(f) abuf->fields.fmt_ldib_indirect_disp.f
3182 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3183
3184 EXTRACT_IFMT_LDA_DISP_CODE
3185
3186 /* Record the fields for the semantic handler. */
3187 FLD (f_optdisp) = f_optdisp;
3188 FLD (i_abase) = & CPU (h_gr)[f_abase];
3189 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3190 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldib_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3191
3192 #if WITH_PROFILE_MODEL_P
3193 /* Record the fields for profiling. */
3194 if (PROFILE_MODEL_P (current_cpu))
3195 {
3196 FLD (in_abase) = f_abase;
3197 FLD (out_dst) = f_srcdst;
3198 }
3199 #endif
3200 #undef FLD
3201 return idesc;
3202 }
3203
3204 extract_fmt_ldib_index_disp:
3205 {
3206 const IDESC *idesc = &i960base_insn_data[itype];
3207 CGEN_INSN_INT insn = base_insn;
3208 #define FLD(f) abuf->fields.fmt_ldib_index_disp.f
3209 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3210
3211 EXTRACT_IFMT_LDA_DISP_CODE
3212
3213 /* Record the fields for the semantic handler. */
3214 FLD (f_optdisp) = f_optdisp;
3215 FLD (f_scale) = f_scale;
3216 FLD (i_index) = & CPU (h_gr)[f_index];
3217 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3218 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldib_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));
3219
3220 #if WITH_PROFILE_MODEL_P
3221 /* Record the fields for profiling. */
3222 if (PROFILE_MODEL_P (current_cpu))
3223 {
3224 FLD (in_index) = f_index;
3225 FLD (out_dst) = f_srcdst;
3226 }
3227 #endif
3228 #undef FLD
3229 return idesc;
3230 }
3231
3232 extract_fmt_ldib_indirect_index_disp:
3233 {
3234 const IDESC *idesc = &i960base_insn_data[itype];
3235 CGEN_INSN_INT insn = base_insn;
3236 #define FLD(f) abuf->fields.fmt_ldib_indirect_index_disp.f
3237 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3238
3239 EXTRACT_IFMT_LDA_DISP_CODE
3240
3241 /* Record the fields for the semantic handler. */
3242 FLD (f_optdisp) = f_optdisp;
3243 FLD (f_scale) = f_scale;
3244 FLD (i_abase) = & CPU (h_gr)[f_abase];
3245 FLD (i_index) = & CPU (h_gr)[f_index];
3246 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3247 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldib_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));
3248
3249 #if WITH_PROFILE_MODEL_P
3250 /* Record the fields for profiling. */
3251 if (PROFILE_MODEL_P (current_cpu))
3252 {
3253 FLD (in_abase) = f_abase;
3254 FLD (in_index) = f_index;
3255 FLD (out_dst) = f_srcdst;
3256 }
3257 #endif
3258 #undef FLD
3259 return idesc;
3260 }
3261
3262 extract_fmt_ldis_offset:
3263 {
3264 const IDESC *idesc = &i960base_insn_data[itype];
3265 CGEN_INSN_INT insn = base_insn;
3266 #define FLD(f) abuf->fields.fmt_ldis_offset.f
3267 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
3268
3269 EXTRACT_IFMT_LDA_OFFSET_CODE
3270
3271 /* Record the fields for the semantic handler. */
3272 FLD (f_offset) = f_offset;
3273 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3274 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldis_offset", "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3275
3276 #if WITH_PROFILE_MODEL_P
3277 /* Record the fields for profiling. */
3278 if (PROFILE_MODEL_P (current_cpu))
3279 {
3280 FLD (out_dst) = f_srcdst;
3281 }
3282 #endif
3283 #undef FLD
3284 return idesc;
3285 }
3286
3287 extract_fmt_ldis_indirect_offset:
3288 {
3289 const IDESC *idesc = &i960base_insn_data[itype];
3290 CGEN_INSN_INT insn = base_insn;
3291 #define FLD(f) abuf->fields.fmt_ldis_indirect_offset.f
3292 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
3293
3294 EXTRACT_IFMT_LDA_OFFSET_CODE
3295
3296 /* Record the fields for the semantic handler. */
3297 FLD (f_offset) = f_offset;
3298 FLD (i_abase) = & CPU (h_gr)[f_abase];
3299 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3300 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldis_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3301
3302 #if WITH_PROFILE_MODEL_P
3303 /* Record the fields for profiling. */
3304 if (PROFILE_MODEL_P (current_cpu))
3305 {
3306 FLD (in_abase) = f_abase;
3307 FLD (out_dst) = f_srcdst;
3308 }
3309 #endif
3310 #undef FLD
3311 return idesc;
3312 }
3313
3314 extract_fmt_ldis_indirect:
3315 {
3316 const IDESC *idesc = &i960base_insn_data[itype];
3317 CGEN_INSN_INT insn = base_insn;
3318 #define FLD(f) abuf->fields.fmt_ldis_indirect.f
3319 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3320
3321 EXTRACT_IFMT_LDA_INDIRECT_CODE
3322
3323 /* Record the fields for the semantic handler. */
3324 FLD (i_abase) = & CPU (h_gr)[f_abase];
3325 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3326 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldis_indirect", "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3327
3328 #if WITH_PROFILE_MODEL_P
3329 /* Record the fields for profiling. */
3330 if (PROFILE_MODEL_P (current_cpu))
3331 {
3332 FLD (in_abase) = f_abase;
3333 FLD (out_dst) = f_srcdst;
3334 }
3335 #endif
3336 #undef FLD
3337 return idesc;
3338 }
3339
3340 extract_fmt_ldis_indirect_index:
3341 {
3342 const IDESC *idesc = &i960base_insn_data[itype];
3343 CGEN_INSN_INT insn = base_insn;
3344 #define FLD(f) abuf->fields.fmt_ldis_indirect_index.f
3345 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3346
3347 EXTRACT_IFMT_LDA_INDIRECT_CODE
3348
3349 /* Record the fields for the semantic handler. */
3350 FLD (f_scale) = f_scale;
3351 FLD (i_abase) = & CPU (h_gr)[f_abase];
3352 FLD (i_index) = & CPU (h_gr)[f_index];
3353 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3354 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldis_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));
3355
3356 #if WITH_PROFILE_MODEL_P
3357 /* Record the fields for profiling. */
3358 if (PROFILE_MODEL_P (current_cpu))
3359 {
3360 FLD (in_abase) = f_abase;
3361 FLD (in_index) = f_index;
3362 FLD (out_dst) = f_srcdst;
3363 }
3364 #endif
3365 #undef FLD
3366 return idesc;
3367 }
3368
3369 extract_fmt_ldis_disp:
3370 {
3371 const IDESC *idesc = &i960base_insn_data[itype];
3372 CGEN_INSN_INT insn = base_insn;
3373 #define FLD(f) abuf->fields.fmt_ldis_disp.f
3374 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3375
3376 EXTRACT_IFMT_LDA_DISP_CODE
3377
3378 /* Record the fields for the semantic handler. */
3379 FLD (f_optdisp) = f_optdisp;
3380 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3381 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldis_disp", "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3382
3383 #if WITH_PROFILE_MODEL_P
3384 /* Record the fields for profiling. */
3385 if (PROFILE_MODEL_P (current_cpu))
3386 {
3387 FLD (out_dst) = f_srcdst;
3388 }
3389 #endif
3390 #undef FLD
3391 return idesc;
3392 }
3393
3394 extract_fmt_ldis_indirect_disp:
3395 {
3396 const IDESC *idesc = &i960base_insn_data[itype];
3397 CGEN_INSN_INT insn = base_insn;
3398 #define FLD(f) abuf->fields.fmt_ldis_indirect_disp.f
3399 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3400
3401 EXTRACT_IFMT_LDA_DISP_CODE
3402
3403 /* Record the fields for the semantic handler. */
3404 FLD (f_optdisp) = f_optdisp;
3405 FLD (i_abase) = & CPU (h_gr)[f_abase];
3406 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3407 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldis_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3408
3409 #if WITH_PROFILE_MODEL_P
3410 /* Record the fields for profiling. */
3411 if (PROFILE_MODEL_P (current_cpu))
3412 {
3413 FLD (in_abase) = f_abase;
3414 FLD (out_dst) = f_srcdst;
3415 }
3416 #endif
3417 #undef FLD
3418 return idesc;
3419 }
3420
3421 extract_fmt_ldis_index_disp:
3422 {
3423 const IDESC *idesc = &i960base_insn_data[itype];
3424 CGEN_INSN_INT insn = base_insn;
3425 #define FLD(f) abuf->fields.fmt_ldis_index_disp.f
3426 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3427
3428 EXTRACT_IFMT_LDA_DISP_CODE
3429
3430 /* Record the fields for the semantic handler. */
3431 FLD (f_optdisp) = f_optdisp;
3432 FLD (f_scale) = f_scale;
3433 FLD (i_index) = & CPU (h_gr)[f_index];
3434 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3435 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldis_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));
3436
3437 #if WITH_PROFILE_MODEL_P
3438 /* Record the fields for profiling. */
3439 if (PROFILE_MODEL_P (current_cpu))
3440 {
3441 FLD (in_index) = f_index;
3442 FLD (out_dst) = f_srcdst;
3443 }
3444 #endif
3445 #undef FLD
3446 return idesc;
3447 }
3448
3449 extract_fmt_ldis_indirect_index_disp:
3450 {
3451 const IDESC *idesc = &i960base_insn_data[itype];
3452 CGEN_INSN_INT insn = base_insn;
3453 #define FLD(f) abuf->fields.fmt_ldis_indirect_index_disp.f
3454 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3455
3456 EXTRACT_IFMT_LDA_DISP_CODE
3457
3458 /* Record the fields for the semantic handler. */
3459 FLD (f_optdisp) = f_optdisp;
3460 FLD (f_scale) = f_scale;
3461 FLD (i_abase) = & CPU (h_gr)[f_abase];
3462 FLD (i_index) = & CPU (h_gr)[f_index];
3463 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3464 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldis_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));
3465
3466 #if WITH_PROFILE_MODEL_P
3467 /* Record the fields for profiling. */
3468 if (PROFILE_MODEL_P (current_cpu))
3469 {
3470 FLD (in_abase) = f_abase;
3471 FLD (in_index) = f_index;
3472 FLD (out_dst) = f_srcdst;
3473 }
3474 #endif
3475 #undef FLD
3476 return idesc;
3477 }
3478
3479 extract_fmt_ldl_offset:
3480 {
3481 const IDESC *idesc = &i960base_insn_data[itype];
3482 CGEN_INSN_INT insn = base_insn;
3483 #define FLD(f) abuf->fields.fmt_ldl_offset.f
3484 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
3485
3486 EXTRACT_IFMT_LDA_OFFSET_CODE
3487
3488 /* Record the fields for the semantic handler. */
3489 FLD (f_srcdst) = f_srcdst;
3490 FLD (f_offset) = f_offset;
3491 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3492 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldl_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3493
3494 #if WITH_PROFILE_MODEL_P
3495 /* Record the fields for profiling. */
3496 if (PROFILE_MODEL_P (current_cpu))
3497 {
3498 FLD (out_dst) = f_srcdst;
3499 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3500 }
3501 #endif
3502 #undef FLD
3503 return idesc;
3504 }
3505
3506 extract_fmt_ldl_indirect_offset:
3507 {
3508 const IDESC *idesc = &i960base_insn_data[itype];
3509 CGEN_INSN_INT insn = base_insn;
3510 #define FLD(f) abuf->fields.fmt_ldl_indirect_offset.f
3511 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
3512
3513 EXTRACT_IFMT_LDA_OFFSET_CODE
3514
3515 /* Record the fields for the semantic handler. */
3516 FLD (f_srcdst) = f_srcdst;
3517 FLD (f_offset) = f_offset;
3518 FLD (i_abase) = & CPU (h_gr)[f_abase];
3519 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3520 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3521
3522 #if WITH_PROFILE_MODEL_P
3523 /* Record the fields for profiling. */
3524 if (PROFILE_MODEL_P (current_cpu))
3525 {
3526 FLD (in_abase) = f_abase;
3527 FLD (out_dst) = f_srcdst;
3528 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3529 }
3530 #endif
3531 #undef FLD
3532 return idesc;
3533 }
3534
3535 extract_fmt_ldl_indirect:
3536 {
3537 const IDESC *idesc = &i960base_insn_data[itype];
3538 CGEN_INSN_INT insn = base_insn;
3539 #define FLD(f) abuf->fields.fmt_ldl_indirect.f
3540 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3541
3542 EXTRACT_IFMT_LDA_INDIRECT_CODE
3543
3544 /* Record the fields for the semantic handler. */
3545 FLD (f_srcdst) = f_srcdst;
3546 FLD (i_abase) = & CPU (h_gr)[f_abase];
3547 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3548 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldl_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3549
3550 #if WITH_PROFILE_MODEL_P
3551 /* Record the fields for profiling. */
3552 if (PROFILE_MODEL_P (current_cpu))
3553 {
3554 FLD (in_abase) = f_abase;
3555 FLD (out_dst) = f_srcdst;
3556 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3557 }
3558 #endif
3559 #undef FLD
3560 return idesc;
3561 }
3562
3563 extract_fmt_ldl_indirect_index:
3564 {
3565 const IDESC *idesc = &i960base_insn_data[itype];
3566 CGEN_INSN_INT insn = base_insn;
3567 #define FLD(f) abuf->fields.fmt_ldl_indirect_index.f
3568 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3569
3570 EXTRACT_IFMT_LDA_INDIRECT_CODE
3571
3572 /* Record the fields for the semantic handler. */
3573 FLD (f_srcdst) = f_srcdst;
3574 FLD (f_scale) = f_scale;
3575 FLD (i_abase) = & CPU (h_gr)[f_abase];
3576 FLD (i_index) = & CPU (h_gr)[f_index];
3577 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3578 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3579
3580 #if WITH_PROFILE_MODEL_P
3581 /* Record the fields for profiling. */
3582 if (PROFILE_MODEL_P (current_cpu))
3583 {
3584 FLD (in_abase) = f_abase;
3585 FLD (in_index) = f_index;
3586 FLD (out_dst) = f_srcdst;
3587 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3588 }
3589 #endif
3590 #undef FLD
3591 return idesc;
3592 }
3593
3594 extract_fmt_ldl_disp:
3595 {
3596 const IDESC *idesc = &i960base_insn_data[itype];
3597 CGEN_INSN_INT insn = base_insn;
3598 #define FLD(f) abuf->fields.fmt_ldl_disp.f
3599 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3600
3601 EXTRACT_IFMT_LDA_DISP_CODE
3602
3603 /* Record the fields for the semantic handler. */
3604 FLD (f_srcdst) = f_srcdst;
3605 FLD (f_optdisp) = f_optdisp;
3606 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3607 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldl_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3608
3609 #if WITH_PROFILE_MODEL_P
3610 /* Record the fields for profiling. */
3611 if (PROFILE_MODEL_P (current_cpu))
3612 {
3613 FLD (out_dst) = f_srcdst;
3614 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3615 }
3616 #endif
3617 #undef FLD
3618 return idesc;
3619 }
3620
3621 extract_fmt_ldl_indirect_disp:
3622 {
3623 const IDESC *idesc = &i960base_insn_data[itype];
3624 CGEN_INSN_INT insn = base_insn;
3625 #define FLD(f) abuf->fields.fmt_ldl_indirect_disp.f
3626 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3627
3628 EXTRACT_IFMT_LDA_DISP_CODE
3629
3630 /* Record the fields for the semantic handler. */
3631 FLD (f_srcdst) = f_srcdst;
3632 FLD (f_optdisp) = f_optdisp;
3633 FLD (i_abase) = & CPU (h_gr)[f_abase];
3634 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3635 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3636
3637 #if WITH_PROFILE_MODEL_P
3638 /* Record the fields for profiling. */
3639 if (PROFILE_MODEL_P (current_cpu))
3640 {
3641 FLD (in_abase) = f_abase;
3642 FLD (out_dst) = f_srcdst;
3643 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3644 }
3645 #endif
3646 #undef FLD
3647 return idesc;
3648 }
3649
3650 extract_fmt_ldl_index_disp:
3651 {
3652 const IDESC *idesc = &i960base_insn_data[itype];
3653 CGEN_INSN_INT insn = base_insn;
3654 #define FLD(f) abuf->fields.fmt_ldl_index_disp.f
3655 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3656
3657 EXTRACT_IFMT_LDA_DISP_CODE
3658
3659 /* Record the fields for the semantic handler. */
3660 FLD (f_srcdst) = f_srcdst;
3661 FLD (f_optdisp) = f_optdisp;
3662 FLD (f_scale) = f_scale;
3663 FLD (i_index) = & CPU (h_gr)[f_index];
3664 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3665 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3666
3667 #if WITH_PROFILE_MODEL_P
3668 /* Record the fields for profiling. */
3669 if (PROFILE_MODEL_P (current_cpu))
3670 {
3671 FLD (in_index) = f_index;
3672 FLD (out_dst) = f_srcdst;
3673 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3674 }
3675 #endif
3676 #undef FLD
3677 return idesc;
3678 }
3679
3680 extract_fmt_ldl_indirect_index_disp:
3681 {
3682 const IDESC *idesc = &i960base_insn_data[itype];
3683 CGEN_INSN_INT insn = base_insn;
3684 #define FLD(f) abuf->fields.fmt_ldl_indirect_index_disp.f
3685 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3686
3687 EXTRACT_IFMT_LDA_DISP_CODE
3688
3689 /* Record the fields for the semantic handler. */
3690 FLD (f_srcdst) = f_srcdst;
3691 FLD (f_optdisp) = f_optdisp;
3692 FLD (f_scale) = f_scale;
3693 FLD (i_abase) = & CPU (h_gr)[f_abase];
3694 FLD (i_index) = & CPU (h_gr)[f_index];
3695 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3696 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3697
3698 #if WITH_PROFILE_MODEL_P
3699 /* Record the fields for profiling. */
3700 if (PROFILE_MODEL_P (current_cpu))
3701 {
3702 FLD (in_abase) = f_abase;
3703 FLD (in_index) = f_index;
3704 FLD (out_dst) = f_srcdst;
3705 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3706 }
3707 #endif
3708 #undef FLD
3709 return idesc;
3710 }
3711
3712 extract_fmt_ldt_offset:
3713 {
3714 const IDESC *idesc = &i960base_insn_data[itype];
3715 CGEN_INSN_INT insn = base_insn;
3716 #define FLD(f) abuf->fields.fmt_ldt_offset.f
3717 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
3718
3719 EXTRACT_IFMT_LDA_OFFSET_CODE
3720
3721 /* Record the fields for the semantic handler. */
3722 FLD (f_srcdst) = f_srcdst;
3723 FLD (f_offset) = f_offset;
3724 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3725 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldt_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3726
3727 #if WITH_PROFILE_MODEL_P
3728 /* Record the fields for profiling. */
3729 if (PROFILE_MODEL_P (current_cpu))
3730 {
3731 FLD (out_dst) = f_srcdst;
3732 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3733 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
3734 }
3735 #endif
3736 #undef FLD
3737 return idesc;
3738 }
3739
3740 extract_fmt_ldt_indirect_offset:
3741 {
3742 const IDESC *idesc = &i960base_insn_data[itype];
3743 CGEN_INSN_INT insn = base_insn;
3744 #define FLD(f) abuf->fields.fmt_ldt_indirect_offset.f
3745 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
3746
3747 EXTRACT_IFMT_LDA_OFFSET_CODE
3748
3749 /* Record the fields for the semantic handler. */
3750 FLD (f_srcdst) = f_srcdst;
3751 FLD (f_offset) = f_offset;
3752 FLD (i_abase) = & CPU (h_gr)[f_abase];
3753 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3754 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3755
3756 #if WITH_PROFILE_MODEL_P
3757 /* Record the fields for profiling. */
3758 if (PROFILE_MODEL_P (current_cpu))
3759 {
3760 FLD (in_abase) = f_abase;
3761 FLD (out_dst) = f_srcdst;
3762 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3763 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
3764 }
3765 #endif
3766 #undef FLD
3767 return idesc;
3768 }
3769
3770 extract_fmt_ldt_indirect:
3771 {
3772 const IDESC *idesc = &i960base_insn_data[itype];
3773 CGEN_INSN_INT insn = base_insn;
3774 #define FLD(f) abuf->fields.fmt_ldt_indirect.f
3775 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3776
3777 EXTRACT_IFMT_LDA_INDIRECT_CODE
3778
3779 /* Record the fields for the semantic handler. */
3780 FLD (f_srcdst) = f_srcdst;
3781 FLD (i_abase) = & CPU (h_gr)[f_abase];
3782 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3783 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldt_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3784
3785 #if WITH_PROFILE_MODEL_P
3786 /* Record the fields for profiling. */
3787 if (PROFILE_MODEL_P (current_cpu))
3788 {
3789 FLD (in_abase) = f_abase;
3790 FLD (out_dst) = f_srcdst;
3791 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3792 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
3793 }
3794 #endif
3795 #undef FLD
3796 return idesc;
3797 }
3798
3799 extract_fmt_ldt_indirect_index:
3800 {
3801 const IDESC *idesc = &i960base_insn_data[itype];
3802 CGEN_INSN_INT insn = base_insn;
3803 #define FLD(f) abuf->fields.fmt_ldt_indirect_index.f
3804 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3805
3806 EXTRACT_IFMT_LDA_INDIRECT_CODE
3807
3808 /* Record the fields for the semantic handler. */
3809 FLD (f_srcdst) = f_srcdst;
3810 FLD (f_scale) = f_scale;
3811 FLD (i_abase) = & CPU (h_gr)[f_abase];
3812 FLD (i_index) = & CPU (h_gr)[f_index];
3813 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3814 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3815
3816 #if WITH_PROFILE_MODEL_P
3817 /* Record the fields for profiling. */
3818 if (PROFILE_MODEL_P (current_cpu))
3819 {
3820 FLD (in_abase) = f_abase;
3821 FLD (in_index) = f_index;
3822 FLD (out_dst) = f_srcdst;
3823 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3824 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
3825 }
3826 #endif
3827 #undef FLD
3828 return idesc;
3829 }
3830
3831 extract_fmt_ldt_disp:
3832 {
3833 const IDESC *idesc = &i960base_insn_data[itype];
3834 CGEN_INSN_INT insn = base_insn;
3835 #define FLD(f) abuf->fields.fmt_ldt_disp.f
3836 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3837
3838 EXTRACT_IFMT_LDA_DISP_CODE
3839
3840 /* Record the fields for the semantic handler. */
3841 FLD (f_srcdst) = f_srcdst;
3842 FLD (f_optdisp) = f_optdisp;
3843 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3844 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldt_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3845
3846 #if WITH_PROFILE_MODEL_P
3847 /* Record the fields for profiling. */
3848 if (PROFILE_MODEL_P (current_cpu))
3849 {
3850 FLD (out_dst) = f_srcdst;
3851 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3852 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
3853 }
3854 #endif
3855 #undef FLD
3856 return idesc;
3857 }
3858
3859 extract_fmt_ldt_indirect_disp:
3860 {
3861 const IDESC *idesc = &i960base_insn_data[itype];
3862 CGEN_INSN_INT insn = base_insn;
3863 #define FLD(f) abuf->fields.fmt_ldt_indirect_disp.f
3864 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3865
3866 EXTRACT_IFMT_LDA_DISP_CODE
3867
3868 /* Record the fields for the semantic handler. */
3869 FLD (f_srcdst) = f_srcdst;
3870 FLD (f_optdisp) = f_optdisp;
3871 FLD (i_abase) = & CPU (h_gr)[f_abase];
3872 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3873 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3874
3875 #if WITH_PROFILE_MODEL_P
3876 /* Record the fields for profiling. */
3877 if (PROFILE_MODEL_P (current_cpu))
3878 {
3879 FLD (in_abase) = f_abase;
3880 FLD (out_dst) = f_srcdst;
3881 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3882 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
3883 }
3884 #endif
3885 #undef FLD
3886 return idesc;
3887 }
3888
3889 extract_fmt_ldt_index_disp:
3890 {
3891 const IDESC *idesc = &i960base_insn_data[itype];
3892 CGEN_INSN_INT insn = base_insn;
3893 #define FLD(f) abuf->fields.fmt_ldt_index_disp.f
3894 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3895
3896 EXTRACT_IFMT_LDA_DISP_CODE
3897
3898 /* Record the fields for the semantic handler. */
3899 FLD (f_srcdst) = f_srcdst;
3900 FLD (f_optdisp) = f_optdisp;
3901 FLD (f_scale) = f_scale;
3902 FLD (i_index) = & CPU (h_gr)[f_index];
3903 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3904 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3905
3906 #if WITH_PROFILE_MODEL_P
3907 /* Record the fields for profiling. */
3908 if (PROFILE_MODEL_P (current_cpu))
3909 {
3910 FLD (in_index) = f_index;
3911 FLD (out_dst) = f_srcdst;
3912 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3913 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
3914 }
3915 #endif
3916 #undef FLD
3917 return idesc;
3918 }
3919
3920 extract_fmt_ldt_indirect_index_disp:
3921 {
3922 const IDESC *idesc = &i960base_insn_data[itype];
3923 CGEN_INSN_INT insn = base_insn;
3924 #define FLD(f) abuf->fields.fmt_ldt_indirect_index_disp.f
3925 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
3926
3927 EXTRACT_IFMT_LDA_DISP_CODE
3928
3929 /* Record the fields for the semantic handler. */
3930 FLD (f_srcdst) = f_srcdst;
3931 FLD (f_optdisp) = f_optdisp;
3932 FLD (f_scale) = f_scale;
3933 FLD (i_abase) = & CPU (h_gr)[f_abase];
3934 FLD (i_index) = & CPU (h_gr)[f_index];
3935 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3936 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3937
3938 #if WITH_PROFILE_MODEL_P
3939 /* Record the fields for profiling. */
3940 if (PROFILE_MODEL_P (current_cpu))
3941 {
3942 FLD (in_abase) = f_abase;
3943 FLD (in_index) = f_index;
3944 FLD (out_dst) = f_srcdst;
3945 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3946 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
3947 }
3948 #endif
3949 #undef FLD
3950 return idesc;
3951 }
3952
3953 extract_fmt_ldq_offset:
3954 {
3955 const IDESC *idesc = &i960base_insn_data[itype];
3956 CGEN_INSN_INT insn = base_insn;
3957 #define FLD(f) abuf->fields.fmt_ldq_offset.f
3958 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
3959
3960 EXTRACT_IFMT_LDA_OFFSET_CODE
3961
3962 /* Record the fields for the semantic handler. */
3963 FLD (f_srcdst) = f_srcdst;
3964 FLD (f_offset) = f_offset;
3965 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3966 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldq_offset", "f_srcdst 0x%x", 'x', f_srcdst, "f_offset 0x%x", 'x', f_offset, "dst 0x%x", 'x', f_srcdst, (char *) 0));
3967
3968 #if WITH_PROFILE_MODEL_P
3969 /* Record the fields for profiling. */
3970 if (PROFILE_MODEL_P (current_cpu))
3971 {
3972 FLD (out_dst) = f_srcdst;
3973 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
3974 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
3975 FLD (out_h_gr_add__VM_index_of_dst_3) = ((FLD (f_srcdst)) + (3));
3976 }
3977 #endif
3978 #undef FLD
3979 return idesc;
3980 }
3981
3982 extract_fmt_ldq_indirect_offset:
3983 {
3984 const IDESC *idesc = &i960base_insn_data[itype];
3985 CGEN_INSN_INT insn = base_insn;
3986 #define FLD(f) abuf->fields.fmt_ldq_indirect_offset.f
3987 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
3988
3989 EXTRACT_IFMT_LDA_OFFSET_CODE
3990
3991 /* Record the fields for the semantic handler. */
3992 FLD (f_srcdst) = f_srcdst;
3993 FLD (f_offset) = f_offset;
3994 FLD (i_abase) = & CPU (h_gr)[f_abase];
3995 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
3996 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
3997
3998 #if WITH_PROFILE_MODEL_P
3999 /* Record the fields for profiling. */
4000 if (PROFILE_MODEL_P (current_cpu))
4001 {
4002 FLD (in_abase) = f_abase;
4003 FLD (out_dst) = f_srcdst;
4004 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
4005 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
4006 FLD (out_h_gr_add__VM_index_of_dst_3) = ((FLD (f_srcdst)) + (3));
4007 }
4008 #endif
4009 #undef FLD
4010 return idesc;
4011 }
4012
4013 extract_fmt_ldq_indirect:
4014 {
4015 const IDESC *idesc = &i960base_insn_data[itype];
4016 CGEN_INSN_INT insn = base_insn;
4017 #define FLD(f) abuf->fields.fmt_ldq_indirect.f
4018 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4019
4020 EXTRACT_IFMT_LDA_INDIRECT_CODE
4021
4022 /* Record the fields for the semantic handler. */
4023 FLD (f_srcdst) = f_srcdst;
4024 FLD (i_abase) = & CPU (h_gr)[f_abase];
4025 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
4026 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldq_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "dst 0x%x", 'x', f_srcdst, (char *) 0));
4027
4028 #if WITH_PROFILE_MODEL_P
4029 /* Record the fields for profiling. */
4030 if (PROFILE_MODEL_P (current_cpu))
4031 {
4032 FLD (in_abase) = f_abase;
4033 FLD (out_dst) = f_srcdst;
4034 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
4035 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
4036 FLD (out_h_gr_add__VM_index_of_dst_3) = ((FLD (f_srcdst)) + (3));
4037 }
4038 #endif
4039 #undef FLD
4040 return idesc;
4041 }
4042
4043 extract_fmt_ldq_indirect_index:
4044 {
4045 const IDESC *idesc = &i960base_insn_data[itype];
4046 CGEN_INSN_INT insn = base_insn;
4047 #define FLD(f) abuf->fields.fmt_ldq_indirect_index.f
4048 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4049
4050 EXTRACT_IFMT_LDA_INDIRECT_CODE
4051
4052 /* Record the fields for the semantic handler. */
4053 FLD (f_srcdst) = f_srcdst;
4054 FLD (f_scale) = f_scale;
4055 FLD (i_abase) = & CPU (h_gr)[f_abase];
4056 FLD (i_index) = & CPU (h_gr)[f_index];
4057 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
4058 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4059
4060 #if WITH_PROFILE_MODEL_P
4061 /* Record the fields for profiling. */
4062 if (PROFILE_MODEL_P (current_cpu))
4063 {
4064 FLD (in_abase) = f_abase;
4065 FLD (in_index) = f_index;
4066 FLD (out_dst) = f_srcdst;
4067 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
4068 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
4069 FLD (out_h_gr_add__VM_index_of_dst_3) = ((FLD (f_srcdst)) + (3));
4070 }
4071 #endif
4072 #undef FLD
4073 return idesc;
4074 }
4075
4076 extract_fmt_ldq_disp:
4077 {
4078 const IDESC *idesc = &i960base_insn_data[itype];
4079 CGEN_INSN_INT insn = base_insn;
4080 #define FLD(f) abuf->fields.fmt_ldq_disp.f
4081 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4082
4083 EXTRACT_IFMT_LDA_DISP_CODE
4084
4085 /* Record the fields for the semantic handler. */
4086 FLD (f_srcdst) = f_srcdst;
4087 FLD (f_optdisp) = f_optdisp;
4088 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
4089 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ldq_disp", "f_srcdst 0x%x", 'x', f_srcdst, "f_optdisp 0x%x", 'x', f_optdisp, "dst 0x%x", 'x', f_srcdst, (char *) 0));
4090
4091 #if WITH_PROFILE_MODEL_P
4092 /* Record the fields for profiling. */
4093 if (PROFILE_MODEL_P (current_cpu))
4094 {
4095 FLD (out_dst) = f_srcdst;
4096 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
4097 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
4098 FLD (out_h_gr_add__VM_index_of_dst_3) = ((FLD (f_srcdst)) + (3));
4099 }
4100 #endif
4101 #undef FLD
4102 return idesc;
4103 }
4104
4105 extract_fmt_ldq_indirect_disp:
4106 {
4107 const IDESC *idesc = &i960base_insn_data[itype];
4108 CGEN_INSN_INT insn = base_insn;
4109 #define FLD(f) abuf->fields.fmt_ldq_indirect_disp.f
4110 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4111
4112 EXTRACT_IFMT_LDA_DISP_CODE
4113
4114 /* Record the fields for the semantic handler. */
4115 FLD (f_srcdst) = f_srcdst;
4116 FLD (f_optdisp) = f_optdisp;
4117 FLD (i_abase) = & CPU (h_gr)[f_abase];
4118 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
4119 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4120
4121 #if WITH_PROFILE_MODEL_P
4122 /* Record the fields for profiling. */
4123 if (PROFILE_MODEL_P (current_cpu))
4124 {
4125 FLD (in_abase) = f_abase;
4126 FLD (out_dst) = f_srcdst;
4127 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
4128 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
4129 FLD (out_h_gr_add__VM_index_of_dst_3) = ((FLD (f_srcdst)) + (3));
4130 }
4131 #endif
4132 #undef FLD
4133 return idesc;
4134 }
4135
4136 extract_fmt_ldq_index_disp:
4137 {
4138 const IDESC *idesc = &i960base_insn_data[itype];
4139 CGEN_INSN_INT insn = base_insn;
4140 #define FLD(f) abuf->fields.fmt_ldq_index_disp.f
4141 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4142
4143 EXTRACT_IFMT_LDA_DISP_CODE
4144
4145 /* Record the fields for the semantic handler. */
4146 FLD (f_srcdst) = f_srcdst;
4147 FLD (f_optdisp) = f_optdisp;
4148 FLD (f_scale) = f_scale;
4149 FLD (i_index) = & CPU (h_gr)[f_index];
4150 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
4151 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4152
4153 #if WITH_PROFILE_MODEL_P
4154 /* Record the fields for profiling. */
4155 if (PROFILE_MODEL_P (current_cpu))
4156 {
4157 FLD (in_index) = f_index;
4158 FLD (out_dst) = f_srcdst;
4159 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
4160 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
4161 FLD (out_h_gr_add__VM_index_of_dst_3) = ((FLD (f_srcdst)) + (3));
4162 }
4163 #endif
4164 #undef FLD
4165 return idesc;
4166 }
4167
4168 extract_fmt_ldq_indirect_index_disp:
4169 {
4170 const IDESC *idesc = &i960base_insn_data[itype];
4171 CGEN_INSN_INT insn = base_insn;
4172 #define FLD(f) abuf->fields.fmt_ldq_indirect_index_disp.f
4173 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4174
4175 EXTRACT_IFMT_LDA_DISP_CODE
4176
4177 /* Record the fields for the semantic handler. */
4178 FLD (f_srcdst) = f_srcdst;
4179 FLD (f_optdisp) = f_optdisp;
4180 FLD (f_scale) = f_scale;
4181 FLD (i_abase) = & CPU (h_gr)[f_abase];
4182 FLD (i_index) = & CPU (h_gr)[f_index];
4183 FLD (i_dst) = & CPU (h_gr)[f_srcdst];
4184 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4185
4186 #if WITH_PROFILE_MODEL_P
4187 /* Record the fields for profiling. */
4188 if (PROFILE_MODEL_P (current_cpu))
4189 {
4190 FLD (in_abase) = f_abase;
4191 FLD (in_index) = f_index;
4192 FLD (out_dst) = f_srcdst;
4193 FLD (out_h_gr_add__VM_index_of_dst_1) = ((FLD (f_srcdst)) + (1));
4194 FLD (out_h_gr_add__VM_index_of_dst_2) = ((FLD (f_srcdst)) + (2));
4195 FLD (out_h_gr_add__VM_index_of_dst_3) = ((FLD (f_srcdst)) + (3));
4196 }
4197 #endif
4198 #undef FLD
4199 return idesc;
4200 }
4201
4202 extract_fmt_st_offset:
4203 {
4204 const IDESC *idesc = &i960base_insn_data[itype];
4205 CGEN_INSN_INT insn = base_insn;
4206 #define FLD(f) abuf->fields.fmt_st_offset.f
4207 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
4208
4209 EXTRACT_IFMT_ST_OFFSET_CODE
4210
4211 /* Record the fields for the semantic handler. */
4212 FLD (f_offset) = f_offset;
4213 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4214 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_st_offset", "f_offset 0x%x", 'x', f_offset, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4215
4216 #if WITH_PROFILE_MODEL_P
4217 /* Record the fields for profiling. */
4218 if (PROFILE_MODEL_P (current_cpu))
4219 {
4220 FLD (in_st_src) = f_srcdst;
4221 }
4222 #endif
4223 #undef FLD
4224 return idesc;
4225 }
4226
4227 extract_fmt_st_indirect_offset:
4228 {
4229 const IDESC *idesc = &i960base_insn_data[itype];
4230 CGEN_INSN_INT insn = base_insn;
4231 #define FLD(f) abuf->fields.fmt_st_indirect_offset.f
4232 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
4233
4234 EXTRACT_IFMT_ST_OFFSET_CODE
4235
4236 /* Record the fields for the semantic handler. */
4237 FLD (f_offset) = f_offset;
4238 FLD (i_abase) = & CPU (h_gr)[f_abase];
4239 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4240 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4241
4242 #if WITH_PROFILE_MODEL_P
4243 /* Record the fields for profiling. */
4244 if (PROFILE_MODEL_P (current_cpu))
4245 {
4246 FLD (in_abase) = f_abase;
4247 FLD (in_st_src) = f_srcdst;
4248 }
4249 #endif
4250 #undef FLD
4251 return idesc;
4252 }
4253
4254 extract_fmt_st_indirect:
4255 {
4256 const IDESC *idesc = &i960base_insn_data[itype];
4257 CGEN_INSN_INT insn = base_insn;
4258 #define FLD(f) abuf->fields.fmt_st_indirect.f
4259 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4260
4261 EXTRACT_IFMT_ST_INDIRECT_CODE
4262
4263 /* Record the fields for the semantic handler. */
4264 FLD (i_abase) = & CPU (h_gr)[f_abase];
4265 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4266 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_st_indirect", "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4267
4268 #if WITH_PROFILE_MODEL_P
4269 /* Record the fields for profiling. */
4270 if (PROFILE_MODEL_P (current_cpu))
4271 {
4272 FLD (in_abase) = f_abase;
4273 FLD (in_st_src) = f_srcdst;
4274 }
4275 #endif
4276 #undef FLD
4277 return idesc;
4278 }
4279
4280 extract_fmt_st_indirect_index:
4281 {
4282 const IDESC *idesc = &i960base_insn_data[itype];
4283 CGEN_INSN_INT insn = base_insn;
4284 #define FLD(f) abuf->fields.fmt_st_indirect_index.f
4285 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4286
4287 EXTRACT_IFMT_ST_INDIRECT_CODE
4288
4289 /* Record the fields for the semantic handler. */
4290 FLD (f_scale) = f_scale;
4291 FLD (i_abase) = & CPU (h_gr)[f_abase];
4292 FLD (i_index) = & CPU (h_gr)[f_index];
4293 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4294 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4295
4296 #if WITH_PROFILE_MODEL_P
4297 /* Record the fields for profiling. */
4298 if (PROFILE_MODEL_P (current_cpu))
4299 {
4300 FLD (in_abase) = f_abase;
4301 FLD (in_index) = f_index;
4302 FLD (in_st_src) = f_srcdst;
4303 }
4304 #endif
4305 #undef FLD
4306 return idesc;
4307 }
4308
4309 extract_fmt_st_disp:
4310 {
4311 const IDESC *idesc = &i960base_insn_data[itype];
4312 CGEN_INSN_INT insn = base_insn;
4313 #define FLD(f) abuf->fields.fmt_st_disp.f
4314 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4315
4316 EXTRACT_IFMT_ST_DISP_CODE
4317
4318 /* Record the fields for the semantic handler. */
4319 FLD (f_optdisp) = f_optdisp;
4320 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4321 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_st_disp", "f_optdisp 0x%x", 'x', f_optdisp, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4322
4323 #if WITH_PROFILE_MODEL_P
4324 /* Record the fields for profiling. */
4325 if (PROFILE_MODEL_P (current_cpu))
4326 {
4327 FLD (in_st_src) = f_srcdst;
4328 }
4329 #endif
4330 #undef FLD
4331 return idesc;
4332 }
4333
4334 extract_fmt_st_indirect_disp:
4335 {
4336 const IDESC *idesc = &i960base_insn_data[itype];
4337 CGEN_INSN_INT insn = base_insn;
4338 #define FLD(f) abuf->fields.fmt_st_indirect_disp.f
4339 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4340
4341 EXTRACT_IFMT_ST_DISP_CODE
4342
4343 /* Record the fields for the semantic handler. */
4344 FLD (f_optdisp) = f_optdisp;
4345 FLD (i_abase) = & CPU (h_gr)[f_abase];
4346 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4347 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4348
4349 #if WITH_PROFILE_MODEL_P
4350 /* Record the fields for profiling. */
4351 if (PROFILE_MODEL_P (current_cpu))
4352 {
4353 FLD (in_abase) = f_abase;
4354 FLD (in_st_src) = f_srcdst;
4355 }
4356 #endif
4357 #undef FLD
4358 return idesc;
4359 }
4360
4361 extract_fmt_st_index_disp:
4362 {
4363 const IDESC *idesc = &i960base_insn_data[itype];
4364 CGEN_INSN_INT insn = base_insn;
4365 #define FLD(f) abuf->fields.fmt_st_index_disp.f
4366 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4367
4368 EXTRACT_IFMT_ST_DISP_CODE
4369
4370 /* Record the fields for the semantic handler. */
4371 FLD (f_optdisp) = f_optdisp;
4372 FLD (f_scale) = f_scale;
4373 FLD (i_index) = & CPU (h_gr)[f_index];
4374 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4375 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4376
4377 #if WITH_PROFILE_MODEL_P
4378 /* Record the fields for profiling. */
4379 if (PROFILE_MODEL_P (current_cpu))
4380 {
4381 FLD (in_index) = f_index;
4382 FLD (in_st_src) = f_srcdst;
4383 }
4384 #endif
4385 #undef FLD
4386 return idesc;
4387 }
4388
4389 extract_fmt_st_indirect_index_disp:
4390 {
4391 const IDESC *idesc = &i960base_insn_data[itype];
4392 CGEN_INSN_INT insn = base_insn;
4393 #define FLD(f) abuf->fields.fmt_st_indirect_index_disp.f
4394 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4395
4396 EXTRACT_IFMT_ST_DISP_CODE
4397
4398 /* Record the fields for the semantic handler. */
4399 FLD (f_optdisp) = f_optdisp;
4400 FLD (f_scale) = f_scale;
4401 FLD (i_abase) = & CPU (h_gr)[f_abase];
4402 FLD (i_index) = & CPU (h_gr)[f_index];
4403 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4404 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4405
4406 #if WITH_PROFILE_MODEL_P
4407 /* Record the fields for profiling. */
4408 if (PROFILE_MODEL_P (current_cpu))
4409 {
4410 FLD (in_abase) = f_abase;
4411 FLD (in_index) = f_index;
4412 FLD (in_st_src) = f_srcdst;
4413 }
4414 #endif
4415 #undef FLD
4416 return idesc;
4417 }
4418
4419 extract_fmt_stob_offset:
4420 {
4421 const IDESC *idesc = &i960base_insn_data[itype];
4422 CGEN_INSN_INT insn = base_insn;
4423 #define FLD(f) abuf->fields.fmt_stob_offset.f
4424 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
4425
4426 EXTRACT_IFMT_ST_OFFSET_CODE
4427
4428 /* Record the fields for the semantic handler. */
4429 FLD (f_offset) = f_offset;
4430 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4431 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stob_offset", "f_offset 0x%x", 'x', f_offset, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4432
4433 #if WITH_PROFILE_MODEL_P
4434 /* Record the fields for profiling. */
4435 if (PROFILE_MODEL_P (current_cpu))
4436 {
4437 FLD (in_st_src) = f_srcdst;
4438 }
4439 #endif
4440 #undef FLD
4441 return idesc;
4442 }
4443
4444 extract_fmt_stob_indirect_offset:
4445 {
4446 const IDESC *idesc = &i960base_insn_data[itype];
4447 CGEN_INSN_INT insn = base_insn;
4448 #define FLD(f) abuf->fields.fmt_stob_indirect_offset.f
4449 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
4450
4451 EXTRACT_IFMT_ST_OFFSET_CODE
4452
4453 /* Record the fields for the semantic handler. */
4454 FLD (f_offset) = f_offset;
4455 FLD (i_abase) = & CPU (h_gr)[f_abase];
4456 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4457 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stob_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4458
4459 #if WITH_PROFILE_MODEL_P
4460 /* Record the fields for profiling. */
4461 if (PROFILE_MODEL_P (current_cpu))
4462 {
4463 FLD (in_abase) = f_abase;
4464 FLD (in_st_src) = f_srcdst;
4465 }
4466 #endif
4467 #undef FLD
4468 return idesc;
4469 }
4470
4471 extract_fmt_stob_indirect:
4472 {
4473 const IDESC *idesc = &i960base_insn_data[itype];
4474 CGEN_INSN_INT insn = base_insn;
4475 #define FLD(f) abuf->fields.fmt_stob_indirect.f
4476 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4477
4478 EXTRACT_IFMT_ST_INDIRECT_CODE
4479
4480 /* Record the fields for the semantic handler. */
4481 FLD (i_abase) = & CPU (h_gr)[f_abase];
4482 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4483 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stob_indirect", "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4484
4485 #if WITH_PROFILE_MODEL_P
4486 /* Record the fields for profiling. */
4487 if (PROFILE_MODEL_P (current_cpu))
4488 {
4489 FLD (in_abase) = f_abase;
4490 FLD (in_st_src) = f_srcdst;
4491 }
4492 #endif
4493 #undef FLD
4494 return idesc;
4495 }
4496
4497 extract_fmt_stob_indirect_index:
4498 {
4499 const IDESC *idesc = &i960base_insn_data[itype];
4500 CGEN_INSN_INT insn = base_insn;
4501 #define FLD(f) abuf->fields.fmt_stob_indirect_index.f
4502 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4503
4504 EXTRACT_IFMT_ST_INDIRECT_CODE
4505
4506 /* Record the fields for the semantic handler. */
4507 FLD (f_scale) = f_scale;
4508 FLD (i_abase) = & CPU (h_gr)[f_abase];
4509 FLD (i_index) = & CPU (h_gr)[f_index];
4510 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4511 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stob_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));
4512
4513 #if WITH_PROFILE_MODEL_P
4514 /* Record the fields for profiling. */
4515 if (PROFILE_MODEL_P (current_cpu))
4516 {
4517 FLD (in_abase) = f_abase;
4518 FLD (in_index) = f_index;
4519 FLD (in_st_src) = f_srcdst;
4520 }
4521 #endif
4522 #undef FLD
4523 return idesc;
4524 }
4525
4526 extract_fmt_stob_disp:
4527 {
4528 const IDESC *idesc = &i960base_insn_data[itype];
4529 CGEN_INSN_INT insn = base_insn;
4530 #define FLD(f) abuf->fields.fmt_stob_disp.f
4531 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4532
4533 EXTRACT_IFMT_ST_DISP_CODE
4534
4535 /* Record the fields for the semantic handler. */
4536 FLD (f_optdisp) = f_optdisp;
4537 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4538 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stob_disp", "f_optdisp 0x%x", 'x', f_optdisp, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4539
4540 #if WITH_PROFILE_MODEL_P
4541 /* Record the fields for profiling. */
4542 if (PROFILE_MODEL_P (current_cpu))
4543 {
4544 FLD (in_st_src) = f_srcdst;
4545 }
4546 #endif
4547 #undef FLD
4548 return idesc;
4549 }
4550
4551 extract_fmt_stob_indirect_disp:
4552 {
4553 const IDESC *idesc = &i960base_insn_data[itype];
4554 CGEN_INSN_INT insn = base_insn;
4555 #define FLD(f) abuf->fields.fmt_stob_indirect_disp.f
4556 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4557
4558 EXTRACT_IFMT_ST_DISP_CODE
4559
4560 /* Record the fields for the semantic handler. */
4561 FLD (f_optdisp) = f_optdisp;
4562 FLD (i_abase) = & CPU (h_gr)[f_abase];
4563 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4564 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stob_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4565
4566 #if WITH_PROFILE_MODEL_P
4567 /* Record the fields for profiling. */
4568 if (PROFILE_MODEL_P (current_cpu))
4569 {
4570 FLD (in_abase) = f_abase;
4571 FLD (in_st_src) = f_srcdst;
4572 }
4573 #endif
4574 #undef FLD
4575 return idesc;
4576 }
4577
4578 extract_fmt_stob_index_disp:
4579 {
4580 const IDESC *idesc = &i960base_insn_data[itype];
4581 CGEN_INSN_INT insn = base_insn;
4582 #define FLD(f) abuf->fields.fmt_stob_index_disp.f
4583 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4584
4585 EXTRACT_IFMT_ST_DISP_CODE
4586
4587 /* Record the fields for the semantic handler. */
4588 FLD (f_optdisp) = f_optdisp;
4589 FLD (f_scale) = f_scale;
4590 FLD (i_index) = & CPU (h_gr)[f_index];
4591 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4592 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stob_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));
4593
4594 #if WITH_PROFILE_MODEL_P
4595 /* Record the fields for profiling. */
4596 if (PROFILE_MODEL_P (current_cpu))
4597 {
4598 FLD (in_index) = f_index;
4599 FLD (in_st_src) = f_srcdst;
4600 }
4601 #endif
4602 #undef FLD
4603 return idesc;
4604 }
4605
4606 extract_fmt_stob_indirect_index_disp:
4607 {
4608 const IDESC *idesc = &i960base_insn_data[itype];
4609 CGEN_INSN_INT insn = base_insn;
4610 #define FLD(f) abuf->fields.fmt_stob_indirect_index_disp.f
4611 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4612
4613 EXTRACT_IFMT_ST_DISP_CODE
4614
4615 /* Record the fields for the semantic handler. */
4616 FLD (f_optdisp) = f_optdisp;
4617 FLD (f_scale) = f_scale;
4618 FLD (i_abase) = & CPU (h_gr)[f_abase];
4619 FLD (i_index) = & CPU (h_gr)[f_index];
4620 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4621 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stob_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));
4622
4623 #if WITH_PROFILE_MODEL_P
4624 /* Record the fields for profiling. */
4625 if (PROFILE_MODEL_P (current_cpu))
4626 {
4627 FLD (in_abase) = f_abase;
4628 FLD (in_index) = f_index;
4629 FLD (in_st_src) = f_srcdst;
4630 }
4631 #endif
4632 #undef FLD
4633 return idesc;
4634 }
4635
4636 extract_fmt_stos_offset:
4637 {
4638 const IDESC *idesc = &i960base_insn_data[itype];
4639 CGEN_INSN_INT insn = base_insn;
4640 #define FLD(f) abuf->fields.fmt_stos_offset.f
4641 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
4642
4643 EXTRACT_IFMT_ST_OFFSET_CODE
4644
4645 /* Record the fields for the semantic handler. */
4646 FLD (f_offset) = f_offset;
4647 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4648 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stos_offset", "f_offset 0x%x", 'x', f_offset, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4649
4650 #if WITH_PROFILE_MODEL_P
4651 /* Record the fields for profiling. */
4652 if (PROFILE_MODEL_P (current_cpu))
4653 {
4654 FLD (in_st_src) = f_srcdst;
4655 }
4656 #endif
4657 #undef FLD
4658 return idesc;
4659 }
4660
4661 extract_fmt_stos_indirect_offset:
4662 {
4663 const IDESC *idesc = &i960base_insn_data[itype];
4664 CGEN_INSN_INT insn = base_insn;
4665 #define FLD(f) abuf->fields.fmt_stos_indirect_offset.f
4666 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
4667
4668 EXTRACT_IFMT_ST_OFFSET_CODE
4669
4670 /* Record the fields for the semantic handler. */
4671 FLD (f_offset) = f_offset;
4672 FLD (i_abase) = & CPU (h_gr)[f_abase];
4673 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4674 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stos_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4675
4676 #if WITH_PROFILE_MODEL_P
4677 /* Record the fields for profiling. */
4678 if (PROFILE_MODEL_P (current_cpu))
4679 {
4680 FLD (in_abase) = f_abase;
4681 FLD (in_st_src) = f_srcdst;
4682 }
4683 #endif
4684 #undef FLD
4685 return idesc;
4686 }
4687
4688 extract_fmt_stos_indirect:
4689 {
4690 const IDESC *idesc = &i960base_insn_data[itype];
4691 CGEN_INSN_INT insn = base_insn;
4692 #define FLD(f) abuf->fields.fmt_stos_indirect.f
4693 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4694
4695 EXTRACT_IFMT_ST_INDIRECT_CODE
4696
4697 /* Record the fields for the semantic handler. */
4698 FLD (i_abase) = & CPU (h_gr)[f_abase];
4699 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4700 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stos_indirect", "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4701
4702 #if WITH_PROFILE_MODEL_P
4703 /* Record the fields for profiling. */
4704 if (PROFILE_MODEL_P (current_cpu))
4705 {
4706 FLD (in_abase) = f_abase;
4707 FLD (in_st_src) = f_srcdst;
4708 }
4709 #endif
4710 #undef FLD
4711 return idesc;
4712 }
4713
4714 extract_fmt_stos_indirect_index:
4715 {
4716 const IDESC *idesc = &i960base_insn_data[itype];
4717 CGEN_INSN_INT insn = base_insn;
4718 #define FLD(f) abuf->fields.fmt_stos_indirect_index.f
4719 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4720
4721 EXTRACT_IFMT_ST_INDIRECT_CODE
4722
4723 /* Record the fields for the semantic handler. */
4724 FLD (f_scale) = f_scale;
4725 FLD (i_abase) = & CPU (h_gr)[f_abase];
4726 FLD (i_index) = & CPU (h_gr)[f_index];
4727 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4728 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stos_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));
4729
4730 #if WITH_PROFILE_MODEL_P
4731 /* Record the fields for profiling. */
4732 if (PROFILE_MODEL_P (current_cpu))
4733 {
4734 FLD (in_abase) = f_abase;
4735 FLD (in_index) = f_index;
4736 FLD (in_st_src) = f_srcdst;
4737 }
4738 #endif
4739 #undef FLD
4740 return idesc;
4741 }
4742
4743 extract_fmt_stos_disp:
4744 {
4745 const IDESC *idesc = &i960base_insn_data[itype];
4746 CGEN_INSN_INT insn = base_insn;
4747 #define FLD(f) abuf->fields.fmt_stos_disp.f
4748 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4749
4750 EXTRACT_IFMT_ST_DISP_CODE
4751
4752 /* Record the fields for the semantic handler. */
4753 FLD (f_optdisp) = f_optdisp;
4754 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4755 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stos_disp", "f_optdisp 0x%x", 'x', f_optdisp, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4756
4757 #if WITH_PROFILE_MODEL_P
4758 /* Record the fields for profiling. */
4759 if (PROFILE_MODEL_P (current_cpu))
4760 {
4761 FLD (in_st_src) = f_srcdst;
4762 }
4763 #endif
4764 #undef FLD
4765 return idesc;
4766 }
4767
4768 extract_fmt_stos_indirect_disp:
4769 {
4770 const IDESC *idesc = &i960base_insn_data[itype];
4771 CGEN_INSN_INT insn = base_insn;
4772 #define FLD(f) abuf->fields.fmt_stos_indirect_disp.f
4773 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4774
4775 EXTRACT_IFMT_ST_DISP_CODE
4776
4777 /* Record the fields for the semantic handler. */
4778 FLD (f_optdisp) = f_optdisp;
4779 FLD (i_abase) = & CPU (h_gr)[f_abase];
4780 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4781 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stos_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4782
4783 #if WITH_PROFILE_MODEL_P
4784 /* Record the fields for profiling. */
4785 if (PROFILE_MODEL_P (current_cpu))
4786 {
4787 FLD (in_abase) = f_abase;
4788 FLD (in_st_src) = f_srcdst;
4789 }
4790 #endif
4791 #undef FLD
4792 return idesc;
4793 }
4794
4795 extract_fmt_stos_index_disp:
4796 {
4797 const IDESC *idesc = &i960base_insn_data[itype];
4798 CGEN_INSN_INT insn = base_insn;
4799 #define FLD(f) abuf->fields.fmt_stos_index_disp.f
4800 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4801
4802 EXTRACT_IFMT_ST_DISP_CODE
4803
4804 /* Record the fields for the semantic handler. */
4805 FLD (f_optdisp) = f_optdisp;
4806 FLD (f_scale) = f_scale;
4807 FLD (i_index) = & CPU (h_gr)[f_index];
4808 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4809 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stos_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));
4810
4811 #if WITH_PROFILE_MODEL_P
4812 /* Record the fields for profiling. */
4813 if (PROFILE_MODEL_P (current_cpu))
4814 {
4815 FLD (in_index) = f_index;
4816 FLD (in_st_src) = f_srcdst;
4817 }
4818 #endif
4819 #undef FLD
4820 return idesc;
4821 }
4822
4823 extract_fmt_stos_indirect_index_disp:
4824 {
4825 const IDESC *idesc = &i960base_insn_data[itype];
4826 CGEN_INSN_INT insn = base_insn;
4827 #define FLD(f) abuf->fields.fmt_stos_indirect_index_disp.f
4828 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4829
4830 EXTRACT_IFMT_ST_DISP_CODE
4831
4832 /* Record the fields for the semantic handler. */
4833 FLD (f_optdisp) = f_optdisp;
4834 FLD (f_scale) = f_scale;
4835 FLD (i_abase) = & CPU (h_gr)[f_abase];
4836 FLD (i_index) = & CPU (h_gr)[f_index];
4837 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4838 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stos_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));
4839
4840 #if WITH_PROFILE_MODEL_P
4841 /* Record the fields for profiling. */
4842 if (PROFILE_MODEL_P (current_cpu))
4843 {
4844 FLD (in_abase) = f_abase;
4845 FLD (in_index) = f_index;
4846 FLD (in_st_src) = f_srcdst;
4847 }
4848 #endif
4849 #undef FLD
4850 return idesc;
4851 }
4852
4853 extract_fmt_stl_offset:
4854 {
4855 const IDESC *idesc = &i960base_insn_data[itype];
4856 CGEN_INSN_INT insn = base_insn;
4857 #define FLD(f) abuf->fields.fmt_stl_offset.f
4858 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
4859
4860 EXTRACT_IFMT_ST_OFFSET_CODE
4861
4862 /* Record the fields for the semantic handler. */
4863 FLD (f_srcdst) = f_srcdst;
4864 FLD (f_offset) = f_offset;
4865 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4866 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4867
4868 #if WITH_PROFILE_MODEL_P
4869 /* Record the fields for profiling. */
4870 if (PROFILE_MODEL_P (current_cpu))
4871 {
4872 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
4873 FLD (in_st_src) = f_srcdst;
4874 }
4875 #endif
4876 #undef FLD
4877 return idesc;
4878 }
4879
4880 extract_fmt_stl_indirect_offset:
4881 {
4882 const IDESC *idesc = &i960base_insn_data[itype];
4883 CGEN_INSN_INT insn = base_insn;
4884 #define FLD(f) abuf->fields.fmt_stl_indirect_offset.f
4885 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
4886
4887 EXTRACT_IFMT_ST_OFFSET_CODE
4888
4889 /* Record the fields for the semantic handler. */
4890 FLD (f_srcdst) = f_srcdst;
4891 FLD (f_offset) = f_offset;
4892 FLD (i_abase) = & CPU (h_gr)[f_abase];
4893 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4894 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4895
4896 #if WITH_PROFILE_MODEL_P
4897 /* Record the fields for profiling. */
4898 if (PROFILE_MODEL_P (current_cpu))
4899 {
4900 FLD (in_abase) = f_abase;
4901 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
4902 FLD (in_st_src) = f_srcdst;
4903 }
4904 #endif
4905 #undef FLD
4906 return idesc;
4907 }
4908
4909 extract_fmt_stl_indirect:
4910 {
4911 const IDESC *idesc = &i960base_insn_data[itype];
4912 CGEN_INSN_INT insn = base_insn;
4913 #define FLD(f) abuf->fields.fmt_stl_indirect.f
4914 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4915
4916 EXTRACT_IFMT_ST_INDIRECT_CODE
4917
4918 /* Record the fields for the semantic handler. */
4919 FLD (f_srcdst) = f_srcdst;
4920 FLD (i_abase) = & CPU (h_gr)[f_abase];
4921 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4922 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stl_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
4923
4924 #if WITH_PROFILE_MODEL_P
4925 /* Record the fields for profiling. */
4926 if (PROFILE_MODEL_P (current_cpu))
4927 {
4928 FLD (in_abase) = f_abase;
4929 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
4930 FLD (in_st_src) = f_srcdst;
4931 }
4932 #endif
4933 #undef FLD
4934 return idesc;
4935 }
4936
4937 extract_fmt_stl_indirect_index:
4938 {
4939 const IDESC *idesc = &i960base_insn_data[itype];
4940 CGEN_INSN_INT insn = base_insn;
4941 #define FLD(f) abuf->fields.fmt_stl_indirect_index.f
4942 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4943
4944 EXTRACT_IFMT_ST_INDIRECT_CODE
4945
4946 /* Record the fields for the semantic handler. */
4947 FLD (f_srcdst) = f_srcdst;
4948 FLD (f_scale) = f_scale;
4949 FLD (i_abase) = & CPU (h_gr)[f_abase];
4950 FLD (i_index) = & CPU (h_gr)[f_index];
4951 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4952 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4953
4954 #if WITH_PROFILE_MODEL_P
4955 /* Record the fields for profiling. */
4956 if (PROFILE_MODEL_P (current_cpu))
4957 {
4958 FLD (in_abase) = f_abase;
4959 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
4960 FLD (in_index) = f_index;
4961 FLD (in_st_src) = f_srcdst;
4962 }
4963 #endif
4964 #undef FLD
4965 return idesc;
4966 }
4967
4968 extract_fmt_stl_disp:
4969 {
4970 const IDESC *idesc = &i960base_insn_data[itype];
4971 CGEN_INSN_INT insn = base_insn;
4972 #define FLD(f) abuf->fields.fmt_stl_disp.f
4973 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
4974
4975 EXTRACT_IFMT_ST_DISP_CODE
4976
4977 /* Record the fields for the semantic handler. */
4978 FLD (f_srcdst) = f_srcdst;
4979 FLD (f_optdisp) = f_optdisp;
4980 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
4981 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
4982
4983 #if WITH_PROFILE_MODEL_P
4984 /* Record the fields for profiling. */
4985 if (PROFILE_MODEL_P (current_cpu))
4986 {
4987 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
4988 FLD (in_st_src) = f_srcdst;
4989 }
4990 #endif
4991 #undef FLD
4992 return idesc;
4993 }
4994
4995 extract_fmt_stl_indirect_disp:
4996 {
4997 const IDESC *idesc = &i960base_insn_data[itype];
4998 CGEN_INSN_INT insn = base_insn;
4999 #define FLD(f) abuf->fields.fmt_stl_indirect_disp.f
5000 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5001
5002 EXTRACT_IFMT_ST_DISP_CODE
5003
5004 /* Record the fields for the semantic handler. */
5005 FLD (f_srcdst) = f_srcdst;
5006 FLD (f_optdisp) = f_optdisp;
5007 FLD (i_abase) = & CPU (h_gr)[f_abase];
5008 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5009 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5010
5011 #if WITH_PROFILE_MODEL_P
5012 /* Record the fields for profiling. */
5013 if (PROFILE_MODEL_P (current_cpu))
5014 {
5015 FLD (in_abase) = f_abase;
5016 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5017 FLD (in_st_src) = f_srcdst;
5018 }
5019 #endif
5020 #undef FLD
5021 return idesc;
5022 }
5023
5024 extract_fmt_stl_index_disp:
5025 {
5026 const IDESC *idesc = &i960base_insn_data[itype];
5027 CGEN_INSN_INT insn = base_insn;
5028 #define FLD(f) abuf->fields.fmt_stl_index_disp.f
5029 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5030
5031 EXTRACT_IFMT_ST_DISP_CODE
5032
5033 /* Record the fields for the semantic handler. */
5034 FLD (f_srcdst) = f_srcdst;
5035 FLD (f_optdisp) = f_optdisp;
5036 FLD (f_scale) = f_scale;
5037 FLD (i_index) = & CPU (h_gr)[f_index];
5038 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5039 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5040
5041 #if WITH_PROFILE_MODEL_P
5042 /* Record the fields for profiling. */
5043 if (PROFILE_MODEL_P (current_cpu))
5044 {
5045 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5046 FLD (in_index) = f_index;
5047 FLD (in_st_src) = f_srcdst;
5048 }
5049 #endif
5050 #undef FLD
5051 return idesc;
5052 }
5053
5054 extract_fmt_stl_indirect_index_disp:
5055 {
5056 const IDESC *idesc = &i960base_insn_data[itype];
5057 CGEN_INSN_INT insn = base_insn;
5058 #define FLD(f) abuf->fields.fmt_stl_indirect_index_disp.f
5059 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5060
5061 EXTRACT_IFMT_ST_DISP_CODE
5062
5063 /* Record the fields for the semantic handler. */
5064 FLD (f_srcdst) = f_srcdst;
5065 FLD (f_optdisp) = f_optdisp;
5066 FLD (f_scale) = f_scale;
5067 FLD (i_abase) = & CPU (h_gr)[f_abase];
5068 FLD (i_index) = & CPU (h_gr)[f_index];
5069 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5070 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5071
5072 #if WITH_PROFILE_MODEL_P
5073 /* Record the fields for profiling. */
5074 if (PROFILE_MODEL_P (current_cpu))
5075 {
5076 FLD (in_abase) = f_abase;
5077 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5078 FLD (in_index) = f_index;
5079 FLD (in_st_src) = f_srcdst;
5080 }
5081 #endif
5082 #undef FLD
5083 return idesc;
5084 }
5085
5086 extract_fmt_stt_offset:
5087 {
5088 const IDESC *idesc = &i960base_insn_data[itype];
5089 CGEN_INSN_INT insn = base_insn;
5090 #define FLD(f) abuf->fields.fmt_stt_offset.f
5091 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
5092
5093 EXTRACT_IFMT_ST_OFFSET_CODE
5094
5095 /* Record the fields for the semantic handler. */
5096 FLD (f_srcdst) = f_srcdst;
5097 FLD (f_offset) = f_offset;
5098 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5099 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5100
5101 #if WITH_PROFILE_MODEL_P
5102 /* Record the fields for profiling. */
5103 if (PROFILE_MODEL_P (current_cpu))
5104 {
5105 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5106 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5107 FLD (in_st_src) = f_srcdst;
5108 }
5109 #endif
5110 #undef FLD
5111 return idesc;
5112 }
5113
5114 extract_fmt_stt_indirect_offset:
5115 {
5116 const IDESC *idesc = &i960base_insn_data[itype];
5117 CGEN_INSN_INT insn = base_insn;
5118 #define FLD(f) abuf->fields.fmt_stt_indirect_offset.f
5119 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
5120
5121 EXTRACT_IFMT_ST_OFFSET_CODE
5122
5123 /* Record the fields for the semantic handler. */
5124 FLD (f_srcdst) = f_srcdst;
5125 FLD (f_offset) = f_offset;
5126 FLD (i_abase) = & CPU (h_gr)[f_abase];
5127 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5128 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5129
5130 #if WITH_PROFILE_MODEL_P
5131 /* Record the fields for profiling. */
5132 if (PROFILE_MODEL_P (current_cpu))
5133 {
5134 FLD (in_abase) = f_abase;
5135 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5136 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5137 FLD (in_st_src) = f_srcdst;
5138 }
5139 #endif
5140 #undef FLD
5141 return idesc;
5142 }
5143
5144 extract_fmt_stt_indirect:
5145 {
5146 const IDESC *idesc = &i960base_insn_data[itype];
5147 CGEN_INSN_INT insn = base_insn;
5148 #define FLD(f) abuf->fields.fmt_stt_indirect.f
5149 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5150
5151 EXTRACT_IFMT_ST_INDIRECT_CODE
5152
5153 /* Record the fields for the semantic handler. */
5154 FLD (f_srcdst) = f_srcdst;
5155 FLD (i_abase) = & CPU (h_gr)[f_abase];
5156 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5157 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stt_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
5158
5159 #if WITH_PROFILE_MODEL_P
5160 /* Record the fields for profiling. */
5161 if (PROFILE_MODEL_P (current_cpu))
5162 {
5163 FLD (in_abase) = f_abase;
5164 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5165 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5166 FLD (in_st_src) = f_srcdst;
5167 }
5168 #endif
5169 #undef FLD
5170 return idesc;
5171 }
5172
5173 extract_fmt_stt_indirect_index:
5174 {
5175 const IDESC *idesc = &i960base_insn_data[itype];
5176 CGEN_INSN_INT insn = base_insn;
5177 #define FLD(f) abuf->fields.fmt_stt_indirect_index.f
5178 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5179
5180 EXTRACT_IFMT_ST_INDIRECT_CODE
5181
5182 /* Record the fields for the semantic handler. */
5183 FLD (f_srcdst) = f_srcdst;
5184 FLD (f_scale) = f_scale;
5185 FLD (i_abase) = & CPU (h_gr)[f_abase];
5186 FLD (i_index) = & CPU (h_gr)[f_index];
5187 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5188 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5189
5190 #if WITH_PROFILE_MODEL_P
5191 /* Record the fields for profiling. */
5192 if (PROFILE_MODEL_P (current_cpu))
5193 {
5194 FLD (in_abase) = f_abase;
5195 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5196 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5197 FLD (in_index) = f_index;
5198 FLD (in_st_src) = f_srcdst;
5199 }
5200 #endif
5201 #undef FLD
5202 return idesc;
5203 }
5204
5205 extract_fmt_stt_disp:
5206 {
5207 const IDESC *idesc = &i960base_insn_data[itype];
5208 CGEN_INSN_INT insn = base_insn;
5209 #define FLD(f) abuf->fields.fmt_stt_disp.f
5210 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5211
5212 EXTRACT_IFMT_ST_DISP_CODE
5213
5214 /* Record the fields for the semantic handler. */
5215 FLD (f_srcdst) = f_srcdst;
5216 FLD (f_optdisp) = f_optdisp;
5217 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5218 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5219
5220 #if WITH_PROFILE_MODEL_P
5221 /* Record the fields for profiling. */
5222 if (PROFILE_MODEL_P (current_cpu))
5223 {
5224 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5225 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5226 FLD (in_st_src) = f_srcdst;
5227 }
5228 #endif
5229 #undef FLD
5230 return idesc;
5231 }
5232
5233 extract_fmt_stt_indirect_disp:
5234 {
5235 const IDESC *idesc = &i960base_insn_data[itype];
5236 CGEN_INSN_INT insn = base_insn;
5237 #define FLD(f) abuf->fields.fmt_stt_indirect_disp.f
5238 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5239
5240 EXTRACT_IFMT_ST_DISP_CODE
5241
5242 /* Record the fields for the semantic handler. */
5243 FLD (f_srcdst) = f_srcdst;
5244 FLD (f_optdisp) = f_optdisp;
5245 FLD (i_abase) = & CPU (h_gr)[f_abase];
5246 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5247 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5248
5249 #if WITH_PROFILE_MODEL_P
5250 /* Record the fields for profiling. */
5251 if (PROFILE_MODEL_P (current_cpu))
5252 {
5253 FLD (in_abase) = f_abase;
5254 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5255 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5256 FLD (in_st_src) = f_srcdst;
5257 }
5258 #endif
5259 #undef FLD
5260 return idesc;
5261 }
5262
5263 extract_fmt_stt_index_disp:
5264 {
5265 const IDESC *idesc = &i960base_insn_data[itype];
5266 CGEN_INSN_INT insn = base_insn;
5267 #define FLD(f) abuf->fields.fmt_stt_index_disp.f
5268 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5269
5270 EXTRACT_IFMT_ST_DISP_CODE
5271
5272 /* Record the fields for the semantic handler. */
5273 FLD (f_srcdst) = f_srcdst;
5274 FLD (f_optdisp) = f_optdisp;
5275 FLD (f_scale) = f_scale;
5276 FLD (i_index) = & CPU (h_gr)[f_index];
5277 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5278 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5279
5280 #if WITH_PROFILE_MODEL_P
5281 /* Record the fields for profiling. */
5282 if (PROFILE_MODEL_P (current_cpu))
5283 {
5284 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5285 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5286 FLD (in_index) = f_index;
5287 FLD (in_st_src) = f_srcdst;
5288 }
5289 #endif
5290 #undef FLD
5291 return idesc;
5292 }
5293
5294 extract_fmt_stt_indirect_index_disp:
5295 {
5296 const IDESC *idesc = &i960base_insn_data[itype];
5297 CGEN_INSN_INT insn = base_insn;
5298 #define FLD(f) abuf->fields.fmt_stt_indirect_index_disp.f
5299 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5300
5301 EXTRACT_IFMT_ST_DISP_CODE
5302
5303 /* Record the fields for the semantic handler. */
5304 FLD (f_srcdst) = f_srcdst;
5305 FLD (f_optdisp) = f_optdisp;
5306 FLD (f_scale) = f_scale;
5307 FLD (i_abase) = & CPU (h_gr)[f_abase];
5308 FLD (i_index) = & CPU (h_gr)[f_index];
5309 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5310 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5311
5312 #if WITH_PROFILE_MODEL_P
5313 /* Record the fields for profiling. */
5314 if (PROFILE_MODEL_P (current_cpu))
5315 {
5316 FLD (in_abase) = f_abase;
5317 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5318 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5319 FLD (in_index) = f_index;
5320 FLD (in_st_src) = f_srcdst;
5321 }
5322 #endif
5323 #undef FLD
5324 return idesc;
5325 }
5326
5327 extract_fmt_stq_offset:
5328 {
5329 const IDESC *idesc = &i960base_insn_data[itype];
5330 CGEN_INSN_INT insn = base_insn;
5331 #define FLD(f) abuf->fields.fmt_stq_offset.f
5332 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
5333
5334 EXTRACT_IFMT_ST_OFFSET_CODE
5335
5336 /* Record the fields for the semantic handler. */
5337 FLD (f_srcdst) = f_srcdst;
5338 FLD (f_offset) = f_offset;
5339 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5340 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5341
5342 #if WITH_PROFILE_MODEL_P
5343 /* Record the fields for profiling. */
5344 if (PROFILE_MODEL_P (current_cpu))
5345 {
5346 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5347 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5348 FLD (in_h_gr_add__VM_index_of_st_src_3) = ((FLD (f_srcdst)) + (3));
5349 FLD (in_st_src) = f_srcdst;
5350 }
5351 #endif
5352 #undef FLD
5353 return idesc;
5354 }
5355
5356 extract_fmt_stq_indirect_offset:
5357 {
5358 const IDESC *idesc = &i960base_insn_data[itype];
5359 CGEN_INSN_INT insn = base_insn;
5360 #define FLD(f) abuf->fields.fmt_stq_indirect_offset.f
5361 EXTRACT_IFMT_ST_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
5362
5363 EXTRACT_IFMT_ST_OFFSET_CODE
5364
5365 /* Record the fields for the semantic handler. */
5366 FLD (f_srcdst) = f_srcdst;
5367 FLD (f_offset) = f_offset;
5368 FLD (i_abase) = & CPU (h_gr)[f_abase];
5369 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5370 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5371
5372 #if WITH_PROFILE_MODEL_P
5373 /* Record the fields for profiling. */
5374 if (PROFILE_MODEL_P (current_cpu))
5375 {
5376 FLD (in_abase) = f_abase;
5377 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5378 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5379 FLD (in_h_gr_add__VM_index_of_st_src_3) = ((FLD (f_srcdst)) + (3));
5380 FLD (in_st_src) = f_srcdst;
5381 }
5382 #endif
5383 #undef FLD
5384 return idesc;
5385 }
5386
5387 extract_fmt_stq_indirect:
5388 {
5389 const IDESC *idesc = &i960base_insn_data[itype];
5390 CGEN_INSN_INT insn = base_insn;
5391 #define FLD(f) abuf->fields.fmt_stq_indirect.f
5392 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5393
5394 EXTRACT_IFMT_ST_INDIRECT_CODE
5395
5396 /* Record the fields for the semantic handler. */
5397 FLD (f_srcdst) = f_srcdst;
5398 FLD (i_abase) = & CPU (h_gr)[f_abase];
5399 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5400 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_stq_indirect", "f_srcdst 0x%x", 'x', f_srcdst, "abase 0x%x", 'x', f_abase, "st_src 0x%x", 'x', f_srcdst, (char *) 0));
5401
5402 #if WITH_PROFILE_MODEL_P
5403 /* Record the fields for profiling. */
5404 if (PROFILE_MODEL_P (current_cpu))
5405 {
5406 FLD (in_abase) = f_abase;
5407 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5408 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5409 FLD (in_h_gr_add__VM_index_of_st_src_3) = ((FLD (f_srcdst)) + (3));
5410 FLD (in_st_src) = f_srcdst;
5411 }
5412 #endif
5413 #undef FLD
5414 return idesc;
5415 }
5416
5417 extract_fmt_stq_indirect_index:
5418 {
5419 const IDESC *idesc = &i960base_insn_data[itype];
5420 CGEN_INSN_INT insn = base_insn;
5421 #define FLD(f) abuf->fields.fmt_stq_indirect_index.f
5422 EXTRACT_IFMT_ST_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5423
5424 EXTRACT_IFMT_ST_INDIRECT_CODE
5425
5426 /* Record the fields for the semantic handler. */
5427 FLD (f_srcdst) = f_srcdst;
5428 FLD (f_scale) = f_scale;
5429 FLD (i_abase) = & CPU (h_gr)[f_abase];
5430 FLD (i_index) = & CPU (h_gr)[f_index];
5431 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5432 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5433
5434 #if WITH_PROFILE_MODEL_P
5435 /* Record the fields for profiling. */
5436 if (PROFILE_MODEL_P (current_cpu))
5437 {
5438 FLD (in_abase) = f_abase;
5439 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5440 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5441 FLD (in_h_gr_add__VM_index_of_st_src_3) = ((FLD (f_srcdst)) + (3));
5442 FLD (in_index) = f_index;
5443 FLD (in_st_src) = f_srcdst;
5444 }
5445 #endif
5446 #undef FLD
5447 return idesc;
5448 }
5449
5450 extract_fmt_stq_disp:
5451 {
5452 const IDESC *idesc = &i960base_insn_data[itype];
5453 CGEN_INSN_INT insn = base_insn;
5454 #define FLD(f) abuf->fields.fmt_stq_disp.f
5455 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5456
5457 EXTRACT_IFMT_ST_DISP_CODE
5458
5459 /* Record the fields for the semantic handler. */
5460 FLD (f_srcdst) = f_srcdst;
5461 FLD (f_optdisp) = f_optdisp;
5462 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5463 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5464
5465 #if WITH_PROFILE_MODEL_P
5466 /* Record the fields for profiling. */
5467 if (PROFILE_MODEL_P (current_cpu))
5468 {
5469 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5470 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5471 FLD (in_h_gr_add__VM_index_of_st_src_3) = ((FLD (f_srcdst)) + (3));
5472 FLD (in_st_src) = f_srcdst;
5473 }
5474 #endif
5475 #undef FLD
5476 return idesc;
5477 }
5478
5479 extract_fmt_stq_indirect_disp:
5480 {
5481 const IDESC *idesc = &i960base_insn_data[itype];
5482 CGEN_INSN_INT insn = base_insn;
5483 #define FLD(f) abuf->fields.fmt_stq_indirect_disp.f
5484 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5485
5486 EXTRACT_IFMT_ST_DISP_CODE
5487
5488 /* Record the fields for the semantic handler. */
5489 FLD (f_srcdst) = f_srcdst;
5490 FLD (f_optdisp) = f_optdisp;
5491 FLD (i_abase) = & CPU (h_gr)[f_abase];
5492 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5493 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5494
5495 #if WITH_PROFILE_MODEL_P
5496 /* Record the fields for profiling. */
5497 if (PROFILE_MODEL_P (current_cpu))
5498 {
5499 FLD (in_abase) = f_abase;
5500 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5501 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5502 FLD (in_h_gr_add__VM_index_of_st_src_3) = ((FLD (f_srcdst)) + (3));
5503 FLD (in_st_src) = f_srcdst;
5504 }
5505 #endif
5506 #undef FLD
5507 return idesc;
5508 }
5509
5510 extract_fmt_stq_index_disp:
5511 {
5512 const IDESC *idesc = &i960base_insn_data[itype];
5513 CGEN_INSN_INT insn = base_insn;
5514 #define FLD(f) abuf->fields.fmt_stq_index_disp.f
5515 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5516
5517 EXTRACT_IFMT_ST_DISP_CODE
5518
5519 /* Record the fields for the semantic handler. */
5520 FLD (f_srcdst) = f_srcdst;
5521 FLD (f_optdisp) = f_optdisp;
5522 FLD (f_scale) = f_scale;
5523 FLD (i_index) = & CPU (h_gr)[f_index];
5524 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5525 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5526
5527 #if WITH_PROFILE_MODEL_P
5528 /* Record the fields for profiling. */
5529 if (PROFILE_MODEL_P (current_cpu))
5530 {
5531 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5532 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5533 FLD (in_h_gr_add__VM_index_of_st_src_3) = ((FLD (f_srcdst)) + (3));
5534 FLD (in_index) = f_index;
5535 FLD (in_st_src) = f_srcdst;
5536 }
5537 #endif
5538 #undef FLD
5539 return idesc;
5540 }
5541
5542 extract_fmt_stq_indirect_index_disp:
5543 {
5544 const IDESC *idesc = &i960base_insn_data[itype];
5545 CGEN_INSN_INT insn = base_insn;
5546 #define FLD(f) abuf->fields.fmt_stq_indirect_index_disp.f
5547 EXTRACT_IFMT_ST_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
5548
5549 EXTRACT_IFMT_ST_DISP_CODE
5550
5551 /* Record the fields for the semantic handler. */
5552 FLD (f_srcdst) = f_srcdst;
5553 FLD (f_optdisp) = f_optdisp;
5554 FLD (f_scale) = f_scale;
5555 FLD (i_abase) = & CPU (h_gr)[f_abase];
5556 FLD (i_index) = & CPU (h_gr)[f_index];
5557 FLD (i_st_src) = & CPU (h_gr)[f_srcdst];
5558 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5559
5560 #if WITH_PROFILE_MODEL_P
5561 /* Record the fields for profiling. */
5562 if (PROFILE_MODEL_P (current_cpu))
5563 {
5564 FLD (in_abase) = f_abase;
5565 FLD (in_h_gr_add__VM_index_of_st_src_1) = ((FLD (f_srcdst)) + (1));
5566 FLD (in_h_gr_add__VM_index_of_st_src_2) = ((FLD (f_srcdst)) + (2));
5567 FLD (in_h_gr_add__VM_index_of_st_src_3) = ((FLD (f_srcdst)) + (3));
5568 FLD (in_index) = f_index;
5569 FLD (in_st_src) = f_srcdst;
5570 }
5571 #endif
5572 #undef FLD
5573 return idesc;
5574 }
5575
5576 extract_fmt_cmpobe_reg:
5577 {
5578 const IDESC *idesc = &i960base_insn_data[itype];
5579 CGEN_INSN_INT insn = base_insn;
5580 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_reg.f
5581 EXTRACT_IFMT_CMPOBE_REG_VARS /* f-opcode f-br-src1 f-br-src2 f-br-m1 f-br-disp f-br-zero */
5582
5583 EXTRACT_IFMT_CMPOBE_REG_CODE
5584
5585 /* Record the fields for the semantic handler. */
5586 FLD (i_br_disp) = f_br_disp;
5587 FLD (i_br_src1) = & CPU (h_gr)[f_br_src1];
5588 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
5589 SEM_BRANCH_INIT_EXTRACT (abuf);
5590 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5591
5592 #if WITH_PROFILE_MODEL_P
5593 /* Record the fields for profiling. */
5594 if (PROFILE_MODEL_P (current_cpu))
5595 {
5596 FLD (in_br_src1) = f_br_src1;
5597 FLD (in_br_src2) = f_br_src2;
5598 }
5599 #endif
5600 #undef FLD
5601 return idesc;
5602 }
5603
5604 extract_fmt_cmpobe_lit:
5605 {
5606 const IDESC *idesc = &i960base_insn_data[itype];
5607 CGEN_INSN_INT insn = base_insn;
5608 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobe_lit.f
5609 EXTRACT_IFMT_CMPOBE_LIT_VARS /* f-opcode f-br-src1 f-br-src2 f-br-m1 f-br-disp f-br-zero */
5610
5611 EXTRACT_IFMT_CMPOBE_LIT_CODE
5612
5613 /* Record the fields for the semantic handler. */
5614 FLD (f_br_src1) = f_br_src1;
5615 FLD (i_br_disp) = f_br_disp;
5616 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
5617 SEM_BRANCH_INIT_EXTRACT (abuf);
5618 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5619
5620 #if WITH_PROFILE_MODEL_P
5621 /* Record the fields for profiling. */
5622 if (PROFILE_MODEL_P (current_cpu))
5623 {
5624 FLD (in_br_src2) = f_br_src2;
5625 }
5626 #endif
5627 #undef FLD
5628 return idesc;
5629 }
5630
5631 extract_fmt_cmpobl_reg:
5632 {
5633 const IDESC *idesc = &i960base_insn_data[itype];
5634 CGEN_INSN_INT insn = base_insn;
5635 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobl_reg.f
5636 EXTRACT_IFMT_CMPOBE_REG_VARS /* f-opcode f-br-src1 f-br-src2 f-br-m1 f-br-disp f-br-zero */
5637
5638 EXTRACT_IFMT_CMPOBE_REG_CODE
5639
5640 /* Record the fields for the semantic handler. */
5641 FLD (i_br_disp) = f_br_disp;
5642 FLD (i_br_src1) = & CPU (h_gr)[f_br_src1];
5643 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
5644 SEM_BRANCH_INIT_EXTRACT (abuf);
5645 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5646
5647 #if WITH_PROFILE_MODEL_P
5648 /* Record the fields for profiling. */
5649 if (PROFILE_MODEL_P (current_cpu))
5650 {
5651 FLD (in_br_src1) = f_br_src1;
5652 FLD (in_br_src2) = f_br_src2;
5653 }
5654 #endif
5655 #undef FLD
5656 return idesc;
5657 }
5658
5659 extract_fmt_cmpobl_lit:
5660 {
5661 const IDESC *idesc = &i960base_insn_data[itype];
5662 CGEN_INSN_INT insn = base_insn;
5663 #define FLD(f) abuf->fields.cti.fields.fmt_cmpobl_lit.f
5664 EXTRACT_IFMT_CMPOBE_LIT_VARS /* f-opcode f-br-src1 f-br-src2 f-br-m1 f-br-disp f-br-zero */
5665
5666 EXTRACT_IFMT_CMPOBE_LIT_CODE
5667
5668 /* Record the fields for the semantic handler. */
5669 FLD (f_br_src1) = f_br_src1;
5670 FLD (i_br_disp) = f_br_disp;
5671 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
5672 SEM_BRANCH_INIT_EXTRACT (abuf);
5673 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5674
5675 #if WITH_PROFILE_MODEL_P
5676 /* Record the fields for profiling. */
5677 if (PROFILE_MODEL_P (current_cpu))
5678 {
5679 FLD (in_br_src2) = f_br_src2;
5680 }
5681 #endif
5682 #undef FLD
5683 return idesc;
5684 }
5685
5686 extract_fmt_bbc_reg:
5687 {
5688 const IDESC *idesc = &i960base_insn_data[itype];
5689 CGEN_INSN_INT insn = base_insn;
5690 #define FLD(f) abuf->fields.cti.fields.fmt_bbc_reg.f
5691 EXTRACT_IFMT_CMPOBE_REG_VARS /* f-opcode f-br-src1 f-br-src2 f-br-m1 f-br-disp f-br-zero */
5692
5693 EXTRACT_IFMT_CMPOBE_REG_CODE
5694
5695 /* Record the fields for the semantic handler. */
5696 FLD (i_br_disp) = f_br_disp;
5697 FLD (i_br_src1) = & CPU (h_gr)[f_br_src1];
5698 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
5699 SEM_BRANCH_INIT_EXTRACT (abuf);
5700 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5701
5702 #if WITH_PROFILE_MODEL_P
5703 /* Record the fields for profiling. */
5704 if (PROFILE_MODEL_P (current_cpu))
5705 {
5706 FLD (in_br_src1) = f_br_src1;
5707 FLD (in_br_src2) = f_br_src2;
5708 }
5709 #endif
5710 #undef FLD
5711 return idesc;
5712 }
5713
5714 extract_fmt_bbc_lit:
5715 {
5716 const IDESC *idesc = &i960base_insn_data[itype];
5717 CGEN_INSN_INT insn = base_insn;
5718 #define FLD(f) abuf->fields.cti.fields.fmt_bbc_lit.f
5719 EXTRACT_IFMT_CMPOBE_LIT_VARS /* f-opcode f-br-src1 f-br-src2 f-br-m1 f-br-disp f-br-zero */
5720
5721 EXTRACT_IFMT_CMPOBE_LIT_CODE
5722
5723 /* Record the fields for the semantic handler. */
5724 FLD (f_br_src1) = f_br_src1;
5725 FLD (i_br_disp) = f_br_disp;
5726 FLD (i_br_src2) = & CPU (h_gr)[f_br_src2];
5727 SEM_BRANCH_INIT_EXTRACT (abuf);
5728 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_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));
5729
5730 #if WITH_PROFILE_MODEL_P
5731 /* Record the fields for profiling. */
5732 if (PROFILE_MODEL_P (current_cpu))
5733 {
5734 FLD (in_br_src2) = f_br_src2;
5735 }
5736 #endif
5737 #undef FLD
5738 return idesc;
5739 }
5740
5741 extract_fmt_cmpi:
5742 {
5743 const IDESC *idesc = &i960base_insn_data[itype];
5744 CGEN_INSN_INT insn = base_insn;
5745 #define FLD(f) abuf->fields.fmt_cmpi.f
5746 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
5747
5748 EXTRACT_IFMT_MULO_CODE
5749
5750 /* Record the fields for the semantic handler. */
5751 FLD (i_src1) = & CPU (h_gr)[f_src1];
5752 FLD (i_src2) = & CPU (h_gr)[f_src2];
5753 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpi", "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, (char *) 0));
5754
5755 #if WITH_PROFILE_MODEL_P
5756 /* Record the fields for profiling. */
5757 if (PROFILE_MODEL_P (current_cpu))
5758 {
5759 FLD (in_src1) = f_src1;
5760 FLD (in_src2) = f_src2;
5761 }
5762 #endif
5763 #undef FLD
5764 return idesc;
5765 }
5766
5767 extract_fmt_cmpi1:
5768 {
5769 const IDESC *idesc = &i960base_insn_data[itype];
5770 CGEN_INSN_INT insn = base_insn;
5771 #define FLD(f) abuf->fields.fmt_cmpi1.f
5772 EXTRACT_IFMT_MULO1_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
5773
5774 EXTRACT_IFMT_MULO1_CODE
5775
5776 /* Record the fields for the semantic handler. */
5777 FLD (f_src1) = f_src1;
5778 FLD (i_src2) = & CPU (h_gr)[f_src2];
5779 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpi1", "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, (char *) 0));
5780
5781 #if WITH_PROFILE_MODEL_P
5782 /* Record the fields for profiling. */
5783 if (PROFILE_MODEL_P (current_cpu))
5784 {
5785 FLD (in_src2) = f_src2;
5786 }
5787 #endif
5788 #undef FLD
5789 return idesc;
5790 }
5791
5792 extract_fmt_cmpi2:
5793 {
5794 const IDESC *idesc = &i960base_insn_data[itype];
5795 CGEN_INSN_INT insn = base_insn;
5796 #define FLD(f) abuf->fields.fmt_cmpi2.f
5797 EXTRACT_IFMT_MULO2_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
5798
5799 EXTRACT_IFMT_MULO2_CODE
5800
5801 /* Record the fields for the semantic handler. */
5802 FLD (f_src2) = f_src2;
5803 FLD (i_src1) = & CPU (h_gr)[f_src1];
5804 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpi2", "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, (char *) 0));
5805
5806 #if WITH_PROFILE_MODEL_P
5807 /* Record the fields for profiling. */
5808 if (PROFILE_MODEL_P (current_cpu))
5809 {
5810 FLD (in_src1) = f_src1;
5811 }
5812 #endif
5813 #undef FLD
5814 return idesc;
5815 }
5816
5817 extract_fmt_cmpi3:
5818 {
5819 const IDESC *idesc = &i960base_insn_data[itype];
5820 CGEN_INSN_INT insn = base_insn;
5821 #define FLD(f) abuf->fields.fmt_cmpi3.f
5822 EXTRACT_IFMT_MULO3_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
5823
5824 EXTRACT_IFMT_MULO3_CODE
5825
5826 /* Record the fields for the semantic handler. */
5827 FLD (f_src1) = f_src1;
5828 FLD (f_src2) = f_src2;
5829 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpi3", "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, (char *) 0));
5830
5831 #if WITH_PROFILE_MODEL_P
5832 /* Record the fields for profiling. */
5833 if (PROFILE_MODEL_P (current_cpu))
5834 {
5835 }
5836 #endif
5837 #undef FLD
5838 return idesc;
5839 }
5840
5841 extract_fmt_cmpo:
5842 {
5843 const IDESC *idesc = &i960base_insn_data[itype];
5844 CGEN_INSN_INT insn = base_insn;
5845 #define FLD(f) abuf->fields.fmt_cmpo.f
5846 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
5847
5848 EXTRACT_IFMT_MULO_CODE
5849
5850 /* Record the fields for the semantic handler. */
5851 FLD (i_src1) = & CPU (h_gr)[f_src1];
5852 FLD (i_src2) = & CPU (h_gr)[f_src2];
5853 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpo", "src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, (char *) 0));
5854
5855 #if WITH_PROFILE_MODEL_P
5856 /* Record the fields for profiling. */
5857 if (PROFILE_MODEL_P (current_cpu))
5858 {
5859 FLD (in_src1) = f_src1;
5860 FLD (in_src2) = f_src2;
5861 }
5862 #endif
5863 #undef FLD
5864 return idesc;
5865 }
5866
5867 extract_fmt_cmpo1:
5868 {
5869 const IDESC *idesc = &i960base_insn_data[itype];
5870 CGEN_INSN_INT insn = base_insn;
5871 #define FLD(f) abuf->fields.fmt_cmpo1.f
5872 EXTRACT_IFMT_MULO1_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
5873
5874 EXTRACT_IFMT_MULO1_CODE
5875
5876 /* Record the fields for the semantic handler. */
5877 FLD (f_src1) = f_src1;
5878 FLD (i_src2) = & CPU (h_gr)[f_src2];
5879 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpo1", "f_src1 0x%x", 'x', f_src1, "src2 0x%x", 'x', f_src2, (char *) 0));
5880
5881 #if WITH_PROFILE_MODEL_P
5882 /* Record the fields for profiling. */
5883 if (PROFILE_MODEL_P (current_cpu))
5884 {
5885 FLD (in_src2) = f_src2;
5886 }
5887 #endif
5888 #undef FLD
5889 return idesc;
5890 }
5891
5892 extract_fmt_cmpo2:
5893 {
5894 const IDESC *idesc = &i960base_insn_data[itype];
5895 CGEN_INSN_INT insn = base_insn;
5896 #define FLD(f) abuf->fields.fmt_cmpo2.f
5897 EXTRACT_IFMT_MULO2_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
5898
5899 EXTRACT_IFMT_MULO2_CODE
5900
5901 /* Record the fields for the semantic handler. */
5902 FLD (f_src2) = f_src2;
5903 FLD (i_src1) = & CPU (h_gr)[f_src1];
5904 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpo2", "f_src2 0x%x", 'x', f_src2, "src1 0x%x", 'x', f_src1, (char *) 0));
5905
5906 #if WITH_PROFILE_MODEL_P
5907 /* Record the fields for profiling. */
5908 if (PROFILE_MODEL_P (current_cpu))
5909 {
5910 FLD (in_src1) = f_src1;
5911 }
5912 #endif
5913 #undef FLD
5914 return idesc;
5915 }
5916
5917 extract_fmt_cmpo3:
5918 {
5919 const IDESC *idesc = &i960base_insn_data[itype];
5920 CGEN_INSN_INT insn = base_insn;
5921 #define FLD(f) abuf->fields.fmt_cmpo3.f
5922 EXTRACT_IFMT_MULO3_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
5923
5924 EXTRACT_IFMT_MULO3_CODE
5925
5926 /* Record the fields for the semantic handler. */
5927 FLD (f_src1) = f_src1;
5928 FLD (f_src2) = f_src2;
5929 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_cmpo3", "f_src1 0x%x", 'x', f_src1, "f_src2 0x%x", 'x', f_src2, (char *) 0));
5930
5931 #if WITH_PROFILE_MODEL_P
5932 /* Record the fields for profiling. */
5933 if (PROFILE_MODEL_P (current_cpu))
5934 {
5935 }
5936 #endif
5937 #undef FLD
5938 return idesc;
5939 }
5940
5941 extract_fmt_testno_reg:
5942 {
5943 const IDESC *idesc = &i960base_insn_data[itype];
5944 CGEN_INSN_INT insn = base_insn;
5945 #define FLD(f) abuf->fields.fmt_testno_reg.f
5946 EXTRACT_IFMT_CMPOBE_REG_VARS /* f-opcode f-br-src1 f-br-src2 f-br-m1 f-br-disp f-br-zero */
5947
5948 EXTRACT_IFMT_CMPOBE_REG_CODE
5949
5950 /* Record the fields for the semantic handler. */
5951 FLD (i_br_src1) = & CPU (h_gr)[f_br_src1];
5952 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_testno_reg", "br_src1 0x%x", 'x', f_br_src1, (char *) 0));
5953
5954 #if WITH_PROFILE_MODEL_P
5955 /* Record the fields for profiling. */
5956 if (PROFILE_MODEL_P (current_cpu))
5957 {
5958 FLD (out_br_src1) = f_br_src1;
5959 }
5960 #endif
5961 #undef FLD
5962 return idesc;
5963 }
5964
5965 extract_fmt_bno:
5966 {
5967 const IDESC *idesc = &i960base_insn_data[itype];
5968 CGEN_INSN_INT insn = base_insn;
5969 #define FLD(f) abuf->fields.cti.fields.fmt_bno.f
5970 EXTRACT_IFMT_BNO_VARS /* f-opcode f-ctrl-disp f-ctrl-zero */
5971
5972 EXTRACT_IFMT_BNO_CODE
5973
5974 /* Record the fields for the semantic handler. */
5975 FLD (i_ctrl_disp) = f_ctrl_disp;
5976 SEM_BRANCH_INIT_EXTRACT (abuf);
5977 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bno", "ctrl_disp 0x%x", 'x', f_ctrl_disp, (char *) 0));
5978
5979 #if WITH_PROFILE_MODEL_P
5980 /* Record the fields for profiling. */
5981 if (PROFILE_MODEL_P (current_cpu))
5982 {
5983 }
5984 #endif
5985 #undef FLD
5986 return idesc;
5987 }
5988
5989 extract_fmt_b:
5990 {
5991 const IDESC *idesc = &i960base_insn_data[itype];
5992 CGEN_INSN_INT insn = base_insn;
5993 #define FLD(f) abuf->fields.cti.fields.fmt_b.f
5994 EXTRACT_IFMT_BNO_VARS /* f-opcode f-ctrl-disp f-ctrl-zero */
5995
5996 EXTRACT_IFMT_BNO_CODE
5997
5998 /* Record the fields for the semantic handler. */
5999 FLD (i_ctrl_disp) = f_ctrl_disp;
6000 SEM_BRANCH_INIT_EXTRACT (abuf);
6001 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_b", "ctrl_disp 0x%x", 'x', f_ctrl_disp, (char *) 0));
6002
6003 #if WITH_PROFILE_MODEL_P
6004 /* Record the fields for profiling. */
6005 if (PROFILE_MODEL_P (current_cpu))
6006 {
6007 }
6008 #endif
6009 #undef FLD
6010 return idesc;
6011 }
6012
6013 extract_fmt_bx_indirect_offset:
6014 {
6015 const IDESC *idesc = &i960base_insn_data[itype];
6016 CGEN_INSN_INT insn = base_insn;
6017 #define FLD(f) abuf->fields.cti.fields.fmt_bx_indirect_offset.f
6018 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
6019
6020 EXTRACT_IFMT_LDA_OFFSET_CODE
6021
6022 /* Record the fields for the semantic handler. */
6023 FLD (f_offset) = f_offset;
6024 FLD (i_abase) = & CPU (h_gr)[f_abase];
6025 SEM_BRANCH_INIT_EXTRACT (abuf);
6026 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bx_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, (char *) 0));
6027
6028 #if WITH_PROFILE_MODEL_P
6029 /* Record the fields for profiling. */
6030 if (PROFILE_MODEL_P (current_cpu))
6031 {
6032 FLD (in_abase) = f_abase;
6033 }
6034 #endif
6035 #undef FLD
6036 return idesc;
6037 }
6038
6039 extract_fmt_bx_indirect:
6040 {
6041 const IDESC *idesc = &i960base_insn_data[itype];
6042 CGEN_INSN_INT insn = base_insn;
6043 #define FLD(f) abuf->fields.cti.fields.fmt_bx_indirect.f
6044 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
6045
6046 EXTRACT_IFMT_LDA_INDIRECT_CODE
6047
6048 /* Record the fields for the semantic handler. */
6049 FLD (i_abase) = & CPU (h_gr)[f_abase];
6050 SEM_BRANCH_INIT_EXTRACT (abuf);
6051 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bx_indirect", "abase 0x%x", 'x', f_abase, (char *) 0));
6052
6053 #if WITH_PROFILE_MODEL_P
6054 /* Record the fields for profiling. */
6055 if (PROFILE_MODEL_P (current_cpu))
6056 {
6057 FLD (in_abase) = f_abase;
6058 }
6059 #endif
6060 #undef FLD
6061 return idesc;
6062 }
6063
6064 extract_fmt_bx_indirect_index:
6065 {
6066 const IDESC *idesc = &i960base_insn_data[itype];
6067 CGEN_INSN_INT insn = base_insn;
6068 #define FLD(f) abuf->fields.cti.fields.fmt_bx_indirect_index.f
6069 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
6070
6071 EXTRACT_IFMT_LDA_INDIRECT_CODE
6072
6073 /* Record the fields for the semantic handler. */
6074 FLD (f_scale) = f_scale;
6075 FLD (i_abase) = & CPU (h_gr)[f_abase];
6076 FLD (i_index) = & CPU (h_gr)[f_index];
6077 SEM_BRANCH_INIT_EXTRACT (abuf);
6078 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bx_indirect_index", "f_scale 0x%x", 'x', f_scale, "abase 0x%x", 'x', f_abase, "index 0x%x", 'x', f_index, (char *) 0));
6079
6080 #if WITH_PROFILE_MODEL_P
6081 /* Record the fields for profiling. */
6082 if (PROFILE_MODEL_P (current_cpu))
6083 {
6084 FLD (in_abase) = f_abase;
6085 FLD (in_index) = f_index;
6086 }
6087 #endif
6088 #undef FLD
6089 return idesc;
6090 }
6091
6092 extract_fmt_bx_disp:
6093 {
6094 const IDESC *idesc = &i960base_insn_data[itype];
6095 CGEN_INSN_INT insn = base_insn;
6096 #define FLD(f) abuf->fields.cti.fields.fmt_bx_disp.f
6097 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
6098
6099 EXTRACT_IFMT_LDA_DISP_CODE
6100
6101 /* Record the fields for the semantic handler. */
6102 FLD (f_optdisp) = f_optdisp;
6103 SEM_BRANCH_INIT_EXTRACT (abuf);
6104 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bx_disp", "f_optdisp 0x%x", 'x', f_optdisp, (char *) 0));
6105
6106 #if WITH_PROFILE_MODEL_P
6107 /* Record the fields for profiling. */
6108 if (PROFILE_MODEL_P (current_cpu))
6109 {
6110 }
6111 #endif
6112 #undef FLD
6113 return idesc;
6114 }
6115
6116 extract_fmt_bx_indirect_disp:
6117 {
6118 const IDESC *idesc = &i960base_insn_data[itype];
6119 CGEN_INSN_INT insn = base_insn;
6120 #define FLD(f) abuf->fields.cti.fields.fmt_bx_indirect_disp.f
6121 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
6122
6123 EXTRACT_IFMT_LDA_DISP_CODE
6124
6125 /* Record the fields for the semantic handler. */
6126 FLD (f_optdisp) = f_optdisp;
6127 FLD (i_abase) = & CPU (h_gr)[f_abase];
6128 SEM_BRANCH_INIT_EXTRACT (abuf);
6129 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_bx_indirect_disp", "f_optdisp 0x%x", 'x', f_optdisp, "abase 0x%x", 'x', f_abase, (char *) 0));
6130
6131 #if WITH_PROFILE_MODEL_P
6132 /* Record the fields for profiling. */
6133 if (PROFILE_MODEL_P (current_cpu))
6134 {
6135 FLD (in_abase) = f_abase;
6136 }
6137 #endif
6138 #undef FLD
6139 return idesc;
6140 }
6141
6142 extract_fmt_callx_disp:
6143 {
6144 const IDESC *idesc = &i960base_insn_data[itype];
6145 CGEN_INSN_INT insn = base_insn;
6146 #define FLD(f) abuf->fields.cti.fields.fmt_callx_disp.f
6147 EXTRACT_IFMT_LDA_DISP_VARS /* f-opcode f-optdisp f-srcdst f-abase f-modeb f-scale f-zerob f-index */
6148
6149 EXTRACT_IFMT_LDA_DISP_CODE
6150
6151 /* Record the fields for the semantic handler. */
6152 FLD (f_optdisp) = f_optdisp;
6153 SEM_BRANCH_INIT_EXTRACT (abuf);
6154 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_callx_disp", "f_optdisp 0x%x", 'x', f_optdisp, (char *) 0));
6155
6156 #if WITH_PROFILE_MODEL_P
6157 /* Record the fields for profiling. */
6158 if (PROFILE_MODEL_P (current_cpu))
6159 {
6160 FLD (in_h_gr_0) = 0;
6161 FLD (in_h_gr_1) = 1;
6162 FLD (in_h_gr_10) = 10;
6163 FLD (in_h_gr_11) = 11;
6164 FLD (in_h_gr_12) = 12;
6165 FLD (in_h_gr_13) = 13;
6166 FLD (in_h_gr_14) = 14;
6167 FLD (in_h_gr_15) = 15;
6168 FLD (in_h_gr_2) = 2;
6169 FLD (in_h_gr_3) = 3;
6170 FLD (in_h_gr_31) = 31;
6171 FLD (in_h_gr_4) = 4;
6172 FLD (in_h_gr_5) = 5;
6173 FLD (in_h_gr_6) = 6;
6174 FLD (in_h_gr_7) = 7;
6175 FLD (in_h_gr_8) = 8;
6176 FLD (in_h_gr_9) = 9;
6177 FLD (out_h_gr_0) = 0;
6178 FLD (out_h_gr_1) = 1;
6179 FLD (out_h_gr_10) = 10;
6180 FLD (out_h_gr_11) = 11;
6181 FLD (out_h_gr_12) = 12;
6182 FLD (out_h_gr_13) = 13;
6183 FLD (out_h_gr_14) = 14;
6184 FLD (out_h_gr_15) = 15;
6185 FLD (out_h_gr_2) = 2;
6186 FLD (out_h_gr_3) = 3;
6187 FLD (out_h_gr_31) = 31;
6188 FLD (out_h_gr_4) = 4;
6189 FLD (out_h_gr_5) = 5;
6190 FLD (out_h_gr_6) = 6;
6191 FLD (out_h_gr_7) = 7;
6192 FLD (out_h_gr_8) = 8;
6193 FLD (out_h_gr_9) = 9;
6194 }
6195 #endif
6196 #undef FLD
6197 return idesc;
6198 }
6199
6200 extract_fmt_callx_indirect:
6201 {
6202 const IDESC *idesc = &i960base_insn_data[itype];
6203 CGEN_INSN_INT insn = base_insn;
6204 #define FLD(f) abuf->fields.cti.fields.fmt_callx_indirect.f
6205 EXTRACT_IFMT_LDA_INDIRECT_VARS /* f-opcode f-srcdst f-abase f-modeb f-scale f-zerob f-index */
6206
6207 EXTRACT_IFMT_LDA_INDIRECT_CODE
6208
6209 /* Record the fields for the semantic handler. */
6210 FLD (i_abase) = & CPU (h_gr)[f_abase];
6211 SEM_BRANCH_INIT_EXTRACT (abuf);
6212 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_callx_indirect", "abase 0x%x", 'x', f_abase, (char *) 0));
6213
6214 #if WITH_PROFILE_MODEL_P
6215 /* Record the fields for profiling. */
6216 if (PROFILE_MODEL_P (current_cpu))
6217 {
6218 FLD (in_abase) = f_abase;
6219 FLD (in_h_gr_0) = 0;
6220 FLD (in_h_gr_1) = 1;
6221 FLD (in_h_gr_10) = 10;
6222 FLD (in_h_gr_11) = 11;
6223 FLD (in_h_gr_12) = 12;
6224 FLD (in_h_gr_13) = 13;
6225 FLD (in_h_gr_14) = 14;
6226 FLD (in_h_gr_15) = 15;
6227 FLD (in_h_gr_2) = 2;
6228 FLD (in_h_gr_3) = 3;
6229 FLD (in_h_gr_31) = 31;
6230 FLD (in_h_gr_4) = 4;
6231 FLD (in_h_gr_5) = 5;
6232 FLD (in_h_gr_6) = 6;
6233 FLD (in_h_gr_7) = 7;
6234 FLD (in_h_gr_8) = 8;
6235 FLD (in_h_gr_9) = 9;
6236 FLD (out_h_gr_0) = 0;
6237 FLD (out_h_gr_1) = 1;
6238 FLD (out_h_gr_10) = 10;
6239 FLD (out_h_gr_11) = 11;
6240 FLD (out_h_gr_12) = 12;
6241 FLD (out_h_gr_13) = 13;
6242 FLD (out_h_gr_14) = 14;
6243 FLD (out_h_gr_15) = 15;
6244 FLD (out_h_gr_2) = 2;
6245 FLD (out_h_gr_3) = 3;
6246 FLD (out_h_gr_31) = 31;
6247 FLD (out_h_gr_4) = 4;
6248 FLD (out_h_gr_5) = 5;
6249 FLD (out_h_gr_6) = 6;
6250 FLD (out_h_gr_7) = 7;
6251 FLD (out_h_gr_8) = 8;
6252 FLD (out_h_gr_9) = 9;
6253 }
6254 #endif
6255 #undef FLD
6256 return idesc;
6257 }
6258
6259 extract_fmt_callx_indirect_offset:
6260 {
6261 const IDESC *idesc = &i960base_insn_data[itype];
6262 CGEN_INSN_INT insn = base_insn;
6263 #define FLD(f) abuf->fields.cti.fields.fmt_callx_indirect_offset.f
6264 EXTRACT_IFMT_LDA_OFFSET_VARS /* f-opcode f-srcdst f-abase f-modea f-zeroa f-offset */
6265
6266 EXTRACT_IFMT_LDA_OFFSET_CODE
6267
6268 /* Record the fields for the semantic handler. */
6269 FLD (f_offset) = f_offset;
6270 FLD (i_abase) = & CPU (h_gr)[f_abase];
6271 SEM_BRANCH_INIT_EXTRACT (abuf);
6272 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_callx_indirect_offset", "f_offset 0x%x", 'x', f_offset, "abase 0x%x", 'x', f_abase, (char *) 0));
6273
6274 #if WITH_PROFILE_MODEL_P
6275 /* Record the fields for profiling. */
6276 if (PROFILE_MODEL_P (current_cpu))
6277 {
6278 FLD (in_abase) = f_abase;
6279 FLD (in_h_gr_0) = 0;
6280 FLD (in_h_gr_1) = 1;
6281 FLD (in_h_gr_10) = 10;
6282 FLD (in_h_gr_11) = 11;
6283 FLD (in_h_gr_12) = 12;
6284 FLD (in_h_gr_13) = 13;
6285 FLD (in_h_gr_14) = 14;
6286 FLD (in_h_gr_15) = 15;
6287 FLD (in_h_gr_2) = 2;
6288 FLD (in_h_gr_3) = 3;
6289 FLD (in_h_gr_31) = 31;
6290 FLD (in_h_gr_4) = 4;
6291 FLD (in_h_gr_5) = 5;
6292 FLD (in_h_gr_6) = 6;
6293 FLD (in_h_gr_7) = 7;
6294 FLD (in_h_gr_8) = 8;
6295 FLD (in_h_gr_9) = 9;
6296 FLD (out_h_gr_0) = 0;
6297 FLD (out_h_gr_1) = 1;
6298 FLD (out_h_gr_10) = 10;
6299 FLD (out_h_gr_11) = 11;
6300 FLD (out_h_gr_12) = 12;
6301 FLD (out_h_gr_13) = 13;
6302 FLD (out_h_gr_14) = 14;
6303 FLD (out_h_gr_15) = 15;
6304 FLD (out_h_gr_2) = 2;
6305 FLD (out_h_gr_3) = 3;
6306 FLD (out_h_gr_31) = 31;
6307 FLD (out_h_gr_4) = 4;
6308 FLD (out_h_gr_5) = 5;
6309 FLD (out_h_gr_6) = 6;
6310 FLD (out_h_gr_7) = 7;
6311 FLD (out_h_gr_8) = 8;
6312 FLD (out_h_gr_9) = 9;
6313 }
6314 #endif
6315 #undef FLD
6316 return idesc;
6317 }
6318
6319 extract_fmt_ret:
6320 {
6321 const IDESC *idesc = &i960base_insn_data[itype];
6322 CGEN_INSN_INT insn = base_insn;
6323 #define FLD(f) abuf->fields.cti.fields.fmt_ret.f
6324 EXTRACT_IFMT_BNO_VARS /* f-opcode f-ctrl-disp f-ctrl-zero */
6325
6326 EXTRACT_IFMT_BNO_CODE
6327
6328 /* Record the fields for the semantic handler. */
6329 SEM_BRANCH_INIT_EXTRACT (abuf);
6330 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_ret", (char *) 0));
6331
6332 #if WITH_PROFILE_MODEL_P
6333 /* Record the fields for profiling. */
6334 if (PROFILE_MODEL_P (current_cpu))
6335 {
6336 FLD (in_h_gr_0) = 0;
6337 FLD (in_h_gr_2) = 2;
6338 FLD (in_h_gr_31) = 31;
6339 FLD (out_h_gr_0) = 0;
6340 FLD (out_h_gr_1) = 1;
6341 FLD (out_h_gr_10) = 10;
6342 FLD (out_h_gr_11) = 11;
6343 FLD (out_h_gr_12) = 12;
6344 FLD (out_h_gr_13) = 13;
6345 FLD (out_h_gr_14) = 14;
6346 FLD (out_h_gr_15) = 15;
6347 FLD (out_h_gr_2) = 2;
6348 FLD (out_h_gr_3) = 3;
6349 FLD (out_h_gr_31) = 31;
6350 FLD (out_h_gr_4) = 4;
6351 FLD (out_h_gr_5) = 5;
6352 FLD (out_h_gr_6) = 6;
6353 FLD (out_h_gr_7) = 7;
6354 FLD (out_h_gr_8) = 8;
6355 FLD (out_h_gr_9) = 9;
6356 }
6357 #endif
6358 #undef FLD
6359 return idesc;
6360 }
6361
6362 extract_fmt_calls:
6363 {
6364 const IDESC *idesc = &i960base_insn_data[itype];
6365 CGEN_INSN_INT insn = base_insn;
6366 #define FLD(f) abuf->fields.cti.fields.fmt_calls.f
6367 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
6368
6369 EXTRACT_IFMT_MULO_CODE
6370
6371 /* Record the fields for the semantic handler. */
6372 FLD (i_src1) = & CPU (h_gr)[f_src1];
6373 SEM_BRANCH_INIT_EXTRACT (abuf);
6374 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_calls", "src1 0x%x", 'x', f_src1, (char *) 0));
6375
6376 #if WITH_PROFILE_MODEL_P
6377 /* Record the fields for profiling. */
6378 if (PROFILE_MODEL_P (current_cpu))
6379 {
6380 FLD (in_src1) = f_src1;
6381 }
6382 #endif
6383 #undef FLD
6384 return idesc;
6385 }
6386
6387 extract_fmt_fmark:
6388 {
6389 const IDESC *idesc = &i960base_insn_data[itype];
6390 CGEN_INSN_INT insn = base_insn;
6391 #define FLD(f) abuf->fields.cti.fields.fmt_fmark.f
6392 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
6393
6394 EXTRACT_IFMT_MULO_CODE
6395
6396 /* Record the fields for the semantic handler. */
6397 SEM_BRANCH_INIT_EXTRACT (abuf);
6398 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_fmark", (char *) 0));
6399
6400 #if WITH_PROFILE_MODEL_P
6401 /* Record the fields for profiling. */
6402 if (PROFILE_MODEL_P (current_cpu))
6403 {
6404 }
6405 #endif
6406 #undef FLD
6407 return idesc;
6408 }
6409
6410 extract_fmt_flushreg:
6411 {
6412 const IDESC *idesc = &i960base_insn_data[itype];
6413 CGEN_INSN_INT insn = base_insn;
6414 #define FLD(f) abuf->fields.fmt_flushreg.f
6415 EXTRACT_IFMT_MULO_VARS /* f-opcode f-srcdst f-src2 f-m3 f-m2 f-m1 f-opcode2 f-zero f-src1 */
6416
6417 EXTRACT_IFMT_MULO_CODE
6418
6419 /* Record the fields for the semantic handler. */
6420 TRACE_EXTRACT (current_cpu, abuf, (current_cpu, pc, "fmt_flushreg", (char *) 0));
6421
6422 #undef FLD
6423 return idesc;
6424 }
6425
6426 }
This page took 0.406326 seconds and 4 git commands to generate.