1 /* Instruction opcode header for xc16x.
3 THIS FILE IS MACHINE GENERATED WITH CGEN.
5 Copyright (C) 1996-2017 Free Software Foundation, Inc.
7 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
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)
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.
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.
34 #define CGEN_DIS_HASH_SIZE 8
35 #define CGEN_DIS_HASH(buf,value) (((* (unsigned char*) (buf)) >> 3) % CGEN_DIS_HASH_SIZE)
38 /* Enum declaration for xc16x instruction types. */
39 typedef enum cgen_insn_type
{
40 XC16X_INSN_INVALID
, XC16X_INSN_ADDRPOF
, XC16X_INSN_SUBRPOF
, XC16X_INSN_ADDBRPOF
41 , XC16X_INSN_SUBBRPOF
, XC16X_INSN_ADDRPAG
, XC16X_INSN_SUBRPAG
, XC16X_INSN_ADDBRPAG
42 , XC16X_INSN_SUBBRPAG
, XC16X_INSN_ADDCRPOF
, XC16X_INSN_SUBCRPOF
, XC16X_INSN_ADDCBRPOF
43 , XC16X_INSN_SUBCBRPOF
, XC16X_INSN_ADDCRPAG
, XC16X_INSN_SUBCRPAG
, XC16X_INSN_ADDCBRPAG
44 , XC16X_INSN_SUBCBRPAG
, XC16X_INSN_ADDRPOFR
, XC16X_INSN_SUBRPOFR
, XC16X_INSN_ADDBRPOFR
45 , XC16X_INSN_SUBBRPOFR
, XC16X_INSN_ADDCRPOFR
, XC16X_INSN_SUBCRPOFR
, XC16X_INSN_ADDCBRPOFR
46 , XC16X_INSN_SUBCBRPOFR
, XC16X_INSN_ADDRHPOF
, XC16X_INSN_SUBRHPOF
, XC16X_INSN_ADDBRHPOF
47 , XC16X_INSN_SUBBRHPOF
, XC16X_INSN_ADDRHPOF3
, XC16X_INSN_SUBRHPOF3
, XC16X_INSN_ADDBRHPAG3
48 , XC16X_INSN_SUBBRHPAG3
, XC16X_INSN_ADDRHPAG3
, XC16X_INSN_SUBRHPAG3
, XC16X_INSN_ADDBRHPOF3
49 , XC16X_INSN_SUBBRHPOF3
, XC16X_INSN_ADDRBHPOF
, XC16X_INSN_SUBRBHPOF
, XC16X_INSN_ADDBRHPAG
50 , XC16X_INSN_SUBBRHPAG
, XC16X_INSN_ADDCRHPOF
, XC16X_INSN_SUBCRHPOF
, XC16X_INSN_ADDCBRHPOF
51 , XC16X_INSN_SUBCBRHPOF
, XC16X_INSN_ADDCRHPOF3
, XC16X_INSN_SUBCRHPOF3
, XC16X_INSN_ADDCBRHPAG3
52 , XC16X_INSN_SUBCBRHPAG3
, XC16X_INSN_ADDCRHPAG3
, XC16X_INSN_SUBCRHPAG3
, XC16X_INSN_ADDCBRHPOF3
53 , XC16X_INSN_SUBCBRHPOF3
, XC16X_INSN_ADDCRBHPOF
, XC16X_INSN_SUBCRBHPOF
, XC16X_INSN_ADDCBRHPAG
54 , XC16X_INSN_SUBCBRHPAG
, XC16X_INSN_ADDRI
, XC16X_INSN_SUBRI
, XC16X_INSN_ADDBRI
55 , XC16X_INSN_SUBBRI
, XC16X_INSN_ADDRIM
, XC16X_INSN_SUBRIM
, XC16X_INSN_ADDBRIM
56 , XC16X_INSN_SUBBRIM
, XC16X_INSN_ADDCRI
, XC16X_INSN_SUBCRI
, XC16X_INSN_ADDCBRI
57 , XC16X_INSN_SUBCBRI
, XC16X_INSN_ADDCRIM
, XC16X_INSN_SUBCRIM
, XC16X_INSN_ADDCBRIM
58 , XC16X_INSN_SUBCBRIM
, XC16X_INSN_ADDR
, XC16X_INSN_SUBR
, XC16X_INSN_ADDBR
59 , XC16X_INSN_SUBBR
, XC16X_INSN_ADD2
, XC16X_INSN_SUB2
, XC16X_INSN_ADDB2
60 , XC16X_INSN_SUBB2
, XC16X_INSN_ADD2I
, XC16X_INSN_SUB2I
, XC16X_INSN_ADDB2I
61 , XC16X_INSN_SUBB2I
, XC16X_INSN_ADDCR
, XC16X_INSN_SUBCR
, XC16X_INSN_ADDBCR
62 , XC16X_INSN_SUBBCR
, XC16X_INSN_ADDCR2
, XC16X_INSN_SUBCR2
, XC16X_INSN_ADDBCR2
63 , XC16X_INSN_SUBBCR2
, XC16X_INSN_ADDCR2I
, XC16X_INSN_SUBCR2I
, XC16X_INSN_ADDBCR2I
64 , XC16X_INSN_SUBBCR2I
, XC16X_INSN_ADDRM2
, XC16X_INSN_ADDRM3
, XC16X_INSN_ADDRM
65 , XC16X_INSN_ADDRM1
, XC16X_INSN_SUBRM3
, XC16X_INSN_SUBRM2
, XC16X_INSN_SUBRM1
66 , XC16X_INSN_SUBRM
, XC16X_INSN_ADDBRM2
, XC16X_INSN_ADDBRM3
, XC16X_INSN_ADDBRM
67 , XC16X_INSN_ADDBRM1
, XC16X_INSN_SUBBRM3
, XC16X_INSN_SUBBRM2
, XC16X_INSN_SUBBRM1
68 , XC16X_INSN_SUBBRM
, XC16X_INSN_ADDCRM2
, XC16X_INSN_ADDCRM3
, XC16X_INSN_ADDCRM
69 , XC16X_INSN_ADDCRM1
, XC16X_INSN_SUBCRM3
, XC16X_INSN_SUBCRM2
, XC16X_INSN_SUBCRM1
70 , XC16X_INSN_SUBCRM
, XC16X_INSN_ADDCBRM2
, XC16X_INSN_ADDCBRM3
, XC16X_INSN_ADDCBRM
71 , XC16X_INSN_ADDCBRM1
, XC16X_INSN_SUBCBRM3
, XC16X_INSN_SUBCBRM2
, XC16X_INSN_SUBCBRM1
72 , XC16X_INSN_SUBCBRM
, XC16X_INSN_MULS
, XC16X_INSN_MULU
, XC16X_INSN_DIV
73 , XC16X_INSN_DIVL
, XC16X_INSN_DIVLU
, XC16X_INSN_DIVU
, XC16X_INSN_CPL
74 , XC16X_INSN_CPLB
, XC16X_INSN_NEG
, XC16X_INSN_NEGB
, XC16X_INSN_ANDR
75 , XC16X_INSN_ORR
, XC16X_INSN_XORR
, XC16X_INSN_ANDBR
, XC16X_INSN_ORBR
76 , XC16X_INSN_XORBR
, XC16X_INSN_ANDRI
, XC16X_INSN_ORRI
, XC16X_INSN_XORRI
77 , XC16X_INSN_ANDBRI
, XC16X_INSN_ORBRI
, XC16X_INSN_XORBRI
, XC16X_INSN_ANDRIM
78 , XC16X_INSN_ORRIM
, XC16X_INSN_XORRIM
, XC16X_INSN_ANDBRIM
, XC16X_INSN_ORBRIM
79 , XC16X_INSN_XORBRIM
, XC16X_INSN_AND2
, XC16X_INSN_OR2
, XC16X_INSN_XOR2
80 , XC16X_INSN_ANDB2
, XC16X_INSN_ORB2
, XC16X_INSN_XORB2
, XC16X_INSN_AND2I
81 , XC16X_INSN_OR2I
, XC16X_INSN_XOR2I
, XC16X_INSN_ANDB2I
, XC16X_INSN_ORB2I
82 , XC16X_INSN_XORB2I
, XC16X_INSN_ANDPOFR
, XC16X_INSN_ORPOFR
, XC16X_INSN_XORPOFR
83 , XC16X_INSN_ANDBPOFR
, XC16X_INSN_ORBPOFR
, XC16X_INSN_XORBPOFR
, XC16X_INSN_ANDRPOFR
84 , XC16X_INSN_ORRPOFR
, XC16X_INSN_XORRPOFR
, XC16X_INSN_ANDBRPOFR
, XC16X_INSN_ORBRPOFR
85 , XC16X_INSN_XORBRPOFR
, XC16X_INSN_ANDRM2
, XC16X_INSN_ANDRM3
, XC16X_INSN_ANDRM
86 , XC16X_INSN_ANDRM1
, XC16X_INSN_ORRM3
, XC16X_INSN_ORRM2
, XC16X_INSN_ORRM1
87 , XC16X_INSN_ORRM
, XC16X_INSN_XORRM3
, XC16X_INSN_XORRM2
, XC16X_INSN_XORRM1
88 , XC16X_INSN_XORRM
, XC16X_INSN_ANDBRM2
, XC16X_INSN_ANDBRM3
, XC16X_INSN_ANDBRM
89 , XC16X_INSN_ANDBRM1
, XC16X_INSN_ORBRM3
, XC16X_INSN_ORBRM2
, XC16X_INSN_ORBRM1
90 , XC16X_INSN_ORBRM
, XC16X_INSN_XORBRM3
, XC16X_INSN_XORBRM2
, XC16X_INSN_XORBRM1
91 , XC16X_INSN_XORBRM
, XC16X_INSN_MOVR
, XC16X_INSN_MOVRB
, XC16X_INSN_MOVRI
92 , XC16X_INSN_MOVBRI
, XC16X_INSN_MOVI
, XC16X_INSN_MOVBI
, XC16X_INSN_MOVR2
93 , XC16X_INSN_MOVBR2
, XC16X_INSN_MOVRI2
, XC16X_INSN_MOVBRI2
, XC16X_INSN_MOVRI3
94 , XC16X_INSN_MOVBRI3
, XC16X_INSN_MOV2I
, XC16X_INSN_MOVB2I
, XC16X_INSN_MOV6I
95 , XC16X_INSN_MOVB6I
, XC16X_INSN_MOV7I
, XC16X_INSN_MOVB7I
, XC16X_INSN_MOV8I
96 , XC16X_INSN_MOVB8I
, XC16X_INSN_MOV9I
, XC16X_INSN_MOVB9I
, XC16X_INSN_MOV10I
97 , XC16X_INSN_MOVB10I
, XC16X_INSN_MOVRI11
, XC16X_INSN_MOVBRI11
, XC16X_INSN_MOVRI12
98 , XC16X_INSN_MOVBRI12
, XC16X_INSN_MOVEHM5
, XC16X_INSN_MOVEHM6
, XC16X_INSN_MOVEHM7
99 , XC16X_INSN_MOVEHM8
, XC16X_INSN_MOVEHM9
, XC16X_INSN_MOVEHM10
, XC16X_INSN_MOVRMP
100 , XC16X_INSN_MOVRMP1
, XC16X_INSN_MOVRMP2
, XC16X_INSN_MOVRMP3
, XC16X_INSN_MOVRMP4
101 , XC16X_INSN_MOVRMP5
, XC16X_INSN_MOVEHM1
, XC16X_INSN_MOVEHM2
, XC16X_INSN_MOVEHM3
102 , XC16X_INSN_MOVEHM4
, XC16X_INSN_MVE12
, XC16X_INSN_MVE13
, XC16X_INSN_MOVER12
103 , XC16X_INSN_MVR13
, XC16X_INSN_MVER12
, XC16X_INSN_MVER13
, XC16X_INSN_MOVR12
104 , XC16X_INSN_MOVR13
, XC16X_INSN_MOVBSRR
, XC16X_INSN_MOVBZRR
, XC16X_INSN_MOVBSRPOFM
105 , XC16X_INSN_MOVBSPOFMR
, XC16X_INSN_MOVBZRPOFM
, XC16X_INSN_MOVBZPOFMR
, XC16X_INSN_MOVEBS14
106 , XC16X_INSN_MOVEBS15
, XC16X_INSN_MOVERBS14
, XC16X_INSN_MOVRBS15
, XC16X_INSN_MOVEBZ14
107 , XC16X_INSN_MOVEBZ15
, XC16X_INSN_MOVERBZ14
, XC16X_INSN_MOVRBZ15
, XC16X_INSN_MOVRBS
108 , XC16X_INSN_MOVRBZ
, XC16X_INSN_JMPA0
, XC16X_INSN_JMPA1
, XC16X_INSN_JMPA_
109 , XC16X_INSN_JMPI
, XC16X_INSN_JMPR_NENZ
, XC16X_INSN_JMPR_SGT
, XC16X_INSN_JMPR_Z
110 , XC16X_INSN_JMPR_V
, XC16X_INSN_JMPR_NV
, XC16X_INSN_JMPR_N
, XC16X_INSN_JMPR_NN
111 , XC16X_INSN_JMPR_C
, XC16X_INSN_JMPR_NC
, XC16X_INSN_JMPR_EQ
, XC16X_INSN_JMPR_NE
112 , XC16X_INSN_JMPR_ULT
, XC16X_INSN_JMPR_ULE
, XC16X_INSN_JMPR_UGE
, XC16X_INSN_JMPR_UGT
113 , XC16X_INSN_JMPR_SLE
, XC16X_INSN_JMPR_SGE
, XC16X_INSN_JMPR_NET
, XC16X_INSN_JMPR_UC
114 , XC16X_INSN_JMPR_SLT
, XC16X_INSN_JMPSEG
, XC16X_INSN_JMPS
, XC16X_INSN_JB
115 , XC16X_INSN_JBC
, XC16X_INSN_JNB
, XC16X_INSN_JNBS
, XC16X_INSN_CALLA0
116 , XC16X_INSN_CALLA1
, XC16X_INSN_CALLA_
, XC16X_INSN_CALLI
, XC16X_INSN_CALLR
117 , XC16X_INSN_CALLSEG
, XC16X_INSN_CALLS
, XC16X_INSN_PCALL
, XC16X_INSN_TRAP
118 , XC16X_INSN_RET
, XC16X_INSN_RETS
, XC16X_INSN_RETP
, XC16X_INSN_RETI
119 , XC16X_INSN_POP
, XC16X_INSN_PUSH
, XC16X_INSN_SCXTI
, XC16X_INSN_SCXTRPOFM
120 , XC16X_INSN_SCXTMG
, XC16X_INSN_SCXTM
, XC16X_INSN_NOP
, XC16X_INSN_SRSTM
121 , XC16X_INSN_IDLEM
, XC16X_INSN_PWRDNM
, XC16X_INSN_DISWDTM
, XC16X_INSN_ENWDTM
122 , XC16X_INSN_EINITM
, XC16X_INSN_SRVWDTM
, XC16X_INSN_SBRK
, XC16X_INSN_ATOMIC
123 , XC16X_INSN_EXTR
, XC16X_INSN_EXTP
, XC16X_INSN_EXTP1
, XC16X_INSN_EXTPG1
124 , XC16X_INSN_EXTPR
, XC16X_INSN_EXTPR1
, XC16X_INSN_EXTS
, XC16X_INSN_EXTS1
125 , XC16X_INSN_EXTSR
, XC16X_INSN_EXTSR1
, XC16X_INSN_PRIOR
, XC16X_INSN_BCLR18
126 , XC16X_INSN_BCLR0
, XC16X_INSN_BCLR1
, XC16X_INSN_BCLR2
, XC16X_INSN_BCLR3
127 , XC16X_INSN_BCLR4
, XC16X_INSN_BCLR5
, XC16X_INSN_BCLR6
, XC16X_INSN_BCLR7
128 , XC16X_INSN_BCLR8
, XC16X_INSN_BCLR9
, XC16X_INSN_BCLR10
, XC16X_INSN_BCLR11
129 , XC16X_INSN_BCLR12
, XC16X_INSN_BCLR13
, XC16X_INSN_BCLR14
, XC16X_INSN_BCLR15
130 , XC16X_INSN_BSET19
, XC16X_INSN_BSET0
, XC16X_INSN_BSET1
, XC16X_INSN_BSET2
131 , XC16X_INSN_BSET3
, XC16X_INSN_BSET4
, XC16X_INSN_BSET5
, XC16X_INSN_BSET6
132 , XC16X_INSN_BSET7
, XC16X_INSN_BSET8
, XC16X_INSN_BSET9
, XC16X_INSN_BSET10
133 , XC16X_INSN_BSET11
, XC16X_INSN_BSET12
, XC16X_INSN_BSET13
, XC16X_INSN_BSET14
134 , XC16X_INSN_BSET15
, XC16X_INSN_BMOV
, XC16X_INSN_BMOVN
, XC16X_INSN_BAND
135 , XC16X_INSN_BOR
, XC16X_INSN_BXOR
, XC16X_INSN_BCMP
, XC16X_INSN_BFLDL
136 , XC16X_INSN_BFLDH
, XC16X_INSN_CMPR
, XC16X_INSN_CMPBR
, XC16X_INSN_CMPRI
137 , XC16X_INSN_CMPBRI
, XC16X_INSN_CMPI
, XC16X_INSN_CMPBI
, XC16X_INSN_CMPR2
138 , XC16X_INSN_CMPBR2
, XC16X_INSN_CMP2I
, XC16X_INSN_CMPB2I
, XC16X_INSN_CMP04
139 , XC16X_INSN_CMPB4
, XC16X_INSN_CMP004
, XC16X_INSN_CMP0004
, XC16X_INSN_CMPB04
140 , XC16X_INSN_CMPB004
, XC16X_INSN_CMPD1RI
, XC16X_INSN_CMPD2RI
, XC16X_INSN_CMPI1RI
141 , XC16X_INSN_CMPI2RI
, XC16X_INSN_CMPD1RIM
, XC16X_INSN_CMPD2RIM
, XC16X_INSN_CMPI1RIM
142 , XC16X_INSN_CMPI2RIM
, XC16X_INSN_CMPD1RP
, XC16X_INSN_CMPD2RP
, XC16X_INSN_CMPI1RP
143 , XC16X_INSN_CMPI2RP
, XC16X_INSN_CMPD1RM
, XC16X_INSN_CMPD2RM
, XC16X_INSN_CMPI1RM
144 , XC16X_INSN_CMPI2RM
, XC16X_INSN_CMPD1RMI
, XC16X_INSN_CMPD2RMI
, XC16X_INSN_CMPI1RMI
145 , XC16X_INSN_CMPI2RMI
, XC16X_INSN_SHLR
, XC16X_INSN_SHRR
, XC16X_INSN_ROLR
146 , XC16X_INSN_RORR
, XC16X_INSN_ASHRR
, XC16X_INSN_SHLRI
, XC16X_INSN_SHRRI
147 , XC16X_INSN_ROLRI
, XC16X_INSN_RORRI
, XC16X_INSN_ASHRRI
150 /* Index of `invalid' insn place holder. */
151 #define CGEN_INSN_INVALID XC16X_INSN_INVALID
153 /* Total number of insns in table. */
154 #define MAX_INSNS ((int) XC16X_INSN_ASHRRI + 1)
156 /* This struct records data prior to insertion or after extraction. */
215 #define CGEN_INIT_PARSE(od) \
218 #define CGEN_INIT_INSERT(od) \
221 #define CGEN_INIT_EXTRACT(od) \
224 #define CGEN_INIT_PRINT(od) \
233 #endif /* XC16X_OPC_H */