1 /* Instruction description for i960.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996, 1997, 1998 Free Software Foundation, Inc.
7 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License along
20 with this program; if not, write to the Free Software Foundation, Inc.,
21 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
28 #define CGEN_ARCH i960
30 /* Given symbol S, return i960_cgen_<S>. */
31 #define CGEN_SYM(s) CONCAT3 (i960,_cgen_,s)
33 /* Selected cpu families. */
34 #define HAVE_CPU_I960BASE
36 #define CGEN_INSN_LSB0_P 0
37 #define CGEN_WORD_BITSIZE 32
38 #define CGEN_DEFAULT_INSN_BITSIZE 32
39 #define CGEN_BASE_INSN_BITSIZE 32
40 #define CGEN_MIN_INSN_BITSIZE 32
41 #define CGEN_MAX_INSN_BITSIZE 64
42 #define CGEN_DEFAULT_INSN_SIZE (CGEN_DEFAULT_INSN_BITSIZE / 8)
43 #define CGEN_BASE_INSN_SIZE (CGEN_BASE_INSN_BITSIZE / 8)
44 #define CGEN_MIN_INSN_SIZE (CGEN_MIN_INSN_BITSIZE / 8)
45 #define CGEN_MAX_INSN_SIZE (CGEN_MAX_INSN_BITSIZE / 8)
46 #define CGEN_INT_INSN_P 0
48 /* FIXME: Need to compute CGEN_MAX_SYNTAX_BYTES. */
50 /* CGEN_MNEMONIC_OPERANDS is defined if mnemonics have operands.
51 e.g. In "b,a foo" the ",a" is an operand. If mnemonics have operands
52 we can't hash on everything up to the space. */
53 #define CGEN_MNEMONIC_OPERANDS
54 /* Maximum number of operands any insn or macro-insn has. */
55 #define CGEN_MAX_INSN_OPERANDS 16
57 /* Maximum number of fields in an instruction. */
58 #define CGEN_MAX_IFMT_OPERANDS 9
62 /* Enum declaration for insn opcode enums. */
63 typedef enum insn_opcode {
64 OPCODE_00, OPCODE_01, OPCODE_02, OPCODE_03
65 , OPCODE_04, OPCODE_05, OPCODE_06, OPCODE_07
66 , OPCODE_08, OPCODE_09, OPCODE_0A, OPCODE_0B
67 , OPCODE_0C, OPCODE_0D, OPCODE_0E, OPCODE_0F
68 , OPCODE_10, OPCODE_11, OPCODE_12, OPCODE_13
69 , OPCODE_14, OPCODE_15, OPCODE_16, OPCODE_17
70 , OPCODE_18, OPCODE_19, OPCODE_1A, OPCODE_1B
71 , OPCODE_1C, OPCODE_1D, OPCODE_1E, OPCODE_1F
72 , OPCODE_20, OPCODE_21, OPCODE_22, OPCODE_23
73 , OPCODE_24, OPCODE_25, OPCODE_26, OPCODE_27
74 , OPCODE_28, OPCODE_29, OPCODE_2A, OPCODE_2B
75 , OPCODE_2C, OPCODE_2D, OPCODE_2E, OPCODE_2F
76 , OPCODE_30, OPCODE_31, OPCODE_32, OPCODE_33
77 , OPCODE_34, OPCODE_35, OPCODE_36, OPCODE_37
78 , OPCODE_38, OPCODE_39, OPCODE_3A, OPCODE_3B
79 , OPCODE_3C, OPCODE_3D, OPCODE_3E, OPCODE_3F
80 , OPCODE_40, OPCODE_41, OPCODE_42, OPCODE_43
81 , OPCODE_44, OPCODE_45, OPCODE_46, OPCODE_47
82 , OPCODE_48, OPCODE_49, OPCODE_4A, OPCODE_4B
83 , OPCODE_4C, OPCODE_4D, OPCODE_4E, OPCODE_4F
84 , OPCODE_50, OPCODE_51, OPCODE_52, OPCODE_53
85 , OPCODE_54, OPCODE_55, OPCODE_56, OPCODE_57
86 , OPCODE_58, OPCODE_59, OPCODE_5A, OPCODE_5B
87 , OPCODE_5C, OPCODE_5D, OPCODE_5E, OPCODE_5F
88 , OPCODE_60, OPCODE_61, OPCODE_62, OPCODE_63
89 , OPCODE_64, OPCODE_65, OPCODE_66, OPCODE_67
90 , OPCODE_68, OPCODE_69, OPCODE_6A, OPCODE_6B
91 , OPCODE_6C, OPCODE_6D, OPCODE_6E, OPCODE_6F
92 , OPCODE_70, OPCODE_71, OPCODE_72, OPCODE_73
93 , OPCODE_74, OPCODE_75, OPCODE_76, OPCODE_77
94 , OPCODE_78, OPCODE_79, OPCODE_7A, OPCODE_7B
95 , OPCODE_7C, OPCODE_7D, OPCODE_7E, OPCODE_7F
96 , OPCODE_80, OPCODE_81, OPCODE_82, OPCODE_83
97 , OPCODE_84, OPCODE_85, OPCODE_86, OPCODE_87
98 , OPCODE_88, OPCODE_89, OPCODE_8A, OPCODE_8B
99 , OPCODE_8C, OPCODE_8D, OPCODE_8E, OPCODE_8F
100 , OPCODE_90, OPCODE_91, OPCODE_92, OPCODE_93
101 , OPCODE_94, OPCODE_95, OPCODE_96, OPCODE_97
102 , OPCODE_98, OPCODE_99, OPCODE_9A, OPCODE_9B
103 , OPCODE_9C, OPCODE_9D, OPCODE_9E, OPCODE_9F
104 , OPCODE_A0, OPCODE_A1, OPCODE_A2, OPCODE_A3
105 , OPCODE_A4, OPCODE_A5, OPCODE_A6, OPCODE_A7
106 , OPCODE_A8, OPCODE_A9, OPCODE_AA, OPCODE_AB
107 , OPCODE_AC, OPCODE_AD, OPCODE_AE, OPCODE_AF
108 , OPCODE_B0, OPCODE_B1, OPCODE_B2, OPCODE_B3
109 , OPCODE_B4, OPCODE_B5, OPCODE_B6, OPCODE_B7
110 , OPCODE_B8, OPCODE_B9, OPCODE_BA, OPCODE_BB
111 , OPCODE_BC, OPCODE_BD, OPCODE_BE, OPCODE_BF
112 , OPCODE_C0, OPCODE_C1, OPCODE_C2, OPCODE_C3
113 , OPCODE_C4, OPCODE_C5, OPCODE_C6, OPCODE_C7
114 , OPCODE_C8, OPCODE_C9, OPCODE_CA, OPCODE_CB
115 , OPCODE_CC, OPCODE_CD, OPCODE_CE, OPCODE_CF
116 , OPCODE_D0, OPCODE_D1, OPCODE_D2, OPCODE_D3
117 , OPCODE_D4, OPCODE_D5, OPCODE_D6, OPCODE_D7
118 , OPCODE_D8, OPCODE_D9, OPCODE_DA, OPCODE_DB
119 , OPCODE_DC, OPCODE_DD, OPCODE_DE, OPCODE_DF
120 , OPCODE_E0, OPCODE_E1, OPCODE_E2, OPCODE_E3
121 , OPCODE_E4, OPCODE_E5, OPCODE_E6, OPCODE_E7
122 , OPCODE_E8, OPCODE_E9, OPCODE_EA, OPCODE_EB
123 , OPCODE_EC, OPCODE_ED, OPCODE_EE, OPCODE_EF
124 , OPCODE_F0, OPCODE_F1, OPCODE_F2, OPCODE_F3
125 , OPCODE_F4, OPCODE_F5, OPCODE_F6, OPCODE_F7
126 , OPCODE_F8, OPCODE_F9, OPCODE_FA, OPCODE_FB
127 , OPCODE_FC, OPCODE_FD, OPCODE_FE, OPCODE_FF
130 /* Enum declaration for insn opcode2 enums. */
131 typedef enum insn_opcode2 {
132 OPCODE2_0, OPCODE2_1, OPCODE2_2, OPCODE2_3
133 , OPCODE2_4, OPCODE2_5, OPCODE2_6, OPCODE2_7
134 , OPCODE2_8, OPCODE2_9, OPCODE2_A, OPCODE2_B
135 , OPCODE2_C, OPCODE2_D, OPCODE2_E, OPCODE2_F
138 /* Enum declaration for insn m3 enums. */
139 typedef enum insn_m3 {
143 /* Enum declaration for insn m3 enums. */
144 typedef enum insn_m2 {
148 /* Enum declaration for insn m1 enums. */
149 typedef enum insn_m1 {
153 /* Enum declaration for insn zero enums. */
154 typedef enum insn_zero {
158 /* Enum declaration for insn mode a enums. */
159 typedef enum insn_modea {
160 MODEA_OFFSET, MODEA_INDIRECT_OFFSET
163 /* Enum declaration for insn zero a enums. */
164 typedef enum insn_zeroa {
168 /* Enum declaration for insn mode b enums. */
169 typedef enum insn_modeb {
170 MODEB_ILL0, MODEB_ILL1, MODEB_ILL2, MODEB_ILL3
171 , MODEB_INDIRECT, MODEB_IP_DISP, MODEB_RES6, MODEB_INDIRECT_INDEX
172 , MODEB_ILL8, MODEB_ILL9, MODEB_ILL10, MODEB_ILL11
173 , MODEB_DISP, MODEB_INDIRECT_DISP, MODEB_INDEX_DISP, MODEB_INDIRECT_INDEX_DISP
176 /* Enum declaration for insn zero b enums. */
177 typedef enum insn_zerob {
181 /* Enum declaration for insn branch m1 enums. */
182 typedef enum insn_br_m1 {
186 /* Enum declaration for insn branch zero enums. */
187 typedef enum insn_br_zero {
191 /* Enum declaration for insn ctrl zero enums. */
192 typedef enum insn_ctrl_zero {
196 /* Enum declaration for general registers. */
198 H_GR_FP = 31, H_GR_SP = 1, H_GR_R0 = 0, H_GR_R1 = 1
199 , H_GR_R2 = 2, H_GR_R3 = 3, H_GR_R4 = 4, H_GR_R5 = 5
200 , H_GR_R6 = 6, H_GR_R7 = 7, H_GR_R8 = 8, H_GR_R9 = 9
201 , H_GR_R10 = 10, H_GR_R11 = 11, H_GR_R12 = 12, H_GR_R13 = 13
202 , H_GR_R14 = 14, H_GR_R15 = 15, H_GR_G0 = 16, H_GR_G1 = 17
203 , H_GR_G2 = 18, H_GR_G3 = 19, H_GR_G4 = 20, H_GR_G5 = 21
204 , H_GR_G6 = 22, H_GR_G7 = 23, H_GR_G8 = 24, H_GR_G9 = 25
205 , H_GR_G10 = 26, H_GR_G11 = 27, H_GR_G12 = 28, H_GR_G13 = 29
206 , H_GR_G14 = 30, H_GR_G15 = 31
209 /* Enum declaration for condition code. */
216 /* Enum declaration for machine type selection. */
217 typedef enum mach_attr {
218 MACH_BASE, MACH_I960_KA_SA, MACH_I960_CA, MACH_MAX
221 /* Number of architecture variants. */
222 #define MAX_MACHS ((int) MACH_MAX)
224 /* Ifield attribute indices. */
226 /* Enum declaration for cgen_ifld attrs. */
227 typedef enum cgen_ifld_attr {
228 CGEN_IFLD_MACH, CGEN_IFLD_VIRTUAL, CGEN_IFLD_UNSIGNED, CGEN_IFLD_PCREL_ADDR
229 , CGEN_IFLD_ABS_ADDR, CGEN_IFLD_RESERVED, CGEN_IFLD_SIGN_OPT
232 /* Number of non-boolean elements in cgen_ifld. */
233 #define CGEN_IFLD_NBOOL_ATTRS ((int) CGEN_IFLD_VIRTUAL)
235 /* Enum declaration for i960 ifield types. */
236 typedef enum ifield_type {
237 I960_F_NIL, I960_F_OPCODE, I960_F_SRCDST, I960_F_SRC2
238 , I960_F_M3, I960_F_M2, I960_F_M1, I960_F_OPCODE2
239 , I960_F_ZERO, I960_F_SRC1, I960_F_ABASE, I960_F_MODEA
240 , I960_F_ZEROA, I960_F_OFFSET, I960_F_MODEB, I960_F_SCALE
241 , I960_F_ZEROB, I960_F_INDEX, I960_F_OPTDISP, I960_F_BR_SRC1
242 , I960_F_BR_SRC2, I960_F_BR_M1, I960_F_BR_DISP, I960_F_BR_ZERO
243 , I960_F_CTRL_DISP, I960_F_CTRL_ZERO, I960_F_MAX
246 #define MAX_IFLD ((int) I960_F_MAX)
248 /* Hardware attribute indices. */
250 /* Enum declaration for cgen_hw attrs. */
251 typedef enum cgen_hw_attr {
252 CGEN_HW_MACH, CGEN_HW_VIRTUAL, CGEN_HW_UNSIGNED, CGEN_HW_SIGNED
253 , CGEN_HW_CACHE_ADDR, CGEN_HW_FUN_ACCESS, CGEN_HW_PC, CGEN_HW_PROFILE
256 /* Number of non-boolean elements in cgen_hw. */
257 #define CGEN_HW_NBOOL_ATTRS ((int) CGEN_HW_VIRTUAL)
259 /* Enum declaration for i960 hardware types. */
260 typedef enum hw_type {
261 HW_H_PC, HW_H_MEMORY, HW_H_SINT, HW_H_UINT
262 , HW_H_ADDR, HW_H_IADDR, HW_H_GR, HW_H_CC
266 #define MAX_HW ((int) HW_MAX)
268 /* Operand attribute indices. */
270 /* Enum declaration for cgen_operand attrs. */
271 typedef enum cgen_operand_attr {
272 CGEN_OPERAND_MACH, CGEN_OPERAND_VIRTUAL, CGEN_OPERAND_UNSIGNED, CGEN_OPERAND_PCREL_ADDR
273 , CGEN_OPERAND_ABS_ADDR, CGEN_OPERAND_SIGN_OPT, CGEN_OPERAND_NEGATIVE, CGEN_OPERAND_RELAX
274 , CGEN_OPERAND_SEM_ONLY
277 /* Number of non-boolean elements in cgen_operand. */
278 #define CGEN_OPERAND_NBOOL_ATTRS ((int) CGEN_OPERAND_VIRTUAL)
280 /* Enum declaration for i960 operand types. */
281 typedef enum cgen_operand_type {
282 I960_OPERAND_PC, I960_OPERAND_SRC1, I960_OPERAND_SRC2, I960_OPERAND_DST
283 , I960_OPERAND_LIT1, I960_OPERAND_LIT2, I960_OPERAND_ST_SRC, I960_OPERAND_ABASE
284 , I960_OPERAND_OFFSET, I960_OPERAND_SCALE, I960_OPERAND_INDEX, I960_OPERAND_OPTDISP
285 , I960_OPERAND_BR_SRC1, I960_OPERAND_BR_SRC2, I960_OPERAND_BR_DISP, I960_OPERAND_BR_LIT1
286 , I960_OPERAND_CTRL_DISP, I960_OPERAND_MAX
289 /* Number of operands types. */
290 #define MAX_OPERANDS ((int) I960_OPERAND_MAX)
292 /* Maximum number of operands referenced by any insn. */
293 #define MAX_OPERAND_INSTANCES 54
295 /* Insn attribute indices. */
297 /* Enum declaration for cgen_insn attrs. */
298 typedef enum cgen_insn_attr {
299 CGEN_INSN_MACH, CGEN_INSN_VIRTUAL, CGEN_INSN_UNCOND_CTI, CGEN_INSN_COND_CTI
300 , CGEN_INSN_SKIP_CTI, CGEN_INSN_DELAY_SLOT, CGEN_INSN_RELAXABLE, CGEN_INSN_RELAX
301 , CGEN_INSN_ALIAS, CGEN_INSN_NO_DIS, CGEN_INSN_PBB
304 /* Number of non-boolean elements in cgen_insn. */
305 #define CGEN_INSN_NBOOL_ATTRS ((int) CGEN_INSN_VIRTUAL)
307 /* Enum declaration for i960 instruction types. */
308 typedef enum cgen_insn_type {
309 I960_INSN_INVALID, I960_INSN_MULO, I960_INSN_MULO1, I960_INSN_MULO2
310 , I960_INSN_MULO3, I960_INSN_REMO, I960_INSN_REMO1, I960_INSN_REMO2
311 , I960_INSN_REMO3, I960_INSN_DIVO, I960_INSN_DIVO1, I960_INSN_DIVO2
312 , I960_INSN_DIVO3, I960_INSN_REMI, I960_INSN_REMI1, I960_INSN_REMI2
313 , I960_INSN_REMI3, I960_INSN_DIVI, I960_INSN_DIVI1, I960_INSN_DIVI2
314 , I960_INSN_DIVI3, I960_INSN_ADDO, I960_INSN_ADDO1, I960_INSN_ADDO2
315 , I960_INSN_ADDO3, I960_INSN_SUBO, I960_INSN_SUBO1, I960_INSN_SUBO2
316 , I960_INSN_SUBO3, I960_INSN_NOTBIT, I960_INSN_NOTBIT1, I960_INSN_NOTBIT2
317 , I960_INSN_NOTBIT3, I960_INSN_AND, I960_INSN_AND1, I960_INSN_AND2
318 , I960_INSN_AND3, I960_INSN_ANDNOT, I960_INSN_ANDNOT1, I960_INSN_ANDNOT2
319 , I960_INSN_ANDNOT3, I960_INSN_SETBIT, I960_INSN_SETBIT1, I960_INSN_SETBIT2
320 , I960_INSN_SETBIT3, I960_INSN_NOTAND, I960_INSN_NOTAND1, I960_INSN_NOTAND2
321 , I960_INSN_NOTAND3, I960_INSN_XOR, I960_INSN_XOR1, I960_INSN_XOR2
322 , I960_INSN_XOR3, I960_INSN_OR, I960_INSN_OR1, I960_INSN_OR2
323 , I960_INSN_OR3, I960_INSN_NOR, I960_INSN_NOR1, I960_INSN_NOR2
324 , I960_INSN_NOR3, I960_INSN_NOT, I960_INSN_NOT1, I960_INSN_NOT2
325 , I960_INSN_NOT3, I960_INSN_CLRBIT, I960_INSN_CLRBIT1, I960_INSN_CLRBIT2
326 , I960_INSN_CLRBIT3, I960_INSN_SHLO, I960_INSN_SHLO1, I960_INSN_SHLO2
327 , I960_INSN_SHLO3, I960_INSN_SHRO, I960_INSN_SHRO1, I960_INSN_SHRO2
328 , I960_INSN_SHRO3, I960_INSN_SHLI, I960_INSN_SHLI1, I960_INSN_SHLI2
329 , I960_INSN_SHLI3, I960_INSN_SHRI, I960_INSN_SHRI1, I960_INSN_SHRI2
330 , I960_INSN_SHRI3, I960_INSN_EMUL, I960_INSN_EMUL1, I960_INSN_EMUL2
331 , I960_INSN_EMUL3, I960_INSN_MOV, I960_INSN_MOV1, I960_INSN_MOVL
332 , I960_INSN_MOVL1, I960_INSN_MOVT, I960_INSN_MOVT1, I960_INSN_MOVQ
333 , I960_INSN_MOVQ1, I960_INSN_MODPC, I960_INSN_MODAC, I960_INSN_LDA_OFFSET
334 , I960_INSN_LDA_INDIRECT_OFFSET, I960_INSN_LDA_INDIRECT, I960_INSN_LDA_INDIRECT_INDEX, I960_INSN_LDA_DISP
335 , I960_INSN_LDA_INDIRECT_DISP, I960_INSN_LDA_INDEX_DISP, I960_INSN_LDA_INDIRECT_INDEX_DISP, I960_INSN_LD_OFFSET
336 , I960_INSN_LD_INDIRECT_OFFSET, I960_INSN_LD_INDIRECT, I960_INSN_LD_INDIRECT_INDEX, I960_INSN_LD_DISP
337 , I960_INSN_LD_INDIRECT_DISP, I960_INSN_LD_INDEX_DISP, I960_INSN_LD_INDIRECT_INDEX_DISP, I960_INSN_LDOB_OFFSET
338 , I960_INSN_LDOB_INDIRECT_OFFSET, I960_INSN_LDOB_INDIRECT, I960_INSN_LDOB_INDIRECT_INDEX, I960_INSN_LDOB_DISP
339 , I960_INSN_LDOB_INDIRECT_DISP, I960_INSN_LDOB_INDEX_DISP, I960_INSN_LDOB_INDIRECT_INDEX_DISP, I960_INSN_LDOS_OFFSET
340 , I960_INSN_LDOS_INDIRECT_OFFSET, I960_INSN_LDOS_INDIRECT, I960_INSN_LDOS_INDIRECT_INDEX, I960_INSN_LDOS_DISP
341 , I960_INSN_LDOS_INDIRECT_DISP, I960_INSN_LDOS_INDEX_DISP, I960_INSN_LDOS_INDIRECT_INDEX_DISP, I960_INSN_LDIB_OFFSET
342 , I960_INSN_LDIB_INDIRECT_OFFSET, I960_INSN_LDIB_INDIRECT, I960_INSN_LDIB_INDIRECT_INDEX, I960_INSN_LDIB_DISP
343 , I960_INSN_LDIB_INDIRECT_DISP, I960_INSN_LDIB_INDEX_DISP, I960_INSN_LDIB_INDIRECT_INDEX_DISP, I960_INSN_LDIS_OFFSET
344 , I960_INSN_LDIS_INDIRECT_OFFSET, I960_INSN_LDIS_INDIRECT, I960_INSN_LDIS_INDIRECT_INDEX, I960_INSN_LDIS_DISP
345 , I960_INSN_LDIS_INDIRECT_DISP, I960_INSN_LDIS_INDEX_DISP, I960_INSN_LDIS_INDIRECT_INDEX_DISP, I960_INSN_LDL_OFFSET
346 , I960_INSN_LDL_INDIRECT_OFFSET, I960_INSN_LDL_INDIRECT, I960_INSN_LDL_INDIRECT_INDEX, I960_INSN_LDL_DISP
347 , I960_INSN_LDL_INDIRECT_DISP, I960_INSN_LDL_INDEX_DISP, I960_INSN_LDL_INDIRECT_INDEX_DISP, I960_INSN_LDT_OFFSET
348 , I960_INSN_LDT_INDIRECT_OFFSET, I960_INSN_LDT_INDIRECT, I960_INSN_LDT_INDIRECT_INDEX, I960_INSN_LDT_DISP
349 , I960_INSN_LDT_INDIRECT_DISP, I960_INSN_LDT_INDEX_DISP, I960_INSN_LDT_INDIRECT_INDEX_DISP, I960_INSN_LDQ_OFFSET
350 , I960_INSN_LDQ_INDIRECT_OFFSET, I960_INSN_LDQ_INDIRECT, I960_INSN_LDQ_INDIRECT_INDEX, I960_INSN_LDQ_DISP
351 , I960_INSN_LDQ_INDIRECT_DISP, I960_INSN_LDQ_INDEX_DISP, I960_INSN_LDQ_INDIRECT_INDEX_DISP, I960_INSN_ST_OFFSET
352 , I960_INSN_ST_INDIRECT_OFFSET, I960_INSN_ST_INDIRECT, I960_INSN_ST_INDIRECT_INDEX, I960_INSN_ST_DISP
353 , I960_INSN_ST_INDIRECT_DISP, I960_INSN_ST_INDEX_DISP, I960_INSN_ST_INDIRECT_INDEX_DISP, I960_INSN_STOB_OFFSET
354 , I960_INSN_STOB_INDIRECT_OFFSET, I960_INSN_STOB_INDIRECT, I960_INSN_STOB_INDIRECT_INDEX, I960_INSN_STOB_DISP
355 , I960_INSN_STOB_INDIRECT_DISP, I960_INSN_STOB_INDEX_DISP, I960_INSN_STOB_INDIRECT_INDEX_DISP, I960_INSN_STOS_OFFSET
356 , I960_INSN_STOS_INDIRECT_OFFSET, I960_INSN_STOS_INDIRECT, I960_INSN_STOS_INDIRECT_INDEX, I960_INSN_STOS_DISP
357 , I960_INSN_STOS_INDIRECT_DISP, I960_INSN_STOS_INDEX_DISP, I960_INSN_STOS_INDIRECT_INDEX_DISP, I960_INSN_STL_OFFSET
358 , I960_INSN_STL_INDIRECT_OFFSET, I960_INSN_STL_INDIRECT, I960_INSN_STL_INDIRECT_INDEX, I960_INSN_STL_DISP
359 , I960_INSN_STL_INDIRECT_DISP, I960_INSN_STL_INDEX_DISP, I960_INSN_STL_INDIRECT_INDEX_DISP, I960_INSN_STT_OFFSET
360 , I960_INSN_STT_INDIRECT_OFFSET, I960_INSN_STT_INDIRECT, I960_INSN_STT_INDIRECT_INDEX, I960_INSN_STT_DISP
361 , I960_INSN_STT_INDIRECT_DISP, I960_INSN_STT_INDEX_DISP, I960_INSN_STT_INDIRECT_INDEX_DISP, I960_INSN_STQ_OFFSET
362 , I960_INSN_STQ_INDIRECT_OFFSET, I960_INSN_STQ_INDIRECT, I960_INSN_STQ_INDIRECT_INDEX, I960_INSN_STQ_DISP
363 , I960_INSN_STQ_INDIRECT_DISP, I960_INSN_STQ_INDEX_DISP, I960_INSN_STQ_INDIRECT_INDEX_DISP, I960_INSN_CMPOBE_REG
364 , I960_INSN_CMPOBE_LIT, I960_INSN_CMPOBNE_REG, I960_INSN_CMPOBNE_LIT, I960_INSN_CMPOBL_REG
365 , I960_INSN_CMPOBL_LIT, I960_INSN_CMPOBLE_REG, I960_INSN_CMPOBLE_LIT, I960_INSN_CMPOBG_REG
366 , I960_INSN_CMPOBG_LIT, I960_INSN_CMPOBGE_REG, I960_INSN_CMPOBGE_LIT, I960_INSN_CMPIBE_REG
367 , I960_INSN_CMPIBE_LIT, I960_INSN_CMPIBNE_REG, I960_INSN_CMPIBNE_LIT, I960_INSN_CMPIBL_REG
368 , I960_INSN_CMPIBL_LIT, I960_INSN_CMPIBLE_REG, I960_INSN_CMPIBLE_LIT, I960_INSN_CMPIBG_REG
369 , I960_INSN_CMPIBG_LIT, I960_INSN_CMPIBGE_REG, I960_INSN_CMPIBGE_LIT, I960_INSN_BBC_REG
370 , I960_INSN_BBC_LIT, I960_INSN_BBS_REG, I960_INSN_BBS_LIT, I960_INSN_CMPI
371 , I960_INSN_CMPI1, I960_INSN_CMPI2, I960_INSN_CMPI3, I960_INSN_CMPO
372 , I960_INSN_CMPO1, I960_INSN_CMPO2, I960_INSN_CMPO3, I960_INSN_TESTNO_REG
373 , I960_INSN_TESTG_REG, I960_INSN_TESTE_REG, I960_INSN_TESTGE_REG, I960_INSN_TESTL_REG
374 , I960_INSN_TESTNE_REG, I960_INSN_TESTLE_REG, I960_INSN_TESTO_REG, I960_INSN_BNO
375 , I960_INSN_BG, I960_INSN_BE, I960_INSN_BGE, I960_INSN_BL
376 , I960_INSN_BNE, I960_INSN_BLE, I960_INSN_BO, I960_INSN_B
377 , I960_INSN_BX_INDIRECT_OFFSET, I960_INSN_BX_INDIRECT, I960_INSN_BX_INDIRECT_INDEX, I960_INSN_BX_DISP
378 , I960_INSN_BX_INDIRECT_DISP, I960_INSN_CALLX_DISP, I960_INSN_CALLX_INDIRECT, I960_INSN_CALLX_INDIRECT_OFFSET
379 , I960_INSN_RET, I960_INSN_CALLS, I960_INSN_FMARK, I960_INSN_FLUSHREG
383 /* Index of `invalid' insn place holder. */
384 #define CGEN_INSN_INVALID I960_INSN_INVALID
385 /* Total number of insns in table. */
386 #define MAX_INSNS ((int) I960_INSN_MAX)
388 /* cgen.h uses things we just defined. */
389 #include "opcode/cgen.h"
391 /* This struct records data prior to insertion or after extraction. */
424 extern const CGEN_ATTR_TABLE i960_cgen_hw_attr_table[];
425 extern const CGEN_ATTR_TABLE i960_cgen_operand_attr_table[];
426 extern const CGEN_ATTR_TABLE i960_cgen_insn_attr_table[];
428 /* Hardware decls. */
430 extern CGEN_KEYWORD i960_cgen_opval_h_gr;
431 extern CGEN_KEYWORD i960_cgen_opval_h_cc;
433 #define CGEN_INIT_PARSE(od) \
436 #define CGEN_INIT_INSERT(od) \
439 #define CGEN_INIT_EXTRACT(od) \
442 #define CGEN_INIT_PRINT(od) \
448 #undef CGEN_DIS_HASH_SIZE
449 #define CGEN_DIS_HASH_SIZE 256
451 #define CGEN_DIS_HASH(buffer, value) ((unsigned char *) (buffer))[3]
453 /* ??? Until cgen disassembler complete and functioning well, redirect back
454 to old disassembler. */
455 #define CGEN_PRINT_INSN(od, pc, info) print_insn_i960_orig (pc, info)
460 #endif /* I960_OPC_H */