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