]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/i960/i960-desc.c
Initial creation of sourceware repository
[thirdparty/binutils-gdb.git] / sim / i960 / i960-desc.c
1 /* CPU data for i960.
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 Binutils and/or GDB, the GNU debugger.
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 #include "sysdep.h"
26 #include <ctype.h>
27 #include <stdio.h>
28 #include "ansidecl.h"
29 #include "bfd.h"
30 #include "symcat.h"
31 #include "i960-desc.h"
32 #include "i960-opc.h"
33 #include "opintl.h"
34
35 /* Attributes. */
36
37 static const CGEN_ATTR_ENTRY bool_attr[] =
38 {
39 { "#f", 0 },
40 { "#t", 1 },
41 { 0, 0 }
42 };
43
44 static const CGEN_ATTR_ENTRY MACH_attr[] =
45 {
46 { "base", MACH_BASE },
47 { "i960_ka_sa", MACH_I960_KA_SA },
48 { "i960_ca", MACH_I960_CA },
49 { "max", MACH_MAX },
50 { 0, 0 }
51 };
52
53 const CGEN_ATTR_TABLE i960_cgen_ifield_attr_table[] =
54 {
55 { "MACH", & MACH_attr[0] },
56 { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
57 { "UNSIGNED", &bool_attr[0], &bool_attr[0] },
58 { "PCREL-ADDR", &bool_attr[0], &bool_attr[0] },
59 { "ABS-ADDR", &bool_attr[0], &bool_attr[0] },
60 { "RESERVED", &bool_attr[0], &bool_attr[0] },
61 { "SIGN-OPT", &bool_attr[0], &bool_attr[0] },
62 { 0, 0, 0 }
63 };
64
65 const CGEN_ATTR_TABLE i960_cgen_hardware_attr_table[] =
66 {
67 { "MACH", & MACH_attr[0] },
68 { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
69 { "UNSIGNED", &bool_attr[0], &bool_attr[0] },
70 { "SIGNED", &bool_attr[0], &bool_attr[0] },
71 { "CACHE-ADDR", &bool_attr[0], &bool_attr[0] },
72 { "FUN-ACCESS", &bool_attr[0], &bool_attr[0] },
73 { "PC", &bool_attr[0], &bool_attr[0] },
74 { "PROFILE", &bool_attr[0], &bool_attr[0] },
75 { 0, 0, 0 }
76 };
77
78 const CGEN_ATTR_TABLE i960_cgen_operand_attr_table[] =
79 {
80 { "MACH", & MACH_attr[0] },
81 { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
82 { "UNSIGNED", &bool_attr[0], &bool_attr[0] },
83 { "PCREL-ADDR", &bool_attr[0], &bool_attr[0] },
84 { "ABS-ADDR", &bool_attr[0], &bool_attr[0] },
85 { "SIGN-OPT", &bool_attr[0], &bool_attr[0] },
86 { "NEGATIVE", &bool_attr[0], &bool_attr[0] },
87 { "RELAX", &bool_attr[0], &bool_attr[0] },
88 { "SEM-ONLY", &bool_attr[0], &bool_attr[0] },
89 { 0, 0, 0 }
90 };
91
92 const CGEN_ATTR_TABLE i960_cgen_insn_attr_table[] =
93 {
94 { "MACH", & MACH_attr[0] },
95 { "ALIAS", &bool_attr[0], &bool_attr[0] },
96 { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
97 { "UNCOND-CTI", &bool_attr[0], &bool_attr[0] },
98 { "COND-CTI", &bool_attr[0], &bool_attr[0] },
99 { "SKIP-CTI", &bool_attr[0], &bool_attr[0] },
100 { "DELAY-SLOT", &bool_attr[0], &bool_attr[0] },
101 { "RELAXABLE", &bool_attr[0], &bool_attr[0] },
102 { "RELAX", &bool_attr[0], &bool_attr[0] },
103 { "NO-DIS", &bool_attr[0], &bool_attr[0] },
104 { "PBB", &bool_attr[0], &bool_attr[0] },
105 { 0, 0, 0 }
106 };
107
108 CGEN_KEYWORD_ENTRY i960_cgen_opval_h_gr_entries[] =
109 {
110 { "fp", 31 },
111 { "sp", 1 },
112 { "r0", 0 },
113 { "r1", 1 },
114 { "r2", 2 },
115 { "r3", 3 },
116 { "r4", 4 },
117 { "r5", 5 },
118 { "r6", 6 },
119 { "r7", 7 },
120 { "r8", 8 },
121 { "r9", 9 },
122 { "r10", 10 },
123 { "r11", 11 },
124 { "r12", 12 },
125 { "r13", 13 },
126 { "r14", 14 },
127 { "r15", 15 },
128 { "g0", 16 },
129 { "g1", 17 },
130 { "g2", 18 },
131 { "g3", 19 },
132 { "g4", 20 },
133 { "g5", 21 },
134 { "g6", 22 },
135 { "g7", 23 },
136 { "g8", 24 },
137 { "g9", 25 },
138 { "g10", 26 },
139 { "g11", 27 },
140 { "g12", 28 },
141 { "g13", 29 },
142 { "g14", 30 },
143 { "g15", 31 }
144 };
145
146 CGEN_KEYWORD i960_cgen_opval_h_gr =
147 {
148 & i960_cgen_opval_h_gr_entries[0],
149 34
150 };
151
152 CGEN_KEYWORD_ENTRY i960_cgen_opval_h_cc_entries[] =
153 {
154 { "cc", 0 }
155 };
156
157 CGEN_KEYWORD i960_cgen_opval_h_cc =
158 {
159 & i960_cgen_opval_h_cc_entries[0],
160 1
161 };
162
163
164
165 /* The hardware table. */
166
167 #define A(a) (1 << (CONCAT2 (CGEN_HW_,a) - CGEN_ATTR_BOOL_OFFSET))
168 #define HW_ENT(n) i960_cgen_hw_table[n]
169
170 const CGEN_HW_ENTRY i960_cgen_hw_table[] =
171 {
172 { HW_H_PC, & HW_ENT (HW_H_PC + 1), "h-pc", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0|A(PROFILE)|A(PC), { (1<<MACH_BASE) } } },
173 { HW_H_MEMORY, & HW_ENT (HW_H_MEMORY + 1), "h-memory", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
174 { HW_H_SINT, & HW_ENT (HW_H_SINT + 1), "h-sint", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
175 { HW_H_UINT, & HW_ENT (HW_H_UINT + 1), "h-uint", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
176 { HW_H_ADDR, & HW_ENT (HW_H_ADDR + 1), "h-addr", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
177 { HW_H_IADDR, & HW_ENT (HW_H_IADDR + 1), "h-iaddr", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
178 { HW_H_GR, & HW_ENT (HW_H_GR + 1), "h-gr", CGEN_ASM_KEYWORD, (PTR) & i960_cgen_opval_h_gr, { CGEN_HW_NBOOL_ATTRS, 0|A(CACHE_ADDR)|A(PROFILE), { (1<<MACH_BASE) } } },
179 { HW_H_CC, & HW_ENT (HW_H_CC + 1), "h-cc", CGEN_ASM_KEYWORD, (PTR) & i960_cgen_opval_h_cc, { CGEN_HW_NBOOL_ATTRS, 0|A(CACHE_ADDR)|A(PROFILE), { (1<<MACH_BASE) } } },
180 { 0 }
181 };
182
183 /* don't undef HW_ENT, used later */
184 #undef A
185
186 /* The instruction field table. */
187
188 #define A(a) (1 << (CONCAT2 (CGEN_IFLD_,a) - CGEN_ATTR_BOOL_OFFSET))
189
190 const CGEN_IFLD i960_cgen_ifld_table[] =
191 {
192 { I960_F_NIL, "f-nil", 0, 0, 0, 0, { CGEN_IFLD_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
193 { I960_F_OPCODE, "f-opcode", 0, 32, 0, 8, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
194 { I960_F_SRCDST, "f-srcdst", 0, 32, 8, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
195 { I960_F_SRC2, "f-src2", 0, 32, 13, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
196 { I960_F_M3, "f-m3", 0, 32, 18, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
197 { I960_F_M2, "f-m2", 0, 32, 19, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
198 { I960_F_M1, "f-m1", 0, 32, 20, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
199 { I960_F_OPCODE2, "f-opcode2", 0, 32, 21, 4, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
200 { I960_F_ZERO, "f-zero", 0, 32, 25, 2, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
201 { I960_F_SRC1, "f-src1", 0, 32, 27, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
202 { I960_F_ABASE, "f-abase", 0, 32, 13, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
203 { I960_F_MODEA, "f-modea", 0, 32, 18, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
204 { I960_F_ZEROA, "f-zeroa", 0, 32, 19, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
205 { I960_F_OFFSET, "f-offset", 0, 32, 20, 12, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
206 { I960_F_MODEB, "f-modeb", 0, 32, 18, 4, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
207 { I960_F_SCALE, "f-scale", 0, 32, 22, 3, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
208 { I960_F_ZEROB, "f-zerob", 0, 32, 25, 2, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
209 { I960_F_INDEX, "f-index", 0, 32, 27, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
210 { I960_F_OPTDISP, "f-optdisp", 32, 32, 0, 32, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
211 { I960_F_BR_SRC1, "f-br-src1", 0, 32, 8, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
212 { I960_F_BR_SRC2, "f-br-src2", 0, 32, 13, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
213 { I960_F_BR_M1, "f-br-m1", 0, 32, 18, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
214 { I960_F_BR_DISP, "f-br-disp", 0, 32, 19, 11, { CGEN_IFLD_NBOOL_ATTRS, 0|A(PCREL_ADDR), { (1<<MACH_BASE) } } },
215 { I960_F_BR_ZERO, "f-br-zero", 0, 32, 30, 2, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
216 { I960_F_CTRL_DISP, "f-ctrl-disp", 0, 32, 8, 22, { CGEN_IFLD_NBOOL_ATTRS, 0|A(PCREL_ADDR), { (1<<MACH_BASE) } } },
217 { I960_F_CTRL_ZERO, "f-ctrl-zero", 0, 32, 30, 2, { CGEN_IFLD_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
218 { 0 }
219 };
220
221 #undef A
222
223 /* The operand table. */
224
225 #define A(a) (1 << (CONCAT2 (CGEN_OPERAND_,a) - CGEN_ATTR_BOOL_OFFSET))
226 #define OPERAND(op) CONCAT2 (I960_OPERAND_,op)
227
228 const CGEN_OPERAND i960_cgen_operand_table[MAX_OPERANDS] =
229 {
230 /* pc: program counter */
231 { "pc", & HW_ENT (HW_H_PC), 0, 0,
232 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(SEM_ONLY), { (1<<MACH_BASE) } } },
233 /* src1: source register 1 */
234 { "src1", & HW_ENT (HW_H_GR), 27, 5,
235 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
236 /* src2: source register 2 */
237 { "src2", & HW_ENT (HW_H_GR), 13, 5,
238 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
239 /* dst: source/dest register */
240 { "dst", & HW_ENT (HW_H_GR), 8, 5,
241 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
242 /* lit1: literal 1 */
243 { "lit1", & HW_ENT (HW_H_UINT), 27, 5,
244 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
245 /* lit2: literal 2 */
246 { "lit2", & HW_ENT (HW_H_UINT), 13, 5,
247 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
248 /* st_src: store src */
249 { "st_src", & HW_ENT (HW_H_GR), 8, 5,
250 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
251 /* abase: abase */
252 { "abase", & HW_ENT (HW_H_GR), 13, 5,
253 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
254 /* offset: offset */
255 { "offset", & HW_ENT (HW_H_UINT), 20, 12,
256 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
257 /* scale: scale */
258 { "scale", & HW_ENT (HW_H_UINT), 22, 3,
259 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
260 /* index: index */
261 { "index", & HW_ENT (HW_H_GR), 27, 5,
262 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
263 /* optdisp: optional displacement */
264 { "optdisp", & HW_ENT (HW_H_UINT), 0, 32,
265 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
266 /* br_src1: branch src1 */
267 { "br_src1", & HW_ENT (HW_H_GR), 8, 5,
268 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
269 /* br_src2: branch src2 */
270 { "br_src2", & HW_ENT (HW_H_GR), 13, 5,
271 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
272 /* br_disp: branch displacement */
273 { "br_disp", & HW_ENT (HW_H_IADDR), 19, 11,
274 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(PCREL_ADDR), { (1<<MACH_BASE) } } },
275 /* br_lit1: branch literal 1 */
276 { "br_lit1", & HW_ENT (HW_H_UINT), 8, 5,
277 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(UNSIGNED), { (1<<MACH_BASE) } } },
278 /* ctrl_disp: ctrl branch disp */
279 { "ctrl_disp", & HW_ENT (HW_H_IADDR), 8, 22,
280 { CGEN_OPERAND_NBOOL_ATTRS, 0|A(PCREL_ADDR), { (1<<MACH_BASE) } } },
281 };
282
283 #undef A
284
285 #define A(a) (1 << (CONCAT2 (CGEN_INSN_,a) - CGEN_ATTR_BOOL_OFFSET))
286 #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
287
288 /* The instruction table. */
289
290 static const CGEN_IBASE i960_cgen_insn_table[MAX_INSNS] =
291 {
292 /* Special null first entry.
293 A `num' value of zero is thus invalid.
294 Also, the special `invalid' insn resides here. */
295 { 0, 0, 0 },
296 /* mulo $src1, $src2, $dst */
297 {
298 I960_INSN_MULO, "mulo", "mulo", 32,
299 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
300 },
301 /* mulo $lit1, $src2, $dst */
302 {
303 I960_INSN_MULO1, "mulo1", "mulo", 32,
304 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
305 },
306 /* mulo $src1, $lit2, $dst */
307 {
308 I960_INSN_MULO2, "mulo2", "mulo", 32,
309 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
310 },
311 /* mulo $lit1, $lit2, $dst */
312 {
313 I960_INSN_MULO3, "mulo3", "mulo", 32,
314 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
315 },
316 /* remo $src1, $src2, $dst */
317 {
318 I960_INSN_REMO, "remo", "remo", 32,
319 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
320 },
321 /* remo $lit1, $src2, $dst */
322 {
323 I960_INSN_REMO1, "remo1", "remo", 32,
324 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
325 },
326 /* remo $src1, $lit2, $dst */
327 {
328 I960_INSN_REMO2, "remo2", "remo", 32,
329 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
330 },
331 /* remo $lit1, $lit2, $dst */
332 {
333 I960_INSN_REMO3, "remo3", "remo", 32,
334 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
335 },
336 /* divo $src1, $src2, $dst */
337 {
338 I960_INSN_DIVO, "divo", "divo", 32,
339 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
340 },
341 /* divo $lit1, $src2, $dst */
342 {
343 I960_INSN_DIVO1, "divo1", "divo", 32,
344 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
345 },
346 /* divo $src1, $lit2, $dst */
347 {
348 I960_INSN_DIVO2, "divo2", "divo", 32,
349 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
350 },
351 /* divo $lit1, $lit2, $dst */
352 {
353 I960_INSN_DIVO3, "divo3", "divo", 32,
354 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
355 },
356 /* remi $src1, $src2, $dst */
357 {
358 I960_INSN_REMI, "remi", "remi", 32,
359 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
360 },
361 /* remi $lit1, $src2, $dst */
362 {
363 I960_INSN_REMI1, "remi1", "remi", 32,
364 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
365 },
366 /* remi $src1, $lit2, $dst */
367 {
368 I960_INSN_REMI2, "remi2", "remi", 32,
369 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
370 },
371 /* remi $lit1, $lit2, $dst */
372 {
373 I960_INSN_REMI3, "remi3", "remi", 32,
374 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
375 },
376 /* divi $src1, $src2, $dst */
377 {
378 I960_INSN_DIVI, "divi", "divi", 32,
379 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
380 },
381 /* divi $lit1, $src2, $dst */
382 {
383 I960_INSN_DIVI1, "divi1", "divi", 32,
384 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
385 },
386 /* divi $src1, $lit2, $dst */
387 {
388 I960_INSN_DIVI2, "divi2", "divi", 32,
389 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
390 },
391 /* divi $lit1, $lit2, $dst */
392 {
393 I960_INSN_DIVI3, "divi3", "divi", 32,
394 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
395 },
396 /* addo $src1, $src2, $dst */
397 {
398 I960_INSN_ADDO, "addo", "addo", 32,
399 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
400 },
401 /* addo $lit1, $src2, $dst */
402 {
403 I960_INSN_ADDO1, "addo1", "addo", 32,
404 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
405 },
406 /* addo $src1, $lit2, $dst */
407 {
408 I960_INSN_ADDO2, "addo2", "addo", 32,
409 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
410 },
411 /* addo $lit1, $lit2, $dst */
412 {
413 I960_INSN_ADDO3, "addo3", "addo", 32,
414 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
415 },
416 /* subo $src1, $src2, $dst */
417 {
418 I960_INSN_SUBO, "subo", "subo", 32,
419 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
420 },
421 /* subo $lit1, $src2, $dst */
422 {
423 I960_INSN_SUBO1, "subo1", "subo", 32,
424 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
425 },
426 /* subo $src1, $lit2, $dst */
427 {
428 I960_INSN_SUBO2, "subo2", "subo", 32,
429 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
430 },
431 /* subo $lit1, $lit2, $dst */
432 {
433 I960_INSN_SUBO3, "subo3", "subo", 32,
434 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
435 },
436 /* notbit $src1, $src2, $dst */
437 {
438 I960_INSN_NOTBIT, "notbit", "notbit", 32,
439 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
440 },
441 /* notbit $lit1, $src2, $dst */
442 {
443 I960_INSN_NOTBIT1, "notbit1", "notbit", 32,
444 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
445 },
446 /* notbit $src1, $lit2, $dst */
447 {
448 I960_INSN_NOTBIT2, "notbit2", "notbit", 32,
449 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
450 },
451 /* notbit $lit1, $lit2, $dst */
452 {
453 I960_INSN_NOTBIT3, "notbit3", "notbit", 32,
454 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
455 },
456 /* and $src1, $src2, $dst */
457 {
458 I960_INSN_AND, "and", "and", 32,
459 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
460 },
461 /* and $lit1, $src2, $dst */
462 {
463 I960_INSN_AND1, "and1", "and", 32,
464 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
465 },
466 /* and $src1, $lit2, $dst */
467 {
468 I960_INSN_AND2, "and2", "and", 32,
469 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
470 },
471 /* and $lit1, $lit2, $dst */
472 {
473 I960_INSN_AND3, "and3", "and", 32,
474 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
475 },
476 /* andnot $src1, $src2, $dst */
477 {
478 I960_INSN_ANDNOT, "andnot", "andnot", 32,
479 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
480 },
481 /* andnot $lit1, $src2, $dst */
482 {
483 I960_INSN_ANDNOT1, "andnot1", "andnot", 32,
484 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
485 },
486 /* andnot $src1, $lit2, $dst */
487 {
488 I960_INSN_ANDNOT2, "andnot2", "andnot", 32,
489 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
490 },
491 /* andnot $lit1, $lit2, $dst */
492 {
493 I960_INSN_ANDNOT3, "andnot3", "andnot", 32,
494 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
495 },
496 /* setbit $src1, $src2, $dst */
497 {
498 I960_INSN_SETBIT, "setbit", "setbit", 32,
499 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
500 },
501 /* setbit $lit1, $src2, $dst */
502 {
503 I960_INSN_SETBIT1, "setbit1", "setbit", 32,
504 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
505 },
506 /* setbit $src1, $lit2, $dst */
507 {
508 I960_INSN_SETBIT2, "setbit2", "setbit", 32,
509 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
510 },
511 /* setbit $lit1, $lit2, $dst */
512 {
513 I960_INSN_SETBIT3, "setbit3", "setbit", 32,
514 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
515 },
516 /* notand $src1, $src2, $dst */
517 {
518 I960_INSN_NOTAND, "notand", "notand", 32,
519 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
520 },
521 /* notand $lit1, $src2, $dst */
522 {
523 I960_INSN_NOTAND1, "notand1", "notand", 32,
524 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
525 },
526 /* notand $src1, $lit2, $dst */
527 {
528 I960_INSN_NOTAND2, "notand2", "notand", 32,
529 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
530 },
531 /* notand $lit1, $lit2, $dst */
532 {
533 I960_INSN_NOTAND3, "notand3", "notand", 32,
534 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
535 },
536 /* xor $src1, $src2, $dst */
537 {
538 I960_INSN_XOR, "xor", "xor", 32,
539 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
540 },
541 /* xor $lit1, $src2, $dst */
542 {
543 I960_INSN_XOR1, "xor1", "xor", 32,
544 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
545 },
546 /* xor $src1, $lit2, $dst */
547 {
548 I960_INSN_XOR2, "xor2", "xor", 32,
549 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
550 },
551 /* xor $lit1, $lit2, $dst */
552 {
553 I960_INSN_XOR3, "xor3", "xor", 32,
554 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
555 },
556 /* or $src1, $src2, $dst */
557 {
558 I960_INSN_OR, "or", "or", 32,
559 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
560 },
561 /* or $lit1, $src2, $dst */
562 {
563 I960_INSN_OR1, "or1", "or", 32,
564 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
565 },
566 /* or $src1, $lit2, $dst */
567 {
568 I960_INSN_OR2, "or2", "or", 32,
569 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
570 },
571 /* or $lit1, $lit2, $dst */
572 {
573 I960_INSN_OR3, "or3", "or", 32,
574 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
575 },
576 /* nor $src1, $src2, $dst */
577 {
578 I960_INSN_NOR, "nor", "nor", 32,
579 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
580 },
581 /* nor $lit1, $src2, $dst */
582 {
583 I960_INSN_NOR1, "nor1", "nor", 32,
584 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
585 },
586 /* nor $src1, $lit2, $dst */
587 {
588 I960_INSN_NOR2, "nor2", "nor", 32,
589 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
590 },
591 /* nor $lit1, $lit2, $dst */
592 {
593 I960_INSN_NOR3, "nor3", "nor", 32,
594 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
595 },
596 /* not $src1, $src2, $dst */
597 {
598 I960_INSN_NOT, "not", "not", 32,
599 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
600 },
601 /* not $lit1, $src2, $dst */
602 {
603 I960_INSN_NOT1, "not1", "not", 32,
604 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
605 },
606 /* not $src1, $lit2, $dst */
607 {
608 I960_INSN_NOT2, "not2", "not", 32,
609 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
610 },
611 /* not $lit1, $lit2, $dst */
612 {
613 I960_INSN_NOT3, "not3", "not", 32,
614 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
615 },
616 /* clrbit $src1, $src2, $dst */
617 {
618 I960_INSN_CLRBIT, "clrbit", "clrbit", 32,
619 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
620 },
621 /* clrbit $lit1, $src2, $dst */
622 {
623 I960_INSN_CLRBIT1, "clrbit1", "clrbit", 32,
624 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
625 },
626 /* clrbit $src1, $lit2, $dst */
627 {
628 I960_INSN_CLRBIT2, "clrbit2", "clrbit", 32,
629 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
630 },
631 /* clrbit $lit1, $lit2, $dst */
632 {
633 I960_INSN_CLRBIT3, "clrbit3", "clrbit", 32,
634 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
635 },
636 /* shlo $src1, $src2, $dst */
637 {
638 I960_INSN_SHLO, "shlo", "shlo", 32,
639 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
640 },
641 /* shlo $lit1, $src2, $dst */
642 {
643 I960_INSN_SHLO1, "shlo1", "shlo", 32,
644 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
645 },
646 /* shlo $src1, $lit2, $dst */
647 {
648 I960_INSN_SHLO2, "shlo2", "shlo", 32,
649 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
650 },
651 /* shlo $lit1, $lit2, $dst */
652 {
653 I960_INSN_SHLO3, "shlo3", "shlo", 32,
654 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
655 },
656 /* shro $src1, $src2, $dst */
657 {
658 I960_INSN_SHRO, "shro", "shro", 32,
659 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
660 },
661 /* shro $lit1, $src2, $dst */
662 {
663 I960_INSN_SHRO1, "shro1", "shro", 32,
664 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
665 },
666 /* shro $src1, $lit2, $dst */
667 {
668 I960_INSN_SHRO2, "shro2", "shro", 32,
669 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
670 },
671 /* shro $lit1, $lit2, $dst */
672 {
673 I960_INSN_SHRO3, "shro3", "shro", 32,
674 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
675 },
676 /* shli $src1, $src2, $dst */
677 {
678 I960_INSN_SHLI, "shli", "shli", 32,
679 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
680 },
681 /* shli $lit1, $src2, $dst */
682 {
683 I960_INSN_SHLI1, "shli1", "shli", 32,
684 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
685 },
686 /* shli $src1, $lit2, $dst */
687 {
688 I960_INSN_SHLI2, "shli2", "shli", 32,
689 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
690 },
691 /* shli $lit1, $lit2, $dst */
692 {
693 I960_INSN_SHLI3, "shli3", "shli", 32,
694 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
695 },
696 /* shri $src1, $src2, $dst */
697 {
698 I960_INSN_SHRI, "shri", "shri", 32,
699 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
700 },
701 /* shri $lit1, $src2, $dst */
702 {
703 I960_INSN_SHRI1, "shri1", "shri", 32,
704 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
705 },
706 /* shri $src1, $lit2, $dst */
707 {
708 I960_INSN_SHRI2, "shri2", "shri", 32,
709 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
710 },
711 /* shri $lit1, $lit2, $dst */
712 {
713 I960_INSN_SHRI3, "shri3", "shri", 32,
714 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
715 },
716 /* emul $src1, $src2, $dst */
717 {
718 I960_INSN_EMUL, "emul", "emul", 32,
719 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
720 },
721 /* emul $lit1, $src2, $dst */
722 {
723 I960_INSN_EMUL1, "emul1", "emul", 32,
724 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
725 },
726 /* emul $src1, $lit2, $dst */
727 {
728 I960_INSN_EMUL2, "emul2", "emul", 32,
729 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
730 },
731 /* emul $lit1, $lit2, $dst */
732 {
733 I960_INSN_EMUL3, "emul3", "emul", 32,
734 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
735 },
736 /* mov $src1, $dst */
737 {
738 I960_INSN_MOV, "mov", "mov", 32,
739 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
740 },
741 /* mov $lit1, $dst */
742 {
743 I960_INSN_MOV1, "mov1", "mov", 32,
744 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
745 },
746 /* movl $src1, $dst */
747 {
748 I960_INSN_MOVL, "movl", "movl", 32,
749 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
750 },
751 /* movl $lit1, $dst */
752 {
753 I960_INSN_MOVL1, "movl1", "movl", 32,
754 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
755 },
756 /* movt $src1, $dst */
757 {
758 I960_INSN_MOVT, "movt", "movt", 32,
759 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
760 },
761 /* movt $lit1, $dst */
762 {
763 I960_INSN_MOVT1, "movt1", "movt", 32,
764 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
765 },
766 /* movq $src1, $dst */
767 {
768 I960_INSN_MOVQ, "movq", "movq", 32,
769 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
770 },
771 /* movq $lit1, $dst */
772 {
773 I960_INSN_MOVQ1, "movq1", "movq", 32,
774 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
775 },
776 /* modpc $src1, $src2, $dst */
777 {
778 I960_INSN_MODPC, "modpc", "modpc", 32,
779 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
780 },
781 /* modac $src1, $src2, $dst */
782 {
783 I960_INSN_MODAC, "modac", "modac", 32,
784 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
785 },
786 /* lda $offset, $dst */
787 {
788 I960_INSN_LDA_OFFSET, "lda-offset", "lda", 32,
789 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
790 },
791 /* lda $offset($abase), $dst */
792 {
793 I960_INSN_LDA_INDIRECT_OFFSET, "lda-indirect-offset", "lda", 32,
794 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
795 },
796 /* lda ($abase), $dst */
797 {
798 I960_INSN_LDA_INDIRECT, "lda-indirect", "lda", 32,
799 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
800 },
801 /* lda ($abase)[$index*S$scale], $dst */
802 {
803 I960_INSN_LDA_INDIRECT_INDEX, "lda-indirect-index", "lda", 32,
804 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
805 },
806 /* lda $optdisp, $dst */
807 {
808 I960_INSN_LDA_DISP, "lda-disp", "lda", 64,
809 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
810 },
811 /* lda $optdisp($abase), $dst */
812 {
813 I960_INSN_LDA_INDIRECT_DISP, "lda-indirect-disp", "lda", 64,
814 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
815 },
816 /* lda $optdisp[$index*S$scale], $dst */
817 {
818 I960_INSN_LDA_INDEX_DISP, "lda-index-disp", "lda", 64,
819 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
820 },
821 /* lda $optdisp($abase)[$index*S$scale], $dst */
822 {
823 I960_INSN_LDA_INDIRECT_INDEX_DISP, "lda-indirect-index-disp", "lda", 64,
824 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
825 },
826 /* ld $offset, $dst */
827 {
828 I960_INSN_LD_OFFSET, "ld-offset", "ld", 32,
829 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
830 },
831 /* ld $offset($abase), $dst */
832 {
833 I960_INSN_LD_INDIRECT_OFFSET, "ld-indirect-offset", "ld", 32,
834 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
835 },
836 /* ld ($abase), $dst */
837 {
838 I960_INSN_LD_INDIRECT, "ld-indirect", "ld", 32,
839 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
840 },
841 /* ld ($abase)[$index*S$scale], $dst */
842 {
843 I960_INSN_LD_INDIRECT_INDEX, "ld-indirect-index", "ld", 32,
844 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
845 },
846 /* ld $optdisp, $dst */
847 {
848 I960_INSN_LD_DISP, "ld-disp", "ld", 64,
849 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
850 },
851 /* ld $optdisp($abase), $dst */
852 {
853 I960_INSN_LD_INDIRECT_DISP, "ld-indirect-disp", "ld", 64,
854 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
855 },
856 /* ld $optdisp[$index*S$scale], $dst */
857 {
858 I960_INSN_LD_INDEX_DISP, "ld-index-disp", "ld", 64,
859 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
860 },
861 /* ld $optdisp($abase)[$index*S$scale], $dst */
862 {
863 I960_INSN_LD_INDIRECT_INDEX_DISP, "ld-indirect-index-disp", "ld", 64,
864 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
865 },
866 /* ldob $offset, $dst */
867 {
868 I960_INSN_LDOB_OFFSET, "ldob-offset", "ldob", 32,
869 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
870 },
871 /* ldob $offset($abase), $dst */
872 {
873 I960_INSN_LDOB_INDIRECT_OFFSET, "ldob-indirect-offset", "ldob", 32,
874 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
875 },
876 /* ldob ($abase), $dst */
877 {
878 I960_INSN_LDOB_INDIRECT, "ldob-indirect", "ldob", 32,
879 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
880 },
881 /* ldob ($abase)[$index*S$scale], $dst */
882 {
883 I960_INSN_LDOB_INDIRECT_INDEX, "ldob-indirect-index", "ldob", 32,
884 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
885 },
886 /* ldob $optdisp, $dst */
887 {
888 I960_INSN_LDOB_DISP, "ldob-disp", "ldob", 64,
889 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
890 },
891 /* ldob $optdisp($abase), $dst */
892 {
893 I960_INSN_LDOB_INDIRECT_DISP, "ldob-indirect-disp", "ldob", 64,
894 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
895 },
896 /* ldob $optdisp[$index*S$scale], $dst */
897 {
898 I960_INSN_LDOB_INDEX_DISP, "ldob-index-disp", "ldob", 64,
899 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
900 },
901 /* ldob $optdisp($abase)[$index*S$scale], $dst */
902 {
903 I960_INSN_LDOB_INDIRECT_INDEX_DISP, "ldob-indirect-index-disp", "ldob", 64,
904 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
905 },
906 /* ldos $offset, $dst */
907 {
908 I960_INSN_LDOS_OFFSET, "ldos-offset", "ldos", 32,
909 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
910 },
911 /* ldos $offset($abase), $dst */
912 {
913 I960_INSN_LDOS_INDIRECT_OFFSET, "ldos-indirect-offset", "ldos", 32,
914 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
915 },
916 /* ldos ($abase), $dst */
917 {
918 I960_INSN_LDOS_INDIRECT, "ldos-indirect", "ldos", 32,
919 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
920 },
921 /* ldos ($abase)[$index*S$scale], $dst */
922 {
923 I960_INSN_LDOS_INDIRECT_INDEX, "ldos-indirect-index", "ldos", 32,
924 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
925 },
926 /* ldos $optdisp, $dst */
927 {
928 I960_INSN_LDOS_DISP, "ldos-disp", "ldos", 64,
929 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
930 },
931 /* ldos $optdisp($abase), $dst */
932 {
933 I960_INSN_LDOS_INDIRECT_DISP, "ldos-indirect-disp", "ldos", 64,
934 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
935 },
936 /* ldos $optdisp[$index*S$scale], $dst */
937 {
938 I960_INSN_LDOS_INDEX_DISP, "ldos-index-disp", "ldos", 64,
939 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
940 },
941 /* ldos $optdisp($abase)[$index*S$scale], $dst */
942 {
943 I960_INSN_LDOS_INDIRECT_INDEX_DISP, "ldos-indirect-index-disp", "ldos", 64,
944 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
945 },
946 /* ldib $offset, $dst */
947 {
948 I960_INSN_LDIB_OFFSET, "ldib-offset", "ldib", 32,
949 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
950 },
951 /* ldib $offset($abase), $dst */
952 {
953 I960_INSN_LDIB_INDIRECT_OFFSET, "ldib-indirect-offset", "ldib", 32,
954 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
955 },
956 /* ldib ($abase), $dst */
957 {
958 I960_INSN_LDIB_INDIRECT, "ldib-indirect", "ldib", 32,
959 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
960 },
961 /* ldib ($abase)[$index*S$scale], $dst */
962 {
963 I960_INSN_LDIB_INDIRECT_INDEX, "ldib-indirect-index", "ldib", 32,
964 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
965 },
966 /* ldib $optdisp, $dst */
967 {
968 I960_INSN_LDIB_DISP, "ldib-disp", "ldib", 64,
969 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
970 },
971 /* ldib $optdisp($abase), $dst */
972 {
973 I960_INSN_LDIB_INDIRECT_DISP, "ldib-indirect-disp", "ldib", 64,
974 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
975 },
976 /* ldib $optdisp[$index*S$scale], $dst */
977 {
978 I960_INSN_LDIB_INDEX_DISP, "ldib-index-disp", "ldib", 64,
979 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
980 },
981 /* ldib $optdisp($abase)[$index*S$scale], $dst */
982 {
983 I960_INSN_LDIB_INDIRECT_INDEX_DISP, "ldib-indirect-index-disp", "ldib", 64,
984 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
985 },
986 /* ldis $offset, $dst */
987 {
988 I960_INSN_LDIS_OFFSET, "ldis-offset", "ldis", 32,
989 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
990 },
991 /* ldis $offset($abase), $dst */
992 {
993 I960_INSN_LDIS_INDIRECT_OFFSET, "ldis-indirect-offset", "ldis", 32,
994 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
995 },
996 /* ldis ($abase), $dst */
997 {
998 I960_INSN_LDIS_INDIRECT, "ldis-indirect", "ldis", 32,
999 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1000 },
1001 /* ldis ($abase)[$index*S$scale], $dst */
1002 {
1003 I960_INSN_LDIS_INDIRECT_INDEX, "ldis-indirect-index", "ldis", 32,
1004 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1005 },
1006 /* ldis $optdisp, $dst */
1007 {
1008 I960_INSN_LDIS_DISP, "ldis-disp", "ldis", 64,
1009 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1010 },
1011 /* ldis $optdisp($abase), $dst */
1012 {
1013 I960_INSN_LDIS_INDIRECT_DISP, "ldis-indirect-disp", "ldis", 64,
1014 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1015 },
1016 /* ldis $optdisp[$index*S$scale], $dst */
1017 {
1018 I960_INSN_LDIS_INDEX_DISP, "ldis-index-disp", "ldis", 64,
1019 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1020 },
1021 /* ldis $optdisp($abase)[$index*S$scale], $dst */
1022 {
1023 I960_INSN_LDIS_INDIRECT_INDEX_DISP, "ldis-indirect-index-disp", "ldis", 64,
1024 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1025 },
1026 /* ldl $offset, $dst */
1027 {
1028 I960_INSN_LDL_OFFSET, "ldl-offset", "ldl", 32,
1029 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1030 },
1031 /* ldl $offset($abase), $dst */
1032 {
1033 I960_INSN_LDL_INDIRECT_OFFSET, "ldl-indirect-offset", "ldl", 32,
1034 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1035 },
1036 /* ldl ($abase), $dst */
1037 {
1038 I960_INSN_LDL_INDIRECT, "ldl-indirect", "ldl", 32,
1039 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1040 },
1041 /* ldl ($abase)[$index*S$scale], $dst */
1042 {
1043 I960_INSN_LDL_INDIRECT_INDEX, "ldl-indirect-index", "ldl", 32,
1044 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1045 },
1046 /* ldl $optdisp, $dst */
1047 {
1048 I960_INSN_LDL_DISP, "ldl-disp", "ldl", 64,
1049 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1050 },
1051 /* ldl $optdisp($abase), $dst */
1052 {
1053 I960_INSN_LDL_INDIRECT_DISP, "ldl-indirect-disp", "ldl", 64,
1054 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1055 },
1056 /* ldl $optdisp[$index*S$scale], $dst */
1057 {
1058 I960_INSN_LDL_INDEX_DISP, "ldl-index-disp", "ldl", 64,
1059 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1060 },
1061 /* ldl $optdisp($abase)[$index*S$scale], $dst */
1062 {
1063 I960_INSN_LDL_INDIRECT_INDEX_DISP, "ldl-indirect-index-disp", "ldl", 64,
1064 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1065 },
1066 /* ldt $offset, $dst */
1067 {
1068 I960_INSN_LDT_OFFSET, "ldt-offset", "ldt", 32,
1069 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1070 },
1071 /* ldt $offset($abase), $dst */
1072 {
1073 I960_INSN_LDT_INDIRECT_OFFSET, "ldt-indirect-offset", "ldt", 32,
1074 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1075 },
1076 /* ldt ($abase), $dst */
1077 {
1078 I960_INSN_LDT_INDIRECT, "ldt-indirect", "ldt", 32,
1079 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1080 },
1081 /* ldt ($abase)[$index*S$scale], $dst */
1082 {
1083 I960_INSN_LDT_INDIRECT_INDEX, "ldt-indirect-index", "ldt", 32,
1084 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1085 },
1086 /* ldt $optdisp, $dst */
1087 {
1088 I960_INSN_LDT_DISP, "ldt-disp", "ldt", 64,
1089 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1090 },
1091 /* ldt $optdisp($abase), $dst */
1092 {
1093 I960_INSN_LDT_INDIRECT_DISP, "ldt-indirect-disp", "ldt", 64,
1094 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1095 },
1096 /* ldt $optdisp[$index*S$scale], $dst */
1097 {
1098 I960_INSN_LDT_INDEX_DISP, "ldt-index-disp", "ldt", 64,
1099 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1100 },
1101 /* ldt $optdisp($abase)[$index*S$scale], $dst */
1102 {
1103 I960_INSN_LDT_INDIRECT_INDEX_DISP, "ldt-indirect-index-disp", "ldt", 64,
1104 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1105 },
1106 /* ldq $offset, $dst */
1107 {
1108 I960_INSN_LDQ_OFFSET, "ldq-offset", "ldq", 32,
1109 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1110 },
1111 /* ldq $offset($abase), $dst */
1112 {
1113 I960_INSN_LDQ_INDIRECT_OFFSET, "ldq-indirect-offset", "ldq", 32,
1114 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1115 },
1116 /* ldq ($abase), $dst */
1117 {
1118 I960_INSN_LDQ_INDIRECT, "ldq-indirect", "ldq", 32,
1119 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1120 },
1121 /* ldq ($abase)[$index*S$scale], $dst */
1122 {
1123 I960_INSN_LDQ_INDIRECT_INDEX, "ldq-indirect-index", "ldq", 32,
1124 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1125 },
1126 /* ldq $optdisp, $dst */
1127 {
1128 I960_INSN_LDQ_DISP, "ldq-disp", "ldq", 64,
1129 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1130 },
1131 /* ldq $optdisp($abase), $dst */
1132 {
1133 I960_INSN_LDQ_INDIRECT_DISP, "ldq-indirect-disp", "ldq", 64,
1134 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1135 },
1136 /* ldq $optdisp[$index*S$scale], $dst */
1137 {
1138 I960_INSN_LDQ_INDEX_DISP, "ldq-index-disp", "ldq", 64,
1139 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1140 },
1141 /* ldq $optdisp($abase)[$index*S$scale], $dst */
1142 {
1143 I960_INSN_LDQ_INDIRECT_INDEX_DISP, "ldq-indirect-index-disp", "ldq", 64,
1144 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1145 },
1146 /* st $st_src, $offset */
1147 {
1148 I960_INSN_ST_OFFSET, "st-offset", "st", 32,
1149 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1150 },
1151 /* st $st_src, $offset($abase) */
1152 {
1153 I960_INSN_ST_INDIRECT_OFFSET, "st-indirect-offset", "st", 32,
1154 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1155 },
1156 /* st $st_src, ($abase) */
1157 {
1158 I960_INSN_ST_INDIRECT, "st-indirect", "st", 32,
1159 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1160 },
1161 /* st $st_src, ($abase)[$index*S$scale] */
1162 {
1163 I960_INSN_ST_INDIRECT_INDEX, "st-indirect-index", "st", 32,
1164 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1165 },
1166 /* st $st_src, $optdisp */
1167 {
1168 I960_INSN_ST_DISP, "st-disp", "st", 64,
1169 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1170 },
1171 /* st $st_src, $optdisp($abase) */
1172 {
1173 I960_INSN_ST_INDIRECT_DISP, "st-indirect-disp", "st", 64,
1174 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1175 },
1176 /* st $st_src, $optdisp[$index*S$scale */
1177 {
1178 I960_INSN_ST_INDEX_DISP, "st-index-disp", "st", 64,
1179 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1180 },
1181 /* st $st_src, $optdisp($abase)[$index*S$scale] */
1182 {
1183 I960_INSN_ST_INDIRECT_INDEX_DISP, "st-indirect-index-disp", "st", 64,
1184 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1185 },
1186 /* stob $st_src, $offset */
1187 {
1188 I960_INSN_STOB_OFFSET, "stob-offset", "stob", 32,
1189 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1190 },
1191 /* stob $st_src, $offset($abase) */
1192 {
1193 I960_INSN_STOB_INDIRECT_OFFSET, "stob-indirect-offset", "stob", 32,
1194 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1195 },
1196 /* stob $st_src, ($abase) */
1197 {
1198 I960_INSN_STOB_INDIRECT, "stob-indirect", "stob", 32,
1199 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1200 },
1201 /* stob $st_src, ($abase)[$index*S$scale] */
1202 {
1203 I960_INSN_STOB_INDIRECT_INDEX, "stob-indirect-index", "stob", 32,
1204 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1205 },
1206 /* stob $st_src, $optdisp */
1207 {
1208 I960_INSN_STOB_DISP, "stob-disp", "stob", 64,
1209 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1210 },
1211 /* stob $st_src, $optdisp($abase) */
1212 {
1213 I960_INSN_STOB_INDIRECT_DISP, "stob-indirect-disp", "stob", 64,
1214 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1215 },
1216 /* stob $st_src, $optdisp[$index*S$scale */
1217 {
1218 I960_INSN_STOB_INDEX_DISP, "stob-index-disp", "stob", 64,
1219 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1220 },
1221 /* stob $st_src, $optdisp($abase)[$index*S$scale] */
1222 {
1223 I960_INSN_STOB_INDIRECT_INDEX_DISP, "stob-indirect-index-disp", "stob", 64,
1224 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1225 },
1226 /* stos $st_src, $offset */
1227 {
1228 I960_INSN_STOS_OFFSET, "stos-offset", "stos", 32,
1229 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1230 },
1231 /* stos $st_src, $offset($abase) */
1232 {
1233 I960_INSN_STOS_INDIRECT_OFFSET, "stos-indirect-offset", "stos", 32,
1234 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1235 },
1236 /* stos $st_src, ($abase) */
1237 {
1238 I960_INSN_STOS_INDIRECT, "stos-indirect", "stos", 32,
1239 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1240 },
1241 /* stos $st_src, ($abase)[$index*S$scale] */
1242 {
1243 I960_INSN_STOS_INDIRECT_INDEX, "stos-indirect-index", "stos", 32,
1244 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1245 },
1246 /* stos $st_src, $optdisp */
1247 {
1248 I960_INSN_STOS_DISP, "stos-disp", "stos", 64,
1249 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1250 },
1251 /* stos $st_src, $optdisp($abase) */
1252 {
1253 I960_INSN_STOS_INDIRECT_DISP, "stos-indirect-disp", "stos", 64,
1254 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1255 },
1256 /* stos $st_src, $optdisp[$index*S$scale */
1257 {
1258 I960_INSN_STOS_INDEX_DISP, "stos-index-disp", "stos", 64,
1259 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1260 },
1261 /* stos $st_src, $optdisp($abase)[$index*S$scale] */
1262 {
1263 I960_INSN_STOS_INDIRECT_INDEX_DISP, "stos-indirect-index-disp", "stos", 64,
1264 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1265 },
1266 /* stl $st_src, $offset */
1267 {
1268 I960_INSN_STL_OFFSET, "stl-offset", "stl", 32,
1269 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1270 },
1271 /* stl $st_src, $offset($abase) */
1272 {
1273 I960_INSN_STL_INDIRECT_OFFSET, "stl-indirect-offset", "stl", 32,
1274 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1275 },
1276 /* stl $st_src, ($abase) */
1277 {
1278 I960_INSN_STL_INDIRECT, "stl-indirect", "stl", 32,
1279 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1280 },
1281 /* stl $st_src, ($abase)[$index*S$scale] */
1282 {
1283 I960_INSN_STL_INDIRECT_INDEX, "stl-indirect-index", "stl", 32,
1284 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1285 },
1286 /* stl $st_src, $optdisp */
1287 {
1288 I960_INSN_STL_DISP, "stl-disp", "stl", 64,
1289 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1290 },
1291 /* stl $st_src, $optdisp($abase) */
1292 {
1293 I960_INSN_STL_INDIRECT_DISP, "stl-indirect-disp", "stl", 64,
1294 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1295 },
1296 /* stl $st_src, $optdisp[$index*S$scale */
1297 {
1298 I960_INSN_STL_INDEX_DISP, "stl-index-disp", "stl", 64,
1299 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1300 },
1301 /* stl $st_src, $optdisp($abase)[$index*S$scale] */
1302 {
1303 I960_INSN_STL_INDIRECT_INDEX_DISP, "stl-indirect-index-disp", "stl", 64,
1304 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1305 },
1306 /* stt $st_src, $offset */
1307 {
1308 I960_INSN_STT_OFFSET, "stt-offset", "stt", 32,
1309 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1310 },
1311 /* stt $st_src, $offset($abase) */
1312 {
1313 I960_INSN_STT_INDIRECT_OFFSET, "stt-indirect-offset", "stt", 32,
1314 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1315 },
1316 /* stt $st_src, ($abase) */
1317 {
1318 I960_INSN_STT_INDIRECT, "stt-indirect", "stt", 32,
1319 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1320 },
1321 /* stt $st_src, ($abase)[$index*S$scale] */
1322 {
1323 I960_INSN_STT_INDIRECT_INDEX, "stt-indirect-index", "stt", 32,
1324 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1325 },
1326 /* stt $st_src, $optdisp */
1327 {
1328 I960_INSN_STT_DISP, "stt-disp", "stt", 64,
1329 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1330 },
1331 /* stt $st_src, $optdisp($abase) */
1332 {
1333 I960_INSN_STT_INDIRECT_DISP, "stt-indirect-disp", "stt", 64,
1334 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1335 },
1336 /* stt $st_src, $optdisp[$index*S$scale */
1337 {
1338 I960_INSN_STT_INDEX_DISP, "stt-index-disp", "stt", 64,
1339 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1340 },
1341 /* stt $st_src, $optdisp($abase)[$index*S$scale] */
1342 {
1343 I960_INSN_STT_INDIRECT_INDEX_DISP, "stt-indirect-index-disp", "stt", 64,
1344 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1345 },
1346 /* stq $st_src, $offset */
1347 {
1348 I960_INSN_STQ_OFFSET, "stq-offset", "stq", 32,
1349 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1350 },
1351 /* stq $st_src, $offset($abase) */
1352 {
1353 I960_INSN_STQ_INDIRECT_OFFSET, "stq-indirect-offset", "stq", 32,
1354 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1355 },
1356 /* stq $st_src, ($abase) */
1357 {
1358 I960_INSN_STQ_INDIRECT, "stq-indirect", "stq", 32,
1359 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1360 },
1361 /* stq $st_src, ($abase)[$index*S$scale] */
1362 {
1363 I960_INSN_STQ_INDIRECT_INDEX, "stq-indirect-index", "stq", 32,
1364 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1365 },
1366 /* stq $st_src, $optdisp */
1367 {
1368 I960_INSN_STQ_DISP, "stq-disp", "stq", 64,
1369 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1370 },
1371 /* stq $st_src, $optdisp($abase) */
1372 {
1373 I960_INSN_STQ_INDIRECT_DISP, "stq-indirect-disp", "stq", 64,
1374 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1375 },
1376 /* stq $st_src, $optdisp[$index*S$scale */
1377 {
1378 I960_INSN_STQ_INDEX_DISP, "stq-index-disp", "stq", 64,
1379 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1380 },
1381 /* stq $st_src, $optdisp($abase)[$index*S$scale] */
1382 {
1383 I960_INSN_STQ_INDIRECT_INDEX_DISP, "stq-indirect-index-disp", "stq", 64,
1384 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1385 },
1386 /* cmpobe $br_src1, $br_src2, $br_disp */
1387 {
1388 I960_INSN_CMPOBE_REG, "cmpobe-reg", "cmpobe", 32,
1389 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1390 },
1391 /* cmpobe $br_lit1, $br_src2, $br_disp */
1392 {
1393 I960_INSN_CMPOBE_LIT, "cmpobe-lit", "cmpobe", 32,
1394 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1395 },
1396 /* cmpobne $br_src1, $br_src2, $br_disp */
1397 {
1398 I960_INSN_CMPOBNE_REG, "cmpobne-reg", "cmpobne", 32,
1399 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1400 },
1401 /* cmpobne $br_lit1, $br_src2, $br_disp */
1402 {
1403 I960_INSN_CMPOBNE_LIT, "cmpobne-lit", "cmpobne", 32,
1404 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1405 },
1406 /* cmpobl $br_src1, $br_src2, $br_disp */
1407 {
1408 I960_INSN_CMPOBL_REG, "cmpobl-reg", "cmpobl", 32,
1409 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1410 },
1411 /* cmpobl $br_lit1, $br_src2, $br_disp */
1412 {
1413 I960_INSN_CMPOBL_LIT, "cmpobl-lit", "cmpobl", 32,
1414 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1415 },
1416 /* cmpoble $br_src1, $br_src2, $br_disp */
1417 {
1418 I960_INSN_CMPOBLE_REG, "cmpoble-reg", "cmpoble", 32,
1419 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1420 },
1421 /* cmpoble $br_lit1, $br_src2, $br_disp */
1422 {
1423 I960_INSN_CMPOBLE_LIT, "cmpoble-lit", "cmpoble", 32,
1424 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1425 },
1426 /* cmpobg $br_src1, $br_src2, $br_disp */
1427 {
1428 I960_INSN_CMPOBG_REG, "cmpobg-reg", "cmpobg", 32,
1429 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1430 },
1431 /* cmpobg $br_lit1, $br_src2, $br_disp */
1432 {
1433 I960_INSN_CMPOBG_LIT, "cmpobg-lit", "cmpobg", 32,
1434 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1435 },
1436 /* cmpobge $br_src1, $br_src2, $br_disp */
1437 {
1438 I960_INSN_CMPOBGE_REG, "cmpobge-reg", "cmpobge", 32,
1439 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1440 },
1441 /* cmpobge $br_lit1, $br_src2, $br_disp */
1442 {
1443 I960_INSN_CMPOBGE_LIT, "cmpobge-lit", "cmpobge", 32,
1444 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1445 },
1446 /* cmpibe $br_src1, $br_src2, $br_disp */
1447 {
1448 I960_INSN_CMPIBE_REG, "cmpibe-reg", "cmpibe", 32,
1449 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1450 },
1451 /* cmpibe $br_lit1, $br_src2, $br_disp */
1452 {
1453 I960_INSN_CMPIBE_LIT, "cmpibe-lit", "cmpibe", 32,
1454 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1455 },
1456 /* cmpibne $br_src1, $br_src2, $br_disp */
1457 {
1458 I960_INSN_CMPIBNE_REG, "cmpibne-reg", "cmpibne", 32,
1459 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1460 },
1461 /* cmpibne $br_lit1, $br_src2, $br_disp */
1462 {
1463 I960_INSN_CMPIBNE_LIT, "cmpibne-lit", "cmpibne", 32,
1464 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1465 },
1466 /* cmpibl $br_src1, $br_src2, $br_disp */
1467 {
1468 I960_INSN_CMPIBL_REG, "cmpibl-reg", "cmpibl", 32,
1469 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1470 },
1471 /* cmpibl $br_lit1, $br_src2, $br_disp */
1472 {
1473 I960_INSN_CMPIBL_LIT, "cmpibl-lit", "cmpibl", 32,
1474 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1475 },
1476 /* cmpible $br_src1, $br_src2, $br_disp */
1477 {
1478 I960_INSN_CMPIBLE_REG, "cmpible-reg", "cmpible", 32,
1479 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1480 },
1481 /* cmpible $br_lit1, $br_src2, $br_disp */
1482 {
1483 I960_INSN_CMPIBLE_LIT, "cmpible-lit", "cmpible", 32,
1484 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1485 },
1486 /* cmpibg $br_src1, $br_src2, $br_disp */
1487 {
1488 I960_INSN_CMPIBG_REG, "cmpibg-reg", "cmpibg", 32,
1489 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1490 },
1491 /* cmpibg $br_lit1, $br_src2, $br_disp */
1492 {
1493 I960_INSN_CMPIBG_LIT, "cmpibg-lit", "cmpibg", 32,
1494 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1495 },
1496 /* cmpibge $br_src1, $br_src2, $br_disp */
1497 {
1498 I960_INSN_CMPIBGE_REG, "cmpibge-reg", "cmpibge", 32,
1499 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1500 },
1501 /* cmpibge $br_lit1, $br_src2, $br_disp */
1502 {
1503 I960_INSN_CMPIBGE_LIT, "cmpibge-lit", "cmpibge", 32,
1504 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1505 },
1506 /* bbc $br_src1, $br_src2, $br_disp */
1507 {
1508 I960_INSN_BBC_REG, "bbc-reg", "bbc", 32,
1509 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1510 },
1511 /* bbc $br_lit1, $br_src2, $br_disp */
1512 {
1513 I960_INSN_BBC_LIT, "bbc-lit", "bbc", 32,
1514 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1515 },
1516 /* bbs $br_src1, $br_src2, $br_disp */
1517 {
1518 I960_INSN_BBS_REG, "bbs-reg", "bbs", 32,
1519 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1520 },
1521 /* bbs $br_lit1, $br_src2, $br_disp */
1522 {
1523 I960_INSN_BBS_LIT, "bbs-lit", "bbs", 32,
1524 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1525 },
1526 /* cmpi $src1, $src2 */
1527 {
1528 I960_INSN_CMPI, "cmpi", "cmpi", 32,
1529 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1530 },
1531 /* cmpi $lit1, $src2 */
1532 {
1533 I960_INSN_CMPI1, "cmpi1", "cmpi", 32,
1534 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1535 },
1536 /* cmpi $src1, $lit2 */
1537 {
1538 I960_INSN_CMPI2, "cmpi2", "cmpi", 32,
1539 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1540 },
1541 /* cmpi $lit1, $lit2 */
1542 {
1543 I960_INSN_CMPI3, "cmpi3", "cmpi", 32,
1544 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1545 },
1546 /* cmpo $src1, $src2 */
1547 {
1548 I960_INSN_CMPO, "cmpo", "cmpo", 32,
1549 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1550 },
1551 /* cmpo $lit1, $src2 */
1552 {
1553 I960_INSN_CMPO1, "cmpo1", "cmpo", 32,
1554 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1555 },
1556 /* cmpo $src1, $lit2 */
1557 {
1558 I960_INSN_CMPO2, "cmpo2", "cmpo", 32,
1559 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1560 },
1561 /* cmpo $lit1, $lit2 */
1562 {
1563 I960_INSN_CMPO3, "cmpo3", "cmpo", 32,
1564 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1565 },
1566 /* testno $br_src1 */
1567 {
1568 I960_INSN_TESTNO_REG, "testno-reg", "testno", 32,
1569 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1570 },
1571 /* testg $br_src1 */
1572 {
1573 I960_INSN_TESTG_REG, "testg-reg", "testg", 32,
1574 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1575 },
1576 /* teste $br_src1 */
1577 {
1578 I960_INSN_TESTE_REG, "teste-reg", "teste", 32,
1579 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1580 },
1581 /* testge $br_src1 */
1582 {
1583 I960_INSN_TESTGE_REG, "testge-reg", "testge", 32,
1584 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1585 },
1586 /* testl $br_src1 */
1587 {
1588 I960_INSN_TESTL_REG, "testl-reg", "testl", 32,
1589 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1590 },
1591 /* testne $br_src1 */
1592 {
1593 I960_INSN_TESTNE_REG, "testne-reg", "testne", 32,
1594 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1595 },
1596 /* testle $br_src1 */
1597 {
1598 I960_INSN_TESTLE_REG, "testle-reg", "testle", 32,
1599 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1600 },
1601 /* testo $br_src1 */
1602 {
1603 I960_INSN_TESTO_REG, "testo-reg", "testo", 32,
1604 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1605 },
1606 /* bno $ctrl_disp */
1607 {
1608 I960_INSN_BNO, "bno", "bno", 32,
1609 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1610 },
1611 /* bg $ctrl_disp */
1612 {
1613 I960_INSN_BG, "bg", "bg", 32,
1614 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1615 },
1616 /* be $ctrl_disp */
1617 {
1618 I960_INSN_BE, "be", "be", 32,
1619 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1620 },
1621 /* bge $ctrl_disp */
1622 {
1623 I960_INSN_BGE, "bge", "bge", 32,
1624 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1625 },
1626 /* bl $ctrl_disp */
1627 {
1628 I960_INSN_BL, "bl", "bl", 32,
1629 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1630 },
1631 /* bne $ctrl_disp */
1632 {
1633 I960_INSN_BNE, "bne", "bne", 32,
1634 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1635 },
1636 /* ble $ctrl_disp */
1637 {
1638 I960_INSN_BLE, "ble", "ble", 32,
1639 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1640 },
1641 /* bo $ctrl_disp */
1642 {
1643 I960_INSN_BO, "bo", "bo", 32,
1644 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
1645 },
1646 /* b $ctrl_disp */
1647 {
1648 I960_INSN_B, "b", "b", 32,
1649 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1650 },
1651 /* bx $offset($abase) */
1652 {
1653 I960_INSN_BX_INDIRECT_OFFSET, "bx-indirect-offset", "bx", 32,
1654 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1655 },
1656 /* bx ($abase) */
1657 {
1658 I960_INSN_BX_INDIRECT, "bx-indirect", "bx", 32,
1659 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1660 },
1661 /* bx ($abase)[$index*S$scale] */
1662 {
1663 I960_INSN_BX_INDIRECT_INDEX, "bx-indirect-index", "bx", 32,
1664 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1665 },
1666 /* bx $optdisp */
1667 {
1668 I960_INSN_BX_DISP, "bx-disp", "bx", 64,
1669 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1670 },
1671 /* bx $optdisp($abase) */
1672 {
1673 I960_INSN_BX_INDIRECT_DISP, "bx-indirect-disp", "bx", 64,
1674 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1675 },
1676 /* callx $optdisp */
1677 {
1678 I960_INSN_CALLX_DISP, "callx-disp", "callx", 64,
1679 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1680 },
1681 /* callx ($abase) */
1682 {
1683 I960_INSN_CALLX_INDIRECT, "callx-indirect", "callx", 32,
1684 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1685 },
1686 /* callx $offset($abase) */
1687 {
1688 I960_INSN_CALLX_INDIRECT_OFFSET, "callx-indirect-offset", "callx", 32,
1689 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1690 },
1691 /* ret */
1692 {
1693 I960_INSN_RET, "ret", "ret", 32,
1694 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1695 },
1696 /* calls $src1 */
1697 {
1698 I960_INSN_CALLS, "calls", "calls", 32,
1699 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1700 },
1701 /* fmark */
1702 {
1703 I960_INSN_FMARK, "fmark", "fmark", 32,
1704 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
1705 },
1706 /* flushreg */
1707 {
1708 I960_INSN_FLUSHREG, "flushreg", "flushreg", 32,
1709 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
1710 },
1711 };
1712
1713 #undef A
1714 #undef MNEM
1715 #undef OP
1716
1717 static void
1718 init_tables ()
1719 {
1720 }
1721
1722 /* Initialize a cpu table and return a descriptor.
1723 It's much like opening a file, and must be the first function called. */
1724
1725 CGEN_CPU_DESC
1726 i960_cgen_cpu_open (mach, endian)
1727 int mach;
1728 enum cgen_endian endian;
1729 {
1730 CGEN_CPU_TABLE *cd = (CGEN_CPU_TABLE *) xmalloc (sizeof (CGEN_CPU_TABLE));
1731 static int init_p;
1732
1733 if (! init_p)
1734 {
1735 init_tables ();
1736 init_p = 1;
1737 }
1738
1739 memset (cd, 0, sizeof (*cd));
1740
1741 cd->mach = mach;
1742 cd->endian = endian;
1743 /* FIXME: for the sparc case we can determine insn-endianness statically.
1744 The worry here is where both data and insn endian can be independently
1745 chosen, in which case this function will need another argument.
1746 Actually, will want to allow for more arguments in the future anyway. */
1747 cd->insn_endian = endian;
1748
1749 cd->int_insn_p = CGEN_INT_INSN_P;
1750
1751 cd->max_insn_size = CGEN_MAX_INSN_SIZE;
1752
1753 cd->hw_list = & i960_cgen_hw_table[0];
1754
1755 cd->ifld_table = & i960_cgen_ifld_table[0];
1756
1757 cd->operand_table = & i960_cgen_operand_table[0];
1758
1759 {
1760 int i;
1761 const CGEN_IBASE *ib = & i960_cgen_insn_table[0];
1762 CGEN_INSN *insns = (CGEN_INSN *) xmalloc (MAX_INSNS * sizeof (CGEN_INSN));
1763 memset (insns, 0, MAX_INSNS * sizeof (CGEN_INSN));
1764 for (i = 0; i < MAX_INSNS; ++i)
1765 insns[i].base = &ib[i];
1766 cd->insn_table.init_entries = insns;
1767 }
1768 cd->insn_table.entry_size = sizeof (CGEN_IBASE);
1769 cd->insn_table.num_init_entries = MAX_INSNS;
1770
1771 return (CGEN_CPU_DESC) cd;
1772 }
1773
1774 /* Close a cpu table. */
1775
1776 void
1777 i960_cgen_cpu_close (cd)
1778 CGEN_CPU_DESC cd;
1779 {
1780 if (cd->insn_table.init_entries)
1781 free ((CGEN_INSN *) cd->insn_table.init_entries);
1782 free (cd);
1783 }
1784