]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - opcodes/ip2k-opc.h
This commit was manufactured by cvs2svn to create branch
[thirdparty/binutils-gdb.git] / opcodes / ip2k-opc.h
CommitLineData
a40cbfa3
NC
1/* Instruction opcode header for ip2k.
2
3THIS FILE IS MACHINE GENERATED WITH CGEN.
4
9b201bb5 5Copyright 1996-2007 Free Software Foundation, Inc.
a40cbfa3
NC
6
7This file is part of the GNU Binutils and/or GDB, the GNU debugger.
8
9b201bb5
NC
9 This file 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 3, or (at your option)
12 any later version.
a40cbfa3 13
9b201bb5
NC
14 It is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
17 License for more details.
a40cbfa3 18
9b201bb5
NC
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 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
a40cbfa3
NC
22
23*/
24
25#ifndef IP2K_OPC_H
26#define IP2K_OPC_H
27
28/* -- opc.h */
29
30/* Check applicability of instructions against machines. */
31#define CGEN_VALIDATE_INSN_SUPPORTED
32
33/* Allows reason codes to be output when assembler errors occur. */
34#define CGEN_VERBOSE_ASSEMBLER_ERRORS
35
36/* Override disassembly hashing - there are variable bits in the top
37 byte of these instructions. */
38#define CGEN_DIS_HASH_SIZE 8
47b0e7ad
NC
39#define CGEN_DIS_HASH(buf, value) \
40 (((* (unsigned char*) (buf)) >> 5) % CGEN_DIS_HASH_SIZE)
a40cbfa3
NC
41
42#define CGEN_ASM_HASH_SIZE 127
47b0e7ad 43#define CGEN_ASM_HASH(insn) ip2k_asm_hash (insn)
a40cbfa3 44
47b0e7ad
NC
45extern unsigned int ip2k_asm_hash (const char *);
46extern int ip2k_cgen_insn_supported (CGEN_CPU_DESC, const CGEN_INSN *);
a40cbfa3
NC
47\f
48/* -- opc.c */
49/* Enum declaration for ip2k instruction types. */
50typedef enum cgen_insn_type {
51 IP2K_INSN_INVALID, IP2K_INSN_JMP, IP2K_INSN_CALL, IP2K_INSN_SB
52 , IP2K_INSN_SNB, IP2K_INSN_SETB, IP2K_INSN_CLRB, IP2K_INSN_XORW_L
53 , IP2K_INSN_ANDW_L, IP2K_INSN_ORW_L, IP2K_INSN_ADDW_L, IP2K_INSN_SUBW_L
54 , IP2K_INSN_CMPW_L, IP2K_INSN_RETW_L, IP2K_INSN_CSEW_L, IP2K_INSN_CSNEW_L
55 , IP2K_INSN_PUSH_L, IP2K_INSN_MULSW_L, IP2K_INSN_MULUW_L, IP2K_INSN_LOADL_L
56 , IP2K_INSN_LOADH_L, IP2K_INSN_LOADL_A, IP2K_INSN_LOADH_A, IP2K_INSN_ADDCFR_W
57 , IP2K_INSN_ADDCW_FR, IP2K_INSN_INCSNZ_FR, IP2K_INSN_INCSNZW_FR, IP2K_INSN_MULSW_FR
58 , IP2K_INSN_MULUW_FR, IP2K_INSN_DECSNZ_FR, IP2K_INSN_DECSNZW_FR, IP2K_INSN_SUBCW_FR
59 , IP2K_INSN_SUBCFR_W, IP2K_INSN_POP_FR, IP2K_INSN_PUSH_FR, IP2K_INSN_CSEW_FR
60 , IP2K_INSN_CSNEW_FR, IP2K_INSN_INCSZ_FR, IP2K_INSN_INCSZW_FR, IP2K_INSN_SWAP_FR
61 , IP2K_INSN_SWAPW_FR, IP2K_INSN_RL_FR, IP2K_INSN_RLW_FR, IP2K_INSN_RR_FR
62 , IP2K_INSN_RRW_FR, IP2K_INSN_DECSZ_FR, IP2K_INSN_DECSZW_FR, IP2K_INSN_INC_FR
63 , IP2K_INSN_INCW_FR, IP2K_INSN_NOT_FR, IP2K_INSN_NOTW_FR, IP2K_INSN_TEST_FR
64 , IP2K_INSN_MOVW_L, IP2K_INSN_MOVFR_W, IP2K_INSN_MOVW_FR, IP2K_INSN_ADDFR_W
65 , IP2K_INSN_ADDW_FR, IP2K_INSN_XORFR_W, IP2K_INSN_XORW_FR, IP2K_INSN_ANDFR_W
66 , IP2K_INSN_ANDW_FR, IP2K_INSN_ORFR_W, IP2K_INSN_ORW_FR, IP2K_INSN_DEC_FR
67 , IP2K_INSN_DECW_FR, IP2K_INSN_SUBFR_W, IP2K_INSN_SUBW_FR, IP2K_INSN_CLR_FR
68 , IP2K_INSN_CMPW_FR, IP2K_INSN_SPEED, IP2K_INSN_IREADI, IP2K_INSN_IWRITEI
69 , IP2K_INSN_FREAD, IP2K_INSN_FWRITE, IP2K_INSN_IREAD, IP2K_INSN_IWRITE
70 , IP2K_INSN_PAGE, IP2K_INSN_SYSTEM, IP2K_INSN_RETI, IP2K_INSN_RET
71 , IP2K_INSN_INT, IP2K_INSN_BREAKX, IP2K_INSN_CWDT, IP2K_INSN_FERASE
72 , IP2K_INSN_RETNP, IP2K_INSN_BREAK, IP2K_INSN_NOP
73} CGEN_INSN_TYPE;
74
75/* Index of `invalid' insn place holder. */
76#define CGEN_INSN_INVALID IP2K_INSN_INVALID
77
78/* Total number of insns in table. */
79#define MAX_INSNS ((int) IP2K_INSN_NOP + 1)
80
81/* This struct records data prior to insertion or after extraction. */
82struct cgen_fields
83{
84 int length;
85 long f_nil;
86 long f_anyof;
87 long f_imm8;
88 long f_reg;
89 long f_addr16cjp;
90 long f_dir;
91 long f_bitno;
92 long f_op3;
93 long f_op4;
94 long f_op4mid;
95 long f_op6;
96 long f_op8;
97 long f_op6_10low;
98 long f_op6_7low;
99 long f_reti3;
100 long f_skipb;
101 long f_page3;
102};
103
104#define CGEN_INIT_PARSE(od) \
105{\
106}
107#define CGEN_INIT_INSERT(od) \
108{\
109}
110#define CGEN_INIT_EXTRACT(od) \
111{\
112}
113#define CGEN_INIT_PRINT(od) \
114{\
115}
116
117
118#endif /* IP2K_OPC_H */