* m68k-opc.c: Correct move (not movew) to status word on 5200.
[deliverable/binutils-gdb.git] / opcodes / i960c-opc.c
CommitLineData
10cb538e
JW
1/* Generic opcode table support for targets using CGEN. -*- C -*-
2 CGEN: Cpu tools GENerator
3
4THIS FILE IS USED TO GENERATE i960c-opc.c.
5
c6d4ea9d 6Copyright (C) 1998, 1999 Free Software Foundation, Inc.
10cb538e
JW
7
8This file is part of the GNU Binutils and GDB, the GNU debugger.
9
10This program is free software; you can redistribute it and/or modify
11it under the terms of the GNU General Public License as published by
12the Free Software Foundation; either version 2, or (at your option)
13any later version.
14
15This program is distributed in the hope that it will be useful,
16but WITHOUT ANY WARRANTY; without even the implied warranty of
17MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18GNU General Public License for more details.
19
20You should have received a copy of the GNU General Public License
21along with this program; if not, write to the Free Software Foundation, Inc.,
2259 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
23
24#include "sysdep.h"
25#include <stdio.h>
26#include "ansidecl.h"
27#include "libiberty.h"
28#include "bfd.h"
29#include "symcat.h"
30#include "i960c-opc.h"
31#include "opintl.h"
32
33/* Used by the ifield rtx function. */
34#define FLD(f) (fields->f)
35
36/* The hash functions are recorded here to help keep assembler code out of
37 the disassembler and vice versa. */
38
39static int asm_hash_insn_p PARAMS ((const CGEN_INSN *));
40static unsigned int asm_hash_insn PARAMS ((const char *));
41static int dis_hash_insn_p PARAMS ((const CGEN_INSN *));
42static unsigned int dis_hash_insn PARAMS ((const char *, CGEN_INSN_INT));
43
44/* Look up instruction INSN_VALUE and extract its fields.
45 INSN, if non-null, is the insn table entry.
46 Otherwise INSN_VALUE is examined to compute it.
47 LENGTH is the bit length of INSN_VALUE if known, otherwise 0.
48 0 is only valid if `insn == NULL && ! CGEN_INT_INSN_P'.
49 If INSN != NULL, LENGTH must be valid.
50 ALIAS_P is non-zero if alias insns are to be included in the search.
51
52 The result is a pointer to the insn table entry, or NULL if the instruction
53 wasn't recognized. */
54
55const CGEN_INSN *
56i960_cgen_lookup_insn (od, insn, insn_value, length, fields, alias_p)
57 CGEN_OPCODE_DESC od;
58 const CGEN_INSN *insn;
59 CGEN_INSN_BYTES insn_value;
60 int length;
61 CGEN_FIELDS *fields;
62 int alias_p;
63{
64 unsigned char buf[CGEN_MAX_INSN_SIZE];
65 unsigned char *bufp;
66 CGEN_INSN_INT base_insn;
67#if CGEN_INT_INSN_P
68 CGEN_EXTRACT_INFO *info = NULL;
69#else
70 CGEN_EXTRACT_INFO ex_info;
71 CGEN_EXTRACT_INFO *info = &ex_info;
72#endif
73
74#if CGEN_INT_INSN_P
75 cgen_put_insn_value (od, buf, length, insn_value);
76 bufp = buf;
77 base_insn = insn_value; /*???*/
78#else
79 ex_info.dis_info = NULL;
80 ex_info.insn_bytes = insn_value;
81 ex_info.valid = -1;
82 base_insn = cgen_get_insn_value (od, buf, length);
83 bufp = insn_value;
84#endif
85
86 if (!insn)
87 {
88 const CGEN_INSN_LIST *insn_list;
89
90 /* The instructions are stored in hash lists.
91 Pick the first one and keep trying until we find the right one. */
92
93 insn_list = CGEN_DIS_LOOKUP_INSN (od, bufp, base_insn);
94 while (insn_list != NULL)
95 {
96 insn = insn_list->insn;
97
98 if (alias_p
99 || ! CGEN_INSN_ATTR (insn, CGEN_INSN_ALIAS))
100 {
101 /* Basic bit mask must be correct. */
102 /* ??? May wish to allow target to defer this check until the
103 extract handler. */
104 if ((base_insn & CGEN_INSN_BASE_MASK (insn))
105 == CGEN_INSN_BASE_VALUE (insn))
106 {
107 /* ??? 0 is passed for `pc' */
108 int elength = (*CGEN_EXTRACT_FN (insn)) (od, insn, info,
109 base_insn, fields,
110 (bfd_vma) 0);
111 if (elength > 0)
112 {
113 /* sanity check */
114 if (length != 0 && length != elength)
115 abort ();
116 return insn;
117 }
118 }
119 }
120
121 insn_list = CGEN_DIS_NEXT_INSN (insn_list);
122 }
123 }
124 else
125 {
126 /* Sanity check: can't pass an alias insn if ! alias_p. */
127 if (! alias_p
128 && CGEN_INSN_ATTR (insn, CGEN_INSN_ALIAS))
129 abort ();
130 /* Sanity check: length must be correct. */
131 if (length != CGEN_INSN_BITSIZE (insn))
132 abort ();
133
134 /* ??? 0 is passed for `pc' */
135 length = (*CGEN_EXTRACT_FN (insn)) (od, insn, info, base_insn, fields,
136 (bfd_vma) 0);
137 /* Sanity check: must succeed.
138 Could relax this later if it ever proves useful. */
139 if (length == 0)
140 abort ();
141 return insn;
142 }
143
144 return NULL;
145}
146
147/* Fill in the operand instances used by INSN whose operands are FIELDS.
148 INDICES is a pointer to a buffer of MAX_OPERAND_INSTANCES ints to be filled
149 in. */
150
151void
152i960_cgen_get_insn_operands (od, insn, fields, indices)
153 CGEN_OPCODE_DESC od;
154 const CGEN_INSN * insn;
155 const CGEN_FIELDS * fields;
156 int *indices;
157{
158 const CGEN_OPERAND_INSTANCE *opinst;
159 int i;
160
161 for (i = 0, opinst = CGEN_INSN_OPERANDS (insn);
162 opinst != NULL
163 && CGEN_OPERAND_INSTANCE_TYPE (opinst) != CGEN_OPERAND_INSTANCE_END;
164 ++i, ++opinst)
165 {
166 const CGEN_OPERAND *op = CGEN_OPERAND_INSTANCE_OPERAND (opinst);
167 if (op == NULL)
168 indices[i] = CGEN_OPERAND_INSTANCE_INDEX (opinst);
169 else
170 indices[i] = i960_cgen_get_int_operand (CGEN_OPERAND_INDEX (op),
171 fields);
172 }
173}
174
175/* Cover function to i960_cgen_get_insn_operands when either INSN or FIELDS
176 isn't known.
177 The INSN, INSN_VALUE, and LENGTH arguments are passed to
178 i960_cgen_lookup_insn unchanged.
179
180 The result is the insn table entry or NULL if the instruction wasn't
181 recognized. */
182
183const CGEN_INSN *
184i960_cgen_lookup_get_insn_operands (od, insn, insn_value, length, indices)
185 CGEN_OPCODE_DESC od;
186 const CGEN_INSN *insn;
187 CGEN_INSN_BYTES insn_value;
188 int length;
189 int *indices;
190{
191 CGEN_FIELDS fields;
192
193 /* Pass non-zero for ALIAS_P only if INSN != NULL.
194 If INSN == NULL, we want a real insn. */
195 insn = i960_cgen_lookup_insn (od, insn, insn_value, length, &fields,
196 insn != NULL);
197 if (! insn)
198 return NULL;
199
200 i960_cgen_get_insn_operands (od, insn, &fields, indices);
201 return insn;
202}
203/* Attributes. */
204
5730d39d
DE
205static const CGEN_ATTR_ENTRY bool_attr[] =
206{
207 { "#f", 0 },
208 { "#t", 1 },
209 { 0, 0 }
210};
211
10cb538e
JW
212static const CGEN_ATTR_ENTRY MACH_attr[] =
213{
214 { "base", MACH_BASE },
215 { "i960_ka_sa", MACH_I960_KA_SA },
216 { "i960_ca", MACH_I960_CA },
217 { "max", MACH_MAX },
218 { 0, 0 }
219};
220
5730d39d
DE
221const CGEN_ATTR_TABLE i960_cgen_ifield_attr_table[] =
222{
223 { "MACH", & MACH_attr[0] },
224 { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
225 { "UNSIGNED", &bool_attr[0], &bool_attr[0] },
226 { "PCREL-ADDR", &bool_attr[0], &bool_attr[0] },
227 { "ABS-ADDR", &bool_attr[0], &bool_attr[0] },
228 { "RESERVED", &bool_attr[0], &bool_attr[0] },
229 { "SIGN-OPT", &bool_attr[0], &bool_attr[0] },
230 { 0, 0, 0 }
231};
232
10cb538e
JW
233const CGEN_ATTR_TABLE i960_cgen_hardware_attr_table[] =
234{
5730d39d
DE
235 { "MACH", & MACH_attr[0] },
236 { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
237 { "UNSIGNED", &bool_attr[0], &bool_attr[0] },
238 { "SIGNED", &bool_attr[0], &bool_attr[0] },
239 { "CACHE-ADDR", &bool_attr[0], &bool_attr[0] },
240 { "FUN-ACCESS", &bool_attr[0], &bool_attr[0] },
241 { "PC", &bool_attr[0], &bool_attr[0] },
242 { "PROFILE", &bool_attr[0], &bool_attr[0] },
243 { 0, 0, 0 }
10cb538e
JW
244};
245
246const CGEN_ATTR_TABLE i960_cgen_operand_attr_table[] =
247{
5730d39d
DE
248 { "MACH", & MACH_attr[0] },
249 { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
250 { "UNSIGNED", &bool_attr[0], &bool_attr[0] },
251 { "PCREL-ADDR", &bool_attr[0], &bool_attr[0] },
252 { "ABS-ADDR", &bool_attr[0], &bool_attr[0] },
253 { "SIGN-OPT", &bool_attr[0], &bool_attr[0] },
254 { "NEGATIVE", &bool_attr[0], &bool_attr[0] },
255 { "RELAX", &bool_attr[0], &bool_attr[0] },
256 { "SEM-ONLY", &bool_attr[0], &bool_attr[0] },
257 { 0, 0, 0 }
10cb538e
JW
258};
259
260const CGEN_ATTR_TABLE i960_cgen_insn_attr_table[] =
261{
5730d39d
DE
262 { "MACH", & MACH_attr[0] },
263 { "VIRTUAL", &bool_attr[0], &bool_attr[0] },
264 { "UNCOND-CTI", &bool_attr[0], &bool_attr[0] },
265 { "COND-CTI", &bool_attr[0], &bool_attr[0] },
266 { "SKIP-CTI", &bool_attr[0], &bool_attr[0] },
267 { "DELAY-SLOT", &bool_attr[0], &bool_attr[0] },
268 { "RELAXABLE", &bool_attr[0], &bool_attr[0] },
269 { "RELAX", &bool_attr[0], &bool_attr[0] },
270 { "ALIAS", &bool_attr[0], &bool_attr[0] },
271 { "NO-DIS", &bool_attr[0], &bool_attr[0] },
272 { "PBB", &bool_attr[0], &bool_attr[0] },
273 { 0, 0, 0 }
10cb538e
JW
274};
275
276CGEN_KEYWORD_ENTRY i960_cgen_opval_h_gr_entries[] =
277{
278 { "fp", 31 },
279 { "sp", 1 },
280 { "r0", 0 },
281 { "r1", 1 },
282 { "r2", 2 },
283 { "r3", 3 },
284 { "r4", 4 },
285 { "r5", 5 },
286 { "r6", 6 },
287 { "r7", 7 },
288 { "r8", 8 },
289 { "r9", 9 },
290 { "r10", 10 },
291 { "r11", 11 },
292 { "r12", 12 },
293 { "r13", 13 },
294 { "r14", 14 },
295 { "r15", 15 },
296 { "g0", 16 },
297 { "g1", 17 },
298 { "g2", 18 },
299 { "g3", 19 },
300 { "g4", 20 },
301 { "g5", 21 },
302 { "g6", 22 },
303 { "g7", 23 },
304 { "g8", 24 },
305 { "g9", 25 },
306 { "g10", 26 },
307 { "g11", 27 },
308 { "g12", 28 },
309 { "g13", 29 },
310 { "g14", 30 },
311 { "g15", 31 }
312};
313
314CGEN_KEYWORD i960_cgen_opval_h_gr =
315{
316 & i960_cgen_opval_h_gr_entries[0],
317 34
318};
319
320CGEN_KEYWORD_ENTRY i960_cgen_opval_h_cc_entries[] =
321{
322 { "cc", 0 }
323};
324
325CGEN_KEYWORD i960_cgen_opval_h_cc =
326{
327 & i960_cgen_opval_h_cc_entries[0],
328 1
329};
330
331
332/* The hardware table. */
333
334#define HW_ENT(n) i960_cgen_hw_entries[n]
335static const CGEN_HW_ENTRY i960_cgen_hw_entries[] =
336{
5730d39d
DE
337 { HW_H_PC, & HW_ENT (HW_H_PC + 1), "h-pc", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0|(1<<CGEN_HW_PROFILE)|(1<<CGEN_HW_PC), { (1<<MACH_BASE) } } },
338 { HW_H_MEMORY, & HW_ENT (HW_H_MEMORY + 1), "h-memory", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
339 { HW_H_SINT, & HW_ENT (HW_H_SINT + 1), "h-sint", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
340 { HW_H_UINT, & HW_ENT (HW_H_UINT + 1), "h-uint", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
341 { HW_H_ADDR, & HW_ENT (HW_H_ADDR + 1), "h-addr", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
342 { HW_H_IADDR, & HW_ENT (HW_H_IADDR + 1), "h-iaddr", CGEN_ASM_KEYWORD, (PTR) 0, { CGEN_HW_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
343 { 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|(1<<CGEN_HW_CACHE_ADDR)|(1<<CGEN_HW_PROFILE), { (1<<MACH_BASE) } } },
344 { 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|(1<<CGEN_HW_CACHE_ADDR)|(1<<CGEN_HW_PROFILE), { (1<<MACH_BASE) } } },
10cb538e
JW
345 { 0 }
346};
347
348/* The instruction field table. */
349
350static const CGEN_IFLD i960_cgen_ifld_table[] =
351{
5730d39d
DE
352 { I960_F_NIL, "f-nil", 0, 0, 0, 0, { CGEN_IFLD_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } } },
353 { I960_F_OPCODE, "f-opcode", 0, 32, 0, 8, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
354 { I960_F_SRCDST, "f-srcdst", 0, 32, 8, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
355 { I960_F_SRC2, "f-src2", 0, 32, 13, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
356 { I960_F_M3, "f-m3", 0, 32, 18, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
357 { I960_F_M2, "f-m2", 0, 32, 19, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
358 { I960_F_M1, "f-m1", 0, 32, 20, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
359 { I960_F_OPCODE2, "f-opcode2", 0, 32, 21, 4, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
360 { I960_F_ZERO, "f-zero", 0, 32, 25, 2, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
361 { I960_F_SRC1, "f-src1", 0, 32, 27, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
362 { I960_F_ABASE, "f-abase", 0, 32, 13, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
363 { I960_F_MODEA, "f-modea", 0, 32, 18, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
364 { I960_F_ZEROA, "f-zeroa", 0, 32, 19, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
365 { I960_F_OFFSET, "f-offset", 0, 32, 20, 12, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
366 { I960_F_MODEB, "f-modeb", 0, 32, 18, 4, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
367 { I960_F_SCALE, "f-scale", 0, 32, 22, 3, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
368 { I960_F_ZEROB, "f-zerob", 0, 32, 25, 2, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
369 { I960_F_INDEX, "f-index", 0, 32, 27, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
370 { I960_F_OPTDISP, "f-optdisp", 32, 32, 0, 32, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
371 { I960_F_BR_SRC1, "f-br-src1", 0, 32, 8, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
372 { I960_F_BR_SRC2, "f-br-src2", 0, 32, 13, 5, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
373 { I960_F_BR_M1, "f-br-m1", 0, 32, 18, 1, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
374 { I960_F_BR_DISP, "f-br-disp", 0, 32, 19, 11, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_PCREL_ADDR), { (1<<MACH_BASE) } } },
375 { I960_F_BR_ZERO, "f-br-zero", 0, 32, 30, 2, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
376 { I960_F_CTRL_DISP, "f-ctrl-disp", 0, 32, 8, 22, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_PCREL_ADDR), { (1<<MACH_BASE) } } },
377 { I960_F_CTRL_ZERO, "f-ctrl-zero", 0, 32, 30, 2, { CGEN_IFLD_NBOOL_ATTRS, 0|(1<<CGEN_IFLD_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
378 { 0 }
379};
380
381/* The operand table. */
382
383#define OPERAND(op) CONCAT2 (I960_OPERAND_,op)
384#define OP_ENT(op) i960_cgen_operand_table[OPERAND (op)]
385
386const CGEN_OPERAND i960_cgen_operand_table[MAX_OPERANDS] =
387{
388/* pc: program counter */
389 { "pc", & HW_ENT (HW_H_PC), 0, 0,
5730d39d 390 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_SEM_ONLY), { (1<<MACH_BASE) } } },
10cb538e
JW
391/* src1: source register 1 */
392 { "src1", & HW_ENT (HW_H_GR), 27, 5,
5730d39d 393 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
394/* src2: source register 2 */
395 { "src2", & HW_ENT (HW_H_GR), 13, 5,
5730d39d 396 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
397/* dst: source/dest register */
398 { "dst", & HW_ENT (HW_H_GR), 8, 5,
5730d39d 399 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
400/* lit1: literal 1 */
401 { "lit1", & HW_ENT (HW_H_UINT), 27, 5,
5730d39d 402 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
403/* lit2: literal 2 */
404 { "lit2", & HW_ENT (HW_H_UINT), 13, 5,
5730d39d 405 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
406/* st_src: store src */
407 { "st_src", & HW_ENT (HW_H_GR), 8, 5,
5730d39d 408 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
409/* abase: abase */
410 { "abase", & HW_ENT (HW_H_GR), 13, 5,
5730d39d 411 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
412/* offset: offset */
413 { "offset", & HW_ENT (HW_H_UINT), 20, 12,
5730d39d 414 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
415/* scale: scale */
416 { "scale", & HW_ENT (HW_H_UINT), 22, 3,
5730d39d 417 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
418/* index: index */
419 { "index", & HW_ENT (HW_H_GR), 27, 5,
5730d39d 420 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
421/* optdisp: optional displacement */
422 { "optdisp", & HW_ENT (HW_H_UINT), 0, 32,
5730d39d 423 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
424/* br_src1: branch src1 */
425 { "br_src1", & HW_ENT (HW_H_GR), 8, 5,
5730d39d 426 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
427/* br_src2: branch src2 */
428 { "br_src2", & HW_ENT (HW_H_GR), 13, 5,
5730d39d 429 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
430/* br_disp: branch displacement */
431 { "br_disp", & HW_ENT (HW_H_IADDR), 19, 11,
5730d39d 432 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_PCREL_ADDR), { (1<<MACH_BASE) } } },
10cb538e
JW
433/* br_lit1: branch literal 1 */
434 { "br_lit1", & HW_ENT (HW_H_UINT), 8, 5,
5730d39d 435 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_UNSIGNED), { (1<<MACH_BASE) } } },
10cb538e
JW
436/* ctrl_disp: ctrl branch disp */
437 { "ctrl_disp", & HW_ENT (HW_H_IADDR), 8, 22,
5730d39d 438 { CGEN_OPERAND_NBOOL_ATTRS, 0|(1<<CGEN_OPERAND_PCREL_ADDR), { (1<<MACH_BASE) } } },
10cb538e
JW
439};
440
10cb538e
JW
441/* Instruction formats. */
442
443#define F(f) & i960_cgen_ifld_table[CONCAT2 (I960_,f)]
444
805b72e6 445static const CGEN_IFMT ifmt_empty = {
5730d39d
DE
446 0, 0, 0x0, { 0 }
447};
448
805b72e6 449static const CGEN_IFMT ifmt_mulo = {
10cb538e
JW
450 32, 32, 0xff003fe0, { F (F_OPCODE), F (F_SRCDST), F (F_SRC2), F (F_M3), F (F_M2), F (F_M1), F (F_OPCODE2), F (F_ZERO), F (F_SRC1), 0 }
451};
452
805b72e6 453static const CGEN_IFMT ifmt_mulo1 = {
10cb538e
JW
454 32, 32, 0xff003fe0, { F (F_OPCODE), F (F_SRCDST), F (F_SRC2), F (F_M3), F (F_M2), F (F_M1), F (F_OPCODE2), F (F_ZERO), F (F_SRC1), 0 }
455};
456
805b72e6 457static const CGEN_IFMT ifmt_mulo2 = {
10cb538e
JW
458 32, 32, 0xff003fe0, { F (F_OPCODE), F (F_SRCDST), F (F_SRC2), F (F_M3), F (F_M2), F (F_M1), F (F_OPCODE2), F (F_ZERO), F (F_SRC1), 0 }
459};
460
805b72e6 461static const CGEN_IFMT ifmt_mulo3 = {
10cb538e
JW
462 32, 32, 0xff003fe0, { F (F_OPCODE), F (F_SRCDST), F (F_SRC2), F (F_M3), F (F_M2), F (F_M1), F (F_OPCODE2), F (F_ZERO), F (F_SRC1), 0 }
463};
464
805b72e6 465static const CGEN_IFMT ifmt_lda_offset = {
10cb538e
JW
466 32, 32, 0xff003000, { F (F_OPCODE), F (F_SRCDST), F (F_ABASE), F (F_MODEA), F (F_ZEROA), F (F_OFFSET), 0 }
467};
468
805b72e6 469static const CGEN_IFMT ifmt_lda_indirect = {
10cb538e
JW
470 32, 32, 0xff003c60, { F (F_OPCODE), F (F_SRCDST), F (F_ABASE), F (F_MODEB), F (F_SCALE), F (F_ZEROB), F (F_INDEX), 0 }
471};
472
805b72e6 473static const CGEN_IFMT ifmt_lda_disp = {
10cb538e
JW
474 32, 64, 0xff003c60, { F (F_OPCODE), F (F_OPTDISP), F (F_SRCDST), F (F_ABASE), F (F_MODEB), F (F_SCALE), F (F_ZEROB), F (F_INDEX), 0 }
475};
476
805b72e6 477static const CGEN_IFMT ifmt_st_offset = {
10cb538e
JW
478 32, 32, 0xff003000, { F (F_OPCODE), F (F_SRCDST), F (F_ABASE), F (F_MODEA), F (F_ZEROA), F (F_OFFSET), 0 }
479};
480
805b72e6 481static const CGEN_IFMT ifmt_st_indirect = {
10cb538e
JW
482 32, 32, 0xff003c60, { F (F_OPCODE), F (F_SRCDST), F (F_ABASE), F (F_MODEB), F (F_SCALE), F (F_ZEROB), F (F_INDEX), 0 }
483};
484
805b72e6 485static const CGEN_IFMT ifmt_st_disp = {
10cb538e
JW
486 32, 64, 0xff003c60, { F (F_OPCODE), F (F_OPTDISP), F (F_SRCDST), F (F_ABASE), F (F_MODEB), F (F_SCALE), F (F_ZEROB), F (F_INDEX), 0 }
487};
488
805b72e6 489static const CGEN_IFMT ifmt_cmpobe_reg = {
10cb538e
JW
490 32, 32, 0xff002003, { F (F_OPCODE), F (F_BR_SRC1), F (F_BR_SRC2), F (F_BR_M1), F (F_BR_DISP), F (F_BR_ZERO), 0 }
491};
492
805b72e6 493static const CGEN_IFMT ifmt_cmpobe_lit = {
10cb538e
JW
494 32, 32, 0xff002003, { F (F_OPCODE), F (F_BR_SRC1), F (F_BR_SRC2), F (F_BR_M1), F (F_BR_DISP), F (F_BR_ZERO), 0 }
495};
496
805b72e6 497static const CGEN_IFMT ifmt_bno = {
10cb538e
JW
498 32, 32, 0xff000003, { F (F_OPCODE), F (F_CTRL_DISP), F (F_CTRL_ZERO), 0 }
499};
500
10cb538e
JW
501#undef F
502
503#define A(a) (1 << CONCAT2 (CGEN_INSN_,a))
504#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
505#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
506
507/* The instruction table.
508 This is currently non-static because the simulator accesses it
509 directly. */
510
511const CGEN_INSN i960_cgen_insn_table_entries[MAX_INSNS] =
512{
513 /* Special null first entry.
514 A `num' value of zero is thus invalid.
515 Also, the special `invalid' insn resides here. */
516 { { 0 }, 0 },
517/* mulo $src1, $src2, $dst */
518 {
519 { 1, 1, 1, 1 },
520 I960_INSN_MULO, "mulo", "mulo",
521 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 522 & ifmt_mulo, { 0x70000080 },
2f8eccae 523 (PTR) 0,
5730d39d 524 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
525 },
526/* mulo $lit1, $src2, $dst */
527 {
528 { 1, 1, 1, 1 },
529 I960_INSN_MULO1, "mulo1", "mulo",
530 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 531 & ifmt_mulo1, { 0x70000880 },
2f8eccae 532 (PTR) 0,
5730d39d 533 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
534 },
535/* mulo $src1, $lit2, $dst */
536 {
537 { 1, 1, 1, 1 },
538 I960_INSN_MULO2, "mulo2", "mulo",
539 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 540 & ifmt_mulo2, { 0x70001080 },
2f8eccae 541 (PTR) 0,
5730d39d 542 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
543 },
544/* mulo $lit1, $lit2, $dst */
545 {
546 { 1, 1, 1, 1 },
547 I960_INSN_MULO3, "mulo3", "mulo",
548 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 549 & ifmt_mulo3, { 0x70001880 },
2f8eccae 550 (PTR) 0,
5730d39d 551 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
552 },
553/* remo $src1, $src2, $dst */
554 {
555 { 1, 1, 1, 1 },
556 I960_INSN_REMO, "remo", "remo",
557 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 558 & ifmt_mulo, { 0x70000400 },
2f8eccae 559 (PTR) 0,
5730d39d 560 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
561 },
562/* remo $lit1, $src2, $dst */
563 {
564 { 1, 1, 1, 1 },
565 I960_INSN_REMO1, "remo1", "remo",
566 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 567 & ifmt_mulo1, { 0x70000c00 },
2f8eccae 568 (PTR) 0,
5730d39d 569 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
570 },
571/* remo $src1, $lit2, $dst */
572 {
573 { 1, 1, 1, 1 },
574 I960_INSN_REMO2, "remo2", "remo",
575 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 576 & ifmt_mulo2, { 0x70001400 },
2f8eccae 577 (PTR) 0,
5730d39d 578 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
579 },
580/* remo $lit1, $lit2, $dst */
581 {
582 { 1, 1, 1, 1 },
583 I960_INSN_REMO3, "remo3", "remo",
584 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 585 & ifmt_mulo3, { 0x70001c00 },
2f8eccae 586 (PTR) 0,
5730d39d 587 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
588 },
589/* divo $src1, $src2, $dst */
590 {
591 { 1, 1, 1, 1 },
592 I960_INSN_DIVO, "divo", "divo",
593 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 594 & ifmt_mulo, { 0x70000580 },
2f8eccae 595 (PTR) 0,
5730d39d 596 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
597 },
598/* divo $lit1, $src2, $dst */
599 {
600 { 1, 1, 1, 1 },
601 I960_INSN_DIVO1, "divo1", "divo",
602 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 603 & ifmt_mulo1, { 0x70000d80 },
2f8eccae 604 (PTR) 0,
5730d39d 605 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
606 },
607/* divo $src1, $lit2, $dst */
608 {
609 { 1, 1, 1, 1 },
610 I960_INSN_DIVO2, "divo2", "divo",
611 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 612 & ifmt_mulo2, { 0x70001580 },
2f8eccae 613 (PTR) 0,
5730d39d 614 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
615 },
616/* divo $lit1, $lit2, $dst */
617 {
618 { 1, 1, 1, 1 },
619 I960_INSN_DIVO3, "divo3", "divo",
620 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 621 & ifmt_mulo3, { 0x70001d80 },
2f8eccae 622 (PTR) 0,
5730d39d 623 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
624 },
625/* remi $src1, $src2, $dst */
626 {
627 { 1, 1, 1, 1 },
628 I960_INSN_REMI, "remi", "remi",
629 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 630 & ifmt_mulo, { 0x74000400 },
2f8eccae 631 (PTR) 0,
5730d39d 632 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
633 },
634/* remi $lit1, $src2, $dst */
635 {
636 { 1, 1, 1, 1 },
637 I960_INSN_REMI1, "remi1", "remi",
638 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 639 & ifmt_mulo1, { 0x74000c00 },
2f8eccae 640 (PTR) 0,
5730d39d 641 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
642 },
643/* remi $src1, $lit2, $dst */
644 {
645 { 1, 1, 1, 1 },
646 I960_INSN_REMI2, "remi2", "remi",
647 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 648 & ifmt_mulo2, { 0x74001400 },
2f8eccae 649 (PTR) 0,
5730d39d 650 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
651 },
652/* remi $lit1, $lit2, $dst */
653 {
654 { 1, 1, 1, 1 },
655 I960_INSN_REMI3, "remi3", "remi",
656 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 657 & ifmt_mulo3, { 0x74001c00 },
2f8eccae 658 (PTR) 0,
5730d39d 659 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
660 },
661/* divi $src1, $src2, $dst */
662 {
663 { 1, 1, 1, 1 },
664 I960_INSN_DIVI, "divi", "divi",
665 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 666 & ifmt_mulo, { 0x74000580 },
2f8eccae 667 (PTR) 0,
5730d39d 668 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
669 },
670/* divi $lit1, $src2, $dst */
671 {
672 { 1, 1, 1, 1 },
673 I960_INSN_DIVI1, "divi1", "divi",
674 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 675 & ifmt_mulo1, { 0x74000d80 },
2f8eccae 676 (PTR) 0,
5730d39d 677 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
678 },
679/* divi $src1, $lit2, $dst */
680 {
681 { 1, 1, 1, 1 },
682 I960_INSN_DIVI2, "divi2", "divi",
683 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 684 & ifmt_mulo2, { 0x74001580 },
2f8eccae 685 (PTR) 0,
5730d39d 686 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
687 },
688/* divi $lit1, $lit2, $dst */
689 {
690 { 1, 1, 1, 1 },
691 I960_INSN_DIVI3, "divi3", "divi",
692 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 693 & ifmt_mulo3, { 0x74001d80 },
2f8eccae 694 (PTR) 0,
5730d39d 695 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
696 },
697/* addo $src1, $src2, $dst */
698 {
699 { 1, 1, 1, 1 },
700 I960_INSN_ADDO, "addo", "addo",
701 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 702 & ifmt_mulo, { 0x59000000 },
2f8eccae 703 (PTR) 0,
5730d39d 704 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
705 },
706/* addo $lit1, $src2, $dst */
707 {
708 { 1, 1, 1, 1 },
709 I960_INSN_ADDO1, "addo1", "addo",
710 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 711 & ifmt_mulo1, { 0x59000800 },
2f8eccae 712 (PTR) 0,
5730d39d 713 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
714 },
715/* addo $src1, $lit2, $dst */
716 {
717 { 1, 1, 1, 1 },
718 I960_INSN_ADDO2, "addo2", "addo",
719 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 720 & ifmt_mulo2, { 0x59001000 },
2f8eccae 721 (PTR) 0,
5730d39d 722 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
723 },
724/* addo $lit1, $lit2, $dst */
725 {
726 { 1, 1, 1, 1 },
727 I960_INSN_ADDO3, "addo3", "addo",
728 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 729 & ifmt_mulo3, { 0x59001800 },
2f8eccae 730 (PTR) 0,
5730d39d 731 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
732 },
733/* subo $src1, $src2, $dst */
734 {
735 { 1, 1, 1, 1 },
736 I960_INSN_SUBO, "subo", "subo",
737 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 738 & ifmt_mulo, { 0x59000100 },
2f8eccae 739 (PTR) 0,
5730d39d 740 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
741 },
742/* subo $lit1, $src2, $dst */
743 {
744 { 1, 1, 1, 1 },
745 I960_INSN_SUBO1, "subo1", "subo",
746 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 747 & ifmt_mulo1, { 0x59000900 },
2f8eccae 748 (PTR) 0,
5730d39d 749 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
750 },
751/* subo $src1, $lit2, $dst */
752 {
753 { 1, 1, 1, 1 },
754 I960_INSN_SUBO2, "subo2", "subo",
755 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 756 & ifmt_mulo2, { 0x59001100 },
2f8eccae 757 (PTR) 0,
5730d39d 758 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
759 },
760/* subo $lit1, $lit2, $dst */
761 {
762 { 1, 1, 1, 1 },
763 I960_INSN_SUBO3, "subo3", "subo",
764 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 765 & ifmt_mulo3, { 0x59001900 },
2f8eccae 766 (PTR) 0,
5730d39d 767 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
768 },
769/* notbit $src1, $src2, $dst */
770 {
771 { 1, 1, 1, 1 },
772 I960_INSN_NOTBIT, "notbit", "notbit",
773 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 774 & ifmt_mulo, { 0x58000000 },
2f8eccae 775 (PTR) 0,
5730d39d 776 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
777 },
778/* notbit $lit1, $src2, $dst */
779 {
780 { 1, 1, 1, 1 },
781 I960_INSN_NOTBIT1, "notbit1", "notbit",
782 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 783 & ifmt_mulo1, { 0x58000800 },
2f8eccae 784 (PTR) 0,
5730d39d 785 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
786 },
787/* notbit $src1, $lit2, $dst */
788 {
789 { 1, 1, 1, 1 },
790 I960_INSN_NOTBIT2, "notbit2", "notbit",
791 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 792 & ifmt_mulo2, { 0x58001000 },
2f8eccae 793 (PTR) 0,
5730d39d 794 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
795 },
796/* notbit $lit1, $lit2, $dst */
797 {
798 { 1, 1, 1, 1 },
799 I960_INSN_NOTBIT3, "notbit3", "notbit",
800 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 801 & ifmt_mulo3, { 0x58001800 },
2f8eccae 802 (PTR) 0,
5730d39d 803 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
804 },
805/* and $src1, $src2, $dst */
806 {
807 { 1, 1, 1, 1 },
808 I960_INSN_AND, "and", "and",
809 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 810 & ifmt_mulo, { 0x58000080 },
2f8eccae 811 (PTR) 0,
5730d39d 812 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
813 },
814/* and $lit1, $src2, $dst */
815 {
816 { 1, 1, 1, 1 },
817 I960_INSN_AND1, "and1", "and",
818 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 819 & ifmt_mulo1, { 0x58000880 },
2f8eccae 820 (PTR) 0,
5730d39d 821 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
822 },
823/* and $src1, $lit2, $dst */
824 {
825 { 1, 1, 1, 1 },
826 I960_INSN_AND2, "and2", "and",
827 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 828 & ifmt_mulo2, { 0x58001080 },
2f8eccae 829 (PTR) 0,
5730d39d 830 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
831 },
832/* and $lit1, $lit2, $dst */
833 {
834 { 1, 1, 1, 1 },
835 I960_INSN_AND3, "and3", "and",
836 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 837 & ifmt_mulo3, { 0x58001880 },
2f8eccae 838 (PTR) 0,
5730d39d 839 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
840 },
841/* andnot $src1, $src2, $dst */
842 {
843 { 1, 1, 1, 1 },
844 I960_INSN_ANDNOT, "andnot", "andnot",
845 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 846 & ifmt_mulo, { 0x58000100 },
2f8eccae 847 (PTR) 0,
5730d39d 848 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
849 },
850/* andnot $lit1, $src2, $dst */
851 {
852 { 1, 1, 1, 1 },
853 I960_INSN_ANDNOT1, "andnot1", "andnot",
854 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 855 & ifmt_mulo1, { 0x58000900 },
2f8eccae 856 (PTR) 0,
5730d39d 857 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
858 },
859/* andnot $src1, $lit2, $dst */
860 {
861 { 1, 1, 1, 1 },
862 I960_INSN_ANDNOT2, "andnot2", "andnot",
863 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 864 & ifmt_mulo2, { 0x58001100 },
2f8eccae 865 (PTR) 0,
5730d39d 866 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
867 },
868/* andnot $lit1, $lit2, $dst */
869 {
870 { 1, 1, 1, 1 },
871 I960_INSN_ANDNOT3, "andnot3", "andnot",
872 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 873 & ifmt_mulo3, { 0x58001900 },
2f8eccae 874 (PTR) 0,
5730d39d 875 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
876 },
877/* setbit $src1, $src2, $dst */
878 {
879 { 1, 1, 1, 1 },
880 I960_INSN_SETBIT, "setbit", "setbit",
881 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 882 & ifmt_mulo, { 0x58000180 },
2f8eccae 883 (PTR) 0,
5730d39d 884 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
885 },
886/* setbit $lit1, $src2, $dst */
887 {
888 { 1, 1, 1, 1 },
889 I960_INSN_SETBIT1, "setbit1", "setbit",
890 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 891 & ifmt_mulo1, { 0x58000980 },
2f8eccae 892 (PTR) 0,
5730d39d 893 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
894 },
895/* setbit $src1, $lit2, $dst */
896 {
897 { 1, 1, 1, 1 },
898 I960_INSN_SETBIT2, "setbit2", "setbit",
899 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 900 & ifmt_mulo2, { 0x58001180 },
2f8eccae 901 (PTR) 0,
5730d39d 902 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
903 },
904/* setbit $lit1, $lit2, $dst */
905 {
906 { 1, 1, 1, 1 },
907 I960_INSN_SETBIT3, "setbit3", "setbit",
908 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 909 & ifmt_mulo3, { 0x58001980 },
2f8eccae 910 (PTR) 0,
5730d39d 911 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
912 },
913/* notand $src1, $src2, $dst */
914 {
915 { 1, 1, 1, 1 },
916 I960_INSN_NOTAND, "notand", "notand",
917 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 918 & ifmt_mulo, { 0x58000200 },
2f8eccae 919 (PTR) 0,
5730d39d 920 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
921 },
922/* notand $lit1, $src2, $dst */
923 {
924 { 1, 1, 1, 1 },
925 I960_INSN_NOTAND1, "notand1", "notand",
926 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 927 & ifmt_mulo1, { 0x58000a00 },
2f8eccae 928 (PTR) 0,
5730d39d 929 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
930 },
931/* notand $src1, $lit2, $dst */
932 {
933 { 1, 1, 1, 1 },
934 I960_INSN_NOTAND2, "notand2", "notand",
935 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 936 & ifmt_mulo2, { 0x58001200 },
2f8eccae 937 (PTR) 0,
5730d39d 938 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
939 },
940/* notand $lit1, $lit2, $dst */
941 {
942 { 1, 1, 1, 1 },
943 I960_INSN_NOTAND3, "notand3", "notand",
944 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 945 & ifmt_mulo3, { 0x58001a00 },
2f8eccae 946 (PTR) 0,
5730d39d 947 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
948 },
949/* xor $src1, $src2, $dst */
950 {
951 { 1, 1, 1, 1 },
952 I960_INSN_XOR, "xor", "xor",
953 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 954 & ifmt_mulo, { 0x58000300 },
2f8eccae 955 (PTR) 0,
5730d39d 956 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
957 },
958/* xor $lit1, $src2, $dst */
959 {
960 { 1, 1, 1, 1 },
961 I960_INSN_XOR1, "xor1", "xor",
962 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 963 & ifmt_mulo1, { 0x58000b00 },
2f8eccae 964 (PTR) 0,
5730d39d 965 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
966 },
967/* xor $src1, $lit2, $dst */
968 {
969 { 1, 1, 1, 1 },
970 I960_INSN_XOR2, "xor2", "xor",
971 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 972 & ifmt_mulo2, { 0x58001300 },
2f8eccae 973 (PTR) 0,
5730d39d 974 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
975 },
976/* xor $lit1, $lit2, $dst */
977 {
978 { 1, 1, 1, 1 },
979 I960_INSN_XOR3, "xor3", "xor",
980 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 981 & ifmt_mulo3, { 0x58001b00 },
2f8eccae 982 (PTR) 0,
5730d39d 983 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
984 },
985/* or $src1, $src2, $dst */
986 {
987 { 1, 1, 1, 1 },
988 I960_INSN_OR, "or", "or",
989 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 990 & ifmt_mulo, { 0x58000380 },
2f8eccae 991 (PTR) 0,
5730d39d 992 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
993 },
994/* or $lit1, $src2, $dst */
995 {
996 { 1, 1, 1, 1 },
997 I960_INSN_OR1, "or1", "or",
998 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 999 & ifmt_mulo1, { 0x58000b80 },
2f8eccae 1000 (PTR) 0,
5730d39d 1001 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1002 },
1003/* or $src1, $lit2, $dst */
1004 {
1005 { 1, 1, 1, 1 },
1006 I960_INSN_OR2, "or2", "or",
1007 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1008 & ifmt_mulo2, { 0x58001380 },
2f8eccae 1009 (PTR) 0,
5730d39d 1010 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1011 },
1012/* or $lit1, $lit2, $dst */
1013 {
1014 { 1, 1, 1, 1 },
1015 I960_INSN_OR3, "or3", "or",
1016 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1017 & ifmt_mulo3, { 0x58001b80 },
2f8eccae 1018 (PTR) 0,
5730d39d 1019 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1020 },
1021/* nor $src1, $src2, $dst */
1022 {
1023 { 1, 1, 1, 1 },
1024 I960_INSN_NOR, "nor", "nor",
1025 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1026 & ifmt_mulo, { 0x58000400 },
2f8eccae 1027 (PTR) 0,
5730d39d 1028 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1029 },
1030/* nor $lit1, $src2, $dst */
1031 {
1032 { 1, 1, 1, 1 },
1033 I960_INSN_NOR1, "nor1", "nor",
1034 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1035 & ifmt_mulo1, { 0x58000c00 },
2f8eccae 1036 (PTR) 0,
5730d39d 1037 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1038 },
1039/* nor $src1, $lit2, $dst */
1040 {
1041 { 1, 1, 1, 1 },
1042 I960_INSN_NOR2, "nor2", "nor",
1043 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1044 & ifmt_mulo2, { 0x58001400 },
2f8eccae 1045 (PTR) 0,
5730d39d 1046 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1047 },
1048/* nor $lit1, $lit2, $dst */
1049 {
1050 { 1, 1, 1, 1 },
1051 I960_INSN_NOR3, "nor3", "nor",
1052 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1053 & ifmt_mulo3, { 0x58001c00 },
2f8eccae 1054 (PTR) 0,
5730d39d 1055 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1056 },
1057/* not $src1, $src2, $dst */
1058 {
1059 { 1, 1, 1, 1 },
1060 I960_INSN_NOT, "not", "not",
1061 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1062 & ifmt_mulo, { 0x58000500 },
2f8eccae 1063 (PTR) 0,
5730d39d 1064 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1065 },
1066/* not $lit1, $src2, $dst */
1067 {
1068 { 1, 1, 1, 1 },
1069 I960_INSN_NOT1, "not1", "not",
1070 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1071 & ifmt_mulo1, { 0x58000d00 },
2f8eccae 1072 (PTR) 0,
5730d39d 1073 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1074 },
1075/* not $src1, $lit2, $dst */
1076 {
1077 { 1, 1, 1, 1 },
1078 I960_INSN_NOT2, "not2", "not",
1079 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1080 & ifmt_mulo2, { 0x58001500 },
2f8eccae 1081 (PTR) 0,
5730d39d 1082 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1083 },
1084/* not $lit1, $lit2, $dst */
1085 {
1086 { 1, 1, 1, 1 },
1087 I960_INSN_NOT3, "not3", "not",
1088 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1089 & ifmt_mulo3, { 0x58001d00 },
2f8eccae 1090 (PTR) 0,
5730d39d 1091 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1092 },
1093/* clrbit $src1, $src2, $dst */
1094 {
1095 { 1, 1, 1, 1 },
1096 I960_INSN_CLRBIT, "clrbit", "clrbit",
1097 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1098 & ifmt_mulo, { 0x58000600 },
2f8eccae 1099 (PTR) 0,
5730d39d 1100 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1101 },
1102/* clrbit $lit1, $src2, $dst */
1103 {
1104 { 1, 1, 1, 1 },
1105 I960_INSN_CLRBIT1, "clrbit1", "clrbit",
1106 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1107 & ifmt_mulo1, { 0x58000e00 },
2f8eccae 1108 (PTR) 0,
5730d39d 1109 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1110 },
1111/* clrbit $src1, $lit2, $dst */
1112 {
1113 { 1, 1, 1, 1 },
1114 I960_INSN_CLRBIT2, "clrbit2", "clrbit",
1115 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1116 & ifmt_mulo2, { 0x58001600 },
2f8eccae 1117 (PTR) 0,
5730d39d 1118 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1119 },
1120/* clrbit $lit1, $lit2, $dst */
1121 {
1122 { 1, 1, 1, 1 },
1123 I960_INSN_CLRBIT3, "clrbit3", "clrbit",
1124 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1125 & ifmt_mulo3, { 0x58001e00 },
2f8eccae 1126 (PTR) 0,
5730d39d 1127 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1128 },
1129/* shlo $src1, $src2, $dst */
1130 {
1131 { 1, 1, 1, 1 },
1132 I960_INSN_SHLO, "shlo", "shlo",
1133 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1134 & ifmt_mulo, { 0x59000600 },
2f8eccae 1135 (PTR) 0,
5730d39d 1136 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1137 },
1138/* shlo $lit1, $src2, $dst */
1139 {
1140 { 1, 1, 1, 1 },
1141 I960_INSN_SHLO1, "shlo1", "shlo",
1142 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1143 & ifmt_mulo1, { 0x59000e00 },
2f8eccae 1144 (PTR) 0,
5730d39d 1145 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1146 },
1147/* shlo $src1, $lit2, $dst */
1148 {
1149 { 1, 1, 1, 1 },
1150 I960_INSN_SHLO2, "shlo2", "shlo",
1151 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1152 & ifmt_mulo2, { 0x59001600 },
2f8eccae 1153 (PTR) 0,
5730d39d 1154 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1155 },
1156/* shlo $lit1, $lit2, $dst */
1157 {
1158 { 1, 1, 1, 1 },
1159 I960_INSN_SHLO3, "shlo3", "shlo",
1160 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1161 & ifmt_mulo3, { 0x59001e00 },
2f8eccae 1162 (PTR) 0,
5730d39d 1163 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1164 },
1165/* shro $src1, $src2, $dst */
1166 {
1167 { 1, 1, 1, 1 },
1168 I960_INSN_SHRO, "shro", "shro",
1169 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1170 & ifmt_mulo, { 0x59000400 },
2f8eccae 1171 (PTR) 0,
5730d39d 1172 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1173 },
1174/* shro $lit1, $src2, $dst */
1175 {
1176 { 1, 1, 1, 1 },
1177 I960_INSN_SHRO1, "shro1", "shro",
1178 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1179 & ifmt_mulo1, { 0x59000c00 },
2f8eccae 1180 (PTR) 0,
5730d39d 1181 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1182 },
1183/* shro $src1, $lit2, $dst */
1184 {
1185 { 1, 1, 1, 1 },
1186 I960_INSN_SHRO2, "shro2", "shro",
1187 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1188 & ifmt_mulo2, { 0x59001400 },
2f8eccae 1189 (PTR) 0,
5730d39d 1190 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1191 },
1192/* shro $lit1, $lit2, $dst */
1193 {
1194 { 1, 1, 1, 1 },
1195 I960_INSN_SHRO3, "shro3", "shro",
1196 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1197 & ifmt_mulo3, { 0x59001c00 },
2f8eccae 1198 (PTR) 0,
5730d39d 1199 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1200 },
1201/* shli $src1, $src2, $dst */
1202 {
1203 { 1, 1, 1, 1 },
1204 I960_INSN_SHLI, "shli", "shli",
1205 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1206 & ifmt_mulo, { 0x59000700 },
2f8eccae 1207 (PTR) 0,
5730d39d 1208 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1209 },
1210/* shli $lit1, $src2, $dst */
1211 {
1212 { 1, 1, 1, 1 },
1213 I960_INSN_SHLI1, "shli1", "shli",
1214 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1215 & ifmt_mulo1, { 0x59000f00 },
2f8eccae 1216 (PTR) 0,
5730d39d 1217 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1218 },
1219/* shli $src1, $lit2, $dst */
1220 {
1221 { 1, 1, 1, 1 },
1222 I960_INSN_SHLI2, "shli2", "shli",
1223 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1224 & ifmt_mulo2, { 0x59001700 },
2f8eccae 1225 (PTR) 0,
5730d39d 1226 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1227 },
1228/* shli $lit1, $lit2, $dst */
1229 {
1230 { 1, 1, 1, 1 },
1231 I960_INSN_SHLI3, "shli3", "shli",
1232 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1233 & ifmt_mulo3, { 0x59001f00 },
2f8eccae 1234 (PTR) 0,
5730d39d 1235 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1236 },
1237/* shri $src1, $src2, $dst */
1238 {
1239 { 1, 1, 1, 1 },
1240 I960_INSN_SHRI, "shri", "shri",
1241 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1242 & ifmt_mulo, { 0x59000580 },
2f8eccae 1243 (PTR) 0,
5730d39d 1244 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1245 },
1246/* shri $lit1, $src2, $dst */
1247 {
1248 { 1, 1, 1, 1 },
1249 I960_INSN_SHRI1, "shri1", "shri",
1250 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1251 & ifmt_mulo1, { 0x59000d80 },
2f8eccae 1252 (PTR) 0,
5730d39d 1253 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1254 },
1255/* shri $src1, $lit2, $dst */
1256 {
1257 { 1, 1, 1, 1 },
1258 I960_INSN_SHRI2, "shri2", "shri",
1259 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1260 & ifmt_mulo2, { 0x59001580 },
2f8eccae 1261 (PTR) 0,
5730d39d 1262 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1263 },
1264/* shri $lit1, $lit2, $dst */
1265 {
1266 { 1, 1, 1, 1 },
1267 I960_INSN_SHRI3, "shri3", "shri",
1268 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1269 & ifmt_mulo3, { 0x59001d80 },
2f8eccae 1270 (PTR) 0,
5730d39d 1271 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1272 },
1273/* emul $src1, $src2, $dst */
1274 {
1275 { 1, 1, 1, 1 },
1276 I960_INSN_EMUL, "emul", "emul",
1277 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1278 & ifmt_mulo, { 0x67000000 },
2f8eccae 1279 (PTR) 0,
5730d39d 1280 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1281 },
1282/* emul $lit1, $src2, $dst */
1283 {
1284 { 1, 1, 1, 1 },
1285 I960_INSN_EMUL1, "emul1", "emul",
1286 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1287 & ifmt_mulo1, { 0x67000800 },
2f8eccae 1288 (PTR) 0,
5730d39d 1289 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1290 },
1291/* emul $src1, $lit2, $dst */
1292 {
1293 { 1, 1, 1, 1 },
1294 I960_INSN_EMUL2, "emul2", "emul",
1295 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1296 & ifmt_mulo2, { 0x67001000 },
2f8eccae 1297 (PTR) 0,
5730d39d 1298 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1299 },
1300/* emul $lit1, $lit2, $dst */
1301 {
1302 { 1, 1, 1, 1 },
1303 I960_INSN_EMUL3, "emul3", "emul",
1304 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), ',', ' ', OP (DST), 0 } },
805b72e6 1305 & ifmt_mulo3, { 0x67001800 },
2f8eccae 1306 (PTR) 0,
5730d39d 1307 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1308 },
1309/* mov $src1, $dst */
1310 {
1311 { 1, 1, 1, 1 },
1312 I960_INSN_MOV, "mov", "mov",
1313 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (DST), 0 } },
805b72e6 1314 & ifmt_mulo2, { 0x5c001600 },
2f8eccae 1315 (PTR) 0,
5730d39d 1316 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1317 },
1318/* mov $lit1, $dst */
1319 {
1320 { 1, 1, 1, 1 },
1321 I960_INSN_MOV1, "mov1", "mov",
1322 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (DST), 0 } },
805b72e6 1323 & ifmt_mulo3, { 0x5c001e00 },
2f8eccae 1324 (PTR) 0,
5730d39d 1325 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1326 },
1327/* movl $src1, $dst */
1328 {
1329 { 1, 1, 1, 1 },
1330 I960_INSN_MOVL, "movl", "movl",
1331 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (DST), 0 } },
805b72e6 1332 & ifmt_mulo2, { 0x5d001600 },
2f8eccae 1333 (PTR) 0,
5730d39d 1334 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1335 },
1336/* movl $lit1, $dst */
1337 {
1338 { 1, 1, 1, 1 },
1339 I960_INSN_MOVL1, "movl1", "movl",
1340 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (DST), 0 } },
805b72e6 1341 & ifmt_mulo3, { 0x5d001e00 },
2f8eccae 1342 (PTR) 0,
5730d39d 1343 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1344 },
1345/* movt $src1, $dst */
1346 {
1347 { 1, 1, 1, 1 },
1348 I960_INSN_MOVT, "movt", "movt",
1349 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (DST), 0 } },
805b72e6 1350 & ifmt_mulo2, { 0x5e001600 },
2f8eccae 1351 (PTR) 0,
5730d39d 1352 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1353 },
1354/* movt $lit1, $dst */
1355 {
1356 { 1, 1, 1, 1 },
1357 I960_INSN_MOVT1, "movt1", "movt",
1358 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (DST), 0 } },
805b72e6 1359 & ifmt_mulo3, { 0x5e001e00 },
2f8eccae 1360 (PTR) 0,
5730d39d 1361 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1362 },
1363/* movq $src1, $dst */
1364 {
1365 { 1, 1, 1, 1 },
1366 I960_INSN_MOVQ, "movq", "movq",
1367 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (DST), 0 } },
805b72e6 1368 & ifmt_mulo2, { 0x5f001600 },
2f8eccae 1369 (PTR) 0,
5730d39d 1370 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1371 },
1372/* movq $lit1, $dst */
1373 {
1374 { 1, 1, 1, 1 },
1375 I960_INSN_MOVQ1, "movq1", "movq",
1376 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (DST), 0 } },
805b72e6 1377 & ifmt_mulo3, { 0x5f001e00 },
2f8eccae 1378 (PTR) 0,
5730d39d 1379 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1380 },
1381/* modpc $src1, $src2, $dst */
1382 {
1383 { 1, 1, 1, 1 },
1384 I960_INSN_MODPC, "modpc", "modpc",
1385 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1386 & ifmt_mulo, { 0x65000280 },
2f8eccae 1387 (PTR) 0,
5730d39d 1388 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1389 },
1390/* modac $src1, $src2, $dst */
1391 {
1392 { 1, 1, 1, 1 },
1393 I960_INSN_MODAC, "modac", "modac",
1394 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), ',', ' ', OP (DST), 0 } },
805b72e6 1395 & ifmt_mulo, { 0x64000280 },
2f8eccae 1396 (PTR) 0,
5730d39d 1397 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1398 },
1399/* lda $offset, $dst */
1400 {
1401 { 1, 1, 1, 1 },
1402 I960_INSN_LDA_OFFSET, "lda-offset", "lda",
1403 { { MNEM, ' ', OP (OFFSET), ',', ' ', OP (DST), 0 } },
805b72e6 1404 & ifmt_lda_offset, { 0x8c000000 },
2f8eccae 1405 (PTR) 0,
5730d39d 1406 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1407 },
1408/* lda $offset($abase), $dst */
1409 {
1410 { 1, 1, 1, 1 },
1411 I960_INSN_LDA_INDIRECT_OFFSET, "lda-indirect-offset", "lda",
1412 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1413 & ifmt_lda_offset, { 0x8c002000 },
2f8eccae 1414 (PTR) 0,
5730d39d 1415 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1416 },
1417/* lda ($abase), $dst */
1418 {
1419 { 1, 1, 1, 1 },
1420 I960_INSN_LDA_INDIRECT, "lda-indirect", "lda",
1421 { { MNEM, ' ', '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1422 & ifmt_lda_indirect, { 0x8c001000 },
2f8eccae 1423 (PTR) 0,
5730d39d 1424 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1425 },
1426/* lda ($abase)[$index*S$scale], $dst */
1427 {
1428 { 1, 1, 1, 1 },
1429 I960_INSN_LDA_INDIRECT_INDEX, "lda-indirect-index", "lda",
1430 { { MNEM, ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1431 & ifmt_lda_indirect, { 0x8c001c00 },
2f8eccae 1432 (PTR) 0,
5730d39d 1433 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1434 },
1435/* lda $optdisp, $dst */
1436 {
1437 { 1, 1, 1, 1 },
1438 I960_INSN_LDA_DISP, "lda-disp", "lda",
1439 { { MNEM, ' ', OP (OPTDISP), ',', ' ', OP (DST), 0 } },
805b72e6 1440 & ifmt_lda_disp, { 0x8c003000 },
2f8eccae 1441 (PTR) 0,
5730d39d 1442 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1443 },
1444/* lda $optdisp($abase), $dst */
1445 {
1446 { 1, 1, 1, 1 },
1447 I960_INSN_LDA_INDIRECT_DISP, "lda-indirect-disp", "lda",
1448 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1449 & ifmt_lda_disp, { 0x8c003400 },
2f8eccae 1450 (PTR) 0,
5730d39d 1451 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1452 },
1453/* lda $optdisp[$index*S$scale], $dst */
1454 {
1455 { 1, 1, 1, 1 },
1456 I960_INSN_LDA_INDEX_DISP, "lda-index-disp", "lda",
1457 { { MNEM, ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1458 & ifmt_lda_disp, { 0x8c003800 },
2f8eccae 1459 (PTR) 0,
5730d39d 1460 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1461 },
1462/* lda $optdisp($abase)[$index*S$scale], $dst */
1463 {
1464 { 1, 1, 1, 1 },
1465 I960_INSN_LDA_INDIRECT_INDEX_DISP, "lda-indirect-index-disp", "lda",
1466 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1467 & ifmt_lda_disp, { 0x8c003c00 },
2f8eccae 1468 (PTR) 0,
5730d39d 1469 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1470 },
1471/* ld $offset, $dst */
1472 {
1473 { 1, 1, 1, 1 },
1474 I960_INSN_LD_OFFSET, "ld-offset", "ld",
1475 { { MNEM, ' ', OP (OFFSET), ',', ' ', OP (DST), 0 } },
805b72e6 1476 & ifmt_lda_offset, { 0x90000000 },
2f8eccae 1477 (PTR) 0,
5730d39d 1478 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1479 },
1480/* ld $offset($abase), $dst */
1481 {
1482 { 1, 1, 1, 1 },
1483 I960_INSN_LD_INDIRECT_OFFSET, "ld-indirect-offset", "ld",
1484 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1485 & ifmt_lda_offset, { 0x90002000 },
2f8eccae 1486 (PTR) 0,
5730d39d 1487 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1488 },
1489/* ld ($abase), $dst */
1490 {
1491 { 1, 1, 1, 1 },
1492 I960_INSN_LD_INDIRECT, "ld-indirect", "ld",
1493 { { MNEM, ' ', '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1494 & ifmt_lda_indirect, { 0x90001000 },
2f8eccae 1495 (PTR) 0,
5730d39d 1496 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1497 },
1498/* ld ($abase)[$index*S$scale], $dst */
1499 {
1500 { 1, 1, 1, 1 },
1501 I960_INSN_LD_INDIRECT_INDEX, "ld-indirect-index", "ld",
1502 { { MNEM, ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1503 & ifmt_lda_indirect, { 0x90001c00 },
2f8eccae 1504 (PTR) 0,
5730d39d 1505 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1506 },
1507/* ld $optdisp, $dst */
1508 {
1509 { 1, 1, 1, 1 },
1510 I960_INSN_LD_DISP, "ld-disp", "ld",
1511 { { MNEM, ' ', OP (OPTDISP), ',', ' ', OP (DST), 0 } },
805b72e6 1512 & ifmt_lda_disp, { 0x90003000 },
2f8eccae 1513 (PTR) 0,
5730d39d 1514 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1515 },
1516/* ld $optdisp($abase), $dst */
1517 {
1518 { 1, 1, 1, 1 },
1519 I960_INSN_LD_INDIRECT_DISP, "ld-indirect-disp", "ld",
1520 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1521 & ifmt_lda_disp, { 0x90003400 },
2f8eccae 1522 (PTR) 0,
5730d39d 1523 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1524 },
1525/* ld $optdisp[$index*S$scale], $dst */
1526 {
1527 { 1, 1, 1, 1 },
1528 I960_INSN_LD_INDEX_DISP, "ld-index-disp", "ld",
1529 { { MNEM, ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1530 & ifmt_lda_disp, { 0x90003800 },
2f8eccae 1531 (PTR) 0,
5730d39d 1532 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1533 },
1534/* ld $optdisp($abase)[$index*S$scale], $dst */
1535 {
1536 { 1, 1, 1, 1 },
1537 I960_INSN_LD_INDIRECT_INDEX_DISP, "ld-indirect-index-disp", "ld",
1538 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1539 & ifmt_lda_disp, { 0x90003c00 },
2f8eccae 1540 (PTR) 0,
5730d39d 1541 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1542 },
1543/* ldob $offset, $dst */
1544 {
1545 { 1, 1, 1, 1 },
1546 I960_INSN_LDOB_OFFSET, "ldob-offset", "ldob",
1547 { { MNEM, ' ', OP (OFFSET), ',', ' ', OP (DST), 0 } },
805b72e6 1548 & ifmt_lda_offset, { 0x80000000 },
2f8eccae 1549 (PTR) 0,
5730d39d 1550 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1551 },
1552/* ldob $offset($abase), $dst */
1553 {
1554 { 1, 1, 1, 1 },
1555 I960_INSN_LDOB_INDIRECT_OFFSET, "ldob-indirect-offset", "ldob",
1556 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1557 & ifmt_lda_offset, { 0x80002000 },
2f8eccae 1558 (PTR) 0,
5730d39d 1559 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1560 },
1561/* ldob ($abase), $dst */
1562 {
1563 { 1, 1, 1, 1 },
1564 I960_INSN_LDOB_INDIRECT, "ldob-indirect", "ldob",
1565 { { MNEM, ' ', '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1566 & ifmt_lda_indirect, { 0x80001000 },
2f8eccae 1567 (PTR) 0,
5730d39d 1568 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1569 },
1570/* ldob ($abase)[$index*S$scale], $dst */
1571 {
1572 { 1, 1, 1, 1 },
1573 I960_INSN_LDOB_INDIRECT_INDEX, "ldob-indirect-index", "ldob",
1574 { { MNEM, ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1575 & ifmt_lda_indirect, { 0x80001c00 },
2f8eccae 1576 (PTR) 0,
5730d39d 1577 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1578 },
1579/* ldob $optdisp, $dst */
1580 {
1581 { 1, 1, 1, 1 },
1582 I960_INSN_LDOB_DISP, "ldob-disp", "ldob",
1583 { { MNEM, ' ', OP (OPTDISP), ',', ' ', OP (DST), 0 } },
805b72e6 1584 & ifmt_lda_disp, { 0x80003000 },
2f8eccae 1585 (PTR) 0,
5730d39d 1586 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1587 },
1588/* ldob $optdisp($abase), $dst */
1589 {
1590 { 1, 1, 1, 1 },
1591 I960_INSN_LDOB_INDIRECT_DISP, "ldob-indirect-disp", "ldob",
1592 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1593 & ifmt_lda_disp, { 0x80003400 },
2f8eccae 1594 (PTR) 0,
5730d39d 1595 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1596 },
1597/* ldob $optdisp[$index*S$scale], $dst */
1598 {
1599 { 1, 1, 1, 1 },
1600 I960_INSN_LDOB_INDEX_DISP, "ldob-index-disp", "ldob",
1601 { { MNEM, ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1602 & ifmt_lda_disp, { 0x80003800 },
2f8eccae 1603 (PTR) 0,
5730d39d 1604 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1605 },
1606/* ldob $optdisp($abase)[$index*S$scale], $dst */
1607 {
1608 { 1, 1, 1, 1 },
1609 I960_INSN_LDOB_INDIRECT_INDEX_DISP, "ldob-indirect-index-disp", "ldob",
1610 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1611 & ifmt_lda_disp, { 0x80003c00 },
2f8eccae 1612 (PTR) 0,
5730d39d 1613 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1614 },
1615/* ldos $offset, $dst */
1616 {
1617 { 1, 1, 1, 1 },
1618 I960_INSN_LDOS_OFFSET, "ldos-offset", "ldos",
1619 { { MNEM, ' ', OP (OFFSET), ',', ' ', OP (DST), 0 } },
805b72e6 1620 & ifmt_lda_offset, { 0x88000000 },
2f8eccae 1621 (PTR) 0,
5730d39d 1622 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1623 },
1624/* ldos $offset($abase), $dst */
1625 {
1626 { 1, 1, 1, 1 },
1627 I960_INSN_LDOS_INDIRECT_OFFSET, "ldos-indirect-offset", "ldos",
1628 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1629 & ifmt_lda_offset, { 0x88002000 },
2f8eccae 1630 (PTR) 0,
5730d39d 1631 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1632 },
1633/* ldos ($abase), $dst */
1634 {
1635 { 1, 1, 1, 1 },
1636 I960_INSN_LDOS_INDIRECT, "ldos-indirect", "ldos",
1637 { { MNEM, ' ', '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1638 & ifmt_lda_indirect, { 0x88001000 },
2f8eccae 1639 (PTR) 0,
5730d39d 1640 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1641 },
1642/* ldos ($abase)[$index*S$scale], $dst */
1643 {
1644 { 1, 1, 1, 1 },
1645 I960_INSN_LDOS_INDIRECT_INDEX, "ldos-indirect-index", "ldos",
1646 { { MNEM, ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1647 & ifmt_lda_indirect, { 0x88001c00 },
2f8eccae 1648 (PTR) 0,
5730d39d 1649 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1650 },
1651/* ldos $optdisp, $dst */
1652 {
1653 { 1, 1, 1, 1 },
1654 I960_INSN_LDOS_DISP, "ldos-disp", "ldos",
1655 { { MNEM, ' ', OP (OPTDISP), ',', ' ', OP (DST), 0 } },
805b72e6 1656 & ifmt_lda_disp, { 0x88003000 },
2f8eccae 1657 (PTR) 0,
5730d39d 1658 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1659 },
1660/* ldos $optdisp($abase), $dst */
1661 {
1662 { 1, 1, 1, 1 },
1663 I960_INSN_LDOS_INDIRECT_DISP, "ldos-indirect-disp", "ldos",
1664 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1665 & ifmt_lda_disp, { 0x88003400 },
2f8eccae 1666 (PTR) 0,
5730d39d 1667 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1668 },
1669/* ldos $optdisp[$index*S$scale], $dst */
1670 {
1671 { 1, 1, 1, 1 },
1672 I960_INSN_LDOS_INDEX_DISP, "ldos-index-disp", "ldos",
1673 { { MNEM, ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1674 & ifmt_lda_disp, { 0x88003800 },
2f8eccae 1675 (PTR) 0,
5730d39d 1676 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1677 },
1678/* ldos $optdisp($abase)[$index*S$scale], $dst */
1679 {
1680 { 1, 1, 1, 1 },
1681 I960_INSN_LDOS_INDIRECT_INDEX_DISP, "ldos-indirect-index-disp", "ldos",
1682 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1683 & ifmt_lda_disp, { 0x88003c00 },
2f8eccae 1684 (PTR) 0,
5730d39d 1685 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1686 },
1687/* ldib $offset, $dst */
1688 {
1689 { 1, 1, 1, 1 },
1690 I960_INSN_LDIB_OFFSET, "ldib-offset", "ldib",
1691 { { MNEM, ' ', OP (OFFSET), ',', ' ', OP (DST), 0 } },
805b72e6 1692 & ifmt_lda_offset, { 0xc0000000 },
2f8eccae 1693 (PTR) 0,
5730d39d 1694 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1695 },
1696/* ldib $offset($abase), $dst */
1697 {
1698 { 1, 1, 1, 1 },
1699 I960_INSN_LDIB_INDIRECT_OFFSET, "ldib-indirect-offset", "ldib",
1700 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1701 & ifmt_lda_offset, { 0xc0002000 },
2f8eccae 1702 (PTR) 0,
5730d39d 1703 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1704 },
1705/* ldib ($abase), $dst */
1706 {
1707 { 1, 1, 1, 1 },
1708 I960_INSN_LDIB_INDIRECT, "ldib-indirect", "ldib",
1709 { { MNEM, ' ', '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1710 & ifmt_lda_indirect, { 0xc0001000 },
2f8eccae 1711 (PTR) 0,
5730d39d 1712 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1713 },
1714/* ldib ($abase)[$index*S$scale], $dst */
1715 {
1716 { 1, 1, 1, 1 },
1717 I960_INSN_LDIB_INDIRECT_INDEX, "ldib-indirect-index", "ldib",
1718 { { MNEM, ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1719 & ifmt_lda_indirect, { 0xc0001c00 },
2f8eccae 1720 (PTR) 0,
5730d39d 1721 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1722 },
1723/* ldib $optdisp, $dst */
1724 {
1725 { 1, 1, 1, 1 },
1726 I960_INSN_LDIB_DISP, "ldib-disp", "ldib",
1727 { { MNEM, ' ', OP (OPTDISP), ',', ' ', OP (DST), 0 } },
805b72e6 1728 & ifmt_lda_disp, { 0xc0003000 },
2f8eccae 1729 (PTR) 0,
5730d39d 1730 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1731 },
1732/* ldib $optdisp($abase), $dst */
1733 {
1734 { 1, 1, 1, 1 },
1735 I960_INSN_LDIB_INDIRECT_DISP, "ldib-indirect-disp", "ldib",
1736 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1737 & ifmt_lda_disp, { 0xc0003400 },
2f8eccae 1738 (PTR) 0,
5730d39d 1739 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1740 },
1741/* ldib $optdisp[$index*S$scale], $dst */
1742 {
1743 { 1, 1, 1, 1 },
1744 I960_INSN_LDIB_INDEX_DISP, "ldib-index-disp", "ldib",
1745 { { MNEM, ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1746 & ifmt_lda_disp, { 0xc0003800 },
2f8eccae 1747 (PTR) 0,
5730d39d 1748 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1749 },
1750/* ldib $optdisp($abase)[$index*S$scale], $dst */
1751 {
1752 { 1, 1, 1, 1 },
1753 I960_INSN_LDIB_INDIRECT_INDEX_DISP, "ldib-indirect-index-disp", "ldib",
1754 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1755 & ifmt_lda_disp, { 0xc0003c00 },
2f8eccae 1756 (PTR) 0,
5730d39d 1757 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1758 },
1759/* ldis $offset, $dst */
1760 {
1761 { 1, 1, 1, 1 },
1762 I960_INSN_LDIS_OFFSET, "ldis-offset", "ldis",
1763 { { MNEM, ' ', OP (OFFSET), ',', ' ', OP (DST), 0 } },
805b72e6 1764 & ifmt_lda_offset, { 0xc8000000 },
2f8eccae 1765 (PTR) 0,
5730d39d 1766 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1767 },
1768/* ldis $offset($abase), $dst */
1769 {
1770 { 1, 1, 1, 1 },
1771 I960_INSN_LDIS_INDIRECT_OFFSET, "ldis-indirect-offset", "ldis",
1772 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1773 & ifmt_lda_offset, { 0xc8002000 },
2f8eccae 1774 (PTR) 0,
5730d39d 1775 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1776 },
1777/* ldis ($abase), $dst */
1778 {
1779 { 1, 1, 1, 1 },
1780 I960_INSN_LDIS_INDIRECT, "ldis-indirect", "ldis",
1781 { { MNEM, ' ', '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1782 & ifmt_lda_indirect, { 0xc8001000 },
2f8eccae 1783 (PTR) 0,
5730d39d 1784 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1785 },
1786/* ldis ($abase)[$index*S$scale], $dst */
1787 {
1788 { 1, 1, 1, 1 },
1789 I960_INSN_LDIS_INDIRECT_INDEX, "ldis-indirect-index", "ldis",
1790 { { MNEM, ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1791 & ifmt_lda_indirect, { 0xc8001c00 },
2f8eccae 1792 (PTR) 0,
5730d39d 1793 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1794 },
1795/* ldis $optdisp, $dst */
1796 {
1797 { 1, 1, 1, 1 },
1798 I960_INSN_LDIS_DISP, "ldis-disp", "ldis",
1799 { { MNEM, ' ', OP (OPTDISP), ',', ' ', OP (DST), 0 } },
805b72e6 1800 & ifmt_lda_disp, { 0xc8003000 },
2f8eccae 1801 (PTR) 0,
5730d39d 1802 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1803 },
1804/* ldis $optdisp($abase), $dst */
1805 {
1806 { 1, 1, 1, 1 },
1807 I960_INSN_LDIS_INDIRECT_DISP, "ldis-indirect-disp", "ldis",
1808 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1809 & ifmt_lda_disp, { 0xc8003400 },
2f8eccae 1810 (PTR) 0,
5730d39d 1811 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1812 },
1813/* ldis $optdisp[$index*S$scale], $dst */
1814 {
1815 { 1, 1, 1, 1 },
1816 I960_INSN_LDIS_INDEX_DISP, "ldis-index-disp", "ldis",
1817 { { MNEM, ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1818 & ifmt_lda_disp, { 0xc8003800 },
2f8eccae 1819 (PTR) 0,
5730d39d 1820 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1821 },
1822/* ldis $optdisp($abase)[$index*S$scale], $dst */
1823 {
1824 { 1, 1, 1, 1 },
1825 I960_INSN_LDIS_INDIRECT_INDEX_DISP, "ldis-indirect-index-disp", "ldis",
1826 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1827 & ifmt_lda_disp, { 0xc8003c00 },
2f8eccae 1828 (PTR) 0,
5730d39d 1829 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1830 },
1831/* ldl $offset, $dst */
1832 {
1833 { 1, 1, 1, 1 },
1834 I960_INSN_LDL_OFFSET, "ldl-offset", "ldl",
1835 { { MNEM, ' ', OP (OFFSET), ',', ' ', OP (DST), 0 } },
805b72e6 1836 & ifmt_lda_offset, { 0x98000000 },
2f8eccae 1837 (PTR) 0,
5730d39d 1838 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1839 },
1840/* ldl $offset($abase), $dst */
1841 {
1842 { 1, 1, 1, 1 },
1843 I960_INSN_LDL_INDIRECT_OFFSET, "ldl-indirect-offset", "ldl",
1844 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1845 & ifmt_lda_offset, { 0x98002000 },
2f8eccae 1846 (PTR) 0,
5730d39d 1847 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1848 },
1849/* ldl ($abase), $dst */
1850 {
1851 { 1, 1, 1, 1 },
1852 I960_INSN_LDL_INDIRECT, "ldl-indirect", "ldl",
1853 { { MNEM, ' ', '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1854 & ifmt_lda_indirect, { 0x98001000 },
2f8eccae 1855 (PTR) 0,
5730d39d 1856 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1857 },
1858/* ldl ($abase)[$index*S$scale], $dst */
1859 {
1860 { 1, 1, 1, 1 },
1861 I960_INSN_LDL_INDIRECT_INDEX, "ldl-indirect-index", "ldl",
1862 { { MNEM, ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1863 & ifmt_lda_indirect, { 0x98001c00 },
2f8eccae 1864 (PTR) 0,
5730d39d 1865 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1866 },
1867/* ldl $optdisp, $dst */
1868 {
1869 { 1, 1, 1, 1 },
1870 I960_INSN_LDL_DISP, "ldl-disp", "ldl",
1871 { { MNEM, ' ', OP (OPTDISP), ',', ' ', OP (DST), 0 } },
805b72e6 1872 & ifmt_lda_disp, { 0x98003000 },
2f8eccae 1873 (PTR) 0,
5730d39d 1874 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1875 },
1876/* ldl $optdisp($abase), $dst */
1877 {
1878 { 1, 1, 1, 1 },
1879 I960_INSN_LDL_INDIRECT_DISP, "ldl-indirect-disp", "ldl",
1880 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1881 & ifmt_lda_disp, { 0x98003400 },
2f8eccae 1882 (PTR) 0,
5730d39d 1883 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1884 },
1885/* ldl $optdisp[$index*S$scale], $dst */
1886 {
1887 { 1, 1, 1, 1 },
1888 I960_INSN_LDL_INDEX_DISP, "ldl-index-disp", "ldl",
1889 { { MNEM, ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1890 & ifmt_lda_disp, { 0x98003800 },
2f8eccae 1891 (PTR) 0,
5730d39d 1892 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1893 },
1894/* ldl $optdisp($abase)[$index*S$scale], $dst */
1895 {
1896 { 1, 1, 1, 1 },
1897 I960_INSN_LDL_INDIRECT_INDEX_DISP, "ldl-indirect-index-disp", "ldl",
1898 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1899 & ifmt_lda_disp, { 0x98003c00 },
2f8eccae 1900 (PTR) 0,
5730d39d 1901 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1902 },
1903/* ldt $offset, $dst */
1904 {
1905 { 1, 1, 1, 1 },
1906 I960_INSN_LDT_OFFSET, "ldt-offset", "ldt",
1907 { { MNEM, ' ', OP (OFFSET), ',', ' ', OP (DST), 0 } },
805b72e6 1908 & ifmt_lda_offset, { 0xa0000000 },
2f8eccae 1909 (PTR) 0,
5730d39d 1910 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1911 },
1912/* ldt $offset($abase), $dst */
1913 {
1914 { 1, 1, 1, 1 },
1915 I960_INSN_LDT_INDIRECT_OFFSET, "ldt-indirect-offset", "ldt",
1916 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1917 & ifmt_lda_offset, { 0xa0002000 },
2f8eccae 1918 (PTR) 0,
5730d39d 1919 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1920 },
1921/* ldt ($abase), $dst */
1922 {
1923 { 1, 1, 1, 1 },
1924 I960_INSN_LDT_INDIRECT, "ldt-indirect", "ldt",
1925 { { MNEM, ' ', '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1926 & ifmt_lda_indirect, { 0xa0001000 },
2f8eccae 1927 (PTR) 0,
5730d39d 1928 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1929 },
1930/* ldt ($abase)[$index*S$scale], $dst */
1931 {
1932 { 1, 1, 1, 1 },
1933 I960_INSN_LDT_INDIRECT_INDEX, "ldt-indirect-index", "ldt",
1934 { { MNEM, ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1935 & ifmt_lda_indirect, { 0xa0001c00 },
2f8eccae 1936 (PTR) 0,
5730d39d 1937 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1938 },
1939/* ldt $optdisp, $dst */
1940 {
1941 { 1, 1, 1, 1 },
1942 I960_INSN_LDT_DISP, "ldt-disp", "ldt",
1943 { { MNEM, ' ', OP (OPTDISP), ',', ' ', OP (DST), 0 } },
805b72e6 1944 & ifmt_lda_disp, { 0xa0003000 },
2f8eccae 1945 (PTR) 0,
5730d39d 1946 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1947 },
1948/* ldt $optdisp($abase), $dst */
1949 {
1950 { 1, 1, 1, 1 },
1951 I960_INSN_LDT_INDIRECT_DISP, "ldt-indirect-disp", "ldt",
1952 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1953 & ifmt_lda_disp, { 0xa0003400 },
2f8eccae 1954 (PTR) 0,
5730d39d 1955 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1956 },
1957/* ldt $optdisp[$index*S$scale], $dst */
1958 {
1959 { 1, 1, 1, 1 },
1960 I960_INSN_LDT_INDEX_DISP, "ldt-index-disp", "ldt",
1961 { { MNEM, ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1962 & ifmt_lda_disp, { 0xa0003800 },
2f8eccae 1963 (PTR) 0,
5730d39d 1964 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1965 },
1966/* ldt $optdisp($abase)[$index*S$scale], $dst */
1967 {
1968 { 1, 1, 1, 1 },
1969 I960_INSN_LDT_INDIRECT_INDEX_DISP, "ldt-indirect-index-disp", "ldt",
1970 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 1971 & ifmt_lda_disp, { 0xa0003c00 },
2f8eccae 1972 (PTR) 0,
5730d39d 1973 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1974 },
1975/* ldq $offset, $dst */
1976 {
1977 { 1, 1, 1, 1 },
1978 I960_INSN_LDQ_OFFSET, "ldq-offset", "ldq",
1979 { { MNEM, ' ', OP (OFFSET), ',', ' ', OP (DST), 0 } },
805b72e6 1980 & ifmt_lda_offset, { 0xb0000000 },
2f8eccae 1981 (PTR) 0,
5730d39d 1982 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1983 },
1984/* ldq $offset($abase), $dst */
1985 {
1986 { 1, 1, 1, 1 },
1987 I960_INSN_LDQ_INDIRECT_OFFSET, "ldq-indirect-offset", "ldq",
1988 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1989 & ifmt_lda_offset, { 0xb0002000 },
2f8eccae 1990 (PTR) 0,
5730d39d 1991 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
1992 },
1993/* ldq ($abase), $dst */
1994 {
1995 { 1, 1, 1, 1 },
1996 I960_INSN_LDQ_INDIRECT, "ldq-indirect", "ldq",
1997 { { MNEM, ' ', '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 1998 & ifmt_lda_indirect, { 0xb0001000 },
2f8eccae 1999 (PTR) 0,
5730d39d 2000 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2001 },
2002/* ldq ($abase)[$index*S$scale], $dst */
2003 {
2004 { 1, 1, 1, 1 },
2005 I960_INSN_LDQ_INDIRECT_INDEX, "ldq-indirect-index", "ldq",
2006 { { MNEM, ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 2007 & ifmt_lda_indirect, { 0xb0001c00 },
2f8eccae 2008 (PTR) 0,
5730d39d 2009 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2010 },
2011/* ldq $optdisp, $dst */
2012 {
2013 { 1, 1, 1, 1 },
2014 I960_INSN_LDQ_DISP, "ldq-disp", "ldq",
2015 { { MNEM, ' ', OP (OPTDISP), ',', ' ', OP (DST), 0 } },
805b72e6 2016 & ifmt_lda_disp, { 0xb0003000 },
2f8eccae 2017 (PTR) 0,
5730d39d 2018 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2019 },
2020/* ldq $optdisp($abase), $dst */
2021 {
2022 { 1, 1, 1, 1 },
2023 I960_INSN_LDQ_INDIRECT_DISP, "ldq-indirect-disp", "ldq",
2024 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', ',', ' ', OP (DST), 0 } },
805b72e6 2025 & ifmt_lda_disp, { 0xb0003400 },
2f8eccae 2026 (PTR) 0,
5730d39d 2027 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2028 },
2029/* ldq $optdisp[$index*S$scale], $dst */
2030 {
2031 { 1, 1, 1, 1 },
2032 I960_INSN_LDQ_INDEX_DISP, "ldq-index-disp", "ldq",
2033 { { MNEM, ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 2034 & ifmt_lda_disp, { 0xb0003800 },
2f8eccae 2035 (PTR) 0,
5730d39d 2036 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2037 },
2038/* ldq $optdisp($abase)[$index*S$scale], $dst */
2039 {
2040 { 1, 1, 1, 1 },
2041 I960_INSN_LDQ_INDIRECT_INDEX_DISP, "ldq-indirect-index-disp", "ldq",
2042 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', ',', ' ', OP (DST), 0 } },
805b72e6 2043 & ifmt_lda_disp, { 0xb0003c00 },
2f8eccae 2044 (PTR) 0,
5730d39d 2045 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2046 },
2047/* st $st_src, $offset */
2048 {
2049 { 1, 1, 1, 1 },
2050 I960_INSN_ST_OFFSET, "st-offset", "st",
2051 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), 0 } },
805b72e6 2052 & ifmt_st_offset, { 0x92000000 },
2f8eccae 2053 (PTR) 0,
5730d39d 2054 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2055 },
2056/* st $st_src, $offset($abase) */
2057 {
2058 { 1, 1, 1, 1 },
2059 I960_INSN_ST_INDIRECT_OFFSET, "st-indirect-offset", "st",
2060 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), '(', OP (ABASE), ')', 0 } },
805b72e6 2061 & ifmt_st_offset, { 0x92002000 },
2f8eccae 2062 (PTR) 0,
5730d39d 2063 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2064 },
2065/* st $st_src, ($abase) */
2066 {
2067 { 1, 1, 1, 1 },
2068 I960_INSN_ST_INDIRECT, "st-indirect", "st",
2069 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', 0 } },
805b72e6 2070 & ifmt_st_indirect, { 0x92001000 },
2f8eccae 2071 (PTR) 0,
5730d39d 2072 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2073 },
2074/* st $st_src, ($abase)[$index*S$scale] */
2075 {
2076 { 1, 1, 1, 1 },
2077 I960_INSN_ST_INDIRECT_INDEX, "st-indirect-index", "st",
2078 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2079 & ifmt_st_indirect, { 0x92001c00 },
2f8eccae 2080 (PTR) 0,
5730d39d 2081 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2082 },
2083/* st $st_src, $optdisp */
2084 {
2085 { 1, 1, 1, 1 },
2086 I960_INSN_ST_DISP, "st-disp", "st",
2087 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), 0 } },
805b72e6 2088 & ifmt_st_disp, { 0x92003000 },
2f8eccae 2089 (PTR) 0,
5730d39d 2090 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2091 },
2092/* st $st_src, $optdisp($abase) */
2093 {
2094 { 1, 1, 1, 1 },
2095 I960_INSN_ST_INDIRECT_DISP, "st-indirect-disp", "st",
2096 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', 0 } },
805b72e6 2097 & ifmt_st_disp, { 0x92003400 },
2f8eccae 2098 (PTR) 0,
5730d39d 2099 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2100 },
2101/* st $st_src, $optdisp[$index*S$scale */
2102 {
2103 { 1, 1, 1, 1 },
2104 I960_INSN_ST_INDEX_DISP, "st-index-disp", "st",
2105 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), 0 } },
805b72e6 2106 & ifmt_st_disp, { 0x92003800 },
2f8eccae 2107 (PTR) 0,
5730d39d 2108 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2109 },
2110/* st $st_src, $optdisp($abase)[$index*S$scale] */
2111 {
2112 { 1, 1, 1, 1 },
2113 I960_INSN_ST_INDIRECT_INDEX_DISP, "st-indirect-index-disp", "st",
2114 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2115 & ifmt_st_disp, { 0x92003c00 },
2f8eccae 2116 (PTR) 0,
5730d39d 2117 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2118 },
2119/* stob $st_src, $offset */
2120 {
2121 { 1, 1, 1, 1 },
2122 I960_INSN_STOB_OFFSET, "stob-offset", "stob",
2123 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), 0 } },
805b72e6 2124 & ifmt_st_offset, { 0x82000000 },
2f8eccae 2125 (PTR) 0,
5730d39d 2126 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2127 },
2128/* stob $st_src, $offset($abase) */
2129 {
2130 { 1, 1, 1, 1 },
2131 I960_INSN_STOB_INDIRECT_OFFSET, "stob-indirect-offset", "stob",
2132 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), '(', OP (ABASE), ')', 0 } },
805b72e6 2133 & ifmt_st_offset, { 0x82002000 },
2f8eccae 2134 (PTR) 0,
5730d39d 2135 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2136 },
2137/* stob $st_src, ($abase) */
2138 {
2139 { 1, 1, 1, 1 },
2140 I960_INSN_STOB_INDIRECT, "stob-indirect", "stob",
2141 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', 0 } },
805b72e6 2142 & ifmt_st_indirect, { 0x82001000 },
2f8eccae 2143 (PTR) 0,
5730d39d 2144 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2145 },
2146/* stob $st_src, ($abase)[$index*S$scale] */
2147 {
2148 { 1, 1, 1, 1 },
2149 I960_INSN_STOB_INDIRECT_INDEX, "stob-indirect-index", "stob",
2150 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2151 & ifmt_st_indirect, { 0x82001c00 },
2f8eccae 2152 (PTR) 0,
5730d39d 2153 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2154 },
2155/* stob $st_src, $optdisp */
2156 {
2157 { 1, 1, 1, 1 },
2158 I960_INSN_STOB_DISP, "stob-disp", "stob",
2159 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), 0 } },
805b72e6 2160 & ifmt_st_disp, { 0x82003000 },
2f8eccae 2161 (PTR) 0,
5730d39d 2162 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2163 },
2164/* stob $st_src, $optdisp($abase) */
2165 {
2166 { 1, 1, 1, 1 },
2167 I960_INSN_STOB_INDIRECT_DISP, "stob-indirect-disp", "stob",
2168 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', 0 } },
805b72e6 2169 & ifmt_st_disp, { 0x82003400 },
2f8eccae 2170 (PTR) 0,
5730d39d 2171 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2172 },
2173/* stob $st_src, $optdisp[$index*S$scale */
2174 {
2175 { 1, 1, 1, 1 },
2176 I960_INSN_STOB_INDEX_DISP, "stob-index-disp", "stob",
2177 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), 0 } },
805b72e6 2178 & ifmt_st_disp, { 0x82003800 },
2f8eccae 2179 (PTR) 0,
5730d39d 2180 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2181 },
2182/* stob $st_src, $optdisp($abase)[$index*S$scale] */
2183 {
2184 { 1, 1, 1, 1 },
2185 I960_INSN_STOB_INDIRECT_INDEX_DISP, "stob-indirect-index-disp", "stob",
2186 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2187 & ifmt_st_disp, { 0x82003c00 },
2f8eccae 2188 (PTR) 0,
5730d39d 2189 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2190 },
2191/* stos $st_src, $offset */
2192 {
2193 { 1, 1, 1, 1 },
2194 I960_INSN_STOS_OFFSET, "stos-offset", "stos",
2195 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), 0 } },
805b72e6 2196 & ifmt_st_offset, { 0x8a000000 },
2f8eccae 2197 (PTR) 0,
5730d39d 2198 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2199 },
2200/* stos $st_src, $offset($abase) */
2201 {
2202 { 1, 1, 1, 1 },
2203 I960_INSN_STOS_INDIRECT_OFFSET, "stos-indirect-offset", "stos",
2204 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), '(', OP (ABASE), ')', 0 } },
805b72e6 2205 & ifmt_st_offset, { 0x8a002000 },
2f8eccae 2206 (PTR) 0,
5730d39d 2207 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2208 },
2209/* stos $st_src, ($abase) */
2210 {
2211 { 1, 1, 1, 1 },
2212 I960_INSN_STOS_INDIRECT, "stos-indirect", "stos",
2213 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', 0 } },
805b72e6 2214 & ifmt_st_indirect, { 0x8a001000 },
2f8eccae 2215 (PTR) 0,
5730d39d 2216 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2217 },
2218/* stos $st_src, ($abase)[$index*S$scale] */
2219 {
2220 { 1, 1, 1, 1 },
2221 I960_INSN_STOS_INDIRECT_INDEX, "stos-indirect-index", "stos",
2222 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2223 & ifmt_st_indirect, { 0x8a001c00 },
2f8eccae 2224 (PTR) 0,
5730d39d 2225 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2226 },
2227/* stos $st_src, $optdisp */
2228 {
2229 { 1, 1, 1, 1 },
2230 I960_INSN_STOS_DISP, "stos-disp", "stos",
2231 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), 0 } },
805b72e6 2232 & ifmt_st_disp, { 0x8a003000 },
2f8eccae 2233 (PTR) 0,
5730d39d 2234 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2235 },
2236/* stos $st_src, $optdisp($abase) */
2237 {
2238 { 1, 1, 1, 1 },
2239 I960_INSN_STOS_INDIRECT_DISP, "stos-indirect-disp", "stos",
2240 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', 0 } },
805b72e6 2241 & ifmt_st_disp, { 0x8a003400 },
2f8eccae 2242 (PTR) 0,
5730d39d 2243 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2244 },
2245/* stos $st_src, $optdisp[$index*S$scale */
2246 {
2247 { 1, 1, 1, 1 },
2248 I960_INSN_STOS_INDEX_DISP, "stos-index-disp", "stos",
2249 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), 0 } },
805b72e6 2250 & ifmt_st_disp, { 0x8a003800 },
2f8eccae 2251 (PTR) 0,
5730d39d 2252 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2253 },
2254/* stos $st_src, $optdisp($abase)[$index*S$scale] */
2255 {
2256 { 1, 1, 1, 1 },
2257 I960_INSN_STOS_INDIRECT_INDEX_DISP, "stos-indirect-index-disp", "stos",
2258 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2259 & ifmt_st_disp, { 0x8a003c00 },
2f8eccae 2260 (PTR) 0,
5730d39d 2261 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2262 },
2263/* stl $st_src, $offset */
2264 {
2265 { 1, 1, 1, 1 },
2266 I960_INSN_STL_OFFSET, "stl-offset", "stl",
2267 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), 0 } },
805b72e6 2268 & ifmt_st_offset, { 0x9a000000 },
2f8eccae 2269 (PTR) 0,
5730d39d 2270 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2271 },
2272/* stl $st_src, $offset($abase) */
2273 {
2274 { 1, 1, 1, 1 },
2275 I960_INSN_STL_INDIRECT_OFFSET, "stl-indirect-offset", "stl",
2276 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), '(', OP (ABASE), ')', 0 } },
805b72e6 2277 & ifmt_st_offset, { 0x9a002000 },
2f8eccae 2278 (PTR) 0,
5730d39d 2279 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2280 },
2281/* stl $st_src, ($abase) */
2282 {
2283 { 1, 1, 1, 1 },
2284 I960_INSN_STL_INDIRECT, "stl-indirect", "stl",
2285 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', 0 } },
805b72e6 2286 & ifmt_st_indirect, { 0x9a001000 },
2f8eccae 2287 (PTR) 0,
5730d39d 2288 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2289 },
2290/* stl $st_src, ($abase)[$index*S$scale] */
2291 {
2292 { 1, 1, 1, 1 },
2293 I960_INSN_STL_INDIRECT_INDEX, "stl-indirect-index", "stl",
2294 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2295 & ifmt_st_indirect, { 0x9a001c00 },
2f8eccae 2296 (PTR) 0,
5730d39d 2297 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2298 },
2299/* stl $st_src, $optdisp */
2300 {
2301 { 1, 1, 1, 1 },
2302 I960_INSN_STL_DISP, "stl-disp", "stl",
2303 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), 0 } },
805b72e6 2304 & ifmt_st_disp, { 0x9a003000 },
2f8eccae 2305 (PTR) 0,
5730d39d 2306 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2307 },
2308/* stl $st_src, $optdisp($abase) */
2309 {
2310 { 1, 1, 1, 1 },
2311 I960_INSN_STL_INDIRECT_DISP, "stl-indirect-disp", "stl",
2312 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', 0 } },
805b72e6 2313 & ifmt_st_disp, { 0x9a003400 },
2f8eccae 2314 (PTR) 0,
5730d39d 2315 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2316 },
2317/* stl $st_src, $optdisp[$index*S$scale */
2318 {
2319 { 1, 1, 1, 1 },
2320 I960_INSN_STL_INDEX_DISP, "stl-index-disp", "stl",
2321 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), 0 } },
805b72e6 2322 & ifmt_st_disp, { 0x9a003800 },
2f8eccae 2323 (PTR) 0,
5730d39d 2324 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2325 },
2326/* stl $st_src, $optdisp($abase)[$index*S$scale] */
2327 {
2328 { 1, 1, 1, 1 },
2329 I960_INSN_STL_INDIRECT_INDEX_DISP, "stl-indirect-index-disp", "stl",
2330 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2331 & ifmt_st_disp, { 0x9a003c00 },
2f8eccae 2332 (PTR) 0,
5730d39d 2333 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2334 },
2335/* stt $st_src, $offset */
2336 {
2337 { 1, 1, 1, 1 },
2338 I960_INSN_STT_OFFSET, "stt-offset", "stt",
2339 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), 0 } },
805b72e6 2340 & ifmt_st_offset, { 0xa2000000 },
2f8eccae 2341 (PTR) 0,
5730d39d 2342 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2343 },
2344/* stt $st_src, $offset($abase) */
2345 {
2346 { 1, 1, 1, 1 },
2347 I960_INSN_STT_INDIRECT_OFFSET, "stt-indirect-offset", "stt",
2348 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), '(', OP (ABASE), ')', 0 } },
805b72e6 2349 & ifmt_st_offset, { 0xa2002000 },
2f8eccae 2350 (PTR) 0,
5730d39d 2351 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2352 },
2353/* stt $st_src, ($abase) */
2354 {
2355 { 1, 1, 1, 1 },
2356 I960_INSN_STT_INDIRECT, "stt-indirect", "stt",
2357 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', 0 } },
805b72e6 2358 & ifmt_st_indirect, { 0xa2001000 },
2f8eccae 2359 (PTR) 0,
5730d39d 2360 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2361 },
2362/* stt $st_src, ($abase)[$index*S$scale] */
2363 {
2364 { 1, 1, 1, 1 },
2365 I960_INSN_STT_INDIRECT_INDEX, "stt-indirect-index", "stt",
2366 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2367 & ifmt_st_indirect, { 0xa2001c00 },
2f8eccae 2368 (PTR) 0,
5730d39d 2369 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2370 },
2371/* stt $st_src, $optdisp */
2372 {
2373 { 1, 1, 1, 1 },
2374 I960_INSN_STT_DISP, "stt-disp", "stt",
2375 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), 0 } },
805b72e6 2376 & ifmt_st_disp, { 0xa2003000 },
2f8eccae 2377 (PTR) 0,
5730d39d 2378 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2379 },
2380/* stt $st_src, $optdisp($abase) */
2381 {
2382 { 1, 1, 1, 1 },
2383 I960_INSN_STT_INDIRECT_DISP, "stt-indirect-disp", "stt",
2384 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', 0 } },
805b72e6 2385 & ifmt_st_disp, { 0xa2003400 },
2f8eccae 2386 (PTR) 0,
5730d39d 2387 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2388 },
2389/* stt $st_src, $optdisp[$index*S$scale */
2390 {
2391 { 1, 1, 1, 1 },
2392 I960_INSN_STT_INDEX_DISP, "stt-index-disp", "stt",
2393 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), 0 } },
805b72e6 2394 & ifmt_st_disp, { 0xa2003800 },
2f8eccae 2395 (PTR) 0,
5730d39d 2396 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2397 },
2398/* stt $st_src, $optdisp($abase)[$index*S$scale] */
2399 {
2400 { 1, 1, 1, 1 },
2401 I960_INSN_STT_INDIRECT_INDEX_DISP, "stt-indirect-index-disp", "stt",
2402 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2403 & ifmt_st_disp, { 0xa2003c00 },
2f8eccae 2404 (PTR) 0,
5730d39d 2405 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2406 },
2407/* stq $st_src, $offset */
2408 {
2409 { 1, 1, 1, 1 },
2410 I960_INSN_STQ_OFFSET, "stq-offset", "stq",
2411 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), 0 } },
805b72e6 2412 & ifmt_st_offset, { 0xb2000000 },
2f8eccae 2413 (PTR) 0,
5730d39d 2414 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2415 },
2416/* stq $st_src, $offset($abase) */
2417 {
2418 { 1, 1, 1, 1 },
2419 I960_INSN_STQ_INDIRECT_OFFSET, "stq-indirect-offset", "stq",
2420 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OFFSET), '(', OP (ABASE), ')', 0 } },
805b72e6 2421 & ifmt_st_offset, { 0xb2002000 },
2f8eccae 2422 (PTR) 0,
5730d39d 2423 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2424 },
2425/* stq $st_src, ($abase) */
2426 {
2427 { 1, 1, 1, 1 },
2428 I960_INSN_STQ_INDIRECT, "stq-indirect", "stq",
2429 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', 0 } },
805b72e6 2430 & ifmt_st_indirect, { 0xb2001000 },
2f8eccae 2431 (PTR) 0,
5730d39d 2432 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2433 },
2434/* stq $st_src, ($abase)[$index*S$scale] */
2435 {
2436 { 1, 1, 1, 1 },
2437 I960_INSN_STQ_INDIRECT_INDEX, "stq-indirect-index", "stq",
2438 { { MNEM, ' ', OP (ST_SRC), ',', ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2439 & ifmt_st_indirect, { 0xb2001c00 },
2f8eccae 2440 (PTR) 0,
5730d39d 2441 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2442 },
2443/* stq $st_src, $optdisp */
2444 {
2445 { 1, 1, 1, 1 },
2446 I960_INSN_STQ_DISP, "stq-disp", "stq",
2447 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), 0 } },
805b72e6 2448 & ifmt_st_disp, { 0xb2003000 },
2f8eccae 2449 (PTR) 0,
5730d39d 2450 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2451 },
2452/* stq $st_src, $optdisp($abase) */
2453 {
2454 { 1, 1, 1, 1 },
2455 I960_INSN_STQ_INDIRECT_DISP, "stq-indirect-disp", "stq",
2456 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', 0 } },
805b72e6 2457 & ifmt_st_disp, { 0xb2003400 },
2f8eccae 2458 (PTR) 0,
5730d39d 2459 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2460 },
2461/* stq $st_src, $optdisp[$index*S$scale */
2462 {
2463 { 1, 1, 1, 1 },
2464 I960_INSN_STQ_INDEX_DISP, "stq-index-disp", "stq",
2465 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '[', OP (INDEX), '*', 'S', OP (SCALE), 0 } },
805b72e6 2466 & ifmt_st_disp, { 0xb2003800 },
2f8eccae 2467 (PTR) 0,
5730d39d 2468 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2469 },
2470/* stq $st_src, $optdisp($abase)[$index*S$scale] */
2471 {
2472 { 1, 1, 1, 1 },
2473 I960_INSN_STQ_INDIRECT_INDEX_DISP, "stq-indirect-index-disp", "stq",
2474 { { MNEM, ' ', OP (ST_SRC), ',', ' ', OP (OPTDISP), '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2475 & ifmt_st_disp, { 0xb2003c00 },
2f8eccae 2476 (PTR) 0,
5730d39d 2477 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2478 },
2479/* cmpobe $br_src1, $br_src2, $br_disp */
2480 {
2481 { 1, 1, 1, 1 },
2482 I960_INSN_CMPOBE_REG, "cmpobe-reg", "cmpobe",
2483 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2484 & ifmt_cmpobe_reg, { 0x32000000 },
2f8eccae 2485 (PTR) 0,
5730d39d 2486 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2487 },
2488/* cmpobe $br_lit1, $br_src2, $br_disp */
2489 {
2490 { 1, 1, 1, 1 },
2491 I960_INSN_CMPOBE_LIT, "cmpobe-lit", "cmpobe",
2492 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2493 & ifmt_cmpobe_lit, { 0x32002000 },
2f8eccae 2494 (PTR) 0,
5730d39d 2495 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2496 },
2497/* cmpobne $br_src1, $br_src2, $br_disp */
2498 {
2499 { 1, 1, 1, 1 },
2500 I960_INSN_CMPOBNE_REG, "cmpobne-reg", "cmpobne",
2501 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2502 & ifmt_cmpobe_reg, { 0x35000000 },
2f8eccae 2503 (PTR) 0,
5730d39d 2504 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2505 },
2506/* cmpobne $br_lit1, $br_src2, $br_disp */
2507 {
2508 { 1, 1, 1, 1 },
2509 I960_INSN_CMPOBNE_LIT, "cmpobne-lit", "cmpobne",
2510 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2511 & ifmt_cmpobe_lit, { 0x35002000 },
2f8eccae 2512 (PTR) 0,
5730d39d 2513 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2514 },
2515/* cmpobl $br_src1, $br_src2, $br_disp */
2516 {
2517 { 1, 1, 1, 1 },
2518 I960_INSN_CMPOBL_REG, "cmpobl-reg", "cmpobl",
2519 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2520 & ifmt_cmpobe_reg, { 0x34000000 },
2f8eccae 2521 (PTR) 0,
5730d39d 2522 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2523 },
2524/* cmpobl $br_lit1, $br_src2, $br_disp */
2525 {
2526 { 1, 1, 1, 1 },
2527 I960_INSN_CMPOBL_LIT, "cmpobl-lit", "cmpobl",
2528 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2529 & ifmt_cmpobe_lit, { 0x34002000 },
2f8eccae 2530 (PTR) 0,
5730d39d 2531 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2532 },
2533/* cmpoble $br_src1, $br_src2, $br_disp */
2534 {
2535 { 1, 1, 1, 1 },
2536 I960_INSN_CMPOBLE_REG, "cmpoble-reg", "cmpoble",
2537 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2538 & ifmt_cmpobe_reg, { 0x36000000 },
2f8eccae 2539 (PTR) 0,
5730d39d 2540 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2541 },
2542/* cmpoble $br_lit1, $br_src2, $br_disp */
2543 {
2544 { 1, 1, 1, 1 },
2545 I960_INSN_CMPOBLE_LIT, "cmpoble-lit", "cmpoble",
2546 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2547 & ifmt_cmpobe_lit, { 0x36002000 },
2f8eccae 2548 (PTR) 0,
5730d39d 2549 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2550 },
2551/* cmpobg $br_src1, $br_src2, $br_disp */
2552 {
2553 { 1, 1, 1, 1 },
2554 I960_INSN_CMPOBG_REG, "cmpobg-reg", "cmpobg",
2555 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2556 & ifmt_cmpobe_reg, { 0x31000000 },
2f8eccae 2557 (PTR) 0,
5730d39d 2558 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2559 },
2560/* cmpobg $br_lit1, $br_src2, $br_disp */
2561 {
2562 { 1, 1, 1, 1 },
2563 I960_INSN_CMPOBG_LIT, "cmpobg-lit", "cmpobg",
2564 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2565 & ifmt_cmpobe_lit, { 0x31002000 },
2f8eccae 2566 (PTR) 0,
5730d39d 2567 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2568 },
2569/* cmpobge $br_src1, $br_src2, $br_disp */
2570 {
2571 { 1, 1, 1, 1 },
2572 I960_INSN_CMPOBGE_REG, "cmpobge-reg", "cmpobge",
2573 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2574 & ifmt_cmpobe_reg, { 0x33000000 },
2f8eccae 2575 (PTR) 0,
5730d39d 2576 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2577 },
2578/* cmpobge $br_lit1, $br_src2, $br_disp */
2579 {
2580 { 1, 1, 1, 1 },
2581 I960_INSN_CMPOBGE_LIT, "cmpobge-lit", "cmpobge",
2582 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2583 & ifmt_cmpobe_lit, { 0x33002000 },
2f8eccae 2584 (PTR) 0,
5730d39d 2585 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2586 },
2587/* cmpibe $br_src1, $br_src2, $br_disp */
2588 {
2589 { 1, 1, 1, 1 },
2590 I960_INSN_CMPIBE_REG, "cmpibe-reg", "cmpibe",
2591 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2592 & ifmt_cmpobe_reg, { 0x3a000000 },
2f8eccae 2593 (PTR) 0,
5730d39d 2594 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2595 },
2596/* cmpibe $br_lit1, $br_src2, $br_disp */
2597 {
2598 { 1, 1, 1, 1 },
2599 I960_INSN_CMPIBE_LIT, "cmpibe-lit", "cmpibe",
2600 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2601 & ifmt_cmpobe_lit, { 0x3a002000 },
2f8eccae 2602 (PTR) 0,
5730d39d 2603 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2604 },
2605/* cmpibne $br_src1, $br_src2, $br_disp */
2606 {
2607 { 1, 1, 1, 1 },
2608 I960_INSN_CMPIBNE_REG, "cmpibne-reg", "cmpibne",
2609 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2610 & ifmt_cmpobe_reg, { 0x3d000000 },
2f8eccae 2611 (PTR) 0,
5730d39d 2612 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2613 },
2614/* cmpibne $br_lit1, $br_src2, $br_disp */
2615 {
2616 { 1, 1, 1, 1 },
2617 I960_INSN_CMPIBNE_LIT, "cmpibne-lit", "cmpibne",
2618 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2619 & ifmt_cmpobe_lit, { 0x3d002000 },
2f8eccae 2620 (PTR) 0,
5730d39d 2621 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2622 },
2623/* cmpibl $br_src1, $br_src2, $br_disp */
2624 {
2625 { 1, 1, 1, 1 },
2626 I960_INSN_CMPIBL_REG, "cmpibl-reg", "cmpibl",
2627 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2628 & ifmt_cmpobe_reg, { 0x3c000000 },
2f8eccae 2629 (PTR) 0,
5730d39d 2630 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2631 },
2632/* cmpibl $br_lit1, $br_src2, $br_disp */
2633 {
2634 { 1, 1, 1, 1 },
2635 I960_INSN_CMPIBL_LIT, "cmpibl-lit", "cmpibl",
2636 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2637 & ifmt_cmpobe_lit, { 0x3c002000 },
2f8eccae 2638 (PTR) 0,
5730d39d 2639 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2640 },
2641/* cmpible $br_src1, $br_src2, $br_disp */
2642 {
2643 { 1, 1, 1, 1 },
2644 I960_INSN_CMPIBLE_REG, "cmpible-reg", "cmpible",
2645 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2646 & ifmt_cmpobe_reg, { 0x3e000000 },
2f8eccae 2647 (PTR) 0,
5730d39d 2648 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2649 },
2650/* cmpible $br_lit1, $br_src2, $br_disp */
2651 {
2652 { 1, 1, 1, 1 },
2653 I960_INSN_CMPIBLE_LIT, "cmpible-lit", "cmpible",
2654 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2655 & ifmt_cmpobe_lit, { 0x3e002000 },
2f8eccae 2656 (PTR) 0,
5730d39d 2657 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2658 },
2659/* cmpibg $br_src1, $br_src2, $br_disp */
2660 {
2661 { 1, 1, 1, 1 },
2662 I960_INSN_CMPIBG_REG, "cmpibg-reg", "cmpibg",
2663 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2664 & ifmt_cmpobe_reg, { 0x39000000 },
2f8eccae 2665 (PTR) 0,
5730d39d 2666 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2667 },
2668/* cmpibg $br_lit1, $br_src2, $br_disp */
2669 {
2670 { 1, 1, 1, 1 },
2671 I960_INSN_CMPIBG_LIT, "cmpibg-lit", "cmpibg",
2672 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2673 & ifmt_cmpobe_lit, { 0x39002000 },
2f8eccae 2674 (PTR) 0,
5730d39d 2675 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2676 },
2677/* cmpibge $br_src1, $br_src2, $br_disp */
2678 {
2679 { 1, 1, 1, 1 },
2680 I960_INSN_CMPIBGE_REG, "cmpibge-reg", "cmpibge",
2681 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2682 & ifmt_cmpobe_reg, { 0x3b000000 },
2f8eccae 2683 (PTR) 0,
5730d39d 2684 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2685 },
2686/* cmpibge $br_lit1, $br_src2, $br_disp */
2687 {
2688 { 1, 1, 1, 1 },
2689 I960_INSN_CMPIBGE_LIT, "cmpibge-lit", "cmpibge",
2690 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2691 & ifmt_cmpobe_lit, { 0x3b002000 },
2f8eccae 2692 (PTR) 0,
5730d39d 2693 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2694 },
2695/* bbc $br_src1, $br_src2, $br_disp */
2696 {
2697 { 1, 1, 1, 1 },
2698 I960_INSN_BBC_REG, "bbc-reg", "bbc",
2699 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2700 & ifmt_cmpobe_reg, { 0x30000000 },
2f8eccae 2701 (PTR) 0,
5730d39d 2702 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2703 },
2704/* bbc $br_lit1, $br_src2, $br_disp */
2705 {
2706 { 1, 1, 1, 1 },
2707 I960_INSN_BBC_LIT, "bbc-lit", "bbc",
2708 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2709 & ifmt_cmpobe_lit, { 0x30002000 },
2f8eccae 2710 (PTR) 0,
5730d39d 2711 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2712 },
2713/* bbs $br_src1, $br_src2, $br_disp */
2714 {
2715 { 1, 1, 1, 1 },
2716 I960_INSN_BBS_REG, "bbs-reg", "bbs",
2717 { { MNEM, ' ', OP (BR_SRC1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2718 & ifmt_cmpobe_reg, { 0x37000000 },
2f8eccae 2719 (PTR) 0,
5730d39d 2720 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2721 },
2722/* bbs $br_lit1, $br_src2, $br_disp */
2723 {
2724 { 1, 1, 1, 1 },
2725 I960_INSN_BBS_LIT, "bbs-lit", "bbs",
2726 { { MNEM, ' ', OP (BR_LIT1), ',', ' ', OP (BR_SRC2), ',', ' ', OP (BR_DISP), 0 } },
805b72e6 2727 & ifmt_cmpobe_lit, { 0x37002000 },
2f8eccae 2728 (PTR) 0,
5730d39d 2729 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2730 },
2731/* cmpi $src1, $src2 */
2732 {
2733 { 1, 1, 1, 1 },
2734 I960_INSN_CMPI, "cmpi", "cmpi",
2735 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), 0 } },
805b72e6 2736 & ifmt_mulo, { 0x5a002080 },
2f8eccae 2737 (PTR) 0,
5730d39d 2738 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2739 },
2740/* cmpi $lit1, $src2 */
2741 {
2742 { 1, 1, 1, 1 },
2743 I960_INSN_CMPI1, "cmpi1", "cmpi",
2744 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), 0 } },
805b72e6 2745 & ifmt_mulo1, { 0x5a002880 },
2f8eccae 2746 (PTR) 0,
5730d39d 2747 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2748 },
2749/* cmpi $src1, $lit2 */
2750 {
2751 { 1, 1, 1, 1 },
2752 I960_INSN_CMPI2, "cmpi2", "cmpi",
2753 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), 0 } },
805b72e6 2754 & ifmt_mulo2, { 0x5a003080 },
2f8eccae 2755 (PTR) 0,
5730d39d 2756 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2757 },
2758/* cmpi $lit1, $lit2 */
2759 {
2760 { 1, 1, 1, 1 },
2761 I960_INSN_CMPI3, "cmpi3", "cmpi",
2762 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), 0 } },
805b72e6 2763 & ifmt_mulo3, { 0x5a003880 },
2f8eccae 2764 (PTR) 0,
5730d39d 2765 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2766 },
2767/* cmpo $src1, $src2 */
2768 {
2769 { 1, 1, 1, 1 },
2770 I960_INSN_CMPO, "cmpo", "cmpo",
2771 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (SRC2), 0 } },
805b72e6 2772 & ifmt_mulo, { 0x5a002000 },
2f8eccae 2773 (PTR) 0,
5730d39d 2774 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2775 },
2776/* cmpo $lit1, $src2 */
2777 {
2778 { 1, 1, 1, 1 },
2779 I960_INSN_CMPO1, "cmpo1", "cmpo",
2780 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (SRC2), 0 } },
805b72e6 2781 & ifmt_mulo1, { 0x5a002800 },
2f8eccae 2782 (PTR) 0,
5730d39d 2783 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2784 },
2785/* cmpo $src1, $lit2 */
2786 {
2787 { 1, 1, 1, 1 },
2788 I960_INSN_CMPO2, "cmpo2", "cmpo",
2789 { { MNEM, ' ', OP (SRC1), ',', ' ', OP (LIT2), 0 } },
805b72e6 2790 & ifmt_mulo2, { 0x5a003000 },
2f8eccae 2791 (PTR) 0,
5730d39d 2792 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2793 },
2794/* cmpo $lit1, $lit2 */
2795 {
2796 { 1, 1, 1, 1 },
2797 I960_INSN_CMPO3, "cmpo3", "cmpo",
2798 { { MNEM, ' ', OP (LIT1), ',', ' ', OP (LIT2), 0 } },
805b72e6 2799 & ifmt_mulo3, { 0x5a003800 },
2f8eccae 2800 (PTR) 0,
5730d39d 2801 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2802 },
2803/* testno $br_src1 */
2804 {
2805 { 1, 1, 1, 1 },
2806 I960_INSN_TESTNO_REG, "testno-reg", "testno",
2807 { { MNEM, ' ', OP (BR_SRC1), 0 } },
805b72e6 2808 & ifmt_cmpobe_reg, { 0x20000000 },
2f8eccae 2809 (PTR) 0,
5730d39d 2810 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2811 },
2812/* testg $br_src1 */
2813 {
2814 { 1, 1, 1, 1 },
2815 I960_INSN_TESTG_REG, "testg-reg", "testg",
2816 { { MNEM, ' ', OP (BR_SRC1), 0 } },
805b72e6 2817 & ifmt_cmpobe_reg, { 0x21000000 },
2f8eccae 2818 (PTR) 0,
5730d39d 2819 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2820 },
2821/* teste $br_src1 */
2822 {
2823 { 1, 1, 1, 1 },
2824 I960_INSN_TESTE_REG, "teste-reg", "teste",
2825 { { MNEM, ' ', OP (BR_SRC1), 0 } },
805b72e6 2826 & ifmt_cmpobe_reg, { 0x22000000 },
2f8eccae 2827 (PTR) 0,
5730d39d 2828 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2829 },
2830/* testge $br_src1 */
2831 {
2832 { 1, 1, 1, 1 },
2833 I960_INSN_TESTGE_REG, "testge-reg", "testge",
2834 { { MNEM, ' ', OP (BR_SRC1), 0 } },
805b72e6 2835 & ifmt_cmpobe_reg, { 0x23000000 },
2f8eccae 2836 (PTR) 0,
5730d39d 2837 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2838 },
2839/* testl $br_src1 */
2840 {
2841 { 1, 1, 1, 1 },
2842 I960_INSN_TESTL_REG, "testl-reg", "testl",
2843 { { MNEM, ' ', OP (BR_SRC1), 0 } },
805b72e6 2844 & ifmt_cmpobe_reg, { 0x24000000 },
2f8eccae 2845 (PTR) 0,
5730d39d 2846 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2847 },
2848/* testne $br_src1 */
2849 {
2850 { 1, 1, 1, 1 },
2851 I960_INSN_TESTNE_REG, "testne-reg", "testne",
2852 { { MNEM, ' ', OP (BR_SRC1), 0 } },
805b72e6 2853 & ifmt_cmpobe_reg, { 0x25000000 },
2f8eccae 2854 (PTR) 0,
5730d39d 2855 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2856 },
2857/* testle $br_src1 */
2858 {
2859 { 1, 1, 1, 1 },
2860 I960_INSN_TESTLE_REG, "testle-reg", "testle",
2861 { { MNEM, ' ', OP (BR_SRC1), 0 } },
805b72e6 2862 & ifmt_cmpobe_reg, { 0x26000000 },
2f8eccae 2863 (PTR) 0,
5730d39d 2864 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2865 },
2866/* testo $br_src1 */
2867 {
2868 { 1, 1, 1, 1 },
2869 I960_INSN_TESTO_REG, "testo-reg", "testo",
2870 { { MNEM, ' ', OP (BR_SRC1), 0 } },
805b72e6 2871 & ifmt_cmpobe_reg, { 0x27000000 },
2f8eccae 2872 (PTR) 0,
5730d39d 2873 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
2874 },
2875/* bno $ctrl_disp */
2876 {
2877 { 1, 1, 1, 1 },
2878 I960_INSN_BNO, "bno", "bno",
2879 { { MNEM, ' ', OP (CTRL_DISP), 0 } },
805b72e6 2880 & ifmt_bno, { 0x10000000 },
2f8eccae 2881 (PTR) 0,
5730d39d 2882 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2883 },
2884/* bg $ctrl_disp */
2885 {
2886 { 1, 1, 1, 1 },
2887 I960_INSN_BG, "bg", "bg",
2888 { { MNEM, ' ', OP (CTRL_DISP), 0 } },
805b72e6 2889 & ifmt_bno, { 0x11000000 },
2f8eccae 2890 (PTR) 0,
5730d39d 2891 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2892 },
2893/* be $ctrl_disp */
2894 {
2895 { 1, 1, 1, 1 },
2896 I960_INSN_BE, "be", "be",
2897 { { MNEM, ' ', OP (CTRL_DISP), 0 } },
805b72e6 2898 & ifmt_bno, { 0x12000000 },
2f8eccae 2899 (PTR) 0,
5730d39d 2900 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2901 },
2902/* bge $ctrl_disp */
2903 {
2904 { 1, 1, 1, 1 },
2905 I960_INSN_BGE, "bge", "bge",
2906 { { MNEM, ' ', OP (CTRL_DISP), 0 } },
805b72e6 2907 & ifmt_bno, { 0x13000000 },
2f8eccae 2908 (PTR) 0,
5730d39d 2909 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2910 },
2911/* bl $ctrl_disp */
2912 {
2913 { 1, 1, 1, 1 },
2914 I960_INSN_BL, "bl", "bl",
2915 { { MNEM, ' ', OP (CTRL_DISP), 0 } },
805b72e6 2916 & ifmt_bno, { 0x14000000 },
2f8eccae 2917 (PTR) 0,
5730d39d 2918 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2919 },
2920/* bne $ctrl_disp */
2921 {
2922 { 1, 1, 1, 1 },
2923 I960_INSN_BNE, "bne", "bne",
2924 { { MNEM, ' ', OP (CTRL_DISP), 0 } },
805b72e6 2925 & ifmt_bno, { 0x15000000 },
2f8eccae 2926 (PTR) 0,
5730d39d 2927 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2928 },
2929/* ble $ctrl_disp */
2930 {
2931 { 1, 1, 1, 1 },
2932 I960_INSN_BLE, "ble", "ble",
2933 { { MNEM, ' ', OP (CTRL_DISP), 0 } },
805b72e6 2934 & ifmt_bno, { 0x16000000 },
2f8eccae 2935 (PTR) 0,
5730d39d 2936 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2937 },
2938/* bo $ctrl_disp */
2939 {
2940 { 1, 1, 1, 1 },
2941 I960_INSN_BO, "bo", "bo",
2942 { { MNEM, ' ', OP (CTRL_DISP), 0 } },
805b72e6 2943 & ifmt_bno, { 0x17000000 },
2f8eccae 2944 (PTR) 0,
5730d39d 2945 { CGEN_INSN_NBOOL_ATTRS, 0|A(COND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2946 },
2947/* b $ctrl_disp */
2948 {
2949 { 1, 1, 1, 1 },
2950 I960_INSN_B, "b", "b",
2951 { { MNEM, ' ', OP (CTRL_DISP), 0 } },
805b72e6 2952 & ifmt_bno, { 0x8000000 },
2f8eccae 2953 (PTR) 0,
5730d39d 2954 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2955 },
2956/* bx $offset($abase) */
2957 {
2958 { 1, 1, 1, 1 },
2959 I960_INSN_BX_INDIRECT_OFFSET, "bx-indirect-offset", "bx",
2960 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', 0 } },
805b72e6 2961 & ifmt_lda_offset, { 0x84002000 },
2f8eccae 2962 (PTR) 0,
5730d39d 2963 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2964 },
2965/* bx ($abase) */
2966 {
2967 { 1, 1, 1, 1 },
2968 I960_INSN_BX_INDIRECT, "bx-indirect", "bx",
2969 { { MNEM, ' ', '(', OP (ABASE), ')', 0 } },
805b72e6 2970 & ifmt_lda_indirect, { 0x84001000 },
2f8eccae 2971 (PTR) 0,
5730d39d 2972 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2973 },
2974/* bx ($abase)[$index*S$scale] */
2975 {
2976 { 1, 1, 1, 1 },
2977 I960_INSN_BX_INDIRECT_INDEX, "bx-indirect-index", "bx",
2978 { { MNEM, ' ', '(', OP (ABASE), ')', '[', OP (INDEX), '*', 'S', OP (SCALE), ']', 0 } },
805b72e6 2979 & ifmt_lda_indirect, { 0x84001c00 },
2f8eccae 2980 (PTR) 0,
5730d39d 2981 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2982 },
2983/* bx $optdisp */
2984 {
2985 { 1, 1, 1, 1 },
2986 I960_INSN_BX_DISP, "bx-disp", "bx",
2987 { { MNEM, ' ', OP (OPTDISP), 0 } },
805b72e6 2988 & ifmt_lda_disp, { 0x84003000 },
2f8eccae 2989 (PTR) 0,
5730d39d 2990 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
2991 },
2992/* bx $optdisp($abase) */
2993 {
2994 { 1, 1, 1, 1 },
2995 I960_INSN_BX_INDIRECT_DISP, "bx-indirect-disp", "bx",
2996 { { MNEM, ' ', OP (OPTDISP), '(', OP (ABASE), ')', 0 } },
805b72e6 2997 & ifmt_lda_disp, { 0x84003400 },
2f8eccae 2998 (PTR) 0,
5730d39d 2999 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
3000 },
3001/* callx $optdisp */
3002 {
3003 { 1, 1, 1, 1 },
3004 I960_INSN_CALLX_DISP, "callx-disp", "callx",
3005 { { MNEM, ' ', OP (OPTDISP), 0 } },
805b72e6 3006 & ifmt_lda_disp, { 0x86003000 },
2f8eccae 3007 (PTR) 0,
5730d39d 3008 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
3009 },
3010/* callx ($abase) */
3011 {
3012 { 1, 1, 1, 1 },
3013 I960_INSN_CALLX_INDIRECT, "callx-indirect", "callx",
3014 { { MNEM, ' ', '(', OP (ABASE), ')', 0 } },
805b72e6 3015 & ifmt_lda_indirect, { 0x86001000 },
2f8eccae 3016 (PTR) 0,
5730d39d 3017 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
3018 },
3019/* callx $offset($abase) */
3020 {
3021 { 1, 1, 1, 1 },
3022 I960_INSN_CALLX_INDIRECT_OFFSET, "callx-indirect-offset", "callx",
3023 { { MNEM, ' ', OP (OFFSET), '(', OP (ABASE), ')', 0 } },
805b72e6 3024 & ifmt_lda_offset, { 0x86002000 },
2f8eccae 3025 (PTR) 0,
5730d39d 3026 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
3027 },
3028/* ret */
3029 {
3030 { 1, 1, 1, 1 },
3031 I960_INSN_RET, "ret", "ret",
3032 { { MNEM, 0 } },
805b72e6 3033 & ifmt_bno, { 0xa000000 },
2f8eccae 3034 (PTR) 0,
5730d39d 3035 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
3036 },
3037/* calls $src1 */
3038 {
3039 { 1, 1, 1, 1 },
3040 I960_INSN_CALLS, "calls", "calls",
3041 { { MNEM, ' ', OP (SRC1), 0 } },
805b72e6 3042 & ifmt_mulo, { 0x66003000 },
2f8eccae 3043 (PTR) 0,
5730d39d 3044 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
3045 },
3046/* fmark */
3047 {
3048 { 1, 1, 1, 1 },
3049 I960_INSN_FMARK, "fmark", "fmark",
3050 { { MNEM, 0 } },
805b72e6 3051 & ifmt_mulo, { 0x66003e00 },
2f8eccae 3052 (PTR) 0,
5730d39d 3053 { CGEN_INSN_NBOOL_ATTRS, 0|A(UNCOND_CTI), { (1<<MACH_BASE) } }
10cb538e
JW
3054 },
3055/* flushreg */
3056 {
3057 { 1, 1, 1, 1 },
3058 I960_INSN_FLUSHREG, "flushreg", "flushreg",
3059 { { MNEM, 0 } },
805b72e6 3060 & ifmt_mulo, { 0x66003e80 },
5730d39d
DE
3061 (PTR) 0,
3062 { CGEN_INSN_NBOOL_ATTRS, 0, { (1<<MACH_BASE) } }
10cb538e
JW
3063 },
3064};
3065
3066#undef A
3067#undef MNEM
3068#undef OP
3069
3070static const CGEN_INSN_TABLE insn_table =
3071{
3072 & i960_cgen_insn_table_entries[0],
3073 sizeof (CGEN_INSN),
3074 MAX_INSNS,
3075 NULL
3076};
3077
3078/* Formats for ALIAS macro-insns. */
3079
3080#define F(f) & i960_cgen_ifld_table[CONCAT2 (I960_,f)]
3081
3082#undef F
3083
3084/* Each non-simple macro entry points to an array of expansion possibilities. */
3085
3086#define A(a) (1 << CONCAT2 (CGEN_INSN_,a))
3087#define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
3088#define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
3089
3090/* The macro instruction table. */
3091
3092static const CGEN_INSN macro_insn_table_entries[] =
3093{
3094};
3095
3096#undef A
3097#undef MNEM
3098#undef OP
3099
3100static const CGEN_INSN_TABLE macro_insn_table =
3101{
3102 & macro_insn_table_entries[0],
3103 sizeof (CGEN_INSN),
3104 (sizeof (macro_insn_table_entries) /
3105 sizeof (macro_insn_table_entries[0])),
3106 NULL
3107};
3108
3109static void
3110init_tables ()
3111{
3112}
3113
3114/* Return non-zero if INSN is to be added to the hash table.
3115 Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file. */
3116
3117static int
3118asm_hash_insn_p (insn)
3119 const CGEN_INSN * insn;
3120{
3121 return CGEN_ASM_HASH_P (insn);
3122}
3123
3124static int
3125dis_hash_insn_p (insn)
3126 const CGEN_INSN * insn;
3127{
3128 /* If building the hash table and the NO-DIS attribute is present,
3129 ignore. */
3130 if (CGEN_INSN_ATTR (insn, CGEN_INSN_NO_DIS))
3131 return 0;
3132 return CGEN_DIS_HASH_P (insn);
3133}
3134
3135/* The result is the hash value of the insn.
3136 Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file. */
3137
3138static unsigned int
3139asm_hash_insn (mnem)
3140 const char * mnem;
3141{
3142 return CGEN_ASM_HASH (mnem);
3143}
3144
3145/* BUF is a pointer to the insn's bytes in target order.
3146 VALUE is an integer of the first CGEN_BASE_INSN_BITSIZE bits,
3147 host order. */
3148
3149static unsigned int
3150dis_hash_insn (buf, value)
3151 const char * buf;
3152 CGEN_INSN_INT value;
3153{
3154 return CGEN_DIS_HASH (buf, value);
3155}
3156
3157/* Initialize an opcode table and return a descriptor.
3158 It's much like opening a file, and must be the first function called. */
3159
3160CGEN_OPCODE_DESC
3161i960_cgen_opcode_open (mach, endian)
3162 int mach;
3163 enum cgen_endian endian;
3164{
3165 CGEN_OPCODE_TABLE * table = (CGEN_OPCODE_TABLE *) xmalloc (sizeof (CGEN_OPCODE_TABLE));
3166 static int init_p;
3167
3168 if (! init_p)
3169 {
3170 init_tables ();
3171 init_p = 1;
3172 }
3173
3174 memset (table, 0, sizeof (*table));
3175
3176 CGEN_OPCODE_MACH (table) = mach;
3177 CGEN_OPCODE_ENDIAN (table) = endian;
3178 /* FIXME: for the sparc case we can determine insn-endianness statically.
3179 The worry here is where both data and insn endian can be independently
3180 chosen, in which case this function will need another argument.
3181 Actually, will want to allow for more arguments in the future anyway. */
3182 CGEN_OPCODE_INSN_ENDIAN (table) = endian;
3183
3184 CGEN_OPCODE_HW_LIST (table) = & i960_cgen_hw_entries[0];
3185
3186 CGEN_OPCODE_IFLD_TABLE (table) = & i960_cgen_ifld_table[0];
3187
3188 CGEN_OPCODE_OPERAND_TABLE (table) = & i960_cgen_operand_table[0];
3189
3190 * CGEN_OPCODE_INSN_TABLE (table) = insn_table;
3191
3192 * CGEN_OPCODE_MACRO_INSN_TABLE (table) = macro_insn_table;
3193
3194 CGEN_OPCODE_ASM_HASH_P (table) = asm_hash_insn_p;
3195 CGEN_OPCODE_ASM_HASH (table) = asm_hash_insn;
3196 CGEN_OPCODE_ASM_HASH_SIZE (table) = CGEN_ASM_HASH_SIZE;
3197
3198 CGEN_OPCODE_DIS_HASH_P (table) = dis_hash_insn_p;
3199 CGEN_OPCODE_DIS_HASH (table) = dis_hash_insn;
3200 CGEN_OPCODE_DIS_HASH_SIZE (table) = CGEN_DIS_HASH_SIZE;
3201
3202 return (CGEN_OPCODE_DESC) table;
3203}
3204
3205/* Close an opcode table. */
3206
3207void
3208i960_cgen_opcode_close (desc)
3209 CGEN_OPCODE_DESC desc;
3210{
3211 free (desc);
3212}
3213
3214/* Getting values from cgen_fields is handled by a collection of functions.
3215 They are distinguished by the type of the VALUE argument they return.
3216 TODO: floating point, inlining support, remove cases where result type
3217 not appropriate. */
3218
3219int
3220i960_cgen_get_int_operand (opindex, fields)
3221 int opindex;
3222 const CGEN_FIELDS * fields;
3223{
3224 int value;
3225
3226 switch (opindex)
3227 {
3228 case I960_OPERAND_SRC1 :
3229 value = fields->f_src1;
3230 break;
3231 case I960_OPERAND_SRC2 :
3232 value = fields->f_src2;
3233 break;
3234 case I960_OPERAND_DST :
3235 value = fields->f_srcdst;
3236 break;
3237 case I960_OPERAND_LIT1 :
3238 value = fields->f_src1;
3239 break;
3240 case I960_OPERAND_LIT2 :
3241 value = fields->f_src2;
3242 break;
3243 case I960_OPERAND_ST_SRC :
3244 value = fields->f_srcdst;
3245 break;
3246 case I960_OPERAND_ABASE :
3247 value = fields->f_abase;
3248 break;
3249 case I960_OPERAND_OFFSET :
3250 value = fields->f_offset;
3251 break;
3252 case I960_OPERAND_SCALE :
3253 value = fields->f_scale;
3254 break;
3255 case I960_OPERAND_INDEX :
3256 value = fields->f_index;
3257 break;
3258 case I960_OPERAND_OPTDISP :
3259 value = fields->f_optdisp;
3260 break;
3261 case I960_OPERAND_BR_SRC1 :
3262 value = fields->f_br_src1;
3263 break;
3264 case I960_OPERAND_BR_SRC2 :
3265 value = fields->f_br_src2;
3266 break;
3267 case I960_OPERAND_BR_DISP :
3268 value = fields->f_br_disp;
3269 break;
3270 case I960_OPERAND_BR_LIT1 :
3271 value = fields->f_br_src1;
3272 break;
3273 case I960_OPERAND_CTRL_DISP :
3274 value = fields->f_ctrl_disp;
3275 break;
3276
3277 default :
3278 /* xgettext:c-format */
3279 fprintf (stderr, _("Unrecognized field %d while getting int operand.\n"),
3280 opindex);
3281 abort ();
3282 }
3283
3284 return value;
3285}
3286
3287bfd_vma
3288i960_cgen_get_vma_operand (opindex, fields)
3289 int opindex;
3290 const CGEN_FIELDS * fields;
3291{
3292 bfd_vma value;
3293
3294 switch (opindex)
3295 {
3296 case I960_OPERAND_SRC1 :
3297 value = fields->f_src1;
3298 break;
3299 case I960_OPERAND_SRC2 :
3300 value = fields->f_src2;
3301 break;
3302 case I960_OPERAND_DST :
3303 value = fields->f_srcdst;
3304 break;
3305 case I960_OPERAND_LIT1 :
3306 value = fields->f_src1;
3307 break;
3308 case I960_OPERAND_LIT2 :
3309 value = fields->f_src2;
3310 break;
3311 case I960_OPERAND_ST_SRC :
3312 value = fields->f_srcdst;
3313 break;
3314 case I960_OPERAND_ABASE :
3315 value = fields->f_abase;
3316 break;
3317 case I960_OPERAND_OFFSET :
3318 value = fields->f_offset;
3319 break;
3320 case I960_OPERAND_SCALE :
3321 value = fields->f_scale;
3322 break;
3323 case I960_OPERAND_INDEX :
3324 value = fields->f_index;
3325 break;
3326 case I960_OPERAND_OPTDISP :
3327 value = fields->f_optdisp;
3328 break;
3329 case I960_OPERAND_BR_SRC1 :
3330 value = fields->f_br_src1;
3331 break;
3332 case I960_OPERAND_BR_SRC2 :
3333 value = fields->f_br_src2;
3334 break;
3335 case I960_OPERAND_BR_DISP :
3336 value = fields->f_br_disp;
3337 break;
3338 case I960_OPERAND_BR_LIT1 :
3339 value = fields->f_br_src1;
3340 break;
3341 case I960_OPERAND_CTRL_DISP :
3342 value = fields->f_ctrl_disp;
3343 break;
3344
3345 default :
3346 /* xgettext:c-format */
3347 fprintf (stderr, _("Unrecognized field %d while getting vma operand.\n"),
3348 opindex);
3349 abort ();
3350 }
3351
3352 return value;
3353}
3354
3355/* Stuffing values in cgen_fields is handled by a collection of functions.
3356 They are distinguished by the type of the VALUE argument they accept.
3357 TODO: floating point, inlining support, remove cases where argument type
3358 not appropriate. */
3359
3360void
3361i960_cgen_set_int_operand (opindex, fields, value)
3362 int opindex;
3363 CGEN_FIELDS * fields;
3364 int value;
3365{
3366 switch (opindex)
3367 {
3368 case I960_OPERAND_SRC1 :
3369 fields->f_src1 = value;
3370 break;
3371 case I960_OPERAND_SRC2 :
3372 fields->f_src2 = value;
3373 break;
3374 case I960_OPERAND_DST :
3375 fields->f_srcdst = value;
3376 break;
3377 case I960_OPERAND_LIT1 :
3378 fields->f_src1 = value;
3379 break;
3380 case I960_OPERAND_LIT2 :
3381 fields->f_src2 = value;
3382 break;
3383 case I960_OPERAND_ST_SRC :
3384 fields->f_srcdst = value;
3385 break;
3386 case I960_OPERAND_ABASE :
3387 fields->f_abase = value;
3388 break;
3389 case I960_OPERAND_OFFSET :
3390 fields->f_offset = value;
3391 break;
3392 case I960_OPERAND_SCALE :
3393 fields->f_scale = value;
3394 break;
3395 case I960_OPERAND_INDEX :
3396 fields->f_index = value;
3397 break;
3398 case I960_OPERAND_OPTDISP :
3399 fields->f_optdisp = value;
3400 break;
3401 case I960_OPERAND_BR_SRC1 :
3402 fields->f_br_src1 = value;
3403 break;
3404 case I960_OPERAND_BR_SRC2 :
3405 fields->f_br_src2 = value;
3406 break;
3407 case I960_OPERAND_BR_DISP :
3408 fields->f_br_disp = value;
3409 break;
3410 case I960_OPERAND_BR_LIT1 :
3411 fields->f_br_src1 = value;
3412 break;
3413 case I960_OPERAND_CTRL_DISP :
3414 fields->f_ctrl_disp = value;
3415 break;
3416
3417 default :
3418 /* xgettext:c-format */
3419 fprintf (stderr, _("Unrecognized field %d while setting int operand.\n"),
3420 opindex);
3421 abort ();
3422 }
3423}
3424
3425void
3426i960_cgen_set_vma_operand (opindex, fields, value)
3427 int opindex;
3428 CGEN_FIELDS * fields;
3429 bfd_vma value;
3430{
3431 switch (opindex)
3432 {
3433 case I960_OPERAND_SRC1 :
3434 fields->f_src1 = value;
3435 break;
3436 case I960_OPERAND_SRC2 :
3437 fields->f_src2 = value;
3438 break;
3439 case I960_OPERAND_DST :
3440 fields->f_srcdst = value;
3441 break;
3442 case I960_OPERAND_LIT1 :
3443 fields->f_src1 = value;
3444 break;
3445 case I960_OPERAND_LIT2 :
3446 fields->f_src2 = value;
3447 break;
3448 case I960_OPERAND_ST_SRC :
3449 fields->f_srcdst = value;
3450 break;
3451 case I960_OPERAND_ABASE :
3452 fields->f_abase = value;
3453 break;
3454 case I960_OPERAND_OFFSET :
3455 fields->f_offset = value;
3456 break;
3457 case I960_OPERAND_SCALE :
3458 fields->f_scale = value;
3459 break;
3460 case I960_OPERAND_INDEX :
3461 fields->f_index = value;
3462 break;
3463 case I960_OPERAND_OPTDISP :
3464 fields->f_optdisp = value;
3465 break;
3466 case I960_OPERAND_BR_SRC1 :
3467 fields->f_br_src1 = value;
3468 break;
3469 case I960_OPERAND_BR_SRC2 :
3470 fields->f_br_src2 = value;
3471 break;
3472 case I960_OPERAND_BR_DISP :
3473 fields->f_br_disp = value;
3474 break;
3475 case I960_OPERAND_BR_LIT1 :
3476 fields->f_br_src1 = value;
3477 break;
3478 case I960_OPERAND_CTRL_DISP :
3479 fields->f_ctrl_disp = value;
3480 break;
3481
3482 default :
3483 /* xgettext:c-format */
3484 fprintf (stderr, _("Unrecognized field %d while setting vma operand.\n"),
3485 opindex);
3486 abort ();
3487 }
3488}
3489
This page took 0.230463 seconds and 4 git commands to generate.