tic6x-opcode-table.h revision 1.1 1 1.1 christos /* TI C6X opcode table.
2 1.1 christos Copyright 2010, 2011
3 1.1 christos Free Software Foundation, Inc.
4 1.1 christos
5 1.1 christos This program is free software; you can redistribute it and/or modify
6 1.1 christos it under the terms of the GNU General Public License as published by
7 1.1 christos the Free Software Foundation; either version 3 of the License, or
8 1.1 christos (at your option) any later version.
9 1.1 christos
10 1.1 christos This program is distributed in the hope that it will be useful,
11 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of
12 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 1.1 christos GNU General Public License for more details.
14 1.1 christos
15 1.1 christos You should have received a copy of the GNU General Public License
16 1.1 christos along with this program; if not, write to the Free Software
17 1.1 christos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
18 1.1 christos MA 02110-1301, USA. */
19 1.1 christos
20 1.1 christos /* Define the INSN macro before including this file; it takes as
21 1.1 christos arguments the fields from tic6x_opcode (defined in tic6x.h). The
22 1.1 christos name is given as an identifier; the subsequent four operands should
23 1.1 christos have "tic6x_func_unit_", "tic6x_insn_format_", "tic6x_pipeline_"
24 1.1 christos and "TIC6X_INSN_", respectively, prepended to them by the macro
25 1.1 christos definition. Also define INSNE, which has a second argument that
26 1.1 christos goes after tic6x_opcode_NAME_ to form the enumeration value for
27 1.1 christos this instruction, where the value otherwise formed from the name,
28 1.1 christos functional unit and format is ambiguous, but otherwise has the same
29 1.1 christos arguments as INSN. */
30 1.1 christos
31 1.1 christos #define TIC6X_INSN_C64X_AND_C67X TIC6X_INSN_C64X|TIC6X_INSN_C67X
32 1.1 christos #define tic6x_insn_format_nfu_s_branch_nop_cst \
33 1.1 christos tic6x_insn_format_s_branch_nop_cst
34 1.1 christos #define tic6x_insn_format_s_l_1_or_2_src tic6x_insn_format_l_1_or_2_src
35 1.1 christos #define RAN(id, min, max) { CONCAT2(tic6x_field_,id), (min), (max) }
36 1.1 christos #define FIX(id, val) RAN(id, val, val)
37 1.1 christos #define FIX0() 0, { { 0, 0, 0 } }
38 1.1 christos #define FIX1(a) 1, { a }
39 1.1 christos #define FIX2(a, b) 2, { a, b }
40 1.1 christos #define FIX3(a, b, c) 3, { a, b, c }
41 1.1 christos #define FIX4(a, b, c, d) 4, { a, b, c, d }
42 1.1 christos #define OP0() 0, { { 0, 0, FALSE, 0, 0, 0, 0 } }
43 1.1 christos #define OP1(a) 1, { a }
44 1.1 christos #define OP2(a, b) 2, { a, b }
45 1.1 christos #define OP3(a, b, c) 3, { a, b, c }
46 1.1 christos #define OP4(a, b, c, d) 4, { a, b, c, d }
47 1.1 christos #define OACST { tic6x_operand_asm_const, 0, tic6x_rw_none, 0, 0, 0, 0 }
48 1.1 christos #define OLCST { tic6x_operand_link_const, 0, tic6x_rw_none, 0, 0, 0, 0 }
49 1.1 christos #define OFULIST { tic6x_operand_func_unit, 0, tic6x_rw_none, 0, 0, 0, 0 }
50 1.1 christos #define ORIRP1 { tic6x_operand_irp, 4, tic6x_rw_read, 1, 1, 0, 0 }
51 1.1 christos #define ORNRP1 { tic6x_operand_nrp, 4, tic6x_rw_read, 1, 1, 0, 0 }
52 1.1 christos #define OWREG1 { tic6x_operand_reg, 4, tic6x_rw_write, 1, 1, 0, 0 }
53 1.1 christos #define OWRETREG1 { tic6x_operand_retreg, 4, tic6x_rw_write, 1, 1, 0, 0 }
54 1.1 christos #define ORREG1 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 1, 0, 0 }
55 1.1 christos #define ORDREG1 { tic6x_operand_dreg, 4, tic6x_rw_read, 1, 1, 0, 0 }
56 1.1 christos #define ORWREG1 { tic6x_operand_reg, 4, tic6x_rw_read_write, 1, 1, 0, 0 }
57 1.1 christos #define ORAREG1 { tic6x_operand_areg, 4, tic6x_rw_read, 1, 1, 0, 0 }
58 1.1 christos #define ORXREG1 { tic6x_operand_xreg, 4, tic6x_rw_read, 1, 1, 0, 0 }
59 1.1 christos #define ORREG12 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 2, 0, 0 }
60 1.1 christos #define ORREG14 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 4, 0, 0 }
61 1.1 christos #define ORXREG14 { tic6x_operand_xreg, 4, tic6x_rw_read, 1, 4, 0, 0 }
62 1.1 christos #define OWREG2 { tic6x_operand_reg, 4, tic6x_rw_write, 2, 2, 0, 0 }
63 1.1 christos #define OWREG4 { tic6x_operand_reg, 4, tic6x_rw_write, 4, 4, 0, 0 }
64 1.1 christos #define OWREG9 { tic6x_operand_reg, 4, tic6x_rw_write, 9, 9, 0, 0 }
65 1.1 christos #define OWDREG5 { tic6x_operand_dreg, 4, tic6x_rw_write, 5, 5, 0, 0 }
66 1.1 christos #define OWREGL1 { tic6x_operand_regpair, 5, tic6x_rw_write, 1, 1, 1, 1 }
67 1.1 christos #define ORREGL1 { tic6x_operand_regpair, 5, tic6x_rw_read, 1, 1, 1, 1 }
68 1.1 christos #define OWREGD1 { tic6x_operand_regpair, 8, tic6x_rw_write, 1, 1, 1, 1 }
69 1.1 christos #define OWREGD12 { tic6x_operand_regpair, 8, tic6x_rw_write, 1, 1, 2, 2 }
70 1.1 christos #define OWREGD4 { tic6x_operand_regpair, 8, tic6x_rw_write, 4, 4, 4, 4 }
71 1.1 christos #define ORREGD1 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 1, 1, 1 }
72 1.1 christos #define OWREGD45 { tic6x_operand_regpair, 8, tic6x_rw_write, 4, 4, 5, 5 }
73 1.1 christos #define OWREGD67 { tic6x_operand_regpair, 8, tic6x_rw_write, 6, 6, 7, 7 }
74 1.1 christos #define ORDREGD1 { tic6x_operand_dregpair, 8, tic6x_rw_read, 1, 1, 1, 1 }
75 1.1 christos #define OWDREGD5 { tic6x_operand_dregpair, 8, tic6x_rw_write, 5, 5, 5, 5 }
76 1.1 christos #define ORREGD12 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 1, 2, 2 }
77 1.1 christos #define ORXREGD12 { tic6x_operand_xregpair, 8, tic6x_rw_read, 1, 1, 2, 2 }
78 1.1 christos #define ORREGD1234 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 2, 3, 4 }
79 1.1 christos #define ORREGD1324 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 3, 2, 4 }
80 1.1 christos #define OWREGD910 { tic6x_operand_regpair, 8, tic6x_rw_write, 9, 9, 10, 10 }
81 1.1 christos #define ORCREG1 { tic6x_operand_ctrl, 4, tic6x_rw_read, 1, 1, 0, 0 }
82 1.1 christos #define OWCREG1 { tic6x_operand_ctrl, 4, tic6x_rw_write, 1, 1, 0, 0 }
83 1.1 christos #define ORMEMDW { tic6x_operand_mem_deref, 4, tic6x_rw_read, 3, 3, 0, 0 }
84 1.1 christos #define OWMEMDW { tic6x_operand_mem_deref, 4, tic6x_rw_write, 3, 3, 0, 0 }
85 1.1 christos #define ORMEMSB { tic6x_operand_mem_short, 1, tic6x_rw_read, 3, 3, 0, 0 }
86 1.1 christos #define OWMEMSB { tic6x_operand_mem_short, 1, tic6x_rw_write, 3, 3, 0, 0 }
87 1.1 christos #define ORMEMLB { tic6x_operand_mem_long, 1, tic6x_rw_read, 3, 3, 0, 0 }
88 1.1 christos #define OWMEMLB { tic6x_operand_mem_long, 1, tic6x_rw_write, 3, 3, 0, 0 }
89 1.1 christos #define ORMEMSH { tic6x_operand_mem_short, 2, tic6x_rw_read, 3, 3, 0, 0 }
90 1.1 christos #define OWMEMSH { tic6x_operand_mem_short, 2, tic6x_rw_write, 3, 3, 0, 0 }
91 1.1 christos #define ORMEMLH { tic6x_operand_mem_long, 2, tic6x_rw_read, 3, 3, 0, 0 }
92 1.1 christos #define OWMEMLH { tic6x_operand_mem_long, 2, tic6x_rw_write, 3, 3, 0, 0 }
93 1.1 christos #define ORMEMSW { tic6x_operand_mem_short, 4, tic6x_rw_read, 3, 3, 0, 0 }
94 1.1 christos #define OWMEMSW { tic6x_operand_mem_short, 4, tic6x_rw_write, 3, 3, 0, 0 }
95 1.1 christos #define ORMEMLW { tic6x_operand_mem_long, 4, tic6x_rw_read, 3, 3, 0, 0 }
96 1.1 christos #define OWMEMLW { tic6x_operand_mem_long, 4, tic6x_rw_write, 3, 3, 0, 0 }
97 1.1 christos #define ORMEMSD { tic6x_operand_mem_short, 8, tic6x_rw_read, 3, 3, 0, 0 }
98 1.1 christos #define OWMEMSD { tic6x_operand_mem_short, 8, tic6x_rw_write, 3, 3, 0, 0 }
99 1.1 christos #define ORMEMND { tic6x_operand_mem_ndw, 8, tic6x_rw_read, 3, 3, 0, 0 }
100 1.1 christos #define OWMEMND { tic6x_operand_mem_ndw, 8, tic6x_rw_write, 3, 3, 0, 0 }
101 1.1 christos #define ENC(id, meth, op) { \
102 1.1 christos CONCAT2(tic6x_field_,id), \
103 1.1 christos CONCAT2(tic6x_coding_,meth), \
104 1.1 christos op \
105 1.1 christos }
106 1.1 christos #define ENC0() 0, { { 0, 0, 0 } }
107 1.1 christos #define ENC1(a) 1, { a }
108 1.1 christos #define ENC2(a, b) 2, { a, b }
109 1.1 christos #define ENC3(a, b, c) 3, { a, b, c }
110 1.1 christos #define ENC4(a, b, c, d) 4, { a, b, c, d }
111 1.1 christos #define ENC5(a, b, c, d, e) 5, { a, b, c, d, e }
112 1.1 christos #define ENC6(a, b, c, d, e, f) 6, { a, b, c, d, e, f }
113 1.1 christos #define ENC7(a, b, c, d, e, f, g) 7, { a, b, c, d, e, f, g }
114 1.1 christos
115 1.1 christos INSN(abs, l, unary, 1cycle, C62X, 0,
116 1.1 christos FIX1(FIX(op, 0)),
117 1.1 christos OP2(ORXREG1, OWREG1),
118 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
119 1.1 christos ENC(dst, reg, 1)))
120 1.1 christos INSN(abs, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
121 1.1 christos FIX3(FIX(op, 0x38), FIX(x, 0), FIX(src1, 0)),
122 1.1 christos OP2(ORREGL1, OWREGL1),
123 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
124 1.1 christos
125 1.1 christos INSN(abs2, l, unary, 1cycle, C64X, 0,
126 1.1 christos FIX1(FIX(op, 0x4)),
127 1.1 christos OP2(ORXREG1, OWREG1),
128 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
129 1.1 christos ENC(dst, reg, 1)))
130 1.1 christos
131 1.1 christos INSN(absdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS,
132 1.1 christos FIX3(FIX(op, 0x2c), FIX(x, 0), FIX(src1, 0)),
133 1.1 christos OP2(ORREGD1, OWREGD12),
134 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
135 1.1 christos
136 1.1 christos INSN(abssp, s, unary, 1cycle, C67X, 0,
137 1.1 christos FIX1(FIX(op, 0)),
138 1.1 christos OP2(ORXREG1, OWREG1),
139 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
140 1.1 christos ENC(dst, reg, 1)))
141 1.1 christos
142 1.1 christos INSNE(add, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
143 1.1 christos FIX1(FIX(op, 0x3)),
144 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
145 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
146 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
147 1.1 christos INSNE(add, l_si_xsi_sl, l, 1_or_2_src, 1cycle, C62X, 0,
148 1.1 christos FIX1(FIX(op, 0x23)),
149 1.1 christos OP3(ORREG1, ORXREG1, OWREGL1),
150 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
151 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
152 1.1 christos INSNE(add, l_xsi_sl_sl, l, 1_or_2_src, 1cycle, C62X, 0,
153 1.1 christos FIX1(FIX(op, 0x21)),
154 1.1 christos OP3(ORXREG1, ORREGL1, OWREGL1),
155 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
156 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
157 1.1 christos INSNE(add, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
158 1.1 christos FIX1(FIX(op, 0x2)),
159 1.1 christos OP3(OACST, ORXREG1, OWREG1),
160 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
161 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
162 1.1 christos INSNE(add, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
163 1.1 christos FIX2(FIX(op, 0x20), FIX(x, 0)),
164 1.1 christos OP3(OACST, ORREGL1, OWREGL1),
165 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1),
166 1.1 christos ENC(dst, reg, 2)))
167 1.1 christos INSNE(add, s_si_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0,
168 1.1 christos FIX1(FIX(op, 0x7)),
169 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
170 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
171 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
172 1.1 christos INSNE(add, s_s5_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0,
173 1.1 christos FIX1(FIX(op, 0x6)),
174 1.1 christos OP3(OACST, ORXREG1, OWREG1),
175 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
176 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
177 1.1 christos INSNE(add, d_si_si_si, d, 1_or_2_src, 1cycle, C62X,
178 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
179 1.1 christos FIX1(FIX(op, 0x10)),
180 1.1 christos OP3(ORREG1, ORREG1, OWREG1),
181 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
182 1.1 christos ENC(dst, reg, 2)))
183 1.1 christos INSNE(add, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X,
184 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
185 1.1 christos FIX1(FIX(op, 0x12)),
186 1.1 christos OP3(ORREG1, OACST, OWREG1),
187 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
188 1.1 christos ENC(dst, reg, 2)))
189 1.1 christos INSNE(add, d_si_xsi_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0),
190 1.1 christos FIX1(FIX(op, 0xa)),
191 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
192 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
193 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
194 1.1 christos INSNE(add, d_xsi_s5_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0),
195 1.1 christos FIX1(FIX(op, 0xb)),
196 1.1 christos OP3(ORXREG1, OACST, OWREG1),
197 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
198 1.1 christos ENC(src1, scst, 1), ENC(dst, reg, 2)))
199 1.1 christos
200 1.1 christos INSNE(addab, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
201 1.1 christos FIX1(FIX(op, 0x30)),
202 1.1 christos OP3(ORREG1, ORREG1, OWREG1),
203 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
204 1.1 christos ENC(dst, reg, 2)))
205 1.1 christos INSNE(addab, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X,
206 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
207 1.1 christos FIX1(FIX(op, 0x32)),
208 1.1 christos OP3(ORREG1, OACST, OWREG1),
209 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
210 1.1 christos ENC(dst, reg, 2)))
211 1.1 christos INSN(addab, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0),
212 1.1 christos FIX1(FIX(op, 3)),
213 1.1 christos OP3(ORAREG1, OLCST, OWREG1),
214 1.1 christos ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 1),
215 1.1 christos ENC(dst, reg, 2)))
216 1.1 christos
217 1.1 christos INSNE(addad, d_si_si_si, d, 1_or_2_src, 1cycle, C64X_AND_C67X,
218 1.1 christos TIC6X_FLAG_NO_CROSS,
219 1.1 christos FIX1(FIX(op, 0x3c)),
220 1.1 christos OP3(ORREG1, ORREG1, OWREG1),
221 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
222 1.1 christos ENC(dst, reg, 2)))
223 1.1 christos INSNE(addad, d_si_u5_si, d, 1_or_2_src, 1cycle, C64X_AND_C67X,
224 1.1 christos TIC6X_FLAG_NO_CROSS,
225 1.1 christos FIX1(FIX(op, 0x3d)),
226 1.1 christos OP3(ORREG1, OACST, OWREG1),
227 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
228 1.1 christos ENC(dst, reg, 2)))
229 1.1 christos
230 1.1 christos INSNE(addah, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
231 1.1 christos FIX1(FIX(op, 0x34)),
232 1.1 christos OP3(ORREG1, ORREG1, OWREG1),
233 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
234 1.1 christos ENC(dst, reg, 2)))
235 1.1 christos INSNE(addah, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X,
236 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
237 1.1 christos FIX1(FIX(op, 0x36)),
238 1.1 christos OP3(ORREG1, OACST, OWREG1),
239 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
240 1.1 christos ENC(dst, reg, 2)))
241 1.1 christos INSN(addah, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0),
242 1.1 christos FIX1(FIX(op, 5)),
243 1.1 christos OP3(ORAREG1, OLCST, OWREG1),
244 1.1 christos ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 1),
245 1.1 christos ENC(dst, reg, 2)))
246 1.1 christos
247 1.1 christos INSNE(addaw, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
248 1.1 christos FIX1(FIX(op, 0x38)),
249 1.1 christos OP3(ORREG1, ORREG1, OWREG1),
250 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
251 1.1 christos ENC(dst, reg, 2)))
252 1.1 christos INSNE(addaw, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X,
253 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
254 1.1 christos FIX1(FIX(op, 0x3a)),
255 1.1 christos OP3(ORREG1, OACST, OWREG1),
256 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
257 1.1 christos ENC(dst, reg, 2)))
258 1.1 christos INSN(addaw, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0),
259 1.1 christos FIX1(FIX(op, 7)),
260 1.1 christos OP3(ORAREG1, OLCST, OWREG1),
261 1.1 christos ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_word, 1),
262 1.1 christos ENC(dst, reg, 2)))
263 1.1 christos
264 1.1 christos INSN(adddp, l, 1_or_2_src, addsubdp, C67X, 0,
265 1.1 christos FIX1(FIX(op, 0x18)),
266 1.1 christos OP3(ORREGD12, ORXREGD12, OWREGD67),
267 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
268 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
269 1.1 christos INSN(adddp, s, l_1_or_2_src, addsubdp, C67XP, 0,
270 1.1 christos FIX1(FIX(op, 0x72)),
271 1.1 christos OP3(ORREGD12, ORXREGD12, OWREGD67),
272 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
273 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
274 1.1 christos
275 1.1 christos INSN(addk, s, addk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
276 1.1 christos FIX0(),
277 1.1 christos OP2(OLCST, OWREG1),
278 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, scst, 0), ENC(dst, reg, 1)))
279 1.1 christos
280 1.1 christos INSN(addkpc, s, addkpc, 1cycle, C64X,
281 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_SIDE_B_ONLY,
282 1.1 christos FIX1(FIX(s, 1)),
283 1.1 christos OP3(OLCST, OWREG1, OACST),
284 1.1 christos ENC3(ENC(src1, pcrel, 0), ENC(dst, reg, 1), ENC(src2, ucst, 2)))
285 1.1 christos
286 1.1 christos INSN(addsp, l, 1_or_2_src, 4cycle, C67X, 0,
287 1.1 christos FIX1(FIX(op, 0x10)),
288 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
289 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
290 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
291 1.1 christos INSN(addsp, s, l_1_or_2_src, 4cycle, C67XP, 0,
292 1.1 christos FIX1(FIX(op, 0x70)),
293 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
294 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
295 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
296 1.1 christos
297 1.1 christos INSN(addsub, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
298 1.1 christos FIX1(FIX(op, 0xc)),
299 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1),
300 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
301 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
302 1.1 christos
303 1.1 christos INSN(addsub2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
304 1.1 christos FIX1(FIX(op, 0xd)),
305 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1),
306 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
307 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
308 1.1 christos
309 1.1 christos INSNE(addu, l_ui_xui_ul, l, 1_or_2_src, 1cycle, C62X, 0,
310 1.1 christos FIX1(FIX(op, 0x2b)),
311 1.1 christos OP3(ORREG1, ORXREG1, OWREGL1),
312 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
313 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
314 1.1 christos INSNE(addu, l_xui_ul_ul, l, 1_or_2_src, 1cycle, C62X, 0,
315 1.1 christos FIX1(FIX(op, 0x29)),
316 1.1 christos OP3(ORXREG1, ORREGL1, OWREGL1),
317 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
318 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
319 1.1 christos
320 1.1 christos INSN(add2, s, 1_or_2_src, 1cycle, C62X, 0,
321 1.1 christos FIX1(FIX(op, 0x1)),
322 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
323 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
324 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
325 1.1 christos INSN(add2, l, 1_or_2_src, 1cycle, C64X, 0,
326 1.1 christos FIX1(FIX(op, 0x5)),
327 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
328 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
329 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
330 1.1 christos INSN(add2, d, ext_1_or_2_src, 1cycle, C64X, 0,
331 1.1 christos FIX1(FIX(op, 0x4)),
332 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
333 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
334 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
335 1.1 christos
336 1.1 christos INSN(add4, l, 1_or_2_src, 1cycle, C64X, 0,
337 1.1 christos FIX1(FIX(op, 0x65)),
338 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
339 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
340 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
341 1.1 christos
342 1.1 christos INSNE(and, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
343 1.1 christos FIX1(FIX(op, 0x7b)),
344 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
345 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
346 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
347 1.1 christos INSNE(and, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
348 1.1 christos FIX1(FIX(op, 0x7a)),
349 1.1 christos OP3(OACST, ORXREG1, OWREG1),
350 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
351 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
352 1.1 christos INSNE(and, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
353 1.1 christos FIX1(FIX(op, 0x1f)),
354 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
355 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
356 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
357 1.1 christos INSNE(and, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
358 1.1 christos FIX1(FIX(op, 0x1e)),
359 1.1 christos OP3(OACST, ORXREG1, OWREG1),
360 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
361 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
362 1.1 christos INSNE(and, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
363 1.1 christos FIX1(FIX(op, 0x6)),
364 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
365 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
366 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
367 1.1 christos INSNE(and, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
368 1.1 christos FIX1(FIX(op, 0x7)),
369 1.1 christos OP3(OACST, ORXREG1, OWREG1),
370 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
371 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
372 1.1 christos
373 1.1 christos INSN(andn, l, 1_or_2_src, 1cycle, C64X, 0,
374 1.1 christos FIX1(FIX(op, 0x7c)),
375 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
376 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
377 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
378 1.1 christos INSN(andn, s, ext_1_or_2_src, 1cycle, C64X, 0,
379 1.1 christos FIX1(FIX(op, 0x6)),
380 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
381 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
382 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
383 1.1 christos INSN(andn, d, ext_1_or_2_src, 1cycle, C64X, 0,
384 1.1 christos FIX1(FIX(op, 0x0)),
385 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
386 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
387 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
388 1.1 christos
389 1.1 christos INSN(avg2, m, compound, 1616_m, C64X, 0,
390 1.1 christos FIX1(FIX(op, 0x13)),
391 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
392 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
393 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
394 1.1 christos
395 1.1 christos INSN(avgu4, m, compound, 1616_m, C64X, 0,
396 1.1 christos FIX1(FIX(op, 0x12)),
397 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
398 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
399 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
400 1.1 christos
401 1.1 christos INSN(b, s, ext_branch_cond_imm, branch, C62X, TIC6X_FLAG_NO_CROSS,
402 1.1 christos FIX0(),
403 1.1 christos OP1(OLCST),
404 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
405 1.1 christos INSN(b, s, branch, branch, C62X, TIC6X_FLAG_SIDE_B_ONLY,
406 1.1 christos FIX1(FIX(s, 1)),
407 1.1 christos OP1(ORXREG1),
408 1.1 christos ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0)))
409 1.1 christos INSN(b, s, b_irp, branch, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY,
410 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
411 1.1 christos OP1(ORIRP1),
412 1.1 christos ENC0())
413 1.1 christos INSN(b, s, b_nrp, branch, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY,
414 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
415 1.1 christos OP1(ORNRP1),
416 1.1 christos ENC0())
417 1.1 christos
418 1.1 christos INSN(bdec, s, bdec, branch, C64X, TIC6X_FLAG_NO_CROSS,
419 1.1 christos FIX0(),
420 1.1 christos OP2(OLCST, ORWREG1),
421 1.1 christos ENC3(ENC(s, fu, 0), ENC(src, pcrel, 0), ENC(dst, reg, 1)))
422 1.1 christos
423 1.1 christos INSN(bitc4, m, unary, 1616_m, C64X, 0,
424 1.1 christos FIX1(FIX(op, 0x1e)),
425 1.1 christos OP2(ORXREG1, OWREG2),
426 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
427 1.1 christos ENC(dst, reg, 1)))
428 1.1 christos
429 1.1 christos INSN(bitr, m, unary, 1616_m, C64X, 0,
430 1.1 christos FIX1(FIX(op, 0x1f)),
431 1.1 christos OP2(ORXREG1, OWREG2),
432 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
433 1.1 christos ENC(dst, reg, 1)))
434 1.1 christos
435 1.1 christos INSN(bnop, s, branch_nop_cst, branch, C64X,
436 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP,
437 1.1 christos FIX0(),
438 1.1 christos OP2(OLCST, OACST),
439 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, pcrel, 0), ENC(src1, ucst, 1)))
440 1.1 christos INSN(bnop, nfu, s_branch_nop_cst, branch, C64XP,
441 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP,
442 1.1 christos FIX1(FIX(s, 0)),
443 1.1 christos OP2(OLCST, OACST),
444 1.1 christos ENC2(ENC(src2, pcrel, 0), ENC(src1, ucst, 1)))
445 1.1 christos INSN(bnop, s, branch_nop_reg, branch, C64X,
446 1.1 christos TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MCNOP,
447 1.1 christos FIX1(FIX(s, 1)),
448 1.1 christos OP2(ORXREG1, OACST),
449 1.1 christos ENC3(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1)))
450 1.1 christos
451 1.1 christos INSN(bpos, s, bpos, branch, C64X, TIC6X_FLAG_NO_CROSS,
452 1.1 christos FIX0(),
453 1.1 christos OP2(OLCST, ORREG1),
454 1.1 christos ENC3(ENC(s, fu, 0), ENC(src, pcrel, 0), ENC(dst, reg, 1)))
455 1.1 christos
456 1.1 christos INSN(call, s, ext_branch_cond_imm, branch, C62X,
457 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL,
458 1.1 christos FIX0(),
459 1.1 christos OP1(OLCST),
460 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
461 1.1 christos INSN(call, s, branch, branch, C62X,
462 1.1 christos TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL,
463 1.1 christos FIX1(FIX(s, 1)),
464 1.1 christos OP1(ORXREG1),
465 1.1 christos ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0)))
466 1.1 christos INSN(call, s, b_irp, branch, C62X,
467 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL,
468 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
469 1.1 christos OP1(ORIRP1),
470 1.1 christos ENC0())
471 1.1 christos INSN(call, s, b_nrp, branch, C62X,
472 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL,
473 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
474 1.1 christos OP1(ORNRP1),
475 1.1 christos ENC0())
476 1.1 christos
477 1.1 christos INSN(callnop, s, branch_nop_cst, branch, C64X,
478 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL,
479 1.1 christos FIX0(),
480 1.1 christos OP2(OLCST, OACST),
481 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, pcrel, 0), ENC(src1, ucst, 1)))
482 1.1 christos INSN(callnop, nfu, s_branch_nop_cst, branch, C64XP,
483 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL,
484 1.1 christos FIX1(FIX(s, 0)),
485 1.1 christos OP2(OLCST, OACST),
486 1.1 christos ENC2(ENC(src2, pcrel, 0), ENC(src1, ucst, 1)))
487 1.1 christos INSN(callnop, s, branch_nop_reg, branch, C64X,
488 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL,
489 1.1 christos FIX1(FIX(s, 1)),
490 1.1 christos OP2(ORXREG1, OACST),
491 1.1 christos ENC3(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1)))
492 1.1 christos
493 1.1 christos INSN(callp, s, call_imm_nop, branch, C64XP,
494 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP,
495 1.1 christos FIX1(FIX(z, 1)),
496 1.1 christos OP2(OLCST, OWRETREG1),
497 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
498 1.1 christos
499 1.1 christos INSN(callret, s, ext_branch_cond_imm, branch, C62X,
500 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN,
501 1.1 christos FIX0(),
502 1.1 christos OP1(OLCST),
503 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
504 1.1 christos INSN(callret, s, branch, branch, C62X,
505 1.1 christos TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN,
506 1.1 christos FIX1(FIX(s, 1)),
507 1.1 christos OP1(ORXREG1),
508 1.1 christos ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0)))
509 1.1 christos INSN(callret, s, b_irp, branch, C62X,
510 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN,
511 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
512 1.1 christos OP1(ORIRP1),
513 1.1 christos ENC0())
514 1.1 christos INSN(callret, s, b_nrp, branch, C62X,
515 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN,
516 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
517 1.1 christos OP1(ORNRP1),
518 1.1 christos ENC0())
519 1.1 christos
520 1.1 christos INSN(clr, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
521 1.1 christos FIX1(FIX(op, 0x3)),
522 1.1 christos OP4(ORREG1, OACST, OACST, OWREG1),
523 1.1 christos ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1),
524 1.1 christos ENC(cstb, ucst, 2), ENC(dst, reg, 3)))
525 1.1 christos INSN(clr, s, 1_or_2_src, 1cycle, C62X, 0,
526 1.1 christos FIX1(FIX(op, 0x3f)),
527 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
528 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
529 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
530 1.1 christos
531 1.1 christos INSNE(cmpeq, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0,
532 1.1 christos FIX1(FIX(op, 0x53)),
533 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
534 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
535 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
536 1.1 christos INSNE(cmpeq, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0,
537 1.1 christos FIX1(FIX(op, 0x52)),
538 1.1 christos OP3(OACST, ORXREG1, OWREG1),
539 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
540 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
541 1.1 christos INSNE(cmpeq, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0,
542 1.1 christos FIX1(FIX(op, 0x51)),
543 1.1 christos OP3(ORXREG1, ORREGL1, OWREG1),
544 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
545 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
546 1.1 christos INSNE(cmpeq, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
547 1.1 christos FIX2(FIX(op, 0x50), FIX(x, 0)),
548 1.1 christos OP3(OACST, ORREGL1, OWREG1),
549 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1),
550 1.1 christos ENC(dst, reg, 2)))
551 1.1 christos
552 1.1 christos INSN(cmpeq2, s, 1_or_2_src, 1cycle, C64X, 0,
553 1.1 christos FIX1(FIX(op, 0x1d)),
554 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
555 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
556 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
557 1.1 christos
558 1.1 christos INSN(cmpeq4, s, 1_or_2_src, 1cycle, C64X, 0,
559 1.1 christos FIX1(FIX(op, 0x1c)),
560 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
561 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
562 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
563 1.1 christos
564 1.1 christos INSN(cmpeqdp, s, 1_or_2_src, dpcmp, C67X, 0,
565 1.1 christos FIX1(FIX(op, 0x28)),
566 1.1 christos OP3(ORREGD12, ORXREGD12, OWREG2),
567 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
568 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
569 1.1 christos
570 1.1 christos INSN(cmpeqsp, s, 1_or_2_src, 1cycle, C67X, 0,
571 1.1 christos FIX1(FIX(op, 0x38)),
572 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
573 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
574 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
575 1.1 christos
576 1.1 christos INSNE(cmpgt, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
577 1.1 christos FIX1(FIX(op, 0x47)),
578 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
579 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
580 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
581 1.1 christos INSNE(cmpgt, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0,
582 1.1 christos FIX1(FIX(op, 0x46)),
583 1.1 christos OP3(OACST, ORXREG1, OWREG1),
584 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
585 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
586 1.1 christos INSNE(cmpgt, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0,
587 1.1 christos FIX1(FIX(op, 0x45)),
588 1.1 christos OP3(ORXREG1, ORREGL1, OWREG1),
589 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
590 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
591 1.1 christos INSNE(cmpgt, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
592 1.1 christos FIX2(FIX(op, 0x44), FIX(x, 0)),
593 1.1 christos OP3(OACST, ORREGL1, OWREG1),
594 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1),
595 1.1 christos ENC(dst, reg, 2)))
596 1.1 christos INSNE(cmpgt, l_xsi_si_ui, l, 1_or_2_src, 1cycle, C62X,
597 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0),
598 1.1 christos FIX1(FIX(op, 0x57)),
599 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
600 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1),
601 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2)))
602 1.1 christos INSNE(cmpgt, l_xsi_s5_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
603 1.1 christos FIX1(FIX(op, 0x56)),
604 1.1 christos OP3(ORXREG1, OACST, OWREG1),
605 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 1),
606 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2)))
607 1.1 christos INSNE(cmpgt, l_sl_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
608 1.1 christos FIX1(FIX(op, 0x55)),
609 1.1 christos OP3(ORREGL1, ORXREG1, OWREG1),
610 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1),
611 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2)))
612 1.1 christos INSNE(cmpgt, l_sl_s5_ui, l, 1_or_2_src, 1cycle, C62X,
613 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS,
614 1.1 christos FIX2(FIX(op, 0x54), FIX(x, 0)),
615 1.1 christos OP3(ORREGL1, OACST, OWREG1),
616 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 1), ENC(src2, reg, 0),
617 1.1 christos ENC(dst, reg, 2)))
618 1.1 christos
619 1.1 christos INSN(cmpgt2, s, 1_or_2_src, 1cycle, C64X, 0,
620 1.1 christos FIX1(FIX(op, 0x14)),
621 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
622 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
623 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
624 1.1 christos
625 1.1 christos INSN(cmpgtdp, s, 1_or_2_src, dpcmp, C67X, 0,
626 1.1 christos FIX1(FIX(op, 0x29)),
627 1.1 christos OP3(ORREGD12, ORXREGD12, OWREG2),
628 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
629 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
630 1.1 christos
631 1.1 christos INSN(cmpgtsp, s, 1_or_2_src, 1cycle, C67X, 0,
632 1.1 christos FIX1(FIX(op, 0x39)),
633 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
634 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
635 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
636 1.1 christos
637 1.1 christos INSNE(cmpgtu, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
638 1.1 christos FIX1(FIX(op, 0x4f)),
639 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
640 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
641 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
642 1.1 christos INSNE(cmpgtu, l_u4_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
643 1.1 christos FIX2(FIX(op, 0x4e), RAN(src1, 0, 15)),
644 1.1 christos OP3(OACST, ORXREG1, OWREG1),
645 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0),
646 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
647 1.1 christos /* Although not mentioned in SPRUFE8, CMPGTU and CMPLTU support a
648 1.1 christos 5-bit unsigned constant operand on C64X and above. */
649 1.1 christos INSNE(cmpgtu, l_u5_xui_ui, l, 1_or_2_src, 1cycle, C64X, 0,
650 1.1 christos FIX2(FIX(op, 0x4e), RAN(src1, 16, 31)),
651 1.1 christos OP3(OACST, ORXREG1, OWREG1),
652 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0),
653 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
654 1.1 christos INSNE(cmpgtu, l_xui_ul_ui, l, 1_or_2_src, 1cycle, C62X, 0,
655 1.1 christos FIX1(FIX(op, 0x4d)),
656 1.1 christos OP3(ORXREG1, ORREGL1, OWREG1),
657 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
658 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
659 1.1 christos INSNE(cmpgtu, l_u4_ul_ui, l, 1_or_2_src, 1cycle, C62X,
660 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
661 1.1 christos FIX3(FIX(op, 0x4c), FIX(x, 0), RAN(src1, 0, 15)),
662 1.1 christos OP3(OACST, ORREGL1, OWREG1),
663 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1),
664 1.1 christos ENC(dst, reg, 2)))
665 1.1 christos INSNE(cmpgtu, l_u5_ul_ui, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS,
666 1.1 christos FIX3(FIX(op, 0x4c), FIX(x, 0), RAN(src1, 16, 31)),
667 1.1 christos OP3(OACST, ORREGL1, OWREG1),
668 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1),
669 1.1 christos ENC(dst, reg, 2)))
670 1.1 christos
671 1.1 christos INSN(cmpgtu4, s, 1_or_2_src, 1cycle, C64X, 0,
672 1.1 christos FIX1(FIX(op, 0x15)),
673 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
674 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
675 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
676 1.1 christos
677 1.1 christos INSNE(cmplt, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
678 1.1 christos FIX1(FIX(op, 0x57)),
679 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
680 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
681 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
682 1.1 christos INSNE(cmplt, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0,
683 1.1 christos FIX1(FIX(op, 0x56)),
684 1.1 christos OP3(OACST, ORXREG1, OWREG1),
685 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
686 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
687 1.1 christos INSNE(cmplt, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0,
688 1.1 christos FIX1(FIX(op, 0x55)),
689 1.1 christos OP3(ORXREG1, ORREGL1, OWREG1),
690 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
691 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
692 1.1 christos INSNE(cmplt, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
693 1.1 christos FIX2(FIX(op, 0x54), FIX(x, 0)),
694 1.1 christos OP3(OACST, ORREGL1, OWREG1),
695 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1),
696 1.1 christos ENC(dst, reg, 2)))
697 1.1 christos INSNE(cmplt, l_xsi_si_ui, l, 1_or_2_src, 1cycle, C62X,
698 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0),
699 1.1 christos FIX1(FIX(op, 0x47)),
700 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
701 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1),
702 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2)))
703 1.1 christos INSNE(cmplt, l_xsi_s5_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
704 1.1 christos FIX1(FIX(op, 0x46)),
705 1.1 christos OP3(ORXREG1, OACST, OWREG1),
706 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 1),
707 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2)))
708 1.1 christos INSNE(cmplt, l_sl_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
709 1.1 christos FIX1(FIX(op, 0x45)),
710 1.1 christos OP3(ORREGL1, ORXREG1, OWREG1),
711 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1),
712 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2)))
713 1.1 christos INSNE(cmplt, l_sl_s5_ui, l, 1_or_2_src, 1cycle, C62X,
714 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS,
715 1.1 christos FIX2(FIX(op, 0x44), FIX(x, 0)),
716 1.1 christos OP3(ORREGL1, OACST, OWREG1),
717 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 1), ENC(src2, reg, 0),
718 1.1 christos ENC(dst, reg, 2)))
719 1.1 christos
720 1.1 christos INSN(cmplt2, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO,
721 1.1 christos FIX1(FIX(op, 0x14)),
722 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
723 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
724 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
725 1.1 christos
726 1.1 christos INSN(cmpltdp, s, 1_or_2_src, dpcmp, C67X, 0,
727 1.1 christos FIX1(FIX(op, 0x2a)),
728 1.1 christos OP3(ORREGD12, ORXREGD12, OWREG2),
729 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
730 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
731 1.1 christos
732 1.1 christos INSN(cmpltsp, s, 1_or_2_src, 1cycle, C67X, 0,
733 1.1 christos FIX1(FIX(op, 0x3a)),
734 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
735 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
736 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
737 1.1 christos
738 1.1 christos INSNE(cmpltu, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
739 1.1 christos FIX1(FIX(op, 0x5f)),
740 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
741 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
742 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
743 1.1 christos INSNE(cmpltu, l_u4_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
744 1.1 christos FIX2(FIX(op, 0x5e), RAN(src1, 0, 15)),
745 1.1 christos OP3(OACST, ORXREG1, OWREG1),
746 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0),
747 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
748 1.1 christos INSNE(cmpltu, l_u5_xui_ui, l, 1_or_2_src, 1cycle, C64X, 0,
749 1.1 christos FIX2(FIX(op, 0x5e), RAN(src1, 16, 31)),
750 1.1 christos OP3(OACST, ORXREG1, OWREG1),
751 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0),
752 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
753 1.1 christos INSNE(cmpltu, l_xui_ul_ui, l, 1_or_2_src, 1cycle, C62X, 0,
754 1.1 christos FIX1(FIX(op, 0x5d)),
755 1.1 christos OP3(ORXREG1, ORREGL1, OWREG1),
756 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
757 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
758 1.1 christos INSNE(cmpltu, l_u4_ul_ui, l, 1_or_2_src, 1cycle, C62X,
759 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
760 1.1 christos FIX3(FIX(op, 0x5c), FIX(x, 0), RAN(src1, 0, 15)),
761 1.1 christos OP3(OACST, ORREGL1, OWREG1),
762 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1),
763 1.1 christos ENC(dst, reg, 2)))
764 1.1 christos INSNE(cmpltu, l_u5_ul_ui, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS,
765 1.1 christos FIX3(FIX(op, 0x5c), FIX(x, 0), RAN(src1, 16, 31)),
766 1.1 christos OP3(OACST, ORREGL1, OWREG1),
767 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1),
768 1.1 christos ENC(dst, reg, 2)))
769 1.1 christos
770 1.1 christos INSN(cmpltu4, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO,
771 1.1 christos FIX1(FIX(op, 0x15)),
772 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
773 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
774 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
775 1.1 christos
776 1.1 christos INSN(cmpy, m, 1_or_2_src, 4cycle, C64XP, 0,
777 1.1 christos FIX1(FIX(op, 0xa)),
778 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
779 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
780 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
781 1.1 christos
782 1.1 christos INSN(cmpyr, m, 1_or_2_src, 4cycle, C64XP, 0,
783 1.1 christos FIX1(FIX(op, 0xb)),
784 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
785 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
786 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
787 1.1 christos
788 1.1 christos INSN(cmpyr1, m, 1_or_2_src, 4cycle, C64XP, 0,
789 1.1 christos FIX1(FIX(op, 0xc)),
790 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
791 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
792 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
793 1.1 christos
794 1.1 christos INSN(cmtl, d, 1_or_2_src, load, C64XP,
795 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS,
796 1.1 christos FIX3(FIX(s, 1), FIX(op, 0xe), FIX(src1, 0)),
797 1.1 christos OP2(ORMEMDW, OWDREG5),
798 1.1 christos ENC2(ENC(src2, reg, 0), ENC(dst, reg, 1)))
799 1.1 christos
800 1.1 christos INSN(ddotp4, m, 1_or_2_src, 4cycle, C64XP, 0,
801 1.1 christos FIX1(FIX(op, 0x18)),
802 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
803 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
804 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
805 1.1 christos
806 1.1 christos INSN(ddotph2, m, 1_or_2_src, 4cycle, C64XP, 0,
807 1.1 christos FIX1(FIX(op, 0x17)),
808 1.1 christos OP3(ORREGD1, ORXREG1, OWREGD4),
809 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
810 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
811 1.1 christos
812 1.1 christos INSN(ddotph2r, m, 1_or_2_src, 4cycle, C64XP, 0,
813 1.1 christos FIX1(FIX(op, 0x15)),
814 1.1 christos OP3(ORREGD1, ORXREG1, OWREG4),
815 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
816 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
817 1.1 christos
818 1.1 christos INSN(ddotpl2, m, 1_or_2_src, 4cycle, C64XP, 0,
819 1.1 christos FIX1(FIX(op, 0x16)),
820 1.1 christos OP3(ORREGD1, ORXREG1, OWREGD4),
821 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
822 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
823 1.1 christos
824 1.1 christos INSN(ddotpl2r, m, 1_or_2_src, 4cycle, C64XP, 0,
825 1.1 christos FIX1(FIX(op, 0x14)),
826 1.1 christos OP3(ORREGD1, ORXREG1, OWREG4),
827 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
828 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
829 1.1 christos
830 1.1 christos INSN(deal, m, unary, 1616_m, C64X, 0,
831 1.1 christos FIX1(FIX(op, 0x1d)),
832 1.1 christos OP2(ORXREG1, OWREG2),
833 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
834 1.1 christos ENC(dst, reg, 1)))
835 1.1 christos
836 1.1 christos INSN(dint, nfu, dint, 1cycle, C64XP, 0,
837 1.1 christos FIX1(FIX(s, 0)),
838 1.1 christos OP0(),
839 1.1 christos ENC0())
840 1.1 christos
841 1.1 christos INSN(dmv, s, ext_1_or_2_src, 1cycle, C64XP, 0,
842 1.1 christos FIX1(FIX(op, 0xb)),
843 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1),
844 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
845 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
846 1.1 christos
847 1.1 christos INSNE(dotp2, m_s2_xs2_si, m, compound, 4cycle, C64X, 0,
848 1.1 christos FIX1(FIX(op, 0xc)),
849 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
850 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
851 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
852 1.1 christos INSNE(dotp2, m_s2_xs2_sll, m, compound, 4cycle, C64X, 0,
853 1.1 christos FIX1(FIX(op, 0xb)),
854 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
855 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
856 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
857 1.1 christos
858 1.1 christos INSN(dotpn2, m, compound, 4cycle, C64X, 0,
859 1.1 christos FIX1(FIX(op, 0x9)),
860 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
861 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
862 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
863 1.1 christos
864 1.1 christos INSN(dotpnrsu2, m, compound, 4cycle, C64X, 0,
865 1.1 christos FIX1(FIX(op, 0x7)),
866 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
867 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
868 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
869 1.1 christos
870 1.1 christos INSN(dotpnrus2, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
871 1.1 christos FIX1(FIX(op, 0x7)),
872 1.1 christos OP3(ORXREG1, ORREG1, OWREG4),
873 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
874 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
875 1.1 christos
876 1.1 christos INSN(dotprsu2, m, compound, 4cycle, C64X, 0,
877 1.1 christos FIX1(FIX(op, 0xd)),
878 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
879 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
880 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
881 1.1 christos
882 1.1 christos INSN(dotprus2, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
883 1.1 christos FIX1(FIX(op, 0xd)),
884 1.1 christos OP3(ORXREG1, ORREG1, OWREG4),
885 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
886 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
887 1.1 christos
888 1.1 christos INSN(dotpsu4, m, compound, 4cycle, C64X, 0,
889 1.1 christos FIX1(FIX(op, 0x2)),
890 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
891 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
892 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
893 1.1 christos
894 1.1 christos INSN(dotpus4, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
895 1.1 christos FIX1(FIX(op, 0x2)),
896 1.1 christos OP3(ORXREG1, ORREG1, OWREG4),
897 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
898 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
899 1.1 christos
900 1.1 christos INSN(dotpu4, m, compound, 4cycle, C64X, 0,
901 1.1 christos FIX1(FIX(op, 0x6)),
902 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
903 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
904 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
905 1.1 christos
906 1.1 christos INSN(dpack2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
907 1.1 christos FIX1(FIX(op, 0x34)),
908 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1),
909 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
910 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
911 1.1 christos
912 1.1 christos INSN(dpackx2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
913 1.1 christos FIX1(FIX(op, 0x33)),
914 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1),
915 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
916 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
917 1.1 christos
918 1.1 christos INSN(dpint, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS,
919 1.1 christos FIX3(FIX(op, 0x8), FIX(x, 0), FIX(src1, 0)),
920 1.1 christos OP2(ORREGD1, OWREG4),
921 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
922 1.1 christos
923 1.1 christos INSN(dpsp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS,
924 1.1 christos FIX3(FIX(op, 0x9), FIX(x, 0), FIX(src1, 0)),
925 1.1 christos OP2(ORREGD1, OWREG4),
926 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
927 1.1 christos
928 1.1 christos INSN(dptrunc, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS,
929 1.1 christos FIX3(FIX(op, 0x1), FIX(x, 0), FIX(src1, 0)),
930 1.1 christos OP2(ORREGD1, OWREG4),
931 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
932 1.1 christos
933 1.1 christos INSN(ext, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
934 1.1 christos FIX1(FIX(op, 0x1)),
935 1.1 christos OP4(ORREG1, OACST, OACST, OWREG1),
936 1.1 christos ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1),
937 1.1 christos ENC(cstb, ucst, 2), ENC(dst, reg, 3)))
938 1.1 christos INSN(ext, s, 1_or_2_src, 1cycle, C62X, 0,
939 1.1 christos FIX1(FIX(op, 0x2f)),
940 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
941 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
942 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
943 1.1 christos
944 1.1 christos INSN(extu, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
945 1.1 christos FIX1(FIX(op, 0x0)),
946 1.1 christos OP4(ORREG1, OACST, OACST, OWREG1),
947 1.1 christos ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1),
948 1.1 christos ENC(cstb, ucst, 2), ENC(dst, reg, 3)))
949 1.1 christos INSN(extu, s, 1_or_2_src, 1cycle, C62X, 0,
950 1.1 christos FIX1(FIX(op, 0x2b)),
951 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
952 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
953 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
954 1.1 christos
955 1.1 christos INSN(gmpy, m, 1_or_2_src, 4cycle, C64XP, TIC6X_FLAG_NO_CROSS,
956 1.1 christos FIX2(FIX(op, 0x1f), FIX(x, 0)),
957 1.1 christos OP3(ORREG1, ORREG1, OWREG4),
958 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, reg, 0), ENC(src2, reg, 1),
959 1.1 christos ENC(dst, reg, 2)))
960 1.1 christos
961 1.1 christos /* This instruction can be predicated as usual; SPRUFE8 is incorrect
962 1.1 christos where it shows the "z" field as fixed to 1. */
963 1.1 christos INSN(gmpy4, m, compound, 4cycle, C64X, 0,
964 1.1 christos FIX1(FIX(op, 0x11)),
965 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
966 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
967 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
968 1.1 christos
969 1.1 christos INSN(idle, nfu, nop_idle, nop, C62X, TIC6X_FLAG_MCNOP,
970 1.1 christos FIX2(FIX(s, 0), FIX(op, 0xf)),
971 1.1 christos OP0(),
972 1.1 christos ENC0())
973 1.1 christos
974 1.1 christos INSN(intdp, l, 1_or_2_src, intdp, C67X, 0,
975 1.1 christos FIX2(FIX(op, 0x39), FIX(src1, 0)),
976 1.1 christos OP2(ORXREG1, OWREGD45),
977 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
978 1.1 christos ENC(dst, reg, 1)))
979 1.1 christos
980 1.1 christos INSN(intdpu, l, 1_or_2_src, intdp, C67X, 0,
981 1.1 christos FIX2(FIX(op, 0x3b), FIX(src1, 0)),
982 1.1 christos OP2(ORXREG1, OWREGD45),
983 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
984 1.1 christos ENC(dst, reg, 1)))
985 1.1 christos
986 1.1 christos INSN(intsp, l, 1_or_2_src, 4cycle, C67X, 0,
987 1.1 christos FIX2(FIX(op, 0x4a), FIX(src1, 0)),
988 1.1 christos OP2(ORXREG1, OWREG4),
989 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
990 1.1 christos ENC(dst, reg, 1)))
991 1.1 christos
992 1.1 christos INSN(intspu, l, 1_or_2_src, 4cycle, C67X, 0,
993 1.1 christos FIX2(FIX(op, 0x49), FIX(src1, 0)),
994 1.1 christos OP2(ORXREG1, OWREG4),
995 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
996 1.1 christos ENC(dst, reg, 1)))
997 1.1 christos
998 1.1 christos INSN(ldb, d, load_store, load, C62X,
999 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
1000 1.1 christos FIX2(FIX(op, 2), FIX(r, 0)),
1001 1.1 christos OP2(ORMEMSB, OWDREG5),
1002 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
1003 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
1004 1.1 christos ENC(srcdst, reg, 1)))
1005 1.1 christos INSN(ldb, d, load_store_long, load, C62X,
1006 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
1007 1.1 christos FIX1(FIX(op, 2)),
1008 1.1 christos OP2(ORMEMLB, OWDREG5),
1009 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 0),
1010 1.1 christos ENC(dst, reg, 1)))
1011 1.1 christos
1012 1.1 christos INSN(ldbu, d, load_store, load, C62X,
1013 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
1014 1.1 christos FIX2(FIX(op, 1), FIX(r, 0)),
1015 1.1 christos OP2(ORMEMSB, OWDREG5),
1016 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
1017 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
1018 1.1 christos ENC(srcdst, reg, 1)))
1019 1.1 christos INSN(ldbu, d, load_store_long, load, C62X,
1020 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
1021 1.1 christos FIX1(FIX(op, 1)),
1022 1.1 christos OP2(ORMEMLB, OWDREG5),
1023 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 0),
1024 1.1 christos ENC(dst, reg, 1)))
1025 1.1 christos
1026 1.1 christos INSN(lddw, d, load_store, load, C64X_AND_C67X,
1027 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS,
1028 1.1 christos FIX2(FIX(op, 6), FIX(r, 1)),
1029 1.1 christos OP2(ORMEMSD, OWDREGD5),
1030 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
1031 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
1032 1.1 christos ENC(srcdst, reg, 1)))
1033 1.1 christos
1034 1.1 christos INSN(ldh, d, load_store, load, C62X,
1035 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
1036 1.1 christos FIX2(FIX(op, 4), FIX(r, 0)),
1037 1.1 christos OP2(ORMEMSH, OWDREG5),
1038 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
1039 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
1040 1.1 christos ENC(srcdst, reg, 1)))
1041 1.1 christos INSN(ldh, d, load_store_long, load, C62X,
1042 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
1043 1.1 christos FIX1(FIX(op, 4)),
1044 1.1 christos OP2(ORMEMLH, OWDREG5),
1045 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 0),
1046 1.1 christos ENC(dst, reg, 1)))
1047 1.1 christos
1048 1.1 christos INSN(ldhu, d, load_store, load, C62X,
1049 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
1050 1.1 christos FIX2(FIX(op, 0), FIX(r, 0)),
1051 1.1 christos OP2(ORMEMSH, OWDREG5),
1052 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
1053 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
1054 1.1 christos ENC(srcdst, reg, 1)))
1055 1.1 christos INSN(ldhu, d, load_store_long, load, C62X,
1056 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
1057 1.1 christos FIX1(FIX(op, 0)),
1058 1.1 christos OP2(ORMEMLH, OWDREG5),
1059 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 0),
1060 1.1 christos ENC(dst, reg, 1)))
1061 1.1 christos
1062 1.1 christos INSN(ldndw, d, load_nonaligned, load, C64X,
1063 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED,
1064 1.1 christos FIX0(),
1065 1.1 christos OP2(ORMEMND, OWDREGD5),
1066 1.1 christos ENC7(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
1067 1.1 christos ENC(offsetR, mem_offset_noscale, 0), ENC(baseR, reg, 0),
1068 1.1 christos ENC(sc, scaled, 0), ENC(dst, reg_shift, 1)))
1069 1.1 christos
1070 1.1 christos INSN(ldnw, d, load_store, load, C64X,
1071 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED,
1072 1.1 christos FIX2(FIX(op, 3), FIX(r, 1)),
1073 1.1 christos OP2(ORMEMSW, OWDREG5),
1074 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
1075 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
1076 1.1 christos ENC(srcdst, reg, 1)))
1077 1.1 christos
1078 1.1 christos INSN(ldw, d, load_store, load, C62X,
1079 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
1080 1.1 christos FIX2(FIX(op, 6), FIX(r, 0)),
1081 1.1 christos OP2(ORMEMSW, OWDREG5),
1082 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0),
1083 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0),
1084 1.1 christos ENC(srcdst, reg, 1)))
1085 1.1 christos INSN(ldw, d, load_store_long, load, C62X,
1086 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
1087 1.1 christos FIX1(FIX(op, 6)),
1088 1.1 christos OP2(ORMEMLW, OWDREG5),
1089 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_word, 0),
1090 1.1 christos ENC(dst, reg, 1)))
1091 1.1 christos
1092 1.1 christos INSN(ll, d, 1_or_2_src, load, C64XP,
1093 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS,
1094 1.1 christos FIX3(FIX(s, 1), FIX(op, 0xc), FIX(src1, 0)),
1095 1.1 christos OP2(ORMEMDW, OWDREG5),
1096 1.1 christos ENC2(ENC(src2, reg, 0), ENC(dst, reg, 1)))
1097 1.1 christos
1098 1.1 christos INSNE(lmbd, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
1099 1.1 christos FIX1(FIX(op, 0x6b)),
1100 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1101 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1102 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1103 1.1 christos INSNE(lmbd, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
1104 1.1 christos FIX1(FIX(op, 0x6a)),
1105 1.1 christos OP3(OACST, ORXREG1, OWREG1),
1106 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
1107 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1108 1.1 christos
1109 1.1 christos INSN(max2, l, 1_or_2_src, 1cycle, C64X, 0,
1110 1.1 christos FIX1(FIX(op, 0x42)),
1111 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1112 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1113 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1114 1.1 christos INSN(max2, s, ext_1_or_2_src, 1cycle, C64XP, 0,
1115 1.1 christos FIX1(FIX(op, 0xd)),
1116 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1117 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1118 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1119 1.1 christos
1120 1.1 christos INSN(maxu4, l, 1_or_2_src, 1cycle, C64X, 0,
1121 1.1 christos FIX1(FIX(op, 0x43)),
1122 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1123 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1124 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1125 1.1 christos
1126 1.1 christos INSN(min2, l, 1_or_2_src, 1cycle, C64X, 0,
1127 1.1 christos FIX1(FIX(op, 0x41)),
1128 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1129 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1130 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1131 1.1 christos INSN(min2, s, ext_1_or_2_src, 1cycle, C64XP, 0,
1132 1.1 christos FIX1(FIX(op, 0xc)),
1133 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1134 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1135 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1136 1.1 christos
1137 1.1 christos INSN(minu4, l, 1_or_2_src, 1cycle, C64X, 0,
1138 1.1 christos FIX1(FIX(op, 0x48)),
1139 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1140 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1141 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1142 1.1 christos
1143 1.1 christos INSNE(mpy, m_sl16_xsl16_si, m, mpy, 1616_m, C62X, 0,
1144 1.1 christos FIX1(FIX(op, 0x19)),
1145 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1146 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1147 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1148 1.1 christos INSNE(mpy, m_s5_xsl16_si, m, mpy, 1616_m, C62X, 0,
1149 1.1 christos FIX1(FIX(op, 0x18)),
1150 1.1 christos OP3(OACST, ORXREG1, OWREG2),
1151 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
1152 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1153 1.1 christos
1154 1.1 christos INSN(mpydp, m, mpy, mpydp, C67X, TIC6X_FLAG_NO_CROSS,
1155 1.1 christos FIX2(FIX(op, 0x0e), FIX(x, 0)),
1156 1.1 christos OP3(ORREGD1234, ORREGD1324, OWREGD910),
1157 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, reg, 0), ENC(src2, reg, 1),
1158 1.1 christos ENC(dst, reg, 2)))
1159 1.1 christos
1160 1.1 christos INSN(mpyh, m, mpy, 1616_m, C62X, 0,
1161 1.1 christos FIX1(FIX(op, 0x01)),
1162 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1163 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1164 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1165 1.1 christos
1166 1.1 christos INSN(mpyhi, m, compound, 4cycle, C64X, 0,
1167 1.1 christos FIX1(FIX(op, 0x14)),
1168 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1169 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1170 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1171 1.1 christos
1172 1.1 christos INSN(mpyhir, m, compound, 4cycle, C64X, 0,
1173 1.1 christos FIX1(FIX(op, 0x10)),
1174 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
1175 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1176 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1177 1.1 christos
1178 1.1 christos INSN(mpyhl, m, mpy, 1616_m, C62X, 0,
1179 1.1 christos FIX1(FIX(op, 0x09)),
1180 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1181 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1182 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1183 1.1 christos
1184 1.1 christos INSN(mpyhlu, m, mpy, 1616_m, C62X, 0,
1185 1.1 christos FIX1(FIX(op, 0x0f)),
1186 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1187 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1188 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1189 1.1 christos
1190 1.1 christos INSN(mpyhslu, m, mpy, 1616_m, C62X, 0,
1191 1.1 christos FIX1(FIX(op, 0x0b)),
1192 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1193 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1194 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1195 1.1 christos
1196 1.1 christos INSN(mpyhsu, m, mpy, 1616_m, C62X, 0,
1197 1.1 christos FIX1(FIX(op, 0x03)),
1198 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1199 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1200 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1201 1.1 christos
1202 1.1 christos INSN(mpyhu, m, mpy, 1616_m, C62X, 0,
1203 1.1 christos FIX1(FIX(op, 0x07)),
1204 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1205 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1206 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1207 1.1 christos
1208 1.1 christos INSN(mpyhuls, m, mpy, 1616_m, C62X, 0,
1209 1.1 christos FIX1(FIX(op, 0x0d)),
1210 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1211 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1212 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1213 1.1 christos
1214 1.1 christos INSN(mpyhus, m, mpy, 1616_m, C62X, 0,
1215 1.1 christos FIX1(FIX(op, 0x05)),
1216 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1217 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1218 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1219 1.1 christos
1220 1.1 christos INSNE(mpyi, m_si_xsi_si, m, mpy, mpyi, C67X, 0,
1221 1.1 christos FIX1(FIX(op, 0x04)),
1222 1.1 christos OP3(ORREG14, ORXREG14, OWREG9),
1223 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1224 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1225 1.1 christos INSNE(mpyi, m_s5_xsi_si, m, mpy, mpyi, C67X, 0,
1226 1.1 christos FIX1(FIX(op, 0x06)),
1227 1.1 christos OP3(OACST, ORXREG14, OWREG9),
1228 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
1229 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1230 1.1 christos
1231 1.1 christos INSNE(mpyid, m_si_xsi_sll, m, mpy, mpyid, C67X, 0,
1232 1.1 christos FIX1(FIX(op, 0x08)),
1233 1.1 christos OP3(ORREG14, ORXREG14, OWREGD910),
1234 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1235 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1236 1.1 christos INSNE(mpyid, m_s5_xsi_sll, m, mpy, mpyid, C67X, 0,
1237 1.1 christos FIX1(FIX(op, 0x0c)),
1238 1.1 christos OP3(OACST, ORXREG14, OWREGD910),
1239 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
1240 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1241 1.1 christos
1242 1.1 christos INSN(mpyih, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
1243 1.1 christos FIX1(FIX(op, 0x14)),
1244 1.1 christos OP3(ORXREG1, ORREG1, OWREGD4),
1245 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1246 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1247 1.1 christos
1248 1.1 christos INSN(mpyihr, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
1249 1.1 christos FIX1(FIX(op, 0x10)),
1250 1.1 christos OP3(ORXREG1, ORREG1, OWREG4),
1251 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1252 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1253 1.1 christos
1254 1.1 christos INSN(mpyil, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
1255 1.1 christos FIX1(FIX(op, 0x15)),
1256 1.1 christos OP3(ORXREG1, ORREG1, OWREGD4),
1257 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1258 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1259 1.1 christos
1260 1.1 christos INSN(mpyilr, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
1261 1.1 christos FIX1(FIX(op, 0x0e)),
1262 1.1 christos OP3(ORXREG1, ORREG1, OWREG4),
1263 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1264 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1265 1.1 christos
1266 1.1 christos INSN(mpylh, m, mpy, 1616_m, C62X, 0,
1267 1.1 christos FIX1(FIX(op, 0x11)),
1268 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1269 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1270 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1271 1.1 christos
1272 1.1 christos INSN(mpylhu, m, mpy, 1616_m, C62X, 0,
1273 1.1 christos FIX1(FIX(op, 0x17)),
1274 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1275 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1276 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1277 1.1 christos
1278 1.1 christos INSN(mpyli, m, compound, 4cycle, C64X, 0,
1279 1.1 christos FIX1(FIX(op, 0x15)),
1280 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1281 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1282 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1283 1.1 christos
1284 1.1 christos INSN(mpylir, m, compound, 4cycle, C64X, 0,
1285 1.1 christos FIX1(FIX(op, 0x0e)),
1286 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
1287 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1288 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1289 1.1 christos
1290 1.1 christos INSN(mpylshu, m, mpy, 1616_m, C62X, 0,
1291 1.1 christos FIX1(FIX(op, 0x13)),
1292 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1293 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1294 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1295 1.1 christos
1296 1.1 christos INSN(mpyluhs, m, mpy, 1616_m, C62X, 0,
1297 1.1 christos FIX1(FIX(op, 0x15)),
1298 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1299 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1300 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1301 1.1 christos
1302 1.1 christos INSN(mpysp, m, mpy, 4cycle, C67X, 0,
1303 1.1 christos FIX1(FIX(op, 0x1c)),
1304 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
1305 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1306 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1307 1.1 christos
1308 1.1 christos /* Contrary to SPRU733A, MPYSPDP and MPYSP2DP are on both C67X and
1309 1.1 christos C67X+. */
1310 1.1 christos INSN(mpyspdp, m, compound, mpyspdp, C67X, 0,
1311 1.1 christos FIX1(FIX(op, 0x16)),
1312 1.1 christos OP3(ORREG12, ORXREGD12, OWREGD67),
1313 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1314 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1315 1.1 christos
1316 1.1 christos INSN(mpysp2dp, m, compound, mpyspdp, C67X, 0,
1317 1.1 christos FIX1(FIX(op, 0x17)),
1318 1.1 christos OP3(ORREG1, ORXREG1, OWREGD45),
1319 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1320 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1321 1.1 christos
1322 1.1 christos INSNE(mpysu, m_sl16_xul16_si, m, mpy, 1616_m, C62X, 0,
1323 1.1 christos FIX1(FIX(op, 0x1b)),
1324 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1325 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1326 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1327 1.1 christos INSNE(mpysu, m_s5_xul16_si, m, mpy, 1616_m, C62X, 0,
1328 1.1 christos FIX1(FIX(op, 0x1e)),
1329 1.1 christos OP3(OACST, ORXREG1, OWREG2),
1330 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
1331 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1332 1.1 christos
1333 1.1 christos INSN(mpysu4, m, compound, 4cycle, C64X, 0,
1334 1.1 christos FIX1(FIX(op, 0x05)),
1335 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1336 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1337 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1338 1.1 christos
1339 1.1 christos INSN(mpyu, m, mpy, 1616_m, C62X, 0,
1340 1.1 christos FIX1(FIX(op, 0x1f)),
1341 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1342 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1343 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1344 1.1 christos
1345 1.1 christos INSN(mpyu4, m, compound, 4cycle, C64X, 0,
1346 1.1 christos FIX1(FIX(op, 0x04)),
1347 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1348 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1349 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1350 1.1 christos
1351 1.1 christos INSN(mpyus, m, mpy, 1616_m, C62X, 0,
1352 1.1 christos FIX1(FIX(op, 0x1d)),
1353 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1354 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1355 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1356 1.1 christos
1357 1.1 christos INSN(mpyus4, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO,
1358 1.1 christos FIX1(FIX(op, 0x05)),
1359 1.1 christos OP3(ORXREG1, ORREG1, OWREGD4),
1360 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1361 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1362 1.1 christos
1363 1.1 christos INSN(mpy2, m, compound, 4cycle, C64X, 0,
1364 1.1 christos FIX1(FIX(op, 0x00)),
1365 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1366 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1367 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1368 1.1 christos
1369 1.1 christos INSN(mpy2ir, m, 1_or_2_src, 4cycle, C64XP, 0,
1370 1.1 christos FIX1(FIX(op, 0x0f)),
1371 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1372 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1373 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1374 1.1 christos
1375 1.1 christos INSNE(mpy32, 32_32_32, m, mpy, 4cycle, C64XP, 0,
1376 1.1 christos FIX1(FIX(op, 0x10)),
1377 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
1378 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1379 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1380 1.1 christos INSNE(mpy32, 32_32_64, m, mpy, 4cycle, C64XP, 0,
1381 1.1 christos FIX1(FIX(op, 0x14)),
1382 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1383 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1384 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1385 1.1 christos
1386 1.1 christos INSN(mpy32su, m, mpy, 4cycle, C64XP, 0,
1387 1.1 christos FIX1(FIX(op, 0x16)),
1388 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1389 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1390 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1391 1.1 christos
1392 1.1 christos INSN(mpy32u, m, compound, 4cycle, C64XP, 0,
1393 1.1 christos FIX1(FIX(op, 0x18)),
1394 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1395 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1396 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1397 1.1 christos
1398 1.1 christos INSN(mpy32us, m, compound, 4cycle, C64XP, 0,
1399 1.1 christos FIX1(FIX(op, 0x19)),
1400 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1401 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1402 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1403 1.1 christos
1404 1.1 christos /* "or" forms of "mv" are preferred over "add" forms when available
1405 1.1 christos because "or" uses less power. However, 40-bit moves are only
1406 1.1 christos available through "add", and before C64X D-unit moves are only
1407 1.1 christos available through "add" (without cross paths being available). */
1408 1.1 christos INSNE(mv, l_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
1409 1.1 christos FIX2(FIX(op, 0x7e), FIX(src1, 0)),
1410 1.1 christos OP2(ORXREG1, OWREG1),
1411 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1412 1.1 christos ENC(dst, reg, 1)))
1413 1.1 christos INSNE(mv, l_sl_sl, l, 1_or_2_src, 1cycle, C62X,
1414 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
1415 1.1 christos FIX3(FIX(op, 0x20), FIX(x, 0), FIX(src1, 0)),
1416 1.1 christos OP2(ORREGL1, OWREGL1),
1417 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
1418 1.1 christos INSNE(mv, s_xui_ui, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
1419 1.1 christos FIX2(FIX(op, 0x1a), FIX(src1, 0)),
1420 1.1 christos OP2(ORXREG1, OWREG1),
1421 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1422 1.1 christos ENC(dst, reg, 1)))
1423 1.1 christos INSNE(mv, d_si_si, d, 1_or_2_src, 1cycle, C62X,
1424 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(0),
1425 1.1 christos FIX2(FIX(op, 0x12), FIX(src1, 0)),
1426 1.1 christos OP2(ORREG1, OWREG1),
1427 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
1428 1.1 christos INSNE(mv, d_xui_ui, d, ext_1_or_2_src, 1cycle, C64X,
1429 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1),
1430 1.1 christos FIX2(FIX(op, 0x3), FIX(src1, 0)),
1431 1.1 christos OP2(ORXREG1, OWREG1),
1432 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1433 1.1 christos ENC(dst, reg, 1)))
1434 1.1 christos
1435 1.1 christos INSNE(mvc, from_cr, s, 1_or_2_src, 1cycle, C62X,
1436 1.1 christos TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_NO_CROSS,
1437 1.1 christos FIX3(FIX(s, 1), FIX(op, 0x0f), FIX(x, 0)),
1438 1.1 christos OP2(ORCREG1, OWREG1),
1439 1.1 christos ENC3(ENC(src1, crhi, 0), ENC(src2, crlo, 0), ENC(dst, reg, 1)))
1440 1.1 christos INSNE(mvc, to_cr, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_SIDE_B_ONLY,
1441 1.1 christos FIX2(FIX(s, 1), FIX(op, 0x0e)),
1442 1.1 christos OP2(ORXREG1, OWCREG1),
1443 1.1 christos ENC4(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, crhi, 1),
1444 1.1 christos ENC(dst, crlo, 1)))
1445 1.1 christos
1446 1.1 christos INSN(mvd, m, unary, 4cycle, C64X, 0,
1447 1.1 christos FIX1(FIX(op, 0x1a)),
1448 1.1 christos OP2(ORXREG1, OWREG4),
1449 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1450 1.1 christos ENC(dst, reg, 1)))
1451 1.1 christos
1452 1.1 christos INSN(mvk, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1453 1.1 christos FIX1(FIX(h, 0)),
1454 1.1 christos OP2(OLCST, OWREG1),
1455 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, scst, 0), ENC(dst, reg, 1)))
1456 1.1 christos INSN(mvk, l, unary, 1cycle, C64X, TIC6X_FLAG_NO_CROSS,
1457 1.1 christos FIX2(FIX(x, 0), FIX(op, 0x05)),
1458 1.1 christos OP2(OACST, OWREG1),
1459 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, scst, 0), ENC(dst, reg, 1)))
1460 1.1 christos INSN(mvk, d, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS,
1461 1.1 christos FIX2(FIX(op, 0x00), FIX(src2, 0)),
1462 1.1 christos OP2(OACST, OWREG1),
1463 1.1 christos ENC3(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(dst, reg, 1)))
1464 1.1 christos
1465 1.1 christos INSN(mvkh, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1466 1.1 christos FIX1(FIX(h, 1)),
1467 1.1 christos OP2(OLCST, OWREG1),
1468 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, lcst_high16, 0), ENC(dst, reg, 1)))
1469 1.1 christos
1470 1.1 christos INSN(mvklh, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
1471 1.1 christos FIX1(FIX(h, 1)),
1472 1.1 christos OP2(OLCST, OWREG1),
1473 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, lcst_low16, 0), ENC(dst, reg, 1)))
1474 1.1 christos
1475 1.1 christos INSN(mvkl, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
1476 1.1 christos FIX1(FIX(h, 0)),
1477 1.1 christos OP2(OLCST, OWREG1),
1478 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, lcst_low16, 0), ENC(dst, reg, 1)))
1479 1.1 christos
1480 1.1 christos INSNE(neg, s_xsi_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
1481 1.1 christos FIX2(FIX(op, 0x16), FIX(src1, 0)),
1482 1.1 christos OP2(ORXREG1, OWREG1),
1483 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1484 1.1 christos ENC(dst, reg, 1)))
1485 1.1 christos INSNE(neg, l_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
1486 1.1 christos FIX2(FIX(op, 0x06), FIX(src1, 0)),
1487 1.1 christos OP2(ORXREG1, OWREG1),
1488 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1489 1.1 christos ENC(dst, reg, 1)))
1490 1.1 christos INSNE(neg, l_sl_sl, l, 1_or_2_src, 1cycle, C62X,
1491 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
1492 1.1 christos FIX2(FIX(op, 0x24), FIX(src1, 0)),
1493 1.1 christos OP2(ORREGL1, OWREGL1),
1494 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1495 1.1 christos ENC(dst, reg, 1)))
1496 1.1 christos
1497 1.1 christos INSN(nop, nfu, nop_idle, nop, C62X, 0,
1498 1.1 christos FIX2(FIX(s, 0), RAN(op, 0, 8)),
1499 1.1 christos OP1(OACST),
1500 1.1 christos ENC1(ENC(op, ucst_minus_one, 0)))
1501 1.1 christos INSNE(nop, 1, nfu, nop_idle, nop, C62X, TIC6X_FLAG_MACRO,
1502 1.1 christos FIX2(FIX(s, 0), FIX(op, 0)),
1503 1.1 christos OP0(),
1504 1.1 christos ENC0())
1505 1.1 christos
1506 1.1 christos INSNE(norm, l_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0,
1507 1.1 christos FIX2(FIX(op, 0x63), FIX(src1, 0)),
1508 1.1 christos OP2(ORXREG1, OWREG1),
1509 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1510 1.1 christos ENC(dst, reg, 1)))
1511 1.1 christos INSNE(norm, l_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1512 1.1 christos FIX3(FIX(op, 0x60), FIX(x, 0), FIX(src1, 0)),
1513 1.1 christos OP2(ORREGL1, OWREG1),
1514 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
1515 1.1 christos
1516 1.1 christos INSN(not, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
1517 1.1 christos FIX2(FIX(op, 0x6e), FIX(src1, 0x1f)),
1518 1.1 christos OP2(ORXREG1, OWREG1),
1519 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1520 1.1 christos ENC(dst, reg, 1)))
1521 1.1 christos INSN(not, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
1522 1.1 christos FIX2(FIX(op, 0x0a), FIX(src1, 0x1f)),
1523 1.1 christos OP2(ORXREG1, OWREG1),
1524 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1525 1.1 christos ENC(dst, reg, 1)))
1526 1.1 christos INSN(not, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO,
1527 1.1 christos FIX2(FIX(op, 0xf), FIX(src1, 0x1f)),
1528 1.1 christos OP2(ORXREG1, OWREG1),
1529 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1530 1.1 christos ENC(dst, reg, 1)))
1531 1.1 christos
1532 1.1 christos INSNE(or, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
1533 1.1 christos FIX1(FIX(op, 0x2)),
1534 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1535 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1536 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1537 1.1 christos INSNE(or, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
1538 1.1 christos FIX1(FIX(op, 0x3)),
1539 1.1 christos OP3(OACST, ORXREG1, OWREG1),
1540 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
1541 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1542 1.1 christos INSNE(or, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
1543 1.1 christos FIX1(FIX(op, 0x7f)),
1544 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1545 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1546 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1547 1.1 christos INSNE(or, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
1548 1.1 christos FIX1(FIX(op, 0x7e)),
1549 1.1 christos OP3(OACST, ORXREG1, OWREG1),
1550 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
1551 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1552 1.1 christos INSNE(or, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
1553 1.1 christos FIX1(FIX(op, 0x1b)),
1554 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1555 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1556 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1557 1.1 christos INSNE(or, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
1558 1.1 christos FIX1(FIX(op, 0x1a)),
1559 1.1 christos OP3(OACST, ORXREG1, OWREG1),
1560 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
1561 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1562 1.1 christos
1563 1.1 christos INSN(pack2, l, 1_or_2_src, 1cycle, C64X, 0,
1564 1.1 christos FIX1(FIX(op, 0x0)),
1565 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1566 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1567 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1568 1.1 christos INSN(pack2, s, ext_1_or_2_src, 1cycle, C64X, 0,
1569 1.1 christos FIX1(FIX(op, 0xf)),
1570 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1571 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1572 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1573 1.1 christos
1574 1.1 christos INSN(packh2, l, 1_or_2_src, 1cycle, C64X, 0,
1575 1.1 christos FIX1(FIX(op, 0x1e)),
1576 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1577 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1578 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1579 1.1 christos INSN(packh2, s, 1_or_2_src, 1cycle, C64X, 0,
1580 1.1 christos FIX1(FIX(op, 0x9)),
1581 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1582 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1583 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1584 1.1 christos
1585 1.1 christos INSN(packh4, l, 1_or_2_src, 1cycle, C64X, 0,
1586 1.1 christos FIX1(FIX(op, 0x69)),
1587 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1588 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1589 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1590 1.1 christos
1591 1.1 christos INSN(packhl2, l, 1_or_2_src, 1cycle, C64X, 0,
1592 1.1 christos FIX1(FIX(op, 0x1c)),
1593 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1594 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1595 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1596 1.1 christos INSN(packhl2, s, 1_or_2_src, 1cycle, C64X, 0,
1597 1.1 christos FIX1(FIX(op, 0x8)),
1598 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1599 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1600 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1601 1.1 christos
1602 1.1 christos INSN(packlh2, l, 1_or_2_src, 1cycle, C64X, 0,
1603 1.1 christos FIX1(FIX(op, 0x1b)),
1604 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1605 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1606 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1607 1.1 christos INSN(packlh2, s, 1_or_2_src, 1cycle, C64X, 0,
1608 1.1 christos FIX1(FIX(op, 0x10)),
1609 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1610 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1611 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1612 1.1 christos
1613 1.1 christos INSN(packl4, l, 1_or_2_src, 1cycle, C64X, 0,
1614 1.1 christos FIX1(FIX(op, 0x68)),
1615 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1616 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1617 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1618 1.1 christos
1619 1.1 christos INSN(rcpdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS,
1620 1.1 christos FIX3(FIX(op, 0x2d), FIX(x, 0), FIX(src1, 0)),
1621 1.1 christos OP2(ORREGD1, OWREGD12),
1622 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
1623 1.1 christos
1624 1.1 christos INSN(rcpsp, s, 1_or_2_src, 1cycle, C67X, 0,
1625 1.1 christos FIX2(FIX(op, 0x3d), FIX(src1, 0)),
1626 1.1 christos OP2(ORXREG1, OWREG1),
1627 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1628 1.1 christos ENC(dst, reg, 1)))
1629 1.1 christos
1630 1.1 christos INSN(ret, s, ext_branch_cond_imm, branch, C62X,
1631 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN,
1632 1.1 christos FIX0(),
1633 1.1 christos OP1(OLCST),
1634 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
1635 1.1 christos INSN(ret, s, branch, branch, C62X,
1636 1.1 christos TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN,
1637 1.1 christos FIX1(FIX(s, 1)),
1638 1.1 christos OP1(ORXREG1),
1639 1.1 christos ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0)))
1640 1.1 christos INSN(ret, s, b_irp, branch, C62X,
1641 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN,
1642 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
1643 1.1 christos OP1(ORIRP1),
1644 1.1 christos ENC0())
1645 1.1 christos INSN(ret, s, b_nrp, branch, C62X,
1646 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN,
1647 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)),
1648 1.1 christos OP1(ORNRP1),
1649 1.1 christos ENC0())
1650 1.1 christos
1651 1.1 christos INSN(retp, s, call_imm_nop, branch, C64XP,
1652 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN,
1653 1.1 christos FIX1(FIX(z, 1)),
1654 1.1 christos OP2(OLCST, OWRETREG1),
1655 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0)))
1656 1.1 christos
1657 1.1 christos INSN(rint, nfu, rint, 1cycle, C64XP, 0,
1658 1.1 christos FIX1(FIX(s, 0)),
1659 1.1 christos OP0(),
1660 1.1 christos ENC0())
1661 1.1 christos
1662 1.1 christos INSNE(rotl, m_ui_xui_ui, m, compound, 1616_m, C64X, 0,
1663 1.1 christos FIX1(FIX(op, 0x1d)),
1664 1.1 christos OP3(ORXREG1, ORREG1, OWREG2),
1665 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1666 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1667 1.1 christos INSNE(rotl, m_u5_xui_ui, m, compound, 1616_m, C64X, 0,
1668 1.1 christos FIX1(FIX(op, 0x1e)),
1669 1.1 christos OP3(ORXREG1, OACST, OWREG2),
1670 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1671 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2)))
1672 1.1 christos
1673 1.1 christos INSN(rpack2, s, ext_1_or_2_src_noncond, 1cycle, C64XP, 0,
1674 1.1 christos FIX2(FIX(op, 0xb), FIX(z, 1)),
1675 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1676 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1677 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1678 1.1 christos
1679 1.1 christos INSN(rsqrdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS,
1680 1.1 christos FIX3(FIX(op, 0x2e), FIX(x, 0), FIX(src1, 0)),
1681 1.1 christos OP2(ORREGD1, OWREGD12),
1682 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
1683 1.1 christos
1684 1.1 christos INSN(rsqrsp, s, 1_or_2_src, 1cycle, C67X, 0,
1685 1.1 christos FIX2(FIX(op, 0x3e), FIX(src1, 0)),
1686 1.1 christos OP2(ORXREG1, OWREG1),
1687 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1688 1.1 christos ENC(dst, reg, 1)))
1689 1.1 christos
1690 1.1 christos INSNE(sadd, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
1691 1.1 christos FIX1(FIX(op, 0x13)),
1692 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1693 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1694 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1695 1.1 christos INSNE(sadd, l_xsi_sl_sl, l, 1_or_2_src, 1cycle, C62X, 0,
1696 1.1 christos FIX1(FIX(op, 0x31)),
1697 1.1 christos OP3(ORXREG1, ORREGL1, OWREGL1),
1698 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1699 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1700 1.1 christos INSNE(sadd, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
1701 1.1 christos FIX1(FIX(op, 0x12)),
1702 1.1 christos OP3(OACST, ORXREG1, OWREG1),
1703 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
1704 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1705 1.1 christos INSNE(sadd, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1706 1.1 christos FIX1(FIX(op, 0x30)),
1707 1.1 christos OP3(OACST, ORREGL1, OWREGL1),
1708 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
1709 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1710 1.1 christos INSNE(sadd, s_si_xsi_si, s, 1_or_2_src, 1cycle, C64X, 0,
1711 1.1 christos FIX1(FIX(op, 0x20)),
1712 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1713 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1714 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1715 1.1 christos
1716 1.1 christos INSN(sadd2, s, ext_1_or_2_src, 1cycle, C64X, 0,
1717 1.1 christos FIX1(FIX(op, 0x0)),
1718 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1719 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1720 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1721 1.1 christos
1722 1.1 christos INSN(saddsub, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
1723 1.1 christos FIX1(FIX(op, 0x0e)),
1724 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1),
1725 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1726 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1727 1.1 christos
1728 1.1 christos INSN(saddsub2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
1729 1.1 christos FIX1(FIX(op, 0x0f)),
1730 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1),
1731 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1732 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1733 1.1 christos
1734 1.1 christos INSN(saddsu2, s, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO,
1735 1.1 christos FIX1(FIX(op, 0x1)),
1736 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
1737 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1738 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1739 1.1 christos
1740 1.1 christos INSN(saddus2, s, ext_1_or_2_src, 1cycle, C64X, 0,
1741 1.1 christos FIX1(FIX(op, 0x1)),
1742 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1743 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1744 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1745 1.1 christos
1746 1.1 christos INSN(saddu4, s, ext_1_or_2_src, 1cycle, C64X, 0,
1747 1.1 christos FIX1(FIX(op, 0x3)),
1748 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1749 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1750 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1751 1.1 christos
1752 1.1 christos INSN(sat, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1753 1.1 christos FIX3(FIX(op, 0x40), FIX(x, 0), FIX(src1, 0)),
1754 1.1 christos OP2(ORREGL1, OWREG1),
1755 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1)))
1756 1.1 christos
1757 1.1 christos INSN(set, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1758 1.1 christos FIX1(FIX(op, 0x2)),
1759 1.1 christos OP4(ORREG1, OACST, OACST, OWREG1),
1760 1.1 christos ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1),
1761 1.1 christos ENC(cstb, ucst, 2), ENC(dst, reg, 3)))
1762 1.1 christos INSN(set, s, 1_or_2_src, 1cycle, C62X, 0,
1763 1.1 christos FIX1(FIX(op, 0x3b)),
1764 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
1765 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1766 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1767 1.1 christos
1768 1.1 christos INSN(shfl, m, unary, 1616_m, C64X, 0,
1769 1.1 christos FIX1(FIX(op, 0x1c)),
1770 1.1 christos OP2(ORXREG1, OWREG2),
1771 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1772 1.1 christos ENC(dst, reg, 1)))
1773 1.1 christos
1774 1.1 christos INSN(shfl3, l, 1_or_2_src_noncond, 1cycle, C64XP, 0,
1775 1.1 christos FIX1(FIX(op, 0x36)),
1776 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1),
1777 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1778 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1779 1.1 christos
1780 1.1 christos INSNE(shl, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0,
1781 1.1 christos FIX1(FIX(op, 0x33)),
1782 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
1783 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1784 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1785 1.1 christos INSNE(shl, s_sl_ui_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1786 1.1 christos FIX2(FIX(op, 0x31), FIX(x, 0)),
1787 1.1 christos OP3(ORREGL1, ORREG1, OWREGL1),
1788 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
1789 1.1 christos ENC(dst, reg, 2)))
1790 1.1 christos INSNE(shl, s_xui_ui_ul, s, 1_or_2_src, 1cycle, C62X, 0,
1791 1.1 christos FIX1(FIX(op, 0x13)),
1792 1.1 christos OP3(ORXREG1, ORREG1, OWREGL1),
1793 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1794 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1795 1.1 christos INSNE(shl, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0,
1796 1.1 christos FIX1(FIX(op, 0x32)),
1797 1.1 christos OP3(ORXREG1, OACST, OWREG1),
1798 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1799 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2)))
1800 1.1 christos INSNE(shl, s_sl_u5_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1801 1.1 christos FIX2(FIX(op, 0x30), FIX(x, 0)),
1802 1.1 christos OP3(ORREGL1, OACST, OWREGL1),
1803 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
1804 1.1 christos ENC(dst, reg, 2)))
1805 1.1 christos INSNE(shl, s_xui_u5_ul, s, 1_or_2_src, 1cycle, C62X, 0,
1806 1.1 christos FIX1(FIX(op, 0x12)),
1807 1.1 christos OP3(ORXREG1, OACST, OWREGL1),
1808 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1809 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2)))
1810 1.1 christos
1811 1.1 christos INSN(shlmb, l, 1_or_2_src, 1cycle, C64X, 0,
1812 1.1 christos FIX1(FIX(op, 0x61)),
1813 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1814 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1815 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1816 1.1 christos INSN(shlmb, s, ext_1_or_2_src, 1cycle, C64X, 0,
1817 1.1 christos FIX1(FIX(op, 0x9)),
1818 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1819 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1820 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1821 1.1 christos
1822 1.1 christos INSNE(shr, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0,
1823 1.1 christos FIX1(FIX(op, 0x37)),
1824 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
1825 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1826 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1827 1.1 christos INSNE(shr, s_sl_ui_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1828 1.1 christos FIX2(FIX(op, 0x35), FIX(x, 0)),
1829 1.1 christos OP3(ORREGL1, ORREG1, OWREGL1),
1830 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
1831 1.1 christos ENC(dst, reg, 2)))
1832 1.1 christos INSNE(shr, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0,
1833 1.1 christos FIX1(FIX(op, 0x36)),
1834 1.1 christos OP3(ORXREG1, OACST, OWREG1),
1835 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1836 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2)))
1837 1.1 christos INSNE(shr, s_sl_u5_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1838 1.1 christos FIX2(FIX(op, 0x34), FIX(x, 0)),
1839 1.1 christos OP3(ORREGL1, OACST, OWREGL1),
1840 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
1841 1.1 christos ENC(dst, reg, 2)))
1842 1.1 christos
1843 1.1 christos INSNE(shr2, s_xs2_ui_s2, s, ext_1_or_2_src, 1cycle, C64X, 0,
1844 1.1 christos FIX1(FIX(op, 0x7)),
1845 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
1846 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1847 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1848 1.1 christos INSNE(shr2, s_xs2_u5_s2, s, 1_or_2_src, 1cycle, C64X, 0,
1849 1.1 christos FIX1(FIX(op, 0x18)),
1850 1.1 christos OP3(ORXREG1, OACST, OWREG1),
1851 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1852 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2)))
1853 1.1 christos
1854 1.1 christos INSN(shrmb, l, 1_or_2_src, 1cycle, C64X, 0,
1855 1.1 christos FIX1(FIX(op, 0x62)),
1856 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1857 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1858 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1859 1.1 christos INSN(shrmb, s, ext_1_or_2_src, 1cycle, C64X, 0,
1860 1.1 christos FIX1(FIX(op, 0xa)),
1861 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1862 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1863 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1864 1.1 christos
1865 1.1 christos INSNE(shru, s_xui_ui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
1866 1.1 christos FIX1(FIX(op, 0x27)),
1867 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
1868 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1869 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1870 1.1 christos INSNE(shru, s_ul_ui_ul, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1871 1.1 christos FIX2(FIX(op, 0x25), FIX(x, 0)),
1872 1.1 christos OP3(ORREGL1, ORREG1, OWREGL1),
1873 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
1874 1.1 christos ENC(dst, reg, 2)))
1875 1.1 christos INSNE(shru, s_xui_u5_ui, s, 1_or_2_src, 1cycle, C62X, 0,
1876 1.1 christos FIX1(FIX(op, 0x26)),
1877 1.1 christos OP3(ORXREG1, OACST, OWREG1),
1878 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1879 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2)))
1880 1.1 christos INSNE(shru, s_ul_u5_ul, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
1881 1.1 christos FIX2(FIX(op, 0x24), FIX(x, 0)),
1882 1.1 christos OP3(ORREGL1, OACST, OWREGL1),
1883 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
1884 1.1 christos ENC(dst, reg, 2)))
1885 1.1 christos
1886 1.1 christos INSNE(shru2, s_xu2_ui_u2, s, ext_1_or_2_src, 1cycle, C64X, 0,
1887 1.1 christos FIX1(FIX(op, 0x8)),
1888 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
1889 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1890 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
1891 1.1 christos INSNE(shru2, s_xu2_u5_u2, s, 1_or_2_src, 1cycle, C64X, 0,
1892 1.1 christos FIX1(FIX(op, 0x19)),
1893 1.1 christos OP3(ORXREG1, OACST, OWREG1),
1894 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1895 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2)))
1896 1.1 christos
1897 1.1 christos INSN(sl, d, 1_or_2_src, store, C64XP,
1898 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS,
1899 1.1 christos FIX3(FIX(s, 1), FIX(op, 0xd), FIX(src1, 0)),
1900 1.1 christos OP2(ORDREG1, OWMEMDW),
1901 1.1 christos ENC2(ENC(dst, reg, 0), ENC(src2, reg, 1)))
1902 1.1 christos
1903 1.1 christos INSN(smpy, m, mpy, 1616_m, C62X, 0,
1904 1.1 christos FIX1(FIX(op, 0x1a)),
1905 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1906 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1907 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1908 1.1 christos
1909 1.1 christos INSN(smpyh, m, mpy, 1616_m, C62X, 0,
1910 1.1 christos FIX1(FIX(op, 0x02)),
1911 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1912 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1913 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1914 1.1 christos
1915 1.1 christos INSN(smpyhl, m, mpy, 1616_m, C62X, 0,
1916 1.1 christos FIX1(FIX(op, 0x0a)),
1917 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1918 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1919 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1920 1.1 christos
1921 1.1 christos INSN(smpylh, m, mpy, 1616_m, C62X, 0,
1922 1.1 christos FIX1(FIX(op, 0x12)),
1923 1.1 christos OP3(ORREG1, ORXREG1, OWREG2),
1924 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1925 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1926 1.1 christos
1927 1.1 christos INSN(smpy2, m, compound, 4cycle, C64X, 0,
1928 1.1 christos FIX1(FIX(op, 0x01)),
1929 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4),
1930 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1931 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1932 1.1 christos
1933 1.1 christos /* Contrary to SPRUFE8, this is the correct operand order for this
1934 1.1 christos instruction. */
1935 1.1 christos INSN(smpy32, m, 1_or_2_src, 4cycle, C64XP, 0,
1936 1.1 christos FIX1(FIX(op, 0x19)),
1937 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
1938 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1939 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1940 1.1 christos
1941 1.1 christos INSN(spack2, s, ext_1_or_2_src, 1cycle, C64X, 0,
1942 1.1 christos FIX1(FIX(op, 0x2)),
1943 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1944 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1945 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1946 1.1 christos
1947 1.1 christos INSN(spacku4, s, ext_1_or_2_src, 1cycle, C64X, 0,
1948 1.1 christos FIX1(FIX(op, 0x4)),
1949 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
1950 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
1951 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
1952 1.1 christos
1953 1.1 christos INSN(spdp, s, 1_or_2_src, 2cycle_dp, C67X, 0,
1954 1.1 christos FIX2(FIX(op, 0x02), FIX(src1, 0)),
1955 1.1 christos OP2(ORXREG1, OWREGD12),
1956 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1957 1.1 christos ENC(dst, reg, 1)))
1958 1.1 christos
1959 1.1 christos INSN(spint, l, 1_or_2_src, 4cycle, C67X, 0,
1960 1.1 christos FIX2(FIX(op, 0x0a), FIX(src1, 0)),
1961 1.1 christos OP2(ORXREG1, OWREG4),
1962 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
1963 1.1 christos ENC(dst, reg, 1)))
1964 1.1 christos
1965 1.1 christos INSNE(spkernel, nfu_2, nfu, spkernel, 1cycle, C64XP,
1966 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL,
1967 1.1 christos FIX1(FIX(s, 0)),
1968 1.1 christos OP2(OACST, OACST),
1969 1.1 christos ENC2(ENC(fstgfcyc, fstg, 0), ENC(fstgfcyc, fcyc, 1)))
1970 1.1 christos INSNE(spkernel, nfu_0, nfu, spkernel, 1cycle, C64XP,
1971 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL|TIC6X_FLAG_MACRO,
1972 1.1 christos FIX2(FIX(s, 0), FIX(fstgfcyc, 0)),
1973 1.1 christos OP0(),
1974 1.1 christos ENC0())
1975 1.1 christos
1976 1.1 christos INSN(spkernelr, nfu, spkernelr, 1cycle, C64XP,
1977 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL,
1978 1.1 christos FIX1(FIX(s, 0)),
1979 1.1 christos OP0(),
1980 1.1 christos ENC0())
1981 1.1 christos
1982 1.1 christos INSN(sploop, nfu, loop_buffer, 1cycle, C64XP,
1983 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP,
1984 1.1 christos FIX4(FIX(s, 0), FIX(op, 0xc), FIX(csta, 0), RAN(cstb, 0, 13)),
1985 1.1 christos OP1(OACST),
1986 1.1 christos ENC1(ENC(cstb, ucst_minus_one, 0)))
1987 1.1 christos
1988 1.1 christos INSN(sploopd, nfu, loop_buffer, 1cycle, C64XP,
1989 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP,
1990 1.1 christos FIX4(FIX(s, 0), FIX(op, 0xd), FIX(csta, 0), RAN(cstb, 0, 13)),
1991 1.1 christos OP1(OACST),
1992 1.1 christos ENC1(ENC(cstb, ucst_minus_one, 0)))
1993 1.1 christos
1994 1.1 christos INSN(sploopw, nfu, loop_buffer, 1cycle, C64XP,
1995 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP,
1996 1.1 christos FIX4(FIX(s, 0), FIX(op, 0xf), FIX(csta, 0), RAN(cstb, 0, 13)),
1997 1.1 christos OP1(OACST),
1998 1.1 christos ENC1(ENC(cstb, ucst_minus_one, 0)))
1999 1.1 christos
2000 1.1 christos /* Contrary to SPRUFE8, this is the correct encoding for this
2001 1.1 christos instruction. */
2002 1.1 christos INSN(spmask, nfu, spmask, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK,
2003 1.1 christos FIX2(FIX(s, 0), FIX(op, 0x8)),
2004 1.1 christos OP1(OFULIST),
2005 1.1 christos ENC1(ENC(mask, spmask, 0)))
2006 1.1 christos
2007 1.1 christos INSN(spmaskr, nfu, spmask, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK,
2008 1.1 christos FIX2(FIX(s, 0), FIX(op, 0x9)),
2009 1.1 christos OP1(OFULIST),
2010 1.1 christos ENC1(ENC(mask, spmask, 0)))
2011 1.1 christos
2012 1.1 christos INSN(sptrunc, l, 1_or_2_src, 4cycle, C67X, 0,
2013 1.1 christos FIX2(FIX(op, 0x0b), FIX(src1, 0)),
2014 1.1 christos OP2(ORXREG1, OWREG4),
2015 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2016 1.1 christos ENC(dst, reg, 1)))
2017 1.1 christos
2018 1.1 christos INSNE(sshl, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0,
2019 1.1 christos FIX1(FIX(op, 0x23)),
2020 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
2021 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2022 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
2023 1.1 christos INSNE(sshl, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0,
2024 1.1 christos FIX1(FIX(op, 0x22)),
2025 1.1 christos OP3(ORXREG1, OACST, OWREG1),
2026 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2027 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2)))
2028 1.1 christos
2029 1.1 christos INSN(sshvl, m, compound, 1616_m, C64X, 0,
2030 1.1 christos FIX1(FIX(op, 0x1c)),
2031 1.1 christos OP3(ORXREG1, ORREG1, OWREG2),
2032 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2033 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
2034 1.1 christos
2035 1.1 christos /* Contrary to SPRUFE8, this is the correct encoding for this
2036 1.1 christos instruction. */
2037 1.1 christos INSN(sshvr, m, compound, 1616_m, C64X, 0,
2038 1.1 christos FIX1(FIX(op, 0x1a)),
2039 1.1 christos OP3(ORXREG1, ORREG1, OWREG2),
2040 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2041 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
2042 1.1 christos
2043 1.1 christos INSNE(ssub, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
2044 1.1 christos FIX1(FIX(op, 0x0f)),
2045 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2046 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2047 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2048 1.1 christos INSNE(ssub, l_xsi_si_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0),
2049 1.1 christos FIX1(FIX(op, 0x1f)),
2050 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
2051 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2052 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2053 1.1 christos INSNE(ssub, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
2054 1.1 christos FIX1(FIX(op, 0x0e)),
2055 1.1 christos OP3(OACST, ORXREG1, OWREG1),
2056 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
2057 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2058 1.1 christos INSNE(ssub, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
2059 1.1 christos FIX1(FIX(op, 0x2c)),
2060 1.1 christos OP3(OACST, ORREGL1, OWREGL1),
2061 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
2062 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2063 1.1 christos
2064 1.1 christos INSN(ssub2, l, 1_or_2_src, 1cycle, C64XP, 0,
2065 1.1 christos FIX1(FIX(op, 0x64)),
2066 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2067 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2068 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2069 1.1 christos
2070 1.1 christos INSN(stb, d, load_store, store, C62X,
2071 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
2072 1.1 christos FIX2(FIX(op, 3), FIX(r, 0)),
2073 1.1 christos OP2(ORDREG1, OWMEMSB),
2074 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
2075 1.1 christos ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1),
2076 1.1 christos ENC(srcdst, reg, 0)))
2077 1.1 christos INSN(stb, d, load_store_long, store, C62X,
2078 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
2079 1.1 christos FIX1(FIX(op, 3)),
2080 1.1 christos OP2(ORDREG1, OWMEMLB),
2081 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_byte, 1),
2082 1.1 christos ENC(dst, reg, 0)))
2083 1.1 christos
2084 1.1 christos INSN(stdw, d, load_store, store, C64X, TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS,
2085 1.1 christos FIX2(FIX(op, 4), FIX(r, 1)),
2086 1.1 christos OP2(ORDREGD1, OWMEMSD),
2087 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
2088 1.1 christos ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1),
2089 1.1 christos ENC(srcdst, reg, 0)))
2090 1.1 christos
2091 1.1 christos INSN(sth, d, load_store, store, C62X,
2092 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
2093 1.1 christos FIX2(FIX(op, 5), FIX(r, 0)),
2094 1.1 christos OP2(ORDREG1, OWMEMSH),
2095 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
2096 1.1 christos ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1),
2097 1.1 christos ENC(srcdst, reg, 0)))
2098 1.1 christos INSN(sth, d, load_store_long, store, C62X,
2099 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
2100 1.1 christos FIX1(FIX(op, 5)),
2101 1.1 christos OP2(ORDREG1, OWMEMLH),
2102 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_half, 1),
2103 1.1 christos ENC(dst, reg, 0)))
2104 1.1 christos
2105 1.1 christos INSN(stndw, d, store_nonaligned, store, C64X,
2106 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED,
2107 1.1 christos FIX0(),
2108 1.1 christos OP2(ORDREGD1, OWMEMND),
2109 1.1 christos ENC7(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
2110 1.1 christos ENC(offsetR, mem_offset_noscale, 1), ENC(baseR, reg, 1),
2111 1.1 christos ENC(sc, scaled, 1), ENC(src, reg_shift, 0)))
2112 1.1 christos
2113 1.1 christos INSN(stnw, d, load_store, store, C64X,
2114 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED,
2115 1.1 christos FIX2(FIX(op, 5), FIX(r, 1)),
2116 1.1 christos OP2(ORDREG1, OWMEMSW),
2117 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
2118 1.1 christos ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1),
2119 1.1 christos ENC(srcdst, reg, 0)))
2120 1.1 christos
2121 1.1 christos INSN(stw, d, load_store, store, C62X,
2122 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
2123 1.1 christos FIX2(FIX(op, 7), FIX(r, 0)),
2124 1.1 christos OP2(ORDREG1, OWMEMSW),
2125 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1),
2126 1.1 christos ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1),
2127 1.1 christos ENC(srcdst, reg, 0)))
2128 1.1 christos INSN(stw, d, load_store_long, store, C62X,
2129 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0),
2130 1.1 christos FIX1(FIX(op, 7)),
2131 1.1 christos OP2(ORDREG1, OWMEMLW),
2132 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_word, 1),
2133 1.1 christos ENC(dst, reg, 0)))
2134 1.1 christos
2135 1.1 christos INSNE(sub, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
2136 1.1 christos FIX1(FIX(op, 0x07)),
2137 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2138 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2139 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2140 1.1 christos INSNE(sub, l_xsi_si_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0),
2141 1.1 christos FIX1(FIX(op, 0x17)),
2142 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
2143 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2144 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2145 1.1 christos INSNE(sub, l_si_xsi_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
2146 1.1 christos FIX1(FIX(op, 0x27)),
2147 1.1 christos OP3(ORREG1, ORXREG1, OWREGL1),
2148 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2149 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2150 1.1 christos INSNE(sub, l_xsi_si_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0),
2151 1.1 christos FIX1(FIX(op, 0x37)),
2152 1.1 christos OP3(ORXREG1, ORREG1, OWREGL1),
2153 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2154 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2155 1.1 christos INSNE(sub, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0,
2156 1.1 christos FIX1(FIX(op, 0x06)),
2157 1.1 christos OP3(OACST, ORXREG1, OWREG1),
2158 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
2159 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2160 1.1 christos INSNE(sub, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
2161 1.1 christos FIX1(FIX(op, 0x24)),
2162 1.1 christos OP3(OACST, ORREGL1, OWREGL1),
2163 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
2164 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2165 1.1 christos INSNE(sub, l_xsi_s5_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
2166 1.1 christos FIX1(FIX(op, 0x2)),
2167 1.1 christos OP3(ORXREG1, OACST, OWREG1),
2168 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst_negate, 1),
2169 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2)))
2170 1.1 christos INSNE(sub, l_sl_s5_sl, l, 1_or_2_src, 1cycle, C62X,
2171 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS,
2172 1.1 christos FIX2(FIX(op, 0x20), FIX(x, 0)),
2173 1.1 christos OP3(ORREGL1, OACST, OWREGL1),
2174 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst_negate, 1), ENC(src2, reg, 0),
2175 1.1 christos ENC(dst, reg, 2)))
2176 1.1 christos INSNE(sub, s_si_xsi_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
2177 1.1 christos FIX1(FIX(op, 0x17)),
2178 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2179 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2180 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2181 1.1 christos INSNE(sub, s_s5_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0,
2182 1.1 christos FIX1(FIX(op, 0x16)),
2183 1.1 christos OP3(OACST, ORXREG1, OWREG1),
2184 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
2185 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2186 1.1 christos /* Contrary to SPRUFE8, this is the correct encoding for this
2187 1.1 christos instruction; this instruction can be predicated. */
2188 1.1 christos INSNE(sub, s_xsi_si_si, s, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0),
2189 1.1 christos FIX1(FIX(op, 0x5)),
2190 1.1 christos OP3(ORXREG1, ORREG1, OWREG1),
2191 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2192 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
2193 1.1 christos INSNE(sub, s_xsi_s5_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO,
2194 1.1 christos FIX1(FIX(op, 0x6)),
2195 1.1 christos OP3(ORXREG1, OACST, OWREG1),
2196 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst_negate, 1),
2197 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2)))
2198 1.1 christos INSNE(sub, d_si_si_si, d, 1_or_2_src, 1cycle, C62X,
2199 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1),
2200 1.1 christos FIX1(FIX(op, 0x11)),
2201 1.1 christos OP3(ORREG1, ORREG1, OWREG1),
2202 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
2203 1.1 christos ENC(dst, reg, 2)))
2204 1.1 christos INSNE(sub, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
2205 1.1 christos FIX1(FIX(op, 0x13)),
2206 1.1 christos OP3(ORREG1, OACST, OWREG1),
2207 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
2208 1.1 christos ENC(dst, reg, 2)))
2209 1.1 christos INSNE(sub, d_si_xsi_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0),
2210 1.1 christos FIX1(FIX(op, 0xc)),
2211 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2212 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2213 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2214 1.1 christos
2215 1.1 christos INSNE(subab, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
2216 1.1 christos FIX1(FIX(op, 0x31)),
2217 1.1 christos OP3(ORREG1, ORREG1, OWREG1),
2218 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
2219 1.1 christos ENC(dst, reg, 2)))
2220 1.1 christos INSNE(subab, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
2221 1.1 christos FIX1(FIX(op, 0x33)),
2222 1.1 christos OP3(ORREG1, OACST, OWREG1),
2223 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
2224 1.1 christos ENC(dst, reg, 2)))
2225 1.1 christos
2226 1.1 christos INSN(subabs4, l, 1_or_2_src, 1cycle, C64X, 0,
2227 1.1 christos FIX1(FIX(op, 0x5a)),
2228 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2229 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2230 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2231 1.1 christos
2232 1.1 christos INSNE(subah, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
2233 1.1 christos FIX1(FIX(op, 0x35)),
2234 1.1 christos OP3(ORREG1, ORREG1, OWREG1),
2235 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
2236 1.1 christos ENC(dst, reg, 2)))
2237 1.1 christos INSNE(subah, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
2238 1.1 christos FIX1(FIX(op, 0x37)),
2239 1.1 christos OP3(ORREG1, OACST, OWREG1),
2240 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
2241 1.1 christos ENC(dst, reg, 2)))
2242 1.1 christos
2243 1.1 christos INSNE(subaw, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
2244 1.1 christos FIX1(FIX(op, 0x39)),
2245 1.1 christos OP3(ORREG1, ORREG1, OWREG1),
2246 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1),
2247 1.1 christos ENC(dst, reg, 2)))
2248 1.1 christos INSNE(subaw, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS,
2249 1.1 christos FIX1(FIX(op, 0x3b)),
2250 1.1 christos OP3(ORREG1, OACST, OWREG1),
2251 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1),
2252 1.1 christos ENC(dst, reg, 2)))
2253 1.1 christos
2254 1.1 christos INSN(subc, l, 1_or_2_src, 1cycle, C62X, 0,
2255 1.1 christos FIX1(FIX(op, 0x4b)),
2256 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2257 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2258 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2259 1.1 christos
2260 1.1 christos INSNE(subdp, l_dp_xdp_dp, l, 1_or_2_src, addsubdp, C67X, TIC6X_FLAG_PREFER(1),
2261 1.1 christos FIX1(FIX(op, 0x19)),
2262 1.1 christos OP3(ORREGD12, ORXREGD12, OWREGD67),
2263 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2264 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2265 1.1 christos INSNE(subdp, l_xdp_dp_dp, l, 1_or_2_src, addsubdp, C67X, TIC6X_FLAG_PREFER(0),
2266 1.1 christos FIX1(FIX(op, 0x1d)),
2267 1.1 christos OP3(ORXREGD12, ORREGD12, OWREGD67),
2268 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2269 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2270 1.1 christos INSNE(subdp, s_dp_xdp_dp, s, l_1_or_2_src, addsubdp, C67XP,
2271 1.1 christos TIC6X_FLAG_PREFER(1),
2272 1.1 christos FIX1(FIX(op, 0x73)),
2273 1.1 christos OP3(ORREGD12, ORXREGD12, OWREGD67),
2274 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2275 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2276 1.1 christos INSNE(subdp, s_xdp_dp_dp, s, l_1_or_2_src, addsubdp, C67XP,
2277 1.1 christos TIC6X_FLAG_PREFER(0),
2278 1.1 christos FIX1(FIX(op, 0x77)),
2279 1.1 christos OP3(ORXREGD12, ORREGD12, OWREGD67),
2280 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2281 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
2282 1.1 christos
2283 1.1 christos INSNE(subsp, l_sp_xsp_sp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_PREFER(1),
2284 1.1 christos FIX1(FIX(op, 0x11)),
2285 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
2286 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2287 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2288 1.1 christos INSNE(subsp, l_xsp_sp_sp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_PREFER(0),
2289 1.1 christos FIX1(FIX(op, 0x15)),
2290 1.1 christos OP3(ORXREG1, ORREG1, OWREG4),
2291 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2292 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2293 1.1 christos INSNE(subsp, s_sp_xsp_sp, s, l_1_or_2_src, 4cycle, C67XP,
2294 1.1 christos TIC6X_FLAG_PREFER(1),
2295 1.1 christos FIX1(FIX(op, 0x71)),
2296 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
2297 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2298 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2299 1.1 christos INSNE(subsp, s_xsp_sp_sp, s, l_1_or_2_src, 4cycle, C67XP,
2300 1.1 christos TIC6X_FLAG_PREFER(0),
2301 1.1 christos FIX1(FIX(op, 0x75)),
2302 1.1 christos OP3(ORXREG1, ORREG1, OWREG4),
2303 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2304 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2)))
2305 1.1 christos
2306 1.1 christos INSNE(subu, l_ui_xui_ul, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1),
2307 1.1 christos FIX1(FIX(op, 0x2f)),
2308 1.1 christos OP3(ORREG1, ORXREG1, OWREGL1),
2309 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2310 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2311 1.1 christos INSNE(subu, l_xui_ui_ul, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0),
2312 1.1 christos FIX1(FIX(op, 0x3f)),
2313 1.1 christos OP3(ORXREG1, ORREG1, OWREGL1),
2314 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2315 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2316 1.1 christos
2317 1.1 christos INSN(sub2, l, 1_or_2_src, 1cycle, C64X, 0,
2318 1.1 christos FIX1(FIX(op, 0x04)),
2319 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2320 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2321 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2322 1.1 christos INSN(sub2, s, 1_or_2_src, 1cycle, C62X, 0,
2323 1.1 christos FIX1(FIX(op, 0x11)),
2324 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2325 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2326 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2327 1.1 christos INSN(sub2, d, ext_1_or_2_src, 1cycle, C64X, 0,
2328 1.1 christos FIX1(FIX(op, 0x5)),
2329 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2330 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2331 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2332 1.1 christos
2333 1.1 christos INSN(sub4, l, 1_or_2_src, 1cycle, C64X, 0,
2334 1.1 christos FIX1(FIX(op, 0x66)),
2335 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2336 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2337 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2338 1.1 christos
2339 1.1 christos INSN(swap2, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS,
2340 1.1 christos FIX2(FIX(op, 0x1b), FIX(x, 0)),
2341 1.1 christos OP2(ORREG1, OWREG1),
2342 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2343 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 1)))
2344 1.1 christos INSN(swap2, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS,
2345 1.1 christos FIX2(FIX(op, 0x10), FIX(x, 0)),
2346 1.1 christos OP2(ORREG1, OWREG1),
2347 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2348 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 1)))
2349 1.1 christos
2350 1.1 christos /* Contrary to SPRUFE8, this is the correct encoding for this
2351 1.1 christos instruction. */
2352 1.1 christos INSN(swap4, l, unary, 1cycle, C64X, 0,
2353 1.1 christos FIX1(FIX(op, 0x1)),
2354 1.1 christos OP2(ORXREG1, OWREG1),
2355 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2356 1.1 christos ENC(dst, reg, 1)))
2357 1.1 christos
2358 1.1 christos INSN(swe, nfu, swe, 1cycle, C64XP, 0,
2359 1.1 christos FIX1(FIX(s, 0)),
2360 1.1 christos OP0(),
2361 1.1 christos ENC0())
2362 1.1 christos
2363 1.1 christos INSN(swenr, nfu, swenr, 1cycle, C64XP, 0,
2364 1.1 christos FIX1(FIX(s, 0)),
2365 1.1 christos OP0(),
2366 1.1 christos ENC0())
2367 1.1 christos
2368 1.1 christos INSN(unpkhu4, l, unary, 1cycle, C64X, 0,
2369 1.1 christos FIX1(FIX(op, 0x03)),
2370 1.1 christos OP2(ORXREG1, OWREG1),
2371 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2372 1.1 christos ENC(dst, reg, 1)))
2373 1.1 christos INSN(unpkhu4, s, unary, 1cycle, C64X, 0,
2374 1.1 christos FIX1(FIX(op, 0x03)),
2375 1.1 christos OP2(ORXREG1, OWREG1),
2376 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2377 1.1 christos ENC(dst, reg, 1)))
2378 1.1 christos
2379 1.1 christos INSN(unpklu4, l, unary, 1cycle, C64X, 0,
2380 1.1 christos FIX1(FIX(op, 0x02)),
2381 1.1 christos OP2(ORXREG1, OWREG1),
2382 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2383 1.1 christos ENC(dst, reg, 1)))
2384 1.1 christos INSN(unpklu4, s, unary, 1cycle, C64X, 0,
2385 1.1 christos FIX1(FIX(op, 0x02)),
2386 1.1 christos OP2(ORXREG1, OWREG1),
2387 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2388 1.1 christos ENC(dst, reg, 1)))
2389 1.1 christos
2390 1.1 christos INSNE(xor, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
2391 1.1 christos FIX1(FIX(op, 0x6f)),
2392 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2393 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2394 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2395 1.1 christos INSNE(xor, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0,
2396 1.1 christos FIX1(FIX(op, 0x6e)),
2397 1.1 christos OP3(OACST, ORXREG1, OWREG1),
2398 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
2399 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2400 1.1 christos INSNE(xor, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
2401 1.1 christos FIX1(FIX(op, 0x0b)),
2402 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2403 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2404 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2405 1.1 christos INSNE(xor, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0,
2406 1.1 christos FIX1(FIX(op, 0x0a)),
2407 1.1 christos OP3(OACST, ORXREG1, OWREG1),
2408 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
2409 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2410 1.1 christos INSNE(xor, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
2411 1.1 christos FIX1(FIX(op, 0xe)),
2412 1.1 christos OP3(ORREG1, ORXREG1, OWREG1),
2413 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2414 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2415 1.1 christos INSNE(xor, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0,
2416 1.1 christos FIX1(FIX(op, 0xf)),
2417 1.1 christos OP3(OACST, ORXREG1, OWREG1),
2418 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0),
2419 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2420 1.1 christos
2421 1.1 christos INSN(xormpy, m, 1_or_2_src, 4cycle, C64XP, 0,
2422 1.1 christos FIX1(FIX(op, 0x1b)),
2423 1.1 christos OP3(ORREG1, ORXREG1, OWREG4),
2424 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0),
2425 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2)))
2426 1.1 christos
2427 1.1 christos INSN(xpnd2, m, unary, 1616_m, C64X, 0,
2428 1.1 christos FIX1(FIX(op, 0x19)),
2429 1.1 christos OP2(ORXREG1, OWREG2),
2430 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2431 1.1 christos ENC(dst, reg, 1)))
2432 1.1 christos
2433 1.1 christos INSN(xpnd4, m, unary, 1616_m, C64X, 0,
2434 1.1 christos FIX1(FIX(op, 0x18)),
2435 1.1 christos OP2(ORXREG1, OWREG2),
2436 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0),
2437 1.1 christos ENC(dst, reg, 1)))
2438 1.1 christos
2439 1.1 christos INSN(zero, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
2440 1.1 christos FIX2(FIX(h, 0), FIX(cst, 0)),
2441 1.1 christos OP1(OWREG1),
2442 1.1 christos ENC2(ENC(s, fu, 0), ENC(dst, reg, 0)))
2443 1.1 christos INSN(zero, l, unary, 1cycle, C64X,
2444 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1),
2445 1.1 christos FIX3(FIX(x, 0), FIX(op, 0x05), FIX(src2, 0)),
2446 1.1 christos OP1(OWREG1),
2447 1.1 christos ENC2(ENC(s, fu, 0), ENC(dst, reg, 0)))
2448 1.1 christos INSNE(zero, l_sub, l, 1_or_2_src, 1cycle, C62X,
2449 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0),
2450 1.1 christos FIX2(FIX(op, 0x07), FIX(x, 0)),
2451 1.1 christos OP1(OWREG1),
2452 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, reg_unused, 0), ENC(src2, reg_unused, 0),
2453 1.1 christos ENC(dst, reg, 0)))
2454 1.1 christos INSNE(zero, l_sub_sl, l, 1_or_2_src, 1cycle, C62X,
2455 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO,
2456 1.1 christos FIX2(FIX(op, 0x27), FIX(x, 0)),
2457 1.1 christos OP1(OWREGL1),
2458 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, reg_unused, 0), ENC(src2, reg_unused, 0),
2459 1.1 christos ENC(dst, reg, 0)))
2460 1.1 christos INSNE(zero, d_mvk, d, 1_or_2_src, 1cycle, C64X,
2461 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1),
2462 1.1 christos FIX3(FIX(op, 0x00), FIX(src1, 0), FIX(src2, 0)),
2463 1.1 christos OP1(OWREG1),
2464 1.1 christos ENC2(ENC(s, fu, 0), ENC(dst, reg, 0)))
2465 1.1 christos INSNE(zero, d_sub, d, 1_or_2_src, 1cycle, C62X,
2466 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0),
2467 1.1 christos FIX1(FIX(op, 0x11)),
2468 1.1 christos OP1(OWREG1),
2469 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg_unused, 0), ENC(src1, reg_unused, 0),
2470 1.1 christos ENC(dst, reg, 0)))
2471 1.1 christos
2472 1.1 christos #undef TIC6X_INSN_C64X_AND_C67X
2473 1.1 christos #undef tic6x_insn_format_nfu_s_branch_nop_cst
2474 1.1 christos #undef tic6x_insn_format_s_l_1_or_2_src
2475 1.1 christos #undef RAN
2476 1.1 christos #undef FIX
2477 1.1 christos #undef FIX0
2478 1.1 christos #undef FIX1
2479 1.1 christos #undef FIX2
2480 1.1 christos #undef FIX3
2481 1.1 christos #undef FIX4
2482 1.1 christos #undef OP0
2483 1.1 christos #undef OP1
2484 1.1 christos #undef OP2
2485 1.1 christos #undef OP3
2486 1.1 christos #undef OP4
2487 1.1 christos #undef OACST
2488 1.1 christos #undef OLCST
2489 1.1 christos #undef OFULIST
2490 1.1 christos #undef ORIRP1
2491 1.1 christos #undef ORNRP1
2492 1.1 christos #undef OWREG1
2493 1.1 christos #undef OWRETREG1
2494 1.1 christos #undef ORREG1
2495 1.1 christos #undef ORDREG1
2496 1.1 christos #undef ORWREG1
2497 1.1 christos #undef ORAREG1
2498 1.1 christos #undef ORXREG1
2499 1.1 christos #undef ORREG12
2500 1.1 christos #undef ORREG14
2501 1.1 christos #undef ORXREG14
2502 1.1 christos #undef OWREG2
2503 1.1 christos #undef OWREG4
2504 1.1 christos #undef OWREG9
2505 1.1 christos #undef OWDREG5
2506 1.1 christos #undef OWREGL1
2507 1.1 christos #undef ORREGL1
2508 1.1 christos #undef OWREGD1
2509 1.1 christos #undef OWREGD12
2510 1.1 christos #undef OWREGD4
2511 1.1 christos #undef ORREGD1
2512 1.1 christos #undef OWREGD45
2513 1.1 christos #undef OWREGD67
2514 1.1 christos #undef ORDREGD1
2515 1.1 christos #undef OWDREGD5
2516 1.1 christos #undef ORREGD12
2517 1.1 christos #undef ORXREGD12
2518 1.1 christos #undef ORREGD1234
2519 1.1 christos #undef ORREGD1324
2520 1.1 christos #undef OWREGD910
2521 1.1 christos #undef ORCREG1
2522 1.1 christos #undef OWCREG1
2523 1.1 christos #undef ORMEMDW
2524 1.1 christos #undef OWMEMDW
2525 1.1 christos #undef ORMEMSB
2526 1.1 christos #undef OWMEMSB
2527 1.1 christos #undef ORMEMLB
2528 1.1 christos #undef OWMEMLB
2529 1.1 christos #undef ORMEMSH
2530 1.1 christos #undef OWMEMSH
2531 1.1 christos #undef ORMEMLH
2532 1.1 christos #undef OWMEMLH
2533 1.1 christos #undef ORMEMSW
2534 1.1 christos #undef OWMEMSW
2535 1.1 christos #undef ORMEMLW
2536 1.1 christos #undef OWMEMLW
2537 1.1 christos #undef ORMEMSD
2538 1.1 christos #undef OWMEMSD
2539 1.1 christos #undef ORMEMND
2540 1.1 christos #undef OWMEMND
2541 1.1 christos #undef ENC
2542 1.1 christos #undef ENC0
2543 1.1 christos #undef ENC1
2544 1.1 christos #undef ENC2
2545 1.1 christos #undef ENC3
2546 1.1 christos #undef ENC4
2547 1.1 christos #undef ENC5
2548 1.1 christos #undef ENC6
2549 1.1 christos #undef ENC7
2550