1 /* TI C6X opcode table.
2 Copyright (C) 2010-2022 Free Software Foundation, Inc.
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 3 of the License, or
7 (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
17 MA 02110-1301, USA. */
19 /* Define the INSN macro before including this file; it takes as
20 arguments the fields from tic6x_opcode (defined in tic6x.h). The
21 name is given as an identifier; the subsequent four operands should
22 have "tic6x_func_unit_", "tic6x_insn_format_", "tic6x_pipeline_"
23 and "TIC6X_INSN_", respectively, prepended to them by the macro
24 definition. Also define INSNE, which has a second argument that
25 goes after tic6x_opcode_NAME_ to form the enumeration value for
26 this instruction, where the value otherwise formed from the name,
27 functional unit and format is ambiguous, but otherwise has the same
30 #define TIC6X_INSN_C64X_AND_C67X TIC6X_INSN_C64X|TIC6X_INSN_C67X
31 #define tic6x_insn_format_nfu_s_branch_nop_cst \
32 tic6x_insn_format_s_branch_nop_cst
33 #define tic6x_insn_format_s_l_1_or_2_src tic6x_insn_format_l_1_or_2_src
34 #define RAN(id, min, max) { CONCAT2(tic6x_field_,id), (min), (max) }
35 #define FIX(id, val) RAN(id, val, val)
36 #define FIX0() 0, { { 0, 0, 0 } }
37 #define FIX1(a) 1, { a }
38 #define FIX2(a, b) 2, { a, b }
39 #define FIX3(a, b, c) 3, { a, b, c }
40 #define FIX4(a, b, c, d) 4, { a, b, c, d }
41 #define OP0() 0, { { 0, 0, false, 0, 0, 0, 0 } }
42 #define OP1(a) 1, { a }
43 #define OP2(a, b) 2, { a, b }
44 #define OP3(a, b, c) 3, { a, b, c }
45 #define OP4(a, b, c, d) 4, { a, b, c, d }
46 #define OACST { tic6x_operand_asm_const, 0, tic6x_rw_none, 0, 0, 0, 0 }
47 #define OLCST { tic6x_operand_link_const, 0, tic6x_rw_none, 0, 0, 0, 0 }
48 #define OHWCSTM1 { tic6x_operand_hw_const_minus_1, 0, tic6x_rw_none, 0, 0, 0, 0 }
49 #define OHWCST0 { tic6x_operand_hw_const_0, 0, tic6x_rw_none, 0, 0, 0, 0 }
50 #define OHWCST1 { tic6x_operand_hw_const_1, 0, tic6x_rw_none, 0, 0, 0, 0 }
51 #define OHWCST5 { tic6x_operand_hw_const_5, 0, tic6x_rw_none, 0, 0, 0, 0 }
52 #define OHWCST16 { tic6x_operand_hw_const_16, 0, tic6x_rw_none, 0, 0, 0, 0 }
53 #define OHWCST24 { tic6x_operand_hw_const_24, 0, tic6x_rw_none, 0, 0, 0, 0 }
54 #define OHWCST31 { tic6x_operand_hw_const_31, 0, tic6x_rw_none, 0, 0, 0, 0 }
55 #define OFULIST { tic6x_operand_func_unit, 0, tic6x_rw_none, 0, 0, 0, 0 }
56 #define ORIRP1 { tic6x_operand_irp, 4, tic6x_rw_read, 1, 1, 0, 0 }
57 #define ORNRP1 { tic6x_operand_nrp, 4, tic6x_rw_read, 1, 1, 0, 0 }
58 #define OWREG1 { tic6x_operand_reg, 4, tic6x_rw_write, 1, 1, 0, 0 }
59 #define OWREG1Z { tic6x_operand_zreg, 4, tic6x_rw_write, 1, 1, 0, 0 }
60 #define OWREG1NORS { tic6x_operand_reg_nors, 4, tic6x_rw_write, 1, 1, 0, 0 }
61 #define ORREG1B { tic6x_operand_reg_bside, 4, tic6x_rw_write, 1, 1, 0, 0 }
62 #define ORREG1BNORS { tic6x_operand_reg_bside_nors, 4, tic6x_rw_write, 1, 1, 0, 0 }
63 #define OWRETREG1 { tic6x_operand_retreg, 4, tic6x_rw_write, 1, 1, 0, 0 }
64 #define ORREG1 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 1, 0, 0 }
65 #define ORDREG1 { tic6x_operand_dreg, 4, tic6x_rw_read, 1, 1, 0, 0 }
66 #define ORTREG1 { tic6x_operand_treg, 4, tic6x_rw_read, 1, 1, 0, 0 }
67 #define ORWREG1 { tic6x_operand_reg, 4, tic6x_rw_read_write, 1, 1, 0, 0 }
68 #define ORB15REG1 { tic6x_operand_b15reg, 4, tic6x_rw_read, 1, 1, 0, 0 }
69 #define OWB15REG1 { tic6x_operand_b15reg, 4, tic6x_rw_write, 1, 1, 0, 0 }
70 #define ORAREG1 { tic6x_operand_areg, 4, tic6x_rw_read, 1, 1, 0, 0 }
71 #define ORXREG1 { tic6x_operand_xreg, 4, tic6x_rw_read, 1, 1, 0, 0 }
72 #define ORREG12 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 2, 0, 0 }
73 #define ORREG14 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 4, 0, 0 }
74 #define ORXREG14 { tic6x_operand_xreg, 4, tic6x_rw_read, 1, 4, 0, 0 }
75 #define OWREG2 { tic6x_operand_reg, 4, tic6x_rw_write, 2, 2, 0, 0 }
76 #define OWREG4 { tic6x_operand_reg, 4, tic6x_rw_write, 4, 4, 0, 0 }
77 #define OWREG9 { tic6x_operand_reg, 4, tic6x_rw_write, 9, 9, 0, 0 }
78 #define OWDREG5 { tic6x_operand_dreg, 4, tic6x_rw_write, 5, 5, 0, 0 }
79 #define OWTREG5 { tic6x_operand_treg, 4, tic6x_rw_write, 5, 5, 0, 0 }
80 #define OWREGL1 { tic6x_operand_regpair, 5, tic6x_rw_write, 1, 1, 1, 1 }
81 #define ORREGL1 { tic6x_operand_regpair, 5, tic6x_rw_read, 1, 1, 1, 1 }
82 #define OWREGD1 { tic6x_operand_regpair, 8, tic6x_rw_write, 1, 1, 1, 1 }
83 #define OWREGD12 { tic6x_operand_regpair, 8, tic6x_rw_write, 1, 1, 2, 2 }
84 #define OWREGD4 { tic6x_operand_regpair, 8, tic6x_rw_write, 4, 4, 4, 4 }
85 #define ORREGD1 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 1, 1, 1 }
86 #define OWREGD45 { tic6x_operand_regpair, 8, tic6x_rw_write, 4, 4, 5, 5 }
87 #define OWREGD67 { tic6x_operand_regpair, 8, tic6x_rw_write, 6, 6, 7, 7 }
88 #define ORDREGD1 { tic6x_operand_dregpair, 8, tic6x_rw_read, 1, 1, 1, 1 }
89 #define ORTREGD1 { tic6x_operand_tregpair, 8, tic6x_rw_read, 1, 1, 1, 1 }
90 #define OWDREGD5 { tic6x_operand_dregpair, 8, tic6x_rw_write, 5, 5, 5, 5 }
91 #define OWTREGD5 { tic6x_operand_tregpair, 8, tic6x_rw_write, 5, 5, 5, 5 }
92 #define ORREGD12 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 1, 2, 2 }
93 #define ORXREGD12 { tic6x_operand_xregpair, 8, tic6x_rw_read, 1, 1, 2, 2 }
94 #define ORREGD1234 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 2, 3, 4 }
95 #define ORXREGD1324 { tic6x_operand_xregpair, 8, tic6x_rw_read, 1, 3, 2, 4 }
96 #define OWREGD910 { tic6x_operand_regpair, 8, tic6x_rw_write, 9, 9, 10, 10 }
97 #define ORCREG1 { tic6x_operand_ctrl, 4, tic6x_rw_read, 1, 1, 0, 0 }
98 #define OWCREG1 { tic6x_operand_ctrl, 4, tic6x_rw_write, 1, 1, 0, 0 }
99 #define OWILC1 { tic6x_operand_ilc, 4, tic6x_rw_write, 1, 1, 0, 0 }
100 #define ORMEMDW { tic6x_operand_mem_deref, 4, tic6x_rw_read, 3, 3, 0, 0 }
101 #define OWMEMDW { tic6x_operand_mem_deref, 4, tic6x_rw_write, 3, 3, 0, 0 }
102 #define ORMEMSB { tic6x_operand_mem_short, 1, tic6x_rw_read, 3, 3, 0, 0 }
103 #define OWMEMSB { tic6x_operand_mem_short, 1, tic6x_rw_write, 3, 3, 0, 0 }
104 #define ORMEMLB { tic6x_operand_mem_long, 1, tic6x_rw_read, 3, 3, 0, 0 }
105 #define OWMEMLB { tic6x_operand_mem_long, 1, tic6x_rw_write, 3, 3, 0, 0 }
106 #define ORMEMSH { tic6x_operand_mem_short, 2, tic6x_rw_read, 3, 3, 0, 0 }
107 #define OWMEMSH { tic6x_operand_mem_short, 2, tic6x_rw_write, 3, 3, 0, 0 }
108 #define ORMEMLH { tic6x_operand_mem_long, 2, tic6x_rw_read, 3, 3, 0, 0 }
109 #define OWMEMLH { tic6x_operand_mem_long, 2, tic6x_rw_write, 3, 3, 0, 0 }
110 #define ORMEMSW { tic6x_operand_mem_short, 4, tic6x_rw_read, 3, 3, 0, 0 }
111 #define OWMEMSW { tic6x_operand_mem_short, 4, tic6x_rw_write, 3, 3, 0, 0 }
112 #define ORMEMLW { tic6x_operand_mem_long, 4, tic6x_rw_read, 3, 3, 0, 0 }
113 #define OWMEMLW { tic6x_operand_mem_long, 4, tic6x_rw_write, 3, 3, 0, 0 }
114 #define ORMEMSD { tic6x_operand_mem_short, 8, tic6x_rw_read, 3, 3, 0, 0 }
115 #define OWMEMSD { tic6x_operand_mem_short, 8, tic6x_rw_write, 3, 3, 0, 0 }
116 #define ORMEMND { tic6x_operand_mem_ndw, 8, tic6x_rw_read, 3, 3, 0, 0 }
117 #define OWMEMND { tic6x_operand_mem_ndw, 8, tic6x_rw_write, 3, 3, 0, 0 }
118 #define ENC(id, meth, op) { \
119 CONCAT2(tic6x_field_,id), \
120 CONCAT2(tic6x_coding_,meth), \
123 #define ENC0() 0, { { 0, 0, 0 } }
124 #define ENC1(a) 1, { a }
125 #define ENC2(a, b) 2, { a, b }
126 #define ENC3(a, b, c) 3, { a, b, c }
127 #define ENC4(a, b, c, d) 4, { a, b, c, d }
128 #define ENC5(a, b, c, d, e) 5, { a, b, c, d, e }
129 #define ENC6(a, b, c, d, e, f) 6, { a, b, c, d, e, f }
130 #define ENC7(a, b, c, d, e, f, g) 7, { a, b, c, d, e, f, g }
132 INSN(abs
, l
, unary
, 1cycle
, C62X
, 0,
134 OP2(ORXREG1
, OWREG1
),
135 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
137 INSN(abs
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
138 FIX3(FIX(op
, 0x38), FIX(x
, 0), FIX(src1
, 0)),
139 OP2(ORREGL1
, OWREGL1
),
140 ENC3(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(dst
, reg
, 1)))
142 INSN(abs2
, l
, unary
, 1cycle
, C64X
, 0,
144 OP2(ORXREG1
, OWREG1
),
145 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
148 INSN(absdp
, s
, 1_or_2_src
, 2cycle_dp
, C67X
, TIC6X_FLAG_NO_CROSS
,
149 FIX2(FIX(op
, 0x2c), FIX(x
, 0)),
150 OP2(ORREGD1
, OWREGD12
),
151 ENC4(ENC(s
, fu
, 0), ENC(src2
, regpair_msb
, 0), ENC(src1
, regpair_lsb
, 0),
154 INSN(abssp
, s
, unary
, 1cycle
, C67X
, 0,
156 OP2(ORXREG1
, OWREG1
),
157 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
160 INSNE(add
, l_si_xsi_si
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
162 OP3(ORREG1
, ORXREG1
, OWREG1
),
163 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
164 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
165 INSNE(add
, l_si_xsi_sl
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
167 OP3(ORREG1
, ORXREG1
, OWREGL1
),
168 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
169 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
170 INSNE(add
, l_xsi_sl_sl
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
172 OP3(ORXREG1
, ORREGL1
, OWREGL1
),
173 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
174 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
175 INSNE(add
, l_s5_xsi_si
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
177 OP3(OACST
, ORXREG1
, OWREG1
),
178 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
179 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
180 INSNE(add
, l_s5_sl_sl
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
181 FIX2(FIX(op
, 0x20), FIX(x
, 0)),
182 OP3(OACST
, ORREGL1
, OWREGL1
),
183 ENC4(ENC(s
, fu
, 0), ENC(src1
, scst
, 0), ENC(src2
, reg
, 1),
185 INSNE(add
, s_si_xsi_si
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
187 OP3(ORREG1
, ORXREG1
, OWREG1
),
188 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
189 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
190 INSNE(add
, s_s5_xsi_si
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
192 OP3(OACST
, ORXREG1
, OWREG1
),
193 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
194 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
195 INSNE(add
, d_si_si_si
, d
, 1_or_2_src
, 1cycle
, C62X
,
196 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
198 OP3(ORREG1
, ORREG1
, OWREG1
),
199 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
201 INSNE(add
, d_si_u5_si
, d
, 1_or_2_src
, 1cycle
, C62X
,
202 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
204 OP3(ORREG1
, OACST
, OWREG1
),
205 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
207 INSNE(add
, d_si_xsi_si
, d
, ext_1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_PREFER(0),
209 OP3(ORREG1
, ORXREG1
, OWREG1
),
210 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
211 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
212 INSNE(add
, d_xsi_s5_si
, d
, ext_1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_PREFER(0),
214 OP3(ORXREG1
, OACST
, OWREG1
),
215 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
216 ENC(src1
, scst
, 1), ENC(dst
, reg
, 2)))
219 INSN(add
, l
, l3_sat_0
, 1cycle
, C64XP
, 0,
221 OP3(ORREG1
, ORXREG1
, OWREG1
),
222 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
223 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
224 INSN(add
, l
, l3i
, 1cycle
, C64XP
, 0,
226 OP3(OACST
, ORXREG1
, OWREG1
),
227 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(cst
, scst_l3i
, 0),
228 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
229 INSN(add
, l
, lx1
, 1cycle
, C64XP
,
232 OP3(OHWCSTM1
, ORREG1
, OWREG1
),
233 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 1), ENC(srcdst
, reg
, 2)))
234 INSN(add
, s
, s3_sat_0
, 1cycle
, C64XP
, 0,
236 OP3(ORREG1
, ORXREG1
, OWREG1
),
237 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
238 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
239 INSN(add
, s
, sx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
241 OP3(OHWCSTM1
, ORREG1
, OWREG1
),
242 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 1), ENC(srcdst
, reg
, 2)))
243 INSN(add
, s
, sx2op
, 1cycle
, C64XP
, 0,
245 OP3(ORREG1
, ORXREG1
, OWREG1
),
246 ENC5(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(srcdst
, reg
, 2),
247 ENC(src2
, reg
, 1), ENC(x
, xpath
, 1)))
248 INSN(add
, d
, dx2op
, 1cycle
, C64XP
, 0,
250 OP3(ORREG1
, ORXREG1
, OWREG1
),
251 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 1), ENC(srcdst
, reg
, 0),
252 ENC(src2
, reg
, 1), ENC(srcdst
, reg
, 2)))
253 INSNU(add
, l
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
254 FIX2(FIX(op
, 0x5), FIX(unit
, 0x0)),
255 OP3(ORREG1
, OHWCST1
, OWREG1
),
256 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(srcdst
, reg
, 2)))
257 INSNU(add
, s
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
258 FIX2(FIX(op
, 0x5), FIX(unit
, 0x1)),
259 OP3(ORREG1
, OHWCST1
, OWREG1
),
260 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(srcdst
, reg
, 2)))
261 INSNU(add
, d
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
262 FIX2(FIX(op
, 0x5), FIX(unit
, 0x2)),
263 OP3(ORREG1
, OHWCST1
, OWREG1
),
264 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(srcdst
, reg
, 2)))
267 INSNE(addab
, d_si_si_si
, d
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
269 OP3(ORREG1
, ORREG1
, OWREG1
),
270 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
272 INSNE(addab
, d_si_u5_si
, d
, 1_or_2_src
, 1cycle
, C62X
,
273 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
275 OP3(ORREG1
, OACST
, OWREG1
),
276 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
278 INSN(addab
, d
, adda_long
, 1cycle
, C64XP
, TIC6X_FLAG_PREFER(0),
280 OP3(ORAREG1
, OLCST
, OWREG1
),
281 ENC4(ENC(s
, fu
, 0), ENC(y
, areg
, 0), ENC(offsetR
, ulcst_dpr_byte
, 1),
284 INSNE(addad
, d_si_si_si
, d
, 1_or_2_src
, 1cycle
, C64X_AND_C67X
,
287 OP3(ORREG1
, ORREG1
, OWREG1
),
288 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
290 INSNE(addad
, d_si_u5_si
, d
, 1_or_2_src
, 1cycle
, C64X_AND_C67X
,
293 OP3(ORREG1
, OACST
, OWREG1
),
294 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
297 INSNE(addah
, d_si_si_si
, d
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
299 OP3(ORREG1
, ORREG1
, OWREG1
),
300 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
302 INSNE(addah
, d_si_u5_si
, d
, 1_or_2_src
, 1cycle
, C62X
,
303 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
305 OP3(ORREG1
, OACST
, OWREG1
),
306 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
308 INSN(addah
, d
, adda_long
, 1cycle
, C64XP
, TIC6X_FLAG_PREFER(0),
310 OP3(ORAREG1
, OLCST
, OWREG1
),
311 ENC4(ENC(s
, fu
, 0), ENC(y
, areg
, 0), ENC(offsetR
, ulcst_dpr_half
, 1),
314 INSNE(addaw
, d_si_si_si
, d
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
316 OP3(ORREG1
, ORREG1
, OWREG1
),
317 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
319 INSNE(addaw
, d_si_u5_si
, d
, 1_or_2_src
, 1cycle
, C62X
,
320 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
322 OP3(ORREG1
, OACST
, OWREG1
),
323 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
325 INSN(addaw
, d
, adda_long
, 1cycle
, C64XP
, TIC6X_FLAG_PREFER(0),
327 OP3(ORAREG1
, OLCST
, OWREG1
),
328 ENC4(ENC(s
, fu
, 0), ENC(y
, areg
, 0), ENC(offsetR
, ulcst_dpr_word
, 1),
332 INSN(addaw
, d
, dx5
, 1cycle
, C64XP
, TIC6X_FLAG_INSN16_BSIDE
,
334 OP3(ORB15REG1
, OACST
, OWREG1
),
335 ENC3(ENC(s
, fu
, 0), ENC(cst
, ucst
, 1), ENC(dst
, reg
, 2)))
336 INSN(addaw
, d
, dx5p
, 1cycle
, C64XP
, TIC6X_FLAG_INSN16_BSIDE
,
338 OP3(ORB15REG1
, OACST
, OWB15REG1
),
339 ENC2(ENC(s
, fu
, 0), ENC(cst
, ucst
, 1)))
342 INSN(adddp
, l
, 1_or_2_src
, addsubdp
, C67X
, 0,
344 OP3(ORREGD12
, ORXREGD12
, OWREGD67
),
345 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
346 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
347 INSN(adddp
, s
, l_1_or_2_src
, addsubdp
, C67XP
, 0,
349 OP3(ORREGD12
, ORXREGD12
, OWREGD67
),
350 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
351 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
353 INSN(addk
, s
, addk
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
356 ENC3(ENC(s
, fu
, 0), ENC(cst
, scst
, 0), ENC(dst
, reg
, 1)))
359 INSN(addk
, s
, sx5
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
362 ENC3(ENC(s
, fu
, 0), ENC(cst
, ucst
, 0), ENC(dst
, reg
, 1)))
365 INSN(addkpc
, s
, addkpc
, 1cycle
, C64X
,
366 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MCNOP
|TIC6X_FLAG_SIDE_B_ONLY
,
368 OP3(OLCST
, OWREG1
, OACST
),
369 ENC3(ENC(src1
, pcrel
, 0), ENC(dst
, reg
, 1), ENC(src2
, ucst
, 2)))
371 INSN(addsp
, l
, 1_or_2_src
, 4cycle
, C67X
, 0,
373 OP3(ORREG1
, ORXREG1
, OWREG4
),
374 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
375 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
376 INSN(addsp
, s
, l_1_or_2_src
, 4cycle
, C67XP
, 0,
378 OP3(ORREG1
, ORXREG1
, OWREG4
),
379 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
380 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
382 INSN(addsub
, l
, 1_or_2_src_noncond
, 1cycle
, C64XP
, 0,
384 OP3(ORREG1
, ORXREG1
, OWREGD1
),
385 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
386 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
388 INSN(addsub2
, l
, 1_or_2_src_noncond
, 1cycle
, C64XP
, 0,
390 OP3(ORREG1
, ORXREG1
, OWREGD1
),
391 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
392 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
394 INSNE(addu
, l_ui_xui_ul
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
396 OP3(ORREG1
, ORXREG1
, OWREGL1
),
397 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
398 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
399 INSNE(addu
, l_xui_ul_ul
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
401 OP3(ORXREG1
, ORREGL1
, OWREGL1
),
402 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
403 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
405 INSN(add2
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
407 OP3(ORREG1
, ORXREG1
, OWREG1
),
408 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
409 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
410 INSN(add2
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
412 OP3(ORREG1
, ORXREG1
, OWREG1
),
413 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
414 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
415 INSN(add2
, d
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
417 OP3(ORREG1
, ORXREG1
, OWREG1
),
418 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
419 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
421 INSN(add4
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
423 OP3(ORREG1
, ORXREG1
, OWREG1
),
424 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
425 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
427 INSNE(and, l_ui_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
429 OP3(ORREG1
, ORXREG1
, OWREG1
),
430 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
431 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
432 INSNE(and, l_s5_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
434 OP3(OACST
, ORXREG1
, OWREG1
),
435 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
436 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
437 INSNE(and, s_ui_xui_ui
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
439 OP3(ORREG1
, ORXREG1
, OWREG1
),
440 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
441 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
442 INSNE(and, s_s5_xui_ui
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
444 OP3(OACST
, ORXREG1
, OWREG1
),
445 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
446 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
447 INSNE(and, d_ui_xui_ui
, d
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
449 OP3(ORREG1
, ORXREG1
, OWREG1
),
450 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
451 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
452 INSNE(and, d_s5_xui_ui
, d
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
454 OP3(OACST
, ORXREG1
, OWREG1
),
455 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
456 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
459 INSN(and, l
, l2c
, 1cycle
, C64XP
, 0,
461 OP3(ORREG1
, ORXREG1
, OWREG1NORS
),
462 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
463 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
466 INSN(andn
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
468 OP3(ORREG1
, ORXREG1
, OWREG1
),
469 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
470 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
471 INSN(andn
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
473 OP3(ORREG1
, ORXREG1
, OWREG1
),
474 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
475 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
476 INSN(andn
, d
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
478 OP3(ORREG1
, ORXREG1
, OWREG1
),
479 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
480 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
482 INSN(avg2
, m
, compound
, 1616_m
, C64X
, 0,
484 OP3(ORREG1
, ORXREG1
, OWREG2
),
485 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
486 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
488 INSN(avgu4
, m
, compound
, 1616_m
, C64X
, 0,
490 OP3(ORREG1
, ORXREG1
, OWREG2
),
491 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
492 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
494 INSN(b
, s
, ext_branch_cond_imm
, branch
, C62X
, TIC6X_FLAG_NO_CROSS
,
497 ENC2(ENC(s
, fu
, 0), ENC(cst
, pcrel
, 0)))
498 INSN(b
, s
, branch
, branch
, C62X
, TIC6X_FLAG_SIDE_B_ONLY
,
501 ENC2(ENC(x
, xpath
, 0), ENC(src2
, reg
, 0)))
502 INSN(b
, s
, b_irp
, branch
, C62X
, TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
,
503 FIX3(FIX(s
, 1), FIX(x
, 0), FIX(dst
, 0)),
506 INSN(b
, s
, b_nrp
, branch
, C62X
, TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
,
507 FIX3(FIX(s
, 1), FIX(x
, 0), FIX(dst
, 0)),
511 INSN(bdec
, s
, bdec
, branch
, C64X
, TIC6X_FLAG_NO_CROSS
,
514 ENC3(ENC(s
, fu
, 0), ENC(src
, pcrel
, 0), ENC(dst
, reg
, 1)))
516 INSN(bitc4
, m
, unary
, 1616_m
, C64X
, 0,
518 OP2(ORXREG1
, OWREG2
),
519 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
522 INSN(bitr
, m
, unary
, 1616_m
, C64X
, 0,
524 OP2(ORXREG1
, OWREG2
),
525 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
528 INSN(bnop
, s
, branch_nop_cst
, branch
, C64X
,
529 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MCNOP
,
532 ENC3(ENC(s
, fu
, 0), ENC(src2
, pcrel_half
, 0), ENC(src1
, ucst
, 1)))
533 INSN(bnop
, nfu
, s_branch_nop_cst
, branch
, C64XP
,
534 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_MCNOP
,
537 ENC2(ENC(src2
, pcrel
, 0), ENC(src1
, ucst
, 1)))
538 INSN(bnop
, s
, branch_nop_reg
, branch
, C64X
,
539 TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MCNOP
,
542 ENC3(ENC(x
, xpath
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1)))
544 /* 16 bits insn format */
545 INSN(bnop
, s
, sbu8
, branch
, C64XP
,
546 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MCNOP
,
549 ENC2(ENC(s
, fu
, 0), ENC(cst
, pcrel_half_unsigned
, 0)))
550 INSN(bnop
, s
, sbs7
, branch
, C64XP
,
551 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MCNOP
,
554 ENC3(ENC(s
, fu
, 0), ENC(cst
, pcrel_half
, 0), ENC(n
, ucst
, 1)))
555 INSN(bnop
, s
, sbu8c
, branch
, C64XP
,
556 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MCNOP
|TIC6X_FLAG_INSN16_SPRED
,
559 ENC2(ENC(s
, fu
, 0), ENC(cst
, pcrel_half_unsigned
, 0)))
560 INSN(bnop
, s
, sbs7c
, branch
, C64XP
,
561 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MCNOP
|TIC6X_FLAG_INSN16_SPRED
,
564 ENC3(ENC(s
, fu
, 0), ENC(cst
, pcrel_half
, 0), ENC(n
, ucst
, 1)))
565 INSN(bnop
, s
, sx1b
, branch
, C64XP
,
566 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MCNOP
,
568 OP2(ORREG1BNORS
, OACST
),
569 ENC3(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(n
, ucst
, 1)))
572 INSN(bpos
, s
, bpos
, branch
, C64X
, TIC6X_FLAG_NO_CROSS
,
575 ENC3(ENC(s
, fu
, 0), ENC(src
, pcrel
, 0), ENC(dst
, reg
, 1)))
577 INSN(call
, s
, ext_branch_cond_imm
, branch
, C62X
,
578 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_CALL
,
581 ENC2(ENC(s
, fu
, 0), ENC(cst
, pcrel
, 0)))
582 INSN(call
, s
, branch
, branch
, C62X
,
583 TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_CALL
,
586 ENC2(ENC(x
, xpath
, 0), ENC(src2
, reg
, 0)))
587 INSN(call
, s
, b_irp
, branch
, C62X
,
588 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_CALL
,
589 FIX3(FIX(s
, 1), FIX(x
, 0), FIX(dst
, 0)),
592 INSN(call
, s
, b_nrp
, branch
, C62X
,
593 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_CALL
,
594 FIX3(FIX(s
, 1), FIX(x
, 0), FIX(dst
, 0)),
598 INSN(callnop
, s
, branch_nop_cst
, branch
, C64X
,
599 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_MCNOP
|TIC6X_FLAG_CALL
,
602 ENC3(ENC(s
, fu
, 0), ENC(src2
, pcrel
, 0), ENC(src1
, ucst
, 1)))
603 INSN(callnop
, nfu
, s_branch_nop_cst
, branch
, C64XP
,
604 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_MCNOP
|TIC6X_FLAG_CALL
,
607 ENC2(ENC(src2
, pcrel
, 0), ENC(src1
, ucst
, 1)))
608 INSN(callnop
, s
, branch_nop_reg
, branch
, C64X
,
609 TIC6X_FLAG_MACRO
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MCNOP
|TIC6X_FLAG_CALL
,
612 ENC3(ENC(x
, xpath
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1)))
615 INSN(callp
, s
, call_imm_nop
, branch
, C64XP
,
616 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MCNOP
,
618 OP2(OLCST
, OWRETREG1
),
619 ENC2(ENC(s
, fu
, 0), ENC(cst
, pcrel
, 0)))
621 /* 16 bits insn format */
622 INSN(callp
, s
, scs10
, branch
, C64XP
,
623 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MCNOP
,
625 OP2(OLCST
, OWRETREG1
),
626 ENC2(ENC(s
, fu
, 0), ENC(cst
, pcrel
, 0)))
629 INSN(callret
, s
, ext_branch_cond_imm
, branch
, C62X
,
630 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_CALL
|TIC6X_FLAG_RETURN
,
633 ENC2(ENC(s
, fu
, 0), ENC(cst
, pcrel
, 0)))
634 INSN(callret
, s
, branch
, branch
, C62X
,
635 TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_CALL
|TIC6X_FLAG_RETURN
,
638 ENC2(ENC(x
, xpath
, 0), ENC(src2
, reg
, 0)))
639 INSN(callret
, s
, b_irp
, branch
, C62X
,
640 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_CALL
|TIC6X_FLAG_RETURN
,
641 FIX3(FIX(s
, 1), FIX(x
, 0), FIX(dst
, 0)),
644 INSN(callret
, s
, b_nrp
, branch
, C62X
,
645 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_CALL
|TIC6X_FLAG_RETURN
,
646 FIX3(FIX(s
, 1), FIX(x
, 0), FIX(dst
, 0)),
650 INSN(clr
, s
, field
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
652 OP4(ORREG1
, OACST
, OACST
, OWREG1
),
653 ENC5(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(csta
, ucst
, 1),
654 ENC(cstb
, ucst
, 2), ENC(dst
, reg
, 3)))
655 INSN(clr
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
657 OP3(ORXREG1
, ORREG1
, OWREG1
),
658 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
659 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
662 INSN(clr
, s
, sc5
, 1cycle
, C64XP
, 0,
664 OP4(ORREG1
, OACST
, OACST
, OWREG1
),
665 ENC5(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(cst
, ucst
, 1),
666 ENC(cst
, ucst
, 2), ENC(srcdst
, reg
, 3)))
669 INSNE(cmpeq
, l_si_xsi_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
671 OP3(ORREG1
, ORXREG1
, OWREG1
),
672 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
673 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
674 INSNE(cmpeq
, l_s5_xsi_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
676 OP3(OACST
, ORXREG1
, OWREG1
),
677 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
678 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
679 INSNE(cmpeq
, l_xsi_sl_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
681 OP3(ORXREG1
, ORREGL1
, OWREG1
),
682 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
683 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
684 INSNE(cmpeq
, l_s5_sl_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
685 FIX2(FIX(op
, 0x50), FIX(x
, 0)),
686 OP3(OACST
, ORREGL1
, OWREG1
),
687 ENC4(ENC(s
, fu
, 0), ENC(src1
, scst
, 0), ENC(src2
, reg
, 1),
691 INSN(cmpeq
, l
, lx3c
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
693 OP3(OACST
, ORXREG1
, OWREG1
),
694 ENC4(ENC(s
, fu
, 0), ENC(cst
, ucst
, 0), ENC(src2
, reg
, 1),
697 INSN(cmpeq
, l
, l2c
, 1cycle
, C64XP
, 0,
699 OP3(ORREG1
, ORXREG1
, OWREG1NORS
),
700 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
701 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
704 INSN(cmpeq2
, s
, 1_or_2_src
, 1cycle
, C64X
, 0,
706 OP3(ORREG1
, ORXREG1
, OWREG1
),
707 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
708 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
710 INSN(cmpeq4
, s
, 1_or_2_src
, 1cycle
, C64X
, 0,
712 OP3(ORREG1
, ORXREG1
, OWREG1
),
713 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
714 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
716 INSN(cmpeqdp
, s
, 1_or_2_src
, dpcmp
, C67X
, 0,
718 OP3(ORREGD12
, ORXREGD12
, OWREG2
),
719 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
720 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
722 INSN(cmpeqsp
, s
, 1_or_2_src
, 1cycle
, C67X
, 0,
724 OP3(ORREG1
, ORXREG1
, OWREG1
),
725 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
726 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
728 INSNE(cmpgt
, l_si_xsi_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(1),
730 OP3(ORREG1
, ORXREG1
, OWREG1
),
731 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
732 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
733 INSNE(cmpgt
, l_s5_xsi_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
735 OP3(OACST
, ORXREG1
, OWREG1
),
736 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
737 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
738 INSNE(cmpgt
, l_xsi_sl_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
740 OP3(ORXREG1
, ORREGL1
, OWREG1
),
741 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
742 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
743 INSNE(cmpgt
, l_s5_sl_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
744 FIX2(FIX(op
, 0x44), FIX(x
, 0)),
745 OP3(OACST
, ORREGL1
, OWREG1
),
746 ENC4(ENC(s
, fu
, 0), ENC(src1
, scst
, 0), ENC(src2
, reg
, 1),
748 INSNE(cmpgt
, l_xsi_si_ui
, l
, 1_or_2_src
, 1cycle
, C62X
,
749 TIC6X_FLAG_MACRO
|TIC6X_FLAG_PREFER(0),
751 OP3(ORXREG1
, ORREG1
, OWREG1
),
752 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 1),
753 ENC(src2
, reg
, 0), ENC(dst
, reg
, 2)))
754 INSNE(cmpgt
, l_xsi_s5_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
756 OP3(ORXREG1
, OACST
, OWREG1
),
757 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 1),
758 ENC(src2
, reg
, 0), ENC(dst
, reg
, 2)))
759 INSNE(cmpgt
, l_sl_xsi_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
761 OP3(ORREGL1
, ORXREG1
, OWREG1
),
762 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 1),
763 ENC(src2
, reg
, 0), ENC(dst
, reg
, 2)))
764 INSNE(cmpgt
, l_sl_s5_ui
, l
, 1_or_2_src
, 1cycle
, C62X
,
765 TIC6X_FLAG_MACRO
|TIC6X_FLAG_NO_CROSS
,
766 FIX2(FIX(op
, 0x54), FIX(x
, 0)),
767 OP3(ORREGL1
, OACST
, OWREG1
),
768 ENC4(ENC(s
, fu
, 0), ENC(src1
, scst
, 1), ENC(src2
, reg
, 0),
772 INSN(cmpgt
, l
, lx1c
, 1cycle
, C64XP
, 0,
774 OP3(OACST
, ORREG1
, OWREG1
),
775 ENC4(ENC(s
, fu
, 0), ENC(cst
, ucst
, 0), ENC(src2
, reg
, 1),
777 INSN(cmpgt
, l
, l2c
, 1cycle
, C64XP
, 0,
779 OP3(ORREG1
, ORXREG1
, OWREG1NORS
),
780 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
781 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
784 INSN(cmpgt2
, s
, 1_or_2_src
, 1cycle
, C64X
, 0,
786 OP3(ORREG1
, ORXREG1
, OWREG1
),
787 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
788 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
790 INSN(cmpgtdp
, s
, 1_or_2_src
, dpcmp
, C67X
, 0,
792 OP3(ORREGD12
, ORXREGD12
, OWREG2
),
793 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
794 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
796 INSN(cmpgtsp
, s
, 1_or_2_src
, 1cycle
, C67X
, 0,
798 OP3(ORREG1
, ORXREG1
, OWREG1
),
799 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
800 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
802 INSNE(cmpgtu
, l_ui_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
804 OP3(ORREG1
, ORXREG1
, OWREG1
),
805 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
806 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
807 INSNE(cmpgtu
, l_u4_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(1),
808 FIX2(FIX(op
, 0x4e), RAN(src1
, 0, 15)),
809 OP3(OACST
, ORXREG1
, OWREG1
),
810 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, ucst
, 0),
811 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
812 /* Although not mentioned in SPRUFE8, CMPGTU and CMPLTU support a
813 5-bit unsigned constant operand on C64X and above. */
814 INSNE(cmpgtu
, l_u5_xui_ui
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
815 FIX2(FIX(op
, 0x4e), RAN(src1
, 16, 31)),
816 OP3(OACST
, ORXREG1
, OWREG1
),
817 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, ucst
, 0),
818 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
819 INSNE(cmpgtu
, l_xui_ul_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
821 OP3(ORXREG1
, ORREGL1
, OWREG1
),
822 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
823 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
824 INSNE(cmpgtu
, l_u4_ul_ui
, l
, 1_or_2_src
, 1cycle
, C62X
,
825 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
826 FIX3(FIX(op
, 0x4c), FIX(x
, 0), RAN(src1
, 0, 15)),
827 OP3(OACST
, ORREGL1
, OWREG1
),
828 ENC4(ENC(s
, fu
, 0), ENC(src1
, ucst
, 0), ENC(src2
, reg
, 1),
830 INSNE(cmpgtu
, l_u5_ul_ui
, l
, 1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_NO_CROSS
,
831 FIX3(FIX(op
, 0x4c), FIX(x
, 0), RAN(src1
, 16, 31)),
832 OP3(OACST
, ORREGL1
, OWREG1
),
833 ENC4(ENC(s
, fu
, 0), ENC(src1
, ucst
, 0), ENC(src2
, reg
, 1),
837 INSN(cmpgtu
, l
, lx1c
, 1cycle
, C64XP
, 0,
839 OP3(OACST
, ORREG1
, OWREG1
),
840 ENC4(ENC(s
, fu
, 0), ENC(cst
, ucst
, 0), ENC(src2
, reg
, 1),
842 INSN(cmpgtu
, l
, l2c
, 1cycle
, C64XP
, 0,
844 OP3(ORREG1
, ORXREG1
, OWREG1NORS
),
845 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
846 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
849 INSN(cmpgtu4
, s
, 1_or_2_src
, 1cycle
, C64X
, 0,
851 OP3(ORREG1
, ORXREG1
, OWREG1
),
852 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
853 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
855 INSNE(cmplt
, l_si_xsi_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(1),
857 OP3(ORREG1
, ORXREG1
, OWREG1
),
858 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
859 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
860 INSNE(cmplt
, l_s5_xsi_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
862 OP3(OACST
, ORXREG1
, OWREG1
),
863 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
864 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
865 INSNE(cmplt
, l_xsi_sl_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
867 OP3(ORXREG1
, ORREGL1
, OWREG1
),
868 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
869 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
870 INSNE(cmplt
, l_s5_sl_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
871 FIX2(FIX(op
, 0x54), FIX(x
, 0)),
872 OP3(OACST
, ORREGL1
, OWREG1
),
873 ENC4(ENC(s
, fu
, 0), ENC(src1
, scst
, 0), ENC(src2
, reg
, 1),
875 INSNE(cmplt
, l_xsi_si_ui
, l
, 1_or_2_src
, 1cycle
, C62X
,
876 TIC6X_FLAG_MACRO
|TIC6X_FLAG_PREFER(0),
878 OP3(ORXREG1
, ORREG1
, OWREG1
),
879 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 1),
880 ENC(src2
, reg
, 0), ENC(dst
, reg
, 2)))
881 INSNE(cmplt
, l_xsi_s5_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
883 OP3(ORXREG1
, OACST
, OWREG1
),
884 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 1),
885 ENC(src2
, reg
, 0), ENC(dst
, reg
, 2)))
886 INSNE(cmplt
, l_sl_xsi_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
888 OP3(ORREGL1
, ORXREG1
, OWREG1
),
889 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 1),
890 ENC(src2
, reg
, 0), ENC(dst
, reg
, 2)))
891 INSNE(cmplt
, l_sl_s5_ui
, l
, 1_or_2_src
, 1cycle
, C62X
,
892 TIC6X_FLAG_MACRO
|TIC6X_FLAG_NO_CROSS
,
893 FIX2(FIX(op
, 0x44), FIX(x
, 0)),
894 OP3(ORREGL1
, OACST
, OWREG1
),
895 ENC4(ENC(s
, fu
, 0), ENC(src1
, scst
, 1), ENC(src2
, reg
, 0),
899 INSN(cmplt
, l
, lx1c
, 1cycle
, C64XP
, 0,
901 OP3(OACST
, ORREG1
, OWREG1
),
902 ENC4(ENC(s
, fu
, 0), ENC(cst
, ucst
, 0), ENC(src2
, reg
, 1),
904 INSN(cmplt
, l
, l2c
, 1cycle
, C64XP
, 0,
906 OP3(ORREG1
, ORXREG1
, OWREG1NORS
),
907 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
908 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
911 INSN(cmplt2
, s
, 1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_MACRO
,
913 OP3(ORXREG1
, ORREG1
, OWREG1
),
914 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
915 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
917 INSN(cmpltdp
, s
, 1_or_2_src
, dpcmp
, C67X
, 0,
919 OP3(ORREGD12
, ORXREGD12
, OWREG2
),
920 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
921 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
923 INSN(cmpltsp
, s
, 1_or_2_src
, 1cycle
, C67X
, 0,
925 OP3(ORREG1
, ORXREG1
, OWREG1
),
926 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
927 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
929 INSNE(cmpltu
, l_ui_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
931 OP3(ORREG1
, ORXREG1
, OWREG1
),
932 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
933 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
934 INSNE(cmpltu
, l_u4_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(1),
935 FIX2(FIX(op
, 0x5e), RAN(src1
, 0, 15)),
936 OP3(OACST
, ORXREG1
, OWREG1
),
937 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, ucst
, 0),
938 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
939 INSNE(cmpltu
, l_u5_xui_ui
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
940 FIX2(FIX(op
, 0x5e), RAN(src1
, 16, 31)),
941 OP3(OACST
, ORXREG1
, OWREG1
),
942 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, ucst
, 0),
943 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
944 INSNE(cmpltu
, l_xui_ul_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
946 OP3(ORXREG1
, ORREGL1
, OWREG1
),
947 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
948 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
949 INSNE(cmpltu
, l_u4_ul_ui
, l
, 1_or_2_src
, 1cycle
, C62X
,
950 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
951 FIX3(FIX(op
, 0x5c), FIX(x
, 0), RAN(src1
, 0, 15)),
952 OP3(OACST
, ORREGL1
, OWREG1
),
953 ENC4(ENC(s
, fu
, 0), ENC(src1
, ucst
, 0), ENC(src2
, reg
, 1),
955 INSNE(cmpltu
, l_u5_ul_ui
, l
, 1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_NO_CROSS
,
956 FIX3(FIX(op
, 0x5c), FIX(x
, 0), RAN(src1
, 16, 31)),
957 OP3(OACST
, ORREGL1
, OWREG1
),
958 ENC4(ENC(s
, fu
, 0), ENC(src1
, ucst
, 0), ENC(src2
, reg
, 1),
962 INSN(cmpltu
, l
, lx1c
, 1cycle
, C64XP
, 0,
964 OP3(OACST
, ORREG1
, OWREG1
),
965 ENC4(ENC(s
, fu
, 0), ENC(cst
, ucst
, 0), ENC(src2
, reg
, 1),
967 INSN(cmpltu
, l
, l2c
, 1cycle
, C64XP
, 0,
969 OP3(ORREG1
, ORXREG1
, OWREG1NORS
),
970 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
971 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
974 INSN(cmpltu4
, s
, 1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_MACRO
,
976 OP3(ORXREG1
, ORREG1
, OWREG1
),
977 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
978 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
980 INSN(cmpy
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
982 OP3(ORREG1
, ORXREG1
, OWREGD4
),
983 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
984 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
986 INSN(cmpyr
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
988 OP3(ORREG1
, ORXREG1
, OWREG4
),
989 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
990 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
992 INSN(cmpyr1
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
994 OP3(ORREG1
, ORXREG1
, OWREG4
),
995 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
996 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
998 INSN(cmtl
, d
, 1_or_2_src
, load
, C64XP
,
999 TIC6X_FLAG_LOAD
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_SIDE_T2_ONLY
|TIC6X_FLAG_NO_CROSS
,
1000 FIX3(FIX(s
, 1), FIX(op
, 0xe), FIX(src1
, 0)),
1001 OP2(ORMEMDW
, OWDREG5
),
1002 ENC2(ENC(src2
, reg
, 0), ENC(dst
, reg
, 1)))
1004 INSN(ddotp4
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
1005 FIX1(FIX(op
, 0x18)),
1006 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1007 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1008 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1010 INSN(ddotph2
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
1011 FIX1(FIX(op
, 0x17)),
1012 OP3(ORREGD1
, ORXREG1
, OWREGD4
),
1013 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1014 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1016 INSN(ddotph2r
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
1017 FIX1(FIX(op
, 0x15)),
1018 OP3(ORREGD1
, ORXREG1
, OWREG4
),
1019 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1020 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1022 INSN(ddotpl2
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
1023 FIX1(FIX(op
, 0x16)),
1024 OP3(ORREGD1
, ORXREG1
, OWREGD4
),
1025 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1026 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1028 INSN(ddotpl2r
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
1029 FIX1(FIX(op
, 0x14)),
1030 OP3(ORREGD1
, ORXREG1
, OWREG4
),
1031 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1032 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1034 INSN(deal
, m
, unary
, 1616_m
, C64X
, 0,
1035 FIX1(FIX(op
, 0x1d)),
1036 OP2(ORXREG1
, OWREG2
),
1037 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1040 INSN(dint
, nfu
, dint
, 1cycle
, C64XP
, 0,
1045 INSN(dmv
, s
, ext_1_or_2_src
, 1cycle
, C64XP
, 0,
1047 OP3(ORREG1
, ORXREG1
, OWREGD1
),
1048 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1049 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1051 INSNE(dotp2
, m_s2_xs2_si
, m
, compound
, 4cycle
, C64X
, 0,
1053 OP3(ORREG1
, ORXREG1
, OWREG4
),
1054 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1055 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1056 INSNE(dotp2
, m_s2_xs2_sll
, m
, compound
, 4cycle
, C64X
, 0,
1058 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1059 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1060 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1062 INSN(dotpn2
, m
, compound
, 4cycle
, C64X
, 0,
1064 OP3(ORREG1
, ORXREG1
, OWREG4
),
1065 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1066 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1068 INSN(dotpnrsu2
, m
, compound
, 4cycle
, C64X
, 0,
1070 OP3(ORREG1
, ORXREG1
, OWREG4
),
1071 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1072 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1074 INSN(dotpnrus2
, m
, compound
, 4cycle
, C64X
, TIC6X_FLAG_MACRO
,
1076 OP3(ORXREG1
, ORREG1
, OWREG4
),
1077 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1078 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
1080 INSN(dotprsu2
, m
, compound
, 4cycle
, C64X
, 0,
1082 OP3(ORREG1
, ORXREG1
, OWREG4
),
1083 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1084 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1086 INSN(dotprus2
, m
, compound
, 4cycle
, C64X
, TIC6X_FLAG_MACRO
,
1088 OP3(ORXREG1
, ORREG1
, OWREG4
),
1089 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1090 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
1092 INSN(dotpsu4
, m
, compound
, 4cycle
, C64X
, 0,
1094 OP3(ORREG1
, ORXREG1
, OWREG4
),
1095 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1096 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1098 INSN(dotpus4
, m
, compound
, 4cycle
, C64X
, TIC6X_FLAG_MACRO
,
1100 OP3(ORXREG1
, ORREG1
, OWREG4
),
1101 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1102 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
1104 INSN(dotpu4
, m
, compound
, 4cycle
, C64X
, 0,
1106 OP3(ORREG1
, ORXREG1
, OWREG4
),
1107 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1108 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1110 INSN(dpack2
, l
, 1_or_2_src_noncond
, 1cycle
, C64XP
, 0,
1111 FIX1(FIX(op
, 0x34)),
1112 OP3(ORREG1
, ORXREG1
, OWREGD1
),
1113 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1114 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1116 INSN(dpackx2
, l
, 1_or_2_src_noncond
, 1cycle
, C64XP
, 0,
1117 FIX1(FIX(op
, 0x33)),
1118 OP3(ORREG1
, ORXREG1
, OWREGD1
),
1119 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1120 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1122 INSN(dpint
, l
, 1_or_2_src
, 4cycle
, C67X
, TIC6X_FLAG_NO_CROSS
,
1123 FIX2(FIX(op
, 0x8), FIX(x
, 0)),
1124 OP2(ORREGD1
, OWREG4
),
1125 ENC4(ENC(s
, fu
, 0), ENC(src2
, regpair_msb
, 0), ENC(src1
, regpair_lsb
, 0),
1128 INSN(dpsp
, l
, 1_or_2_src
, 4cycle
, C67X
, TIC6X_FLAG_NO_CROSS
,
1129 FIX2(FIX(op
, 0x9), FIX(x
, 0)),
1130 OP2(ORREGD1
, OWREG4
),
1131 ENC4(ENC(s
, fu
, 0), ENC(src2
, regpair_msb
, 0), ENC(src1
, regpair_lsb
, 0),
1134 INSN(dptrunc
, l
, 1_or_2_src
, 4cycle
, C67X
, TIC6X_FLAG_NO_CROSS
,
1135 FIX2(FIX(op
, 0x1), FIX(x
, 0)),
1136 OP2(ORREGD1
, OWREG4
),
1137 ENC4(ENC(s
, fu
, 0), ENC(src2
, regpair_msb
, 0), ENC(src1
, regpair_lsb
, 0),
1140 INSN(ext
, s
, field
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
1142 OP4(ORREG1
, OACST
, OACST
, OWREG1
),
1143 ENC5(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(csta
, ucst
, 1),
1144 ENC(cstb
, ucst
, 2), ENC(dst
, reg
, 3)))
1145 INSN(ext
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
1146 FIX1(FIX(op
, 0x2f)),
1147 OP3(ORXREG1
, ORREG1
, OWREG1
),
1148 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1149 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
1152 INSNE(ext
, hwcst16
, s
, s2ext
, 1cycle
, C64XP
, 0,
1154 OP4(ORREG1
, OHWCST16
, OHWCST16
, OWREG1
),
1155 ENC3(ENC(s
, fu
, 0), ENC(src
, reg
, 0), ENC(dst
, reg
, 3)))
1156 INSNE(ext
, hwcst24
, s
, s2ext
, 1cycle
, C64XP
, 0,
1158 OP4(ORREG1
, OHWCST24
, OHWCST24
, OWREG1
),
1159 ENC3(ENC(s
, fu
, 0), ENC(src
, reg
, 0), ENC(dst
, reg
, 3)))
1162 INSN(extu
, s
, field
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
1164 OP4(ORREG1
, OACST
, OACST
, OWREG1
),
1165 ENC5(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(csta
, ucst
, 1),
1166 ENC(cstb
, ucst
, 2), ENC(dst
, reg
, 3)))
1167 INSN(extu
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
1168 FIX1(FIX(op
, 0x2b)),
1169 OP3(ORXREG1
, ORREG1
, OWREG1
),
1170 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1171 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
1174 INSNE(extu
, hwcst16
, s
, s2ext
, 1cycle
, C64XP
, 0,
1176 OP4(ORREG1
, OHWCST16
, OHWCST16
, OWREG1
),
1177 ENC3(ENC(s
, fu
, 0), ENC(src
, reg
, 0), ENC(dst
, reg
, 3)))
1178 INSNE(extu
, hwcst24
, s
, s2ext
, 1cycle
, C64XP
, 0,
1180 OP4(ORREG1
, OHWCST24
, OHWCST24
, OWREG1
),
1181 ENC3(ENC(s
, fu
, 0), ENC(src
, reg
, 0), ENC(dst
, reg
, 3)))
1182 INSN(extu
, s
, sc5
, 1cycle
, C64XP
, 0,
1184 OP4(ORREG1
, OACST
, OHWCST31
, OWREG1Z
),
1185 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(cst
, ucst
, 1)))
1188 INSN(gmpy
, m
, 1_or_2_src
, 4cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
1189 FIX2(FIX(op
, 0x1f), FIX(x
, 0)),
1190 OP3(ORREG1
, ORREG1
, OWREG4
),
1191 ENC4(ENC(s
, fu
, 0), ENC(src1
, reg
, 0), ENC(src2
, reg
, 1),
1194 /* This instruction can be predicated as usual; SPRUFE8 is incorrect
1195 where it shows the "z" field as fixed to 1. */
1196 INSN(gmpy4
, m
, compound
, 4cycle
, C64X
, 0,
1197 FIX1(FIX(op
, 0x11)),
1198 OP3(ORREG1
, ORXREG1
, OWREG4
),
1199 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1200 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1202 INSN(idle
, nfu
, nop_idle
, nop
, C62X
, TIC6X_FLAG_MCNOP
,
1203 FIX2(FIX(s
, 0), FIX(op
, 0xf)),
1207 INSN(intdp
, l
, 1_or_2_src
, intdp
, C67X
, 0,
1208 FIX2(FIX(op
, 0x39), FIX(src1
, 0)),
1209 OP2(ORXREG1
, OWREGD45
),
1210 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1213 INSN(intdpu
, l
, 1_or_2_src
, intdp
, C67X
, 0,
1214 FIX2(FIX(op
, 0x3b), FIX(src1
, 0)),
1215 OP2(ORXREG1
, OWREGD45
),
1216 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1219 INSN(intsp
, l
, 1_or_2_src
, 4cycle
, C67X
, 0,
1220 FIX2(FIX(op
, 0x4a), FIX(src1
, 0)),
1221 OP2(ORXREG1
, OWREG4
),
1222 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1225 INSN(intspu
, l
, 1_or_2_src
, 4cycle
, C67X
, 0,
1226 FIX2(FIX(op
, 0x49), FIX(src1
, 0)),
1227 OP2(ORXREG1
, OWREG4
),
1228 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1231 INSN(ldb
, d
, load_store
, load
, C62X
,
1232 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
1233 FIX2(FIX(op
, 2), FIX(r
, 0)),
1234 OP2(ORMEMSB
, OWDREG5
),
1235 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 0),
1236 ENC(offsetR
, mem_offset
, 0), ENC(baseR
, reg
, 0),
1237 ENC(srcdst
, reg
, 1)))
1238 INSN(ldb
, d
, load_store_long
, load
, C62X
,
1239 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_PREFER(0),
1241 OP2(ORMEMLB
, OWDREG5
),
1242 ENC4(ENC(s
, data_fu
, 0), ENC(y
, areg
, 0), ENC(offsetR
, ulcst_dpr_byte
, 0),
1246 INSN(ldb
, d
, doff4_dsz_x01
, load
, C64XP
,
1247 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
1248 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1249 OP2(ORMEMSB
, OWTREG5
),
1250 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1251 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset
, 0)))
1252 INSN(ldb
, d
, dind_dsz_x01
, load
, C64XP
,
1253 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
1254 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1255 OP2(ORMEMSB
, OWTREG5
),
1256 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1257 ENC(ptr
, reg_ptr
, 0), ENC(src1
, mem_offset
, 0)))
1258 INSN(ldb
, d
, dinc_dsz_x01
, load
, C64XP
,
1259 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
1260 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1261 OP2(ORMEMSB
, OWTREG5
),
1262 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1263 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1264 INSN(ldb
, d
, ddec_dsz_x01
, load
, C64XP
,
1265 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
1266 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1267 OP2(ORMEMSB
, OWTREG5
),
1268 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1269 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1272 INSN(ldbu
, d
, load_store
, load
, C62X
,
1273 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
1274 FIX2(FIX(op
, 1), FIX(r
, 0)),
1275 OP2(ORMEMSB
, OWDREG5
),
1276 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 0),
1277 ENC(offsetR
, mem_offset
, 0), ENC(baseR
, reg
, 0),
1278 ENC(srcdst
, reg
, 1)))
1279 INSN(ldbu
, d
, load_store_long
, load
, C62X
,
1280 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_PREFER(0),
1282 OP2(ORMEMLB
, OWDREG5
),
1283 ENC4(ENC(s
, data_fu
, 0), ENC(y
, areg
, 0), ENC(offsetR
, ulcst_dpr_byte
, 0),
1287 INSN(ldbu
, d
, dinc_dsz_000
, load
, C64XP
,
1288 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
1289 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1290 OP2(ORMEMSB
, OWTREG5
),
1291 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(cst
, mem_offset_minus_one
, 0),
1292 ENC(ptr
, reg_ptr
, 0), ENC(srcdst
, reg
, 1)))
1293 INSN(ldbu
, d
, dind_dsz_000
, load
, C64XP
,
1294 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
1295 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1296 OP2(ORMEMSB
, OWTREG5
),
1297 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(src1
, mem_offset
, 0),
1298 ENC(ptr
, reg_ptr
, 0), ENC(srcdst
, reg
, 1)))
1299 INSN(ldbu
, d
, doff4_dsz_000
, load
, C64XP
,
1300 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
1301 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1302 OP2(ORMEMSB
, OWTREG5
),
1303 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(cst
, mem_offset
, 0),
1304 ENC(ptr
, reg_ptr
, 0), ENC(srcdst
, reg
, 1)))
1305 INSN(ldbu
, d
, ddec_dsz_000
, load
, C64XP
,
1306 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
1307 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1308 OP2(ORMEMSB
, OWTREG5
),
1309 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(cst
, mem_offset_minus_one
, 0),
1310 ENC(ptr
, reg_ptr
, 0), ENC(srcdst
, reg
, 1)))
1313 INSN(lddw
, d
, load_store
, load
, C64X_AND_C67X
,
1314 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
,
1315 FIX2(FIX(op
, 6), FIX(r
, 1)),
1316 OP2(ORMEMSD
, OWDREGD5
),
1317 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 0),
1318 ENC(offsetR
, mem_offset
, 0), ENC(baseR
, reg
, 0),
1319 ENC(srcdst
, reg
, 1)))
1322 INSN(lddw
, d
, dpp
, load
, C64XP
,
1323 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREINCR
)|TIC6X_FLAG_INSN16_B15PTR
|TIC6X_FLAG_INSN16_NORS
,
1324 FIX2(FIX(op
, 1), FIX(dw
, 1)),
1325 OP2(ORMEMSD
, OWDREGD5
),
1326 ENC4(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1327 ENC(cst
, mem_offset_minus_one
, 0)))
1328 INSN(lddw
, d
, ddecdw
, load
, C64XP
,
1329 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
1330 FIX3(FIX(op
, 1), FIX(na
, 0), FIX(sz
, 0)),
1331 OP2(ORMEMSD
, OWTREGD5
),
1332 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg_shift
, 1),
1333 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1334 INSN(lddw
, d
, dincdw
, load
, C64XP
,
1335 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
1336 FIX3(FIX(op
, 1), FIX(na
, 0), FIX(sz
, 0)),
1337 OP2(ORMEMSD
, OWTREGD5
),
1338 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg_shift
, 1),
1339 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1340 INSN(lddw
, d
, dinddw
, load
, C64XP
,
1341 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
1342 FIX3(FIX(op
, 1), FIX(na
, 0), FIX(sz
, 0)),
1343 OP2(ORMEMSD
, OWTREGD5
),
1344 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(src1
, mem_offset
, 0),
1345 ENC(ptr
, reg_ptr
, 0), ENC(srcdst
, reg_shift
, 1)))
1346 INSN(lddw
, d
, doff4dw
, load
, C64XP
,
1347 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
1348 FIX3(FIX(op
, 1), FIX(na
, 0), FIX(sz
, 0)),
1349 OP2(ORMEMSD
, OWTREGD5
),
1350 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(cst
, mem_offset
, 0),
1351 ENC(ptr
, reg_ptr
, 0), ENC(srcdst
, reg_shift
, 1)))
1354 INSN(ldh
, d
, load_store
, load
, C62X
,
1355 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
1356 FIX2(FIX(op
, 4), FIX(r
, 0)),
1357 OP2(ORMEMSH
, OWDREG5
),
1358 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 0),
1359 ENC(offsetR
, mem_offset
, 0), ENC(baseR
, reg
, 0),
1360 ENC(srcdst
, reg
, 1)))
1361 INSN(ldh
, d
, load_store_long
, load
, C62X
,
1362 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_PREFER(0),
1364 OP2(ORMEMLH
, OWDREG5
),
1365 ENC4(ENC(s
, data_fu
, 0), ENC(y
, areg
, 0), ENC(offsetR
, ulcst_dpr_half
, 0),
1369 INSN(ldh
, d
, doff4_dsz_x11
, load
, C64XP
,
1370 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
1371 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1372 OP2(ORMEMSH
, OWTREG5
),
1373 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(cst
, mem_offset
, 0),
1374 ENC(ptr
, reg_ptr
, 0), ENC(srcdst
, reg
, 1)))
1375 INSN(ldh
, d
, dind_dsz_x11
, load
, C64XP
,
1376 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
1377 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1378 OP2(ORMEMSH
, OWTREG5
),
1379 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1380 ENC(ptr
, reg_ptr
, 0), ENC(src1
, mem_offset
, 0)))
1381 INSN(ldh
, d
, dinc_dsz_x11
, load
, C64XP
,
1382 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
1383 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1384 OP2(ORMEMSH
, OWTREG5
),
1385 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1386 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1387 INSN(ldh
, d
, ddec_dsz_x11
, load
, C64XP
,
1388 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
1389 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1390 OP2(ORMEMSH
, OWTREG5
),
1391 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1392 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1395 INSN(ldhu
, d
, load_store
, load
, C62X
,
1396 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
1397 FIX2(FIX(op
, 0), FIX(r
, 0)),
1398 OP2(ORMEMSH
, OWDREG5
),
1399 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 0),
1400 ENC(offsetR
, mem_offset
, 0), ENC(baseR
, reg
, 0),
1401 ENC(srcdst
, reg
, 1)))
1402 INSN(ldhu
, d
, load_store_long
, load
, C62X
,
1403 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_PREFER(0),
1405 OP2(ORMEMLH
, OWDREG5
),
1406 ENC4(ENC(s
, data_fu
, 0), ENC(y
, areg
, 0), ENC(offsetR
, ulcst_dpr_half
, 0),
1410 INSN(ldhu
, d
, doff4_dsz_010
, load
, C64XP
,
1411 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
1412 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1413 OP2(ORMEMSH
, OWTREG5
),
1414 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(cst
, mem_offset
, 0),
1415 ENC(ptr
, reg_ptr
, 0), ENC(srcdst
, reg
, 1)))
1416 INSN(ldhu
, d
, dind_dsz_010
, load
, C64XP
,
1417 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
1418 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1419 OP2(ORMEMSH
, OWTREG5
),
1420 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1421 ENC(ptr
, reg_ptr
, 0), ENC(src1
, mem_offset
, 0)))
1422 INSN(ldhu
, d
, dinc_dsz_010
, load
, C64XP
,
1423 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
1424 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1425 OP2(ORMEMSH
, OWTREG5
),
1426 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1427 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1428 INSN(ldhu
, d
, ddec_dsz_010
, load
, C64XP
,
1429 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
1430 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1431 OP2(ORMEMSH
, OWTREG5
),
1432 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1433 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1436 INSN(ldndw
, d
, load_nonaligned
, load
, C64X
,
1437 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_UNALIGNED
,
1439 OP2(ORMEMND
, OWDREGD5
),
1440 ENC7(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 0),
1441 ENC(offsetR
, mem_offset_noscale
, 0), ENC(baseR
, reg
, 0),
1442 ENC(sc
, scaled
, 0), ENC(dst
, reg_shift
, 1)))
1445 INSN(ldndw
, d
, ddecdw
, load
, C64XP
,
1446 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
1447 FIX3(FIX(op
, 1), FIX(na
, 1), FIX(sz
, 0)),
1448 OP2(ORMEMND
, OWTREGD5
),
1449 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg_shift
, 1),
1450 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one_noscale
, 0)))
1451 INSN(ldndw
, d
, dincdw
, load
, C64XP
,
1452 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
1453 FIX3(FIX(op
, 1), FIX(na
, 1), FIX(sz
, 0)),
1454 OP2(ORMEMND
, OWTREGD5
),
1455 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg_shift
, 1),
1456 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one_noscale
, 0)))
1457 INSN(ldndw
, d
, dinddw
, load
, C64XP
,
1458 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_UNALIGNED
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
1459 FIX3(FIX(op
, 1), FIX(na
, 1), FIX(sz
, 0)),
1460 OP2(ORMEMND
, OWTREGD5
),
1461 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(src1
, mem_offset_noscale
, 0),
1462 ENC(ptr
, reg_ptr
, 0), ENC(srcdst
, reg_shift
, 1)))
1463 INSN(ldndw
, d
, doff4dw
, load
, C64XP
,
1464 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_UNALIGNED
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
1465 FIX3(FIX(op
, 1), FIX(na
, 1), FIX(sz
, 0)),
1466 OP2(ORMEMND
, OWTREGD5
),
1467 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(cst
, mem_offset_noscale
, 0),
1468 ENC(ptr
, reg_ptr
, 0), ENC(srcdst
, reg_shift
, 1)))
1471 INSN(ldnw
, d
, load_store
, load
, C64X
,
1472 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_UNALIGNED
,
1473 FIX2(FIX(op
, 3), FIX(r
, 1)),
1474 OP2(ORMEMSW
, OWDREG5
),
1475 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 0),
1476 ENC(offsetR
, mem_offset
, 0), ENC(baseR
, reg
, 0),
1477 ENC(srcdst
, reg
, 1)))
1480 INSN(ldnw
, d
, doff4_dsz_110
, load
, C64XP
,
1481 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
1482 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1483 OP2(ORMEMSW
, OWTREG5
),
1484 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1485 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset
, 0)))
1486 INSN(ldnw
, d
, dind_dsz_110
, load
, C64XP
,
1487 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
1488 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1489 OP2(ORMEMSW
, OWTREG5
),
1490 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1491 ENC(ptr
, reg_ptr
, 0), ENC(src1
, mem_offset
, 0)))
1492 INSN(ldnw
, d
, dinc_dsz_110
, load
, C64XP
,
1493 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
1494 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1495 OP2(ORMEMSW
, OWTREG5
),
1496 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1497 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1498 INSN(ldnw
, d
, ddec_dsz_110
, load
, C64XP
,
1499 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
1500 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1501 OP2(ORMEMSW
, OWTREG5
),
1502 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1503 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1506 INSN(ldw
, d
, load_store
, load
, C62X
,
1507 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
1508 FIX2(FIX(op
, 6), FIX(r
, 0)),
1509 OP2(ORMEMSW
, OWDREG5
),
1510 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 0),
1511 ENC(offsetR
, mem_offset
, 0), ENC(baseR
, reg
, 0),
1512 ENC(srcdst
, reg
, 1)))
1513 INSN(ldw
, d
, load_store_long
, load
, C62X
,
1514 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_PREFER(0),
1516 OP2(ORMEMLW
, OWDREG5
),
1517 ENC4(ENC(s
, data_fu
, 0), ENC(y
, areg
, 0), ENC(offsetR
, ulcst_dpr_word
, 0),
1521 INSN(ldw
, d
, doff4_dsz_0xx
, load
, C64XP
,
1522 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
1523 FIX2(FIX(op
, 1), FIX(sz
, 0)),
1524 OP2(ORMEMSW
, OWTREG5
),
1525 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1526 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset
, 0)))
1527 INSN(ldw
, d
, doff4_dsz_100
, load
, C64XP
,
1528 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
1529 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1530 OP2(ORMEMSW
, OWTREG5
),
1531 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1532 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset
, 0)))
1533 INSN(ldw
, d
, dind_dsz_0xx
, load
, C64XP
,
1534 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
1535 FIX2(FIX(op
, 1), FIX(sz
, 0)),
1536 OP2(ORMEMSW
, OWTREG5
),
1537 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1538 ENC(ptr
, reg_ptr
, 0), ENC(src1
, mem_offset
, 0)))
1539 INSN(ldw
, d
, dind_dsz_100
, load
, C64XP
,
1540 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
1541 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1542 OP2(ORMEMSW
, OWTREG5
),
1543 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1544 ENC(ptr
, reg_ptr
, 0), ENC(src1
, mem_offset
, 0)))
1545 INSN(ldw
, d
, dinc_dsz_0xx
, load
, C64XP
,
1546 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
1547 FIX2(FIX(op
, 1), FIX(sz
, 0)),
1548 OP2(ORMEMSW
, OWTREG5
),
1549 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1550 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1551 INSN(ldw
, d
, dinc_dsz_100
, load
, C64XP
,
1552 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
1553 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1554 OP2(ORMEMSW
, OWTREG5
),
1555 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1556 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1557 INSN(ldw
, d
, ddec_dsz_0xx
, load
, C64XP
,
1558 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
1559 FIX2(FIX(op
, 1), FIX(sz
, 0)),
1560 OP2(ORMEMSW
, OWTREG5
),
1561 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1562 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1563 INSN(ldw
, d
, ddec_dsz_100
, load
, C64XP
,
1564 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
1565 FIX2(FIX(op
, 1), FIX(sz
, 1)),
1566 OP2(ORMEMSW
, OWTREG5
),
1567 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1568 ENC(ptr
, reg_ptr
, 0), ENC(cst
, mem_offset_minus_one
, 0)))
1569 INSN(ldw
, d
, dpp
, load
, C64XP
,
1570 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREINCR
)|TIC6X_FLAG_INSN16_B15PTR
|TIC6X_FLAG_INSN16_NORS
,
1571 FIX2(FIX(op
, 1), FIX(dw
, 0)),
1572 OP2(ORMEMSW
, OWTREG5
),
1573 ENC4(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1574 ENC(cst
, mem_offset_minus_one
, 0)))
1575 INSN(ldw
, d
, dstk
, load
, C64XP
,
1576 TIC6X_FLAG_LOAD
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
)|TIC6X_FLAG_INSN16_B15PTR
,
1577 FIX2(FIX(op
, 0x1), FIX(s
, 1)),
1578 OP2(ORMEMSW
, OWTREG5
),
1579 ENC4(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 1),
1580 ENC(cst
, mem_offset
, 0)))
1583 INSN(ll
, d
, 1_or_2_src
, load
, C64XP
,
1584 TIC6X_FLAG_LOAD
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_SIDE_T2_ONLY
|TIC6X_FLAG_NO_CROSS
,
1585 FIX3(FIX(s
, 1), FIX(op
, 0xc), FIX(src1
, 0)),
1586 OP2(ORMEMDW
, OWDREG5
),
1587 ENC2(ENC(src2
, reg
, 0), ENC(dst
, reg
, 1)))
1589 INSNE(lmbd
, l_ui_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
1590 FIX1(FIX(op
, 0x6b)),
1591 OP3(ORREG1
, ORXREG1
, OWREG1
),
1592 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1593 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1594 INSNE(lmbd
, l_s5_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
1595 FIX1(FIX(op
, 0x6a)),
1596 OP3(OACST
, ORXREG1
, OWREG1
),
1597 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
1598 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1600 INSN(max2
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
1601 FIX1(FIX(op
, 0x42)),
1602 OP3(ORREG1
, ORXREG1
, OWREG1
),
1603 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1604 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1605 INSN(max2
, s
, ext_1_or_2_src
, 1cycle
, C64XP
, 0,
1607 OP3(ORREG1
, ORXREG1
, OWREG1
),
1608 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1609 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1611 INSN(maxu4
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
1612 FIX1(FIX(op
, 0x43)),
1613 OP3(ORREG1
, ORXREG1
, OWREG1
),
1614 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1615 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1617 INSN(min2
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
1618 FIX1(FIX(op
, 0x41)),
1619 OP3(ORREG1
, ORXREG1
, OWREG1
),
1620 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1621 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1622 INSN(min2
, s
, ext_1_or_2_src
, 1cycle
, C64XP
, 0,
1624 OP3(ORREG1
, ORXREG1
, OWREG1
),
1625 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1626 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1628 INSN(minu4
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
1629 FIX1(FIX(op
, 0x48)),
1630 OP3(ORREG1
, ORXREG1
, OWREG1
),
1631 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1632 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1634 INSNE(mpy
, m_sl16_xsl16_si
, m
, mpy
, 1616_m
, C62X
, 0,
1635 FIX1(FIX(op
, 0x19)),
1636 OP3(ORREG1
, ORXREG1
, OWREG2
),
1637 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1638 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1639 INSNE(mpy
, m_s5_xsl16_si
, m
, mpy
, 1616_m
, C62X
, 0,
1640 FIX1(FIX(op
, 0x18)),
1641 OP3(OACST
, ORXREG1
, OWREG2
),
1642 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
1643 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1646 INSN(mpy
, m
, m3_sat_0
, 1616_m
, C67X
, 0,
1648 OP3(ORREG1
, ORXREG1
, OWREG2
),
1649 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1650 ENC(src2
, reg
, 1), ENC(dst
, reg_shift
, 2)))
1652 INSN(mpydp
, m
, mpy
, mpydp
, C67X
, 0,
1653 FIX1(FIX(op
, 0x0e)),
1654 OP3(ORREGD1234
, ORXREGD1324
, OWREGD910
),
1655 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1656 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1658 INSN(mpyh
, m
, mpy
, 1616_m
, C62X
, 0,
1659 FIX1(FIX(op
, 0x01)),
1660 OP3(ORREG1
, ORXREG1
, OWREG2
),
1661 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1662 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1665 INSN(mpyh
, m
, m3_sat_0
, 1616_m
, C67X
, 0,
1667 OP3(ORREG1
, ORXREG1
, OWREG2
),
1668 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1669 ENC(src2
, reg
, 1), ENC(dst
, reg_shift
, 2)))
1672 INSN(mpyhi
, m
, compound
, 4cycle
, C64X
, 0,
1673 FIX1(FIX(op
, 0x14)),
1674 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1675 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1676 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1678 INSN(mpyhir
, m
, compound
, 4cycle
, C64X
, 0,
1679 FIX1(FIX(op
, 0x10)),
1680 OP3(ORREG1
, ORXREG1
, OWREG4
),
1681 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1682 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1684 INSN(mpyhl
, m
, mpy
, 1616_m
, C62X
, 0,
1685 FIX1(FIX(op
, 0x09)),
1686 OP3(ORREG1
, ORXREG1
, OWREG2
),
1687 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1688 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1691 INSN(mpyhl
, m
, m3_sat_0
, 1616_m
, C67X
, 0,
1693 OP3(ORREG1
, ORXREG1
, OWREG2
),
1694 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1695 ENC(src2
, reg
, 1), ENC(dst
, reg_shift
, 2)))
1698 INSN(mpyhlu
, m
, mpy
, 1616_m
, C62X
, 0,
1699 FIX1(FIX(op
, 0x0f)),
1700 OP3(ORREG1
, ORXREG1
, OWREG2
),
1701 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1702 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1704 INSN(mpyhslu
, m
, mpy
, 1616_m
, C62X
, 0,
1705 FIX1(FIX(op
, 0x0b)),
1706 OP3(ORREG1
, ORXREG1
, OWREG2
),
1707 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1708 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1710 INSN(mpyhsu
, m
, mpy
, 1616_m
, C62X
, 0,
1711 FIX1(FIX(op
, 0x03)),
1712 OP3(ORREG1
, ORXREG1
, OWREG2
),
1713 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1714 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1716 INSN(mpyhu
, m
, mpy
, 1616_m
, C62X
, 0,
1717 FIX1(FIX(op
, 0x07)),
1718 OP3(ORREG1
, ORXREG1
, OWREG2
),
1719 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1720 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1722 INSN(mpyhuls
, m
, mpy
, 1616_m
, C62X
, 0,
1723 FIX1(FIX(op
, 0x0d)),
1724 OP3(ORREG1
, ORXREG1
, OWREG2
),
1725 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1726 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1728 INSN(mpyhus
, m
, mpy
, 1616_m
, C62X
, 0,
1729 FIX1(FIX(op
, 0x05)),
1730 OP3(ORREG1
, ORXREG1
, OWREG2
),
1731 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1732 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1734 INSNE(mpyi
, m_si_xsi_si
, m
, mpy
, mpyi
, C67X
, 0,
1735 FIX1(FIX(op
, 0x04)),
1736 OP3(ORREG14
, ORXREG14
, OWREG9
),
1737 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1738 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1739 INSNE(mpyi
, m_s5_xsi_si
, m
, mpy
, mpyi
, C67X
, 0,
1740 FIX1(FIX(op
, 0x06)),
1741 OP3(OACST
, ORXREG14
, OWREG9
),
1742 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
1743 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1745 INSNE(mpyid
, m_si_xsi_sll
, m
, mpy
, mpyid
, C67X
, 0,
1746 FIX1(FIX(op
, 0x08)),
1747 OP3(ORREG14
, ORXREG14
, OWREGD910
),
1748 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1749 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1750 INSNE(mpyid
, m_s5_xsi_sll
, m
, mpy
, mpyid
, C67X
, 0,
1751 FIX1(FIX(op
, 0x0c)),
1752 OP3(OACST
, ORXREG14
, OWREGD910
),
1753 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
1754 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1756 INSN(mpyih
, m
, compound
, 4cycle
, C64X
, TIC6X_FLAG_MACRO
,
1757 FIX1(FIX(op
, 0x14)),
1758 OP3(ORXREG1
, ORREG1
, OWREGD4
),
1759 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1760 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
1762 INSN(mpyihr
, m
, compound
, 4cycle
, C64X
, TIC6X_FLAG_MACRO
,
1763 FIX1(FIX(op
, 0x10)),
1764 OP3(ORXREG1
, ORREG1
, OWREG4
),
1765 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1766 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
1768 INSN(mpyil
, m
, compound
, 4cycle
, C64X
, TIC6X_FLAG_MACRO
,
1769 FIX1(FIX(op
, 0x15)),
1770 OP3(ORXREG1
, ORREG1
, OWREGD4
),
1771 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1772 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
1774 INSN(mpyilr
, m
, compound
, 4cycle
, C64X
, TIC6X_FLAG_MACRO
,
1775 FIX1(FIX(op
, 0x0e)),
1776 OP3(ORXREG1
, ORREG1
, OWREG4
),
1777 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1778 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
1780 INSN(mpylh
, m
, mpy
, 1616_m
, C62X
, 0,
1781 FIX1(FIX(op
, 0x11)),
1782 OP3(ORREG1
, ORXREG1
, OWREG2
),
1783 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1784 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1787 INSN(mpylh
, m
, m3_sat_0
, 1616_m
, C67X
, 0,
1789 OP3(ORREG1
, ORXREG1
, OWREG2
),
1790 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1791 ENC(src2
, reg
, 1), ENC(dst
, reg_shift
, 2)))
1794 INSN(mpylhu
, m
, mpy
, 1616_m
, C62X
, 0,
1795 FIX1(FIX(op
, 0x17)),
1796 OP3(ORREG1
, ORXREG1
, OWREG2
),
1797 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1798 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1800 INSN(mpyli
, m
, compound
, 4cycle
, C64X
, 0,
1801 FIX1(FIX(op
, 0x15)),
1802 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1803 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1804 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1806 INSN(mpylir
, m
, compound
, 4cycle
, C64X
, 0,
1807 FIX1(FIX(op
, 0x0e)),
1808 OP3(ORREG1
, ORXREG1
, OWREG4
),
1809 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1810 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1812 INSN(mpylshu
, m
, mpy
, 1616_m
, C62X
, 0,
1813 FIX1(FIX(op
, 0x13)),
1814 OP3(ORREG1
, ORXREG1
, OWREG2
),
1815 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1816 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1818 INSN(mpyluhs
, m
, mpy
, 1616_m
, C62X
, 0,
1819 FIX1(FIX(op
, 0x15)),
1820 OP3(ORREG1
, ORXREG1
, OWREG2
),
1821 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1822 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1824 INSN(mpysp
, m
, mpy
, 4cycle
, C67X
, 0,
1825 FIX1(FIX(op
, 0x1c)),
1826 OP3(ORREG1
, ORXREG1
, OWREG4
),
1827 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1828 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1830 /* Contrary to SPRU733A, MPYSPDP and MPYSP2DP are on both C67X and
1832 INSN(mpyspdp
, m
, compound
, mpyspdp
, C67X
, 0,
1833 FIX1(FIX(op
, 0x16)),
1834 OP3(ORREG12
, ORXREGD12
, OWREGD67
),
1835 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1836 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1838 INSN(mpysp2dp
, m
, compound
, mpyspdp
, C67X
, 0,
1839 FIX1(FIX(op
, 0x17)),
1840 OP3(ORREG1
, ORXREG1
, OWREGD45
),
1841 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1842 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1844 INSNE(mpysu
, m_sl16_xul16_si
, m
, mpy
, 1616_m
, C62X
, 0,
1845 FIX1(FIX(op
, 0x1b)),
1846 OP3(ORREG1
, ORXREG1
, OWREG2
),
1847 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1848 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1849 INSNE(mpysu
, m_s5_xul16_si
, m
, mpy
, 1616_m
, C62X
, 0,
1850 FIX1(FIX(op
, 0x1e)),
1851 OP3(OACST
, ORXREG1
, OWREG2
),
1852 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
1853 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1855 INSN(mpysu4
, m
, compound
, 4cycle
, C64X
, 0,
1856 FIX1(FIX(op
, 0x05)),
1857 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1858 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1859 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1861 INSN(mpyu
, m
, mpy
, 1616_m
, C62X
, 0,
1862 FIX1(FIX(op
, 0x1f)),
1863 OP3(ORREG1
, ORXREG1
, OWREG2
),
1864 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1865 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1867 INSN(mpyu4
, m
, compound
, 4cycle
, C64X
, 0,
1868 FIX1(FIX(op
, 0x04)),
1869 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1870 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1871 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1873 INSN(mpyus
, m
, mpy
, 1616_m
, C62X
, 0,
1874 FIX1(FIX(op
, 0x1d)),
1875 OP3(ORREG1
, ORXREG1
, OWREG2
),
1876 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1877 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1879 INSN(mpyus4
, m
, compound
, 4cycle
, C64X
, TIC6X_FLAG_MACRO
,
1880 FIX1(FIX(op
, 0x05)),
1881 OP3(ORXREG1
, ORREG1
, OWREGD4
),
1882 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1883 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
1885 INSN(mpy2
, m
, compound
, 4cycle
, C64X
, 0,
1886 FIX1(FIX(op
, 0x00)),
1887 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1888 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1889 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1891 INSN(mpy2ir
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
1892 FIX1(FIX(op
, 0x0f)),
1893 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1894 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1895 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1897 INSNE(mpy32
, 32_32_32
, m
, mpy
, 4cycle
, C64XP
, 0,
1898 FIX1(FIX(op
, 0x10)),
1899 OP3(ORREG1
, ORXREG1
, OWREG4
),
1900 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1901 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1902 INSNE(mpy32
, 32_32_64
, m
, mpy
, 4cycle
, C64XP
, 0,
1903 FIX1(FIX(op
, 0x14)),
1904 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1905 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1906 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1908 INSN(mpy32su
, m
, mpy
, 4cycle
, C64XP
, 0,
1909 FIX1(FIX(op
, 0x16)),
1910 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1911 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1912 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1914 INSN(mpy32u
, m
, compound
, 4cycle
, C64XP
, 0,
1915 FIX1(FIX(op
, 0x18)),
1916 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1917 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1918 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1920 INSN(mpy32us
, m
, compound
, 4cycle
, C64XP
, 0,
1921 FIX1(FIX(op
, 0x19)),
1922 OP3(ORREG1
, ORXREG1
, OWREGD4
),
1923 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
1924 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
1926 /* "or" forms of "mv" are preferred over "add" forms when available
1927 because "or" uses less power. However, 40-bit moves are only
1928 available through "add", and before C64X D-unit moves are only
1929 available through "add" (without cross paths being available). */
1930 INSNE(mv
, l_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
1931 FIX2(FIX(op
, 0x7e), FIX(src1
, 0)),
1932 OP2(ORXREG1
, OWREG1
),
1933 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1935 INSNE(mv
, l_sl_sl
, l
, 1_or_2_src
, 1cycle
, C62X
,
1936 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
,
1937 FIX3(FIX(op
, 0x20), FIX(x
, 0), FIX(src1
, 0)),
1938 OP2(ORREGL1
, OWREGL1
),
1939 ENC3(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(dst
, reg
, 1)))
1940 INSNE(mv
, s_xui_ui
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
1941 FIX2(FIX(op
, 0x1a), FIX(src1
, 0)),
1942 OP2(ORXREG1
, OWREG1
),
1943 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1945 INSNE(mv
, d_si_si
, d
, 1_or_2_src
, 1cycle
, C62X
,
1946 TIC6X_FLAG_MACRO
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(0),
1947 FIX2(FIX(op
, 0x12), FIX(src1
, 0)),
1948 OP2(ORREG1
, OWREG1
),
1949 ENC3(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(dst
, reg
, 1)))
1950 INSNE(mv
, d_xui_ui
, d
, ext_1_or_2_src
, 1cycle
, C64X
,
1951 TIC6X_FLAG_MACRO
|TIC6X_FLAG_PREFER(1),
1952 FIX2(FIX(op
, 0x3), FIX(src1
, 0)),
1953 OP2(ORXREG1
, OWREG1
),
1954 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
1958 INSNU(mv
, l
, lsdmvto
, 1cycle
, C64X
, 0,
1959 FIX1(FIX(unit
, 0x0)),
1960 OP2(ORXREG1
, OWREG1
),
1961 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(x
, xpath
, 0), ENC(dst
, reg
, 1)))
1963 INSNU(mv
, s
, lsdmvto
, 1cycle
, C64X
, 0,
1964 FIX1(FIX(unit
, 0x1)),
1965 OP2(ORXREG1
, OWREG1
),
1966 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(x
, xpath
, 0), ENC(dst
, reg
, 1)))
1968 INSNU(mv
, d
, lsdmvto
, 1cycle
, C64X
, 0,
1969 FIX1(FIX(unit
, 0x2)),
1970 OP2(ORXREG1
, OWREG1
),
1971 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(x
, xpath
, 0), ENC(dst
, reg
, 1)))
1973 INSNU(mv
, l
, lsdmvfr
, 1cycle
, C64X
, 0,
1974 FIX1(FIX(unit
, 0x0)),
1975 OP2(ORXREG1
, OWREG1
),
1976 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(x
, xpath
, 0), ENC(dst
, reg
, 1)))
1978 INSNU(mv
, s
, lsdmvfr
, 1cycle
, C64X
, 0,
1979 FIX1(FIX(unit
, 0x1)),
1980 OP2(ORXREG1
, OWREG1
),
1981 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(x
, xpath
, 0), ENC(dst
, reg
, 1)))
1983 INSNU(mv
, d
, lsdmvfr
, 1cycle
, C64X
, 0,
1984 FIX1(FIX(unit
, 0x2)),
1985 OP2(ORXREG1
, OWREG1
),
1986 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(x
, xpath
, 0), ENC(dst
, reg
, 1)))
1989 INSNE(mvc
, from_cr
, s
, 1_or_2_src
, 1cycle
, C62X
,
1990 TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_NO_CROSS
,
1991 FIX3(FIX(s
, 1), FIX(op
, 0x0f), FIX(x
, 0)),
1992 OP2(ORCREG1
, OWREG1
),
1993 ENC3(ENC(src1
, crhi
, 0), ENC(src2
, crlo
, 0), ENC(dst
, reg
, 1)))
1994 INSNE(mvc
, to_cr
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_SIDE_B_ONLY
,
1995 FIX2(FIX(s
, 1), FIX(op
, 0x0e)),
1996 OP2(ORXREG1
, OWCREG1
),
1997 ENC4(ENC(x
, xpath
, 0), ENC(src2
, reg
, 0), ENC(src1
, crhi
, 1),
2001 INSN(mvc
, s
, sx1
, 1cycle
, C64XP
,
2002 TIC6X_FLAG_NO_CROSS
,
2004 OP2(ORREG1B
, OWILC1
),
2005 ENC2(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0)))
2008 INSN(mvd
, m
, unary
, 4cycle
, C64X
, 0,
2009 FIX1(FIX(op
, 0x1a)),
2010 OP2(ORXREG1
, OWREG4
),
2011 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2014 INSN(mvk
, s
, mvk
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2017 ENC3(ENC(s
, fu
, 0), ENC(cst
, scst
, 0), ENC(dst
, reg
, 1)))
2018 INSN(mvk
, l
, unary
, 1cycle
, C64X
, TIC6X_FLAG_NO_CROSS
,
2019 FIX2(FIX(x
, 0), FIX(op
, 0x05)),
2021 ENC3(ENC(s
, fu
, 0), ENC(src2
, scst
, 0), ENC(dst
, reg
, 1)))
2022 INSN(mvk
, d
, 1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_NO_CROSS
,
2023 FIX2(FIX(op
, 0x00), FIX(src2
, 0)),
2025 ENC3(ENC(s
, fu
, 0), ENC(src1
, scst
, 0), ENC(dst
, reg
, 1)))
2028 INSN(mvk
, l
, lx5
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
2031 ENC3(ENC(s
, fu
, 0), ENC(cst
, scst
, 0), ENC(dst
, reg
, 1)))
2032 INSN(mvk
, s
, smvk8
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
2035 ENC3(ENC(s
, fu
, 0), ENC(cst
, ucst
, 0), ENC(dst
, reg
, 1)))
2036 INSNU(mvk
, l
, lsdx1c
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_SPRED
,
2037 FIX1(FIX(unit
, 0x0)),
2039 ENC3(ENC(s
, fu
, 0), ENC(cst
, ucst
, 0), ENC(dst
, reg
, 1)))
2040 INSNU(mvk
, s
, lsdx1c
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_SPRED
,
2041 FIX1(FIX(unit
, 0x1)),
2043 ENC3(ENC(s
, fu
, 0), ENC(cst
, ucst
, 0), ENC(dst
, reg
, 1)))
2044 INSNU(mvk
, d
, lsdx1c
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_SPRED
,
2045 FIX1(FIX(unit
, 0x2)),
2047 ENC3(ENC(s
, fu
, 0), ENC(cst
, ucst
, 0), ENC(dst
, reg
, 1)))
2048 INSNUE(mvk
, zero
, l
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
2049 FIX2(FIX(op
, 0), FIX(unit
, 0x0)),
2050 OP2(OHWCST0
, OWREG1
),
2051 ENC2(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 1)))
2052 INSNUE(mvk
, zero
, s
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
2053 FIX2(FIX(op
, 0), FIX(unit
, 0x1)),
2054 OP2(OHWCST0
, OWREG1
),
2055 ENC2(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 1)))
2056 INSNUE(mvk
, zero
, d
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
2057 FIX2(FIX(op
, 0), FIX(unit
, 0x2)),
2058 OP2(OHWCST0
, OWREG1
),
2059 ENC2(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 1)))
2060 INSNUE(mvk
, one
, l
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
2061 FIX2(FIX(op
, 1), FIX(unit
, 0x0)),
2062 OP2(OHWCST1
, OWREG1
),
2063 ENC2(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 1)))
2064 INSNUE(mvk
, one
, s
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
2065 FIX2(FIX(op
, 1), FIX(unit
, 0x1)),
2066 OP2(OHWCST1
, OWREG1
),
2067 ENC2(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 1)))
2068 INSNUE(mvk
, one
, d
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
2069 FIX2(FIX(op
, 1), FIX(unit
, 0x2)),
2070 OP2(OHWCST1
, OWREG1
),
2071 ENC2(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 1)))
2074 INSN(mvkh
, s
, mvk
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2077 ENC3(ENC(s
, fu
, 0), ENC(cst
, lcst_high16
, 0), ENC(dst
, reg
, 1)))
2079 INSN(mvklh
, s
, mvk
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
,
2082 ENC3(ENC(s
, fu
, 0), ENC(cst
, lcst_low16
, 0), ENC(dst
, reg
, 1)))
2084 INSN(mvkl
, s
, mvk
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
,
2087 ENC3(ENC(s
, fu
, 0), ENC(cst
, lcst_low16
, 0), ENC(dst
, reg
, 1)))
2089 INSNE(neg
, s_xsi_si
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
2090 FIX2(FIX(op
, 0x16), FIX(src1
, 0)),
2091 OP2(ORXREG1
, OWREG1
),
2092 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2094 INSNE(neg
, l_xsi_si
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
2095 FIX2(FIX(op
, 0x06), FIX(src1
, 0)),
2096 OP2(ORXREG1
, OWREG1
),
2097 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2099 INSNE(neg
, l_sl_sl
, l
, 1_or_2_src
, 1cycle
, C62X
,
2100 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
,
2101 FIX2(FIX(op
, 0x24), FIX(src1
, 0)),
2102 OP2(ORREGL1
, OWREGL1
),
2103 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2106 INSN(nop
, nfu
, nop_idle
, nop
, C62X
, 0,
2107 FIX2(FIX(s
, 0), RAN(op
, 0, 8)),
2109 ENC1(ENC(op
, ucst_minus_one
, 0)))
2110 INSNE(nop
, 1, nfu
, nop_idle
, nop
, C62X
, TIC6X_FLAG_MACRO
,
2111 FIX2(FIX(s
, 0), FIX(op
, 0)),
2116 /* contrary to sprufe8b.pdf p767, and accordingly to
2117 * dis6x.exe output, unop3 opcode is decoded as NOP N3 + 1 */
2118 INSN(nop
, nfu
, unop
, nop
, C64XP
, 0,
2121 ENC1(ENC(n
, ucst_minus_one
, 0)))
2124 INSNE(norm
, l_xsi_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
2125 FIX2(FIX(op
, 0x63), FIX(src1
, 0)),
2126 OP2(ORXREG1
, OWREG1
),
2127 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2129 INSNE(norm
, l_sl_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2130 FIX3(FIX(op
, 0x60), FIX(x
, 0), FIX(src1
, 0)),
2131 OP2(ORREGL1
, OWREG1
),
2132 ENC3(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(dst
, reg
, 1)))
2134 INSN(not, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
2135 FIX2(FIX(op
, 0x6e), FIX(src1
, 0x1f)),
2136 OP2(ORXREG1
, OWREG1
),
2137 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2139 INSN(not, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
2140 FIX2(FIX(op
, 0x0a), FIX(src1
, 0x1f)),
2141 OP2(ORXREG1
, OWREG1
),
2142 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2144 INSN(not, d
, ext_1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_MACRO
,
2145 FIX2(FIX(op
, 0xf), FIX(src1
, 0x1f)),
2146 OP2(ORXREG1
, OWREG1
),
2147 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2150 INSNE(or, d_ui_xui_ui
, d
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2152 OP3(ORREG1
, ORXREG1
, OWREG1
),
2153 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2154 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2155 INSNE(or, d_s5_xui_ui
, d
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2157 OP3(OACST
, ORXREG1
, OWREG1
),
2158 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
2159 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2160 INSNE(or, l_ui_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
2161 FIX1(FIX(op
, 0x7f)),
2162 OP3(ORREG1
, ORXREG1
, OWREG1
),
2163 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2164 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2165 INSNE(or, l_s5_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
2166 FIX1(FIX(op
, 0x7e)),
2167 OP3(OACST
, ORXREG1
, OWREG1
),
2168 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
2169 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2170 INSNE(or, s_ui_xui_ui
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2171 FIX1(FIX(op
, 0x1b)),
2172 OP3(ORREG1
, ORXREG1
, OWREG1
),
2173 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2174 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2175 INSNE(or, s_s5_xui_ui
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2176 FIX1(FIX(op
, 0x1a)),
2177 OP3(OACST
, ORXREG1
, OWREG1
),
2178 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
2179 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2182 INSN(or, l
, l2c
, 1cycle
, C64XP
, 0,
2184 OP3(ORREG1
, ORXREG1
, OWREG1NORS
),
2185 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2186 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2189 INSN(pack2
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
2191 OP3(ORREG1
, ORXREG1
, OWREG1
),
2192 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2193 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2194 INSN(pack2
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2196 OP3(ORREG1
, ORXREG1
, OWREG1
),
2197 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2198 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2200 INSN(packh2
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
2201 FIX1(FIX(op
, 0x1e)),
2202 OP3(ORREG1
, ORXREG1
, OWREG1
),
2203 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2204 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2205 INSN(packh2
, s
, 1_or_2_src
, 1cycle
, C64X
, 0,
2207 OP3(ORREG1
, ORXREG1
, OWREG1
),
2208 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2209 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2211 INSN(packh4
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
2212 FIX1(FIX(op
, 0x69)),
2213 OP3(ORREG1
, ORXREG1
, OWREG1
),
2214 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2215 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2217 INSN(packhl2
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
2218 FIX1(FIX(op
, 0x1c)),
2219 OP3(ORREG1
, ORXREG1
, OWREG1
),
2220 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2221 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2222 INSN(packhl2
, s
, 1_or_2_src
, 1cycle
, C64X
, 0,
2224 OP3(ORREG1
, ORXREG1
, OWREG1
),
2225 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2226 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2228 INSN(packlh2
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
2229 FIX1(FIX(op
, 0x1b)),
2230 OP3(ORREG1
, ORXREG1
, OWREG1
),
2231 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2232 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2233 INSN(packlh2
, s
, 1_or_2_src
, 1cycle
, C64X
, 0,
2234 FIX1(FIX(op
, 0x10)),
2235 OP3(ORREG1
, ORXREG1
, OWREG1
),
2236 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2237 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2239 INSN(packl4
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
2240 FIX1(FIX(op
, 0x68)),
2241 OP3(ORREG1
, ORXREG1
, OWREG1
),
2242 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2243 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2245 INSN(rcpdp
, s
, 1_or_2_src
, 2cycle_dp
, C67X
, TIC6X_FLAG_NO_CROSS
,
2246 FIX2(FIX(op
, 0x2d), FIX(x
, 0)),
2247 OP2(ORREGD1
, OWREGD12
),
2248 ENC4(ENC(s
, fu
, 0), ENC(src2
, regpair_msb
, 0), ENC(src1
, regpair_lsb
, 0),
2251 INSN(rcpsp
, s
, 1_or_2_src
, 1cycle
, C67X
, 0,
2252 FIX2(FIX(op
, 0x3d), FIX(src1
, 0)),
2253 OP2(ORXREG1
, OWREG1
),
2254 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2257 INSN(ret
, s
, ext_branch_cond_imm
, branch
, C62X
,
2258 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_RETURN
,
2261 ENC2(ENC(s
, fu
, 0), ENC(cst
, pcrel
, 0)))
2262 INSN(ret
, s
, branch
, branch
, C62X
,
2263 TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_RETURN
,
2266 ENC2(ENC(x
, xpath
, 0), ENC(src2
, reg
, 0)))
2267 INSN(ret
, s
, b_irp
, branch
, C62X
,
2268 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_RETURN
,
2269 FIX3(FIX(s
, 1), FIX(x
, 0), FIX(dst
, 0)),
2272 INSN(ret
, s
, b_nrp
, branch
, C62X
,
2273 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_RETURN
,
2274 FIX3(FIX(s
, 1), FIX(x
, 0), FIX(dst
, 0)),
2278 INSN(retp
, s
, call_imm_nop
, branch
, C64XP
,
2279 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MCNOP
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_RETURN
,
2281 OP2(OLCST
, OWRETREG1
),
2282 ENC2(ENC(s
, fu
, 0), ENC(cst
, pcrel
, 0)))
2284 INSN(rint
, nfu
, rint
, 1cycle
, C64XP
, 0,
2289 INSNE(rotl
, m_ui_xui_ui
, m
, compound
, 1616_m
, C64X
, 0,
2290 FIX1(FIX(op
, 0x1d)),
2291 OP3(ORXREG1
, ORREG1
, OWREG2
),
2292 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2293 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2294 INSNE(rotl
, m_u5_xui_ui
, m
, compound
, 1616_m
, C64X
, 0,
2295 FIX1(FIX(op
, 0x1e)),
2296 OP3(ORXREG1
, OACST
, OWREG2
),
2297 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2298 ENC(src1
, ucst
, 1), ENC(dst
, reg
, 2)))
2300 INSN(rpack2
, s
, ext_1_or_2_src_noncond
, 1cycle
, C64XP
, 0,
2301 FIX2(FIX(op
, 0xb), FIX(z
, 1)),
2302 OP3(ORREG1
, ORXREG1
, OWREG1
),
2303 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2304 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2306 INSN(rsqrdp
, s
, 1_or_2_src
, 2cycle_dp
, C67X
, TIC6X_FLAG_NO_CROSS
,
2307 FIX2(FIX(op
, 0x2e), FIX(x
, 0)),
2308 OP2(ORREGD1
, OWREGD12
),
2309 ENC4(ENC(s
, fu
, 0), ENC(src2
, regpair_msb
, 0), ENC(src1
, regpair_lsb
, 0),
2312 INSN(rsqrsp
, s
, 1_or_2_src
, 1cycle
, C67X
, 0,
2313 FIX2(FIX(op
, 0x3e), FIX(src1
, 0)),
2314 OP2(ORXREG1
, OWREG1
),
2315 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2318 INSNE(sadd
, l_si_xsi_si
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
2319 FIX1(FIX(op
, 0x13)),
2320 OP3(ORREG1
, ORXREG1
, OWREG1
),
2321 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2322 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2323 INSNE(sadd
, l_xsi_sl_sl
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
2324 FIX1(FIX(op
, 0x31)),
2325 OP3(ORXREG1
, ORREGL1
, OWREGL1
),
2326 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2327 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2328 INSNE(sadd
, l_s5_xsi_si
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
2329 FIX1(FIX(op
, 0x12)),
2330 OP3(OACST
, ORXREG1
, OWREG1
),
2331 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
2332 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2333 INSNE(sadd
, l_s5_sl_sl
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2334 FIX1(FIX(op
, 0x30)),
2335 OP3(OACST
, ORREGL1
, OWREGL1
),
2336 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
2337 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2338 INSNE(sadd
, s_si_xsi_si
, s
, 1_or_2_src
, 1cycle
, C64X
, 0,
2339 FIX1(FIX(op
, 0x20)),
2340 OP3(ORREG1
, ORXREG1
, OWREG1
),
2341 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2342 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2345 INSN(sadd
, l
, l3_sat_1
, 1cycle
, C64XP
, 0,
2347 OP3(ORREG1
, ORXREG1
, OWREG1
),
2348 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2349 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2351 INSN(sadd
, s
, s3_sat_1
, 1cycle
, C64XP
,0,
2353 OP3(ORREG1
, ORXREG1
, OWREG1
),
2354 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2355 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2358 INSN(sadd2
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2360 OP3(ORREG1
, ORXREG1
, OWREG1
),
2361 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2362 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2364 INSN(saddsub
, l
, 1_or_2_src_noncond
, 1cycle
, C64XP
, 0,
2365 FIX1(FIX(op
, 0x0e)),
2366 OP3(ORREG1
, ORXREG1
, OWREGD1
),
2367 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2368 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2370 INSN(saddsub2
, l
, 1_or_2_src_noncond
, 1cycle
, C64XP
, 0,
2371 FIX1(FIX(op
, 0x0f)),
2372 OP3(ORREG1
, ORXREG1
, OWREGD1
),
2373 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2374 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2376 INSN(saddsu2
, s
, ext_1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_MACRO
,
2378 OP3(ORXREG1
, ORREG1
, OWREG1
),
2379 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2380 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2382 INSN(saddus2
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2384 OP3(ORREG1
, ORXREG1
, OWREG1
),
2385 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2386 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2388 INSN(saddu4
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2390 OP3(ORREG1
, ORXREG1
, OWREG1
),
2391 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2392 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2394 INSN(sat
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2395 FIX3(FIX(op
, 0x40), FIX(x
, 0), FIX(src1
, 0)),
2396 OP2(ORREGL1
, OWREG1
),
2397 ENC3(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(dst
, reg
, 1)))
2399 INSN(set
, s
, field
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2401 OP4(ORREG1
, OACST
, OACST
, OWREG1
),
2402 ENC5(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(csta
, ucst
, 1),
2403 ENC(cstb
, ucst
, 2), ENC(dst
, reg
, 3)))
2404 INSN(set
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2405 FIX1(FIX(op
, 0x3b)),
2406 OP3(ORXREG1
, ORREG1
, OWREG1
),
2407 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2408 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2411 INSN(set
, s
, sc5
, 1cycle
, C64XP
, 0,
2413 OP4(ORREG1
, OACST
, OACST
, OWREG1
),
2414 ENC5(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(cst
, ucst
, 1),
2415 ENC(cst
, ucst
, 2), ENC(srcdst
, reg
, 3)))
2418 INSN(shfl
, m
, unary
, 1616_m
, C64X
, 0,
2419 FIX1(FIX(op
, 0x1c)),
2420 OP2(ORXREG1
, OWREG2
),
2421 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2424 INSN(shfl3
, l
, 1_or_2_src_noncond
, 1cycle
, C64XP
, 0,
2425 FIX1(FIX(op
, 0x36)),
2426 OP3(ORREG1
, ORXREG1
, OWREGD1
),
2427 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2428 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2430 INSNE(shl
, s_xsi_ui_si
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2431 FIX1(FIX(op
, 0x33)),
2432 OP3(ORXREG1
, ORREG1
, OWREG1
),
2433 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2434 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2435 INSNE(shl
, s_sl_ui_sl
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2436 FIX2(FIX(op
, 0x31), FIX(x
, 0)),
2437 OP3(ORREGL1
, ORREG1
, OWREGL1
),
2438 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
2440 INSNE(shl
, s_xui_ui_ul
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2441 FIX1(FIX(op
, 0x13)),
2442 OP3(ORXREG1
, ORREG1
, OWREGL1
),
2443 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2444 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2445 INSNE(shl
, s_xsi_u5_si
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2446 FIX1(FIX(op
, 0x32)),
2447 OP3(ORXREG1
, OACST
, OWREG1
),
2448 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2449 ENC(src1
, ucst
, 1), ENC(dst
, reg
, 2)))
2450 INSNE(shl
, s_sl_u5_sl
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2451 FIX2(FIX(op
, 0x30), FIX(x
, 0)),
2452 OP3(ORREGL1
, OACST
, OWREGL1
),
2453 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
2455 INSNE(shl
, s_xui_u5_ul
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2456 FIX1(FIX(op
, 0x12)),
2457 OP3(ORXREG1
, OACST
, OWREGL1
),
2458 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2459 ENC(src1
, ucst
, 1), ENC(dst
, reg
, 2)))
2462 INSN(shl
, s
, s3i
, 1cycle
, C64XP
, 0,
2464 OP3(ORXREG1
, OACST
, OWREG1
),
2465 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2466 ENC(cst
, cst_s3i
, 1), ENC(dst
, reg
, 2)))
2467 INSN(shl
, s
, ssh5_sat_x
, 1cycle
, C64XP
,
2468 TIC6X_FLAG_NO_CROSS
,
2470 OP3(ORREG1
, OACST
, OWREG1
),
2471 ENC4(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0),
2472 ENC(cst
, ucst
, 1), ENC(srcdst
, reg
, 2)))
2473 INSN(shl
, s
, s2sh
, 1cycle
, C64XP
, 0,
2475 OP3(ORREG1
, ORREG1
, OWREG1
),
2476 ENC4(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(src1
, reg
, 1),
2477 ENC(srcdst
, reg
, 2)))
2480 INSN(shlmb
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
2481 FIX1(FIX(op
, 0x61)),
2482 OP3(ORREG1
, ORXREG1
, OWREG1
),
2483 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2484 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2485 INSN(shlmb
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2487 OP3(ORREG1
, ORXREG1
, OWREG1
),
2488 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2489 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2491 INSNE(shr
, s_xsi_ui_si
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2492 FIX1(FIX(op
, 0x37)),
2493 OP3(ORXREG1
, ORREG1
, OWREG1
),
2494 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2495 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2496 INSNE(shr
, s_sl_ui_sl
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2497 FIX2(FIX(op
, 0x35), FIX(x
, 0)),
2498 OP3(ORREGL1
, ORREG1
, OWREGL1
),
2499 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
2501 INSNE(shr
, s_xsi_u5_si
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2502 FIX1(FIX(op
, 0x36)),
2503 OP3(ORXREG1
, OACST
, OWREG1
),
2504 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2505 ENC(src1
, ucst
, 1), ENC(dst
, reg
, 2)))
2506 INSNE(shr
, s_sl_u5_sl
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2507 FIX2(FIX(op
, 0x34), FIX(x
, 0)),
2508 OP3(ORREGL1
, OACST
, OWREGL1
),
2509 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
2513 INSN(shr
, s
, s3i
, 1cycle
, C64XP
, 0,
2515 OP3(ORXREG1
, OACST
, OWREG1
),
2516 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2517 ENC(cst
, cst_s3i
, 1), ENC(dst
, reg
, 2)))
2518 INSN(shr
, s
, ssh5_sat_x
, 1cycle
, C64XP
,
2519 TIC6X_FLAG_NO_CROSS
,
2521 OP3(ORREG1
, OACST
, OWREG1
),
2522 ENC4(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0),
2523 ENC(cst
, ucst
, 1), ENC(srcdst
, reg
, 2)))
2524 INSN(shr
, s
, s2sh
, 1cycle
, C64XP
, 0,
2526 OP3(ORREG1
, ORREG1
, OWREG1
),
2527 ENC4(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(src1
, reg
, 1),
2528 ENC(srcdst
, reg
, 2)))
2531 INSNE(shr2
, s_xs2_ui_s2
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2533 OP3(ORXREG1
, ORREG1
, OWREG1
),
2534 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2535 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2536 INSNE(shr2
, s_xs2_u5_s2
, s
, 1_or_2_src
, 1cycle
, C64X
, 0,
2537 FIX1(FIX(op
, 0x18)),
2538 OP3(ORXREG1
, OACST
, OWREG1
),
2539 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2540 ENC(src1
, ucst
, 1), ENC(dst
, reg
, 2)))
2542 INSN(shrmb
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
2543 FIX1(FIX(op
, 0x62)),
2544 OP3(ORREG1
, ORXREG1
, OWREG1
),
2545 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2546 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2547 INSN(shrmb
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2549 OP3(ORREG1
, ORXREG1
, OWREG1
),
2550 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2551 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2553 INSNE(shru
, s_xui_ui_ui
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2554 FIX1(FIX(op
, 0x27)),
2555 OP3(ORXREG1
, ORREG1
, OWREG1
),
2556 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2557 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2558 INSNE(shru
, s_ul_ui_ul
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2559 FIX2(FIX(op
, 0x25), FIX(x
, 0)),
2560 OP3(ORREGL1
, ORREG1
, OWREGL1
),
2561 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
2563 INSNE(shru
, s_xui_u5_ui
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2564 FIX1(FIX(op
, 0x26)),
2565 OP3(ORXREG1
, OACST
, OWREG1
),
2566 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2567 ENC(src1
, ucst
, 1), ENC(dst
, reg
, 2)))
2568 INSNE(shru
, s_ul_u5_ul
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2569 FIX2(FIX(op
, 0x24), FIX(x
, 0)),
2570 OP3(ORREGL1
, OACST
, OWREGL1
),
2571 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
2575 INSN(shru
, s
, ssh5_sat_0
, 1cycle
, C64XP
,
2576 TIC6X_FLAG_NO_CROSS
,
2578 OP3(ORREG1
, OACST
, OWREG1
),
2579 ENC4(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0),
2580 ENC(cst
, ucst
, 1), ENC(srcdst
, reg
, 2)))
2581 INSN(shru
, s
, s2sh
, 1cycle
, C64XP
, 0,
2583 OP3(ORREG1
, ORREG1
, OWREG1
),
2584 ENC4(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(src1
, reg
, 1),
2585 ENC(srcdst
, reg
, 2)))
2588 INSNE(shru2
, s_xu2_ui_u2
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2590 OP3(ORXREG1
, ORREG1
, OWREG1
),
2591 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2592 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2593 INSNE(shru2
, s_xu2_u5_u2
, s
, 1_or_2_src
, 1cycle
, C64X
, 0,
2594 FIX1(FIX(op
, 0x19)),
2595 OP3(ORXREG1
, OACST
, OWREG1
),
2596 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2597 ENC(src1
, ucst
, 1), ENC(dst
, reg
, 2)))
2599 INSN(sl
, d
, 1_or_2_src
, store
, C64XP
,
2600 TIC6X_FLAG_STORE
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_SIDE_T2_ONLY
|TIC6X_FLAG_NO_CROSS
,
2601 FIX3(FIX(s
, 1), FIX(op
, 0xd), FIX(src1
, 0)),
2602 OP2(ORDREG1
, OWMEMDW
),
2603 ENC2(ENC(dst
, reg
, 0), ENC(src2
, reg
, 1)))
2605 INSN(smpy
, m
, mpy
, 1616_m
, C62X
, 0,
2606 FIX1(FIX(op
, 0x1a)),
2607 OP3(ORREG1
, ORXREG1
, OWREG2
),
2608 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2609 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2612 INSN(smpy
, m
, m3_sat_1
, 1616_m
, C67X
, 0,
2614 OP3(ORREG1
, ORXREG1
, OWREG2
),
2615 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2616 ENC(src2
, reg
, 1), ENC(dst
, reg_shift
, 2)))
2619 INSN(smpyh
, m
, mpy
, 1616_m
, C62X
, 0,
2620 FIX1(FIX(op
, 0x02)),
2621 OP3(ORREG1
, ORXREG1
, OWREG2
),
2622 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2623 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2626 INSN(smpyh
, m
, m3_sat_1
, 1616_m
, C67X
, 0,
2628 OP3(ORREG1
, ORXREG1
, OWREG2
),
2629 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2630 ENC(src2
, reg
, 1), ENC(dst
, reg_shift
, 2)))
2633 INSN(smpyhl
, m
, mpy
, 1616_m
, C62X
, 0,
2634 FIX1(FIX(op
, 0x0a)),
2635 OP3(ORREG1
, ORXREG1
, OWREG2
),
2636 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2637 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2640 INSN(smpyhl
, m
, m3_sat_1
, 1616_m
, C67X
, 0,
2642 OP3(ORREG1
, ORXREG1
, OWREG2
),
2643 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2644 ENC(src2
, reg
, 1), ENC(dst
, reg_shift
, 2)))
2647 INSN(smpylh
, m
, mpy
, 1616_m
, C62X
, 0,
2648 FIX1(FIX(op
, 0x12)),
2649 OP3(ORREG1
, ORXREG1
, OWREG2
),
2650 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2651 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2654 INSN(smpylh
, m
, m3_sat_1
, 1616_m
, C67X
, 0,
2656 OP3(ORREG1
, ORXREG1
, OWREG2
),
2657 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2658 ENC(src2
, reg
, 1), ENC(dst
, reg_shift
, 2)))
2661 INSN(smpy2
, m
, compound
, 4cycle
, C64X
, 0,
2662 FIX1(FIX(op
, 0x01)),
2663 OP3(ORREG1
, ORXREG1
, OWREGD4
),
2664 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2665 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2667 /* Contrary to SPRUFE8, this is the correct operand order for this
2669 INSN(smpy32
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
2670 FIX1(FIX(op
, 0x19)),
2671 OP3(ORREG1
, ORXREG1
, OWREG4
),
2672 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2673 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2675 INSN(spack2
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2677 OP3(ORREG1
, ORXREG1
, OWREG1
),
2678 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2679 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2681 INSN(spacku4
, s
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
2683 OP3(ORREG1
, ORXREG1
, OWREG1
),
2684 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2685 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2687 INSN(spdp
, s
, 1_or_2_src
, 2cycle_dp
, C67X
, 0,
2688 FIX2(FIX(op
, 0x02), FIX(src1
, 0)),
2689 OP2(ORXREG1
, OWREGD12
),
2690 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2693 INSN(spint
, l
, 1_or_2_src
, 4cycle
, C67X
, 0,
2694 FIX2(FIX(op
, 0x0a), FIX(src1
, 0)),
2695 OP2(ORXREG1
, OWREG4
),
2696 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2699 INSNE(spkernel
, nfu_2
, nfu
, spkernel
, 1cycle
, C64XP
,
2700 TIC6X_FLAG_FIRST
|TIC6X_FLAG_NO_MCNOP
|TIC6X_FLAG_SPKERNEL
,
2703 ENC2(ENC(fstgfcyc
, fstg
, 0), ENC(fstgfcyc
, fcyc
, 1)))
2704 INSNE(spkernel
, nfu_0
, nfu
, spkernel
, 1cycle
, C64XP
,
2705 TIC6X_FLAG_FIRST
|TIC6X_FLAG_NO_MCNOP
|TIC6X_FLAG_SPKERNEL
|TIC6X_FLAG_MACRO
,
2706 FIX2(FIX(s
, 0), FIX(fstgfcyc
, 0)),
2711 INSN(spkernel
, nfu
, uspk
, 1cycle
, C64XP
,
2712 TIC6X_FLAG_FIRST
|TIC6X_FLAG_NO_MCNOP
|TIC6X_FLAG_SPKERNEL
,
2715 ENC2(ENC(fstgfcyc
, fstg
, 0), ENC(fstgfcyc
, fcyc
, 1)))
2718 INSN(spkernelr
, nfu
, spkernelr
, 1cycle
, C64XP
,
2719 TIC6X_FLAG_FIRST
|TIC6X_FLAG_NO_MCNOP
|TIC6X_FLAG_SPKERNEL
,
2724 INSN(sploop
, nfu
, loop_buffer
, 1cycle
, C64XP
,
2725 TIC6X_FLAG_FIRST
|TIC6X_FLAG_NO_MCNOP
|TIC6X_FLAG_SPLOOP
,
2726 FIX4(FIX(s
, 0), FIX(op
, 0xc), FIX(csta
, 0), RAN(cstb
, 0, 13)),
2728 ENC1(ENC(cstb
, ucst_minus_one
, 0)))
2730 INSN(sploopd
, nfu
, loop_buffer
, 1cycle
, C64XP
,
2731 TIC6X_FLAG_FIRST
|TIC6X_FLAG_NO_MCNOP
|TIC6X_FLAG_SPLOOP
,
2732 FIX4(FIX(s
, 0), FIX(op
, 0xd), FIX(csta
, 0), RAN(cstb
, 0, 13)),
2734 ENC1(ENC(cstb
, ucst_minus_one
, 0)))
2736 INSN(sploopw
, nfu
, loop_buffer
, 1cycle
, C64XP
,
2737 TIC6X_FLAG_FIRST
|TIC6X_FLAG_NO_MCNOP
|TIC6X_FLAG_SPLOOP
,
2738 FIX4(FIX(s
, 0), FIX(op
, 0xf), FIX(csta
, 0), RAN(cstb
, 0, 13)),
2740 ENC1(ENC(cstb
, ucst_minus_one
, 0)))
2743 INSN(sploop
, nfu
, uspl
, 1cycle
, C64XP
,
2744 TIC6X_FLAG_FIRST
|TIC6X_FLAG_NO_MCNOP
|TIC6X_FLAG_SPLOOP
,
2747 ENC1(ENC(ii
, ucst_minus_one
, 0)))
2749 INSN(sploopd
, nfu
, uspl
, 1cycle
, C64XP
,
2750 TIC6X_FLAG_FIRST
|TIC6X_FLAG_NO_MCNOP
|TIC6X_FLAG_SPLOOP
,
2753 ENC1(ENC(ii
, ucst_minus_one
, 0)))
2755 INSN(sploopd
, nfu
, uspldr
, 1cycle
, C64XP
,
2756 TIC6X_FLAG_FIRST
|TIC6X_FLAG_NO_MCNOP
|TIC6X_FLAG_SPLOOP
|TIC6X_FLAG_INSN16_SPRED
,
2759 ENC1(ENC(ii
, ucst_minus_one
, 0)))
2763 /* Contrary to SPRUFE8, this is the correct encoding for this
2765 INSN(spmask
, nfu
, spmask
, 1cycle
, C64XP
, TIC6X_FLAG_FIRST
|TIC6X_FLAG_SPMASK
,
2766 FIX2(FIX(s
, 0), FIX(op
, 0x8)),
2768 ENC1(ENC(mask
, spmask
, 0)))
2771 INSN(spmask
, nfu
, uspma
, 1cycle
, C64XP
, TIC6X_FLAG_FIRST
|TIC6X_FLAG_SPMASK
,
2774 ENC1(ENC(mask
, spmask
, 0)))
2777 INSN(spmaskr
, nfu
, spmask
, 1cycle
, C64XP
, TIC6X_FLAG_FIRST
|TIC6X_FLAG_SPMASK
,
2778 FIX2(FIX(s
, 0), FIX(op
, 0x9)),
2780 ENC1(ENC(mask
, spmask
, 0)))
2783 INSN(spmaskr
, nfu
, uspmb
, 1cycle
, C64XP
, TIC6X_FLAG_FIRST
|TIC6X_FLAG_SPMASK
,
2786 ENC1(ENC(mask
, spmask
, 0)))
2789 INSN(sptrunc
, l
, 1_or_2_src
, 4cycle
, C67X
, 0,
2790 FIX2(FIX(op
, 0x0b), FIX(src1
, 0)),
2791 OP2(ORXREG1
, OWREG4
),
2792 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2795 INSNE(sshl
, s_xsi_ui_si
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2796 FIX1(FIX(op
, 0x23)),
2797 OP3(ORXREG1
, ORREG1
, OWREG1
),
2798 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2799 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2800 INSNE(sshl
, s_xsi_u5_si
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
2801 FIX1(FIX(op
, 0x22)),
2802 OP3(ORXREG1
, OACST
, OWREG1
),
2803 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2804 ENC(src1
, ucst
, 1), ENC(dst
, reg
, 2)))
2807 INSN(sshl
, s
, ssh5_sat_1
, 1cycle
, C64XP
,
2808 TIC6X_FLAG_NO_CROSS
,
2810 OP3(ORREG1
, OACST
, OWREG1
),
2811 ENC4(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0),
2812 ENC(cst
, ucst
, 1), ENC(srcdst
, reg
, 2)))
2813 INSN(sshl
, s
, s2sh
, 1cycle
, C64XP
, 0,
2815 OP3(ORREG1
, ORREG1
, OWREG1
),
2816 ENC4(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(src1
, reg
, 1),
2817 ENC(srcdst
, reg
, 2)))
2820 INSN(sshvl
, m
, compound
, 1616_m
, C64X
, 0,
2821 FIX1(FIX(op
, 0x1c)),
2822 OP3(ORXREG1
, ORREG1
, OWREG2
),
2823 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2824 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2826 /* Contrary to SPRUFE8, this is the correct encoding for this
2828 INSN(sshvr
, m
, compound
, 1616_m
, C64X
, 0,
2829 FIX1(FIX(op
, 0x1a)),
2830 OP3(ORXREG1
, ORREG1
, OWREG2
),
2831 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
2832 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
2834 INSNE(ssub
, l_si_xsi_si
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(1),
2835 FIX1(FIX(op
, 0x0f)),
2836 OP3(ORREG1
, ORXREG1
, OWREG1
),
2837 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2838 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2839 INSNE(ssub
, l_xsi_si_si
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(0),
2840 FIX1(FIX(op
, 0x1f)),
2841 OP3(ORXREG1
, ORREG1
, OWREG1
),
2842 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2843 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2844 INSNE(ssub
, l_s5_xsi_si
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
2845 FIX1(FIX(op
, 0x0e)),
2846 OP3(OACST
, ORXREG1
, OWREG1
),
2847 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
2848 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2849 INSNE(ssub
, l_s5_sl_sl
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
2850 FIX1(FIX(op
, 0x2c)),
2851 OP3(OACST
, ORREGL1
, OWREGL1
),
2852 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
2853 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2856 INSN(ssub
, l
, l3_sat_1
, 1cycle
, C64XP
, 0,
2858 OP3(ORREG1
, ORXREG1
, OWREG1
),
2859 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2860 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2863 INSN(ssub2
, l
, 1_or_2_src
, 1cycle
, C64XP
, 0,
2864 FIX1(FIX(op
, 0x64)),
2865 OP3(ORREG1
, ORXREG1
, OWREG1
),
2866 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
2867 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
2869 INSN(stb
, d
, load_store
, store
, C62X
,
2870 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
2871 FIX2(FIX(op
, 3), FIX(r
, 0)),
2872 OP2(ORDREG1
, OWMEMSB
),
2873 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 1),
2874 ENC(offsetR
, mem_offset
, 1), ENC(baseR
, reg
, 1),
2875 ENC(srcdst
, reg
, 0)))
2876 INSN(stb
, d
, load_store_long
, store
, C62X
,
2877 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_PREFER(0),
2879 OP2(ORDREG1
, OWMEMLB
),
2880 ENC4(ENC(s
, data_fu
, 0), ENC(y
, areg
, 1), ENC(offsetR
, ulcst_dpr_byte
, 1),
2884 INSN(stb
, d
, doff4_dsz_000
, store
, C64XP
,
2885 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
2886 FIX2(FIX(op
, 0), FIX(sz
, 1)),
2887 OP2(ORTREG1
, OWMEMSB
),
2888 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
2889 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset
, 1)))
2890 INSN(stb
, d
, doff4_dsz_x01
, store
, C64XP
,
2891 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
2892 FIX2(FIX(op
, 0), FIX(sz
, 1)),
2893 OP2(ORTREG1
, OWMEMSB
),
2894 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
2895 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset
, 1)))
2896 INSN(stb
, d
, dind_dsz_000
, store
, C64XP
,
2897 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
2898 FIX2(FIX(op
, 0), FIX(sz
, 1)),
2899 OP2(ORTREG1
, OWMEMSB
),
2900 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(src1
, mem_offset
, 1),
2901 ENC(ptr
, reg_ptr
, 1), ENC(srcdst
, reg
, 0)))
2902 INSN(stb
, d
, dind_dsz_x01
, store
, C64XP
,
2903 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
2904 FIX2(FIX(op
, 0), FIX(sz
, 1)),
2905 OP2(ORTREG1
, OWMEMSB
),
2906 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(src1
, mem_offset
, 1),
2907 ENC(ptr
, reg_ptr
, 1), ENC(srcdst
, reg
, 0)))
2908 INSN(stb
, d
, dinc_dsz_000
, store
, C64XP
,
2909 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
2910 FIX2(FIX(op
, 0), FIX(sz
, 1)),
2911 OP2(ORTREG1
, OWMEMSB
),
2912 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
2913 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
2914 INSN(stb
, d
, dinc_dsz_x01
, store
, C64XP
,
2915 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
2916 FIX2(FIX(op
, 0), FIX(sz
, 1)),
2917 OP2(ORTREG1
, OWMEMSB
),
2918 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
2919 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
2920 INSN(stb
, d
, ddec_dsz_000
, store
, C64XP
,
2921 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
2922 FIX2(FIX(op
, 0), FIX(sz
, 1)),
2923 OP2(ORTREG1
, OWMEMSB
),
2924 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
2925 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
2926 INSN(stb
, d
, ddec_dsz_x01
, store
, C64XP
,
2927 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
2928 FIX2(FIX(op
, 0), FIX(sz
, 1)),
2929 OP2(ORTREG1
, OWMEMSB
),
2930 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
2931 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
2934 INSN(stdw
, d
, load_store
, store
, C64X
, TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
,
2935 FIX2(FIX(op
, 4), FIX(r
, 1)),
2936 OP2(ORDREGD1
, OWMEMSD
),
2937 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 1),
2938 ENC(offsetR
, mem_offset
, 1), ENC(baseR
, reg
, 1),
2939 ENC(srcdst
, reg
, 0)))
2942 INSN(stdw
, d
, dpp
, store
, C64XP
,
2943 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTDECR
)|TIC6X_FLAG_INSN16_B15PTR
|TIC6X_FLAG_INSN16_NORS
,
2944 FIX3(FIX(op
, 0), FIX(dw
, 1), FIX(s
, 1)),
2945 OP2(ORTREGD1
, OWMEMSD
),
2946 ENC4(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
2947 ENC(cst
, mem_offset_minus_one
, 1)))
2948 INSN(stdw
, d
, ddecdw
, store
, C64XP
,
2949 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
2950 FIX3(FIX(op
, 0), FIX(na
, 0), FIX(sz
, 0)),
2951 OP2(ORTREGD1
, OWMEMSD
),
2952 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg_shift
, 0),
2953 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
2954 INSN(stdw
, d
, dincdw
, store
, C64XP
,
2955 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
2956 FIX3(FIX(op
, 0), FIX(na
, 0), FIX(sz
, 0)),
2957 OP2(ORTREGD1
, OWMEMSD
),
2958 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg_shift
, 0),
2959 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
2960 INSN(stdw
, d
, dinddw
, store
, C64XP
,
2961 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
2962 FIX3(FIX(op
, 0), FIX(na
, 0), FIX(sz
, 0)),
2963 OP2(ORTREGD1
, OWMEMSD
),
2964 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(src1
, mem_offset
, 1),
2965 ENC(ptr
, reg_ptr
, 1), ENC(srcdst
, reg_shift
, 0)))
2966 INSN(stdw
, d
, doff4dw
, store
, C64XP
,
2967 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
2968 FIX3(FIX(op
, 0), FIX(na
, 0), FIX(sz
, 0)),
2969 OP2(ORTREGD1
, OWMEMSD
),
2970 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(cst
, mem_offset
, 1),
2971 ENC(ptr
, reg_ptr
, 1), ENC(srcdst
, reg_shift
, 0)))
2974 INSN(sth
, d
, load_store
, store
, C62X
,
2975 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
2976 FIX2(FIX(op
, 5), FIX(r
, 0)),
2977 OP2(ORDREG1
, OWMEMSH
),
2978 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 1),
2979 ENC(offsetR
, mem_offset
, 1), ENC(baseR
, reg
, 1),
2980 ENC(srcdst
, reg
, 0)))
2981 INSN(sth
, d
, load_store_long
, store
, C62X
,
2982 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_PREFER(0),
2984 OP2(ORDREG1
, OWMEMLH
),
2985 ENC4(ENC(s
, data_fu
, 0), ENC(y
, areg
, 1), ENC(offsetR
, ulcst_dpr_half
, 1),
2989 INSN(sth
, d
, doff4_dsz_01x
, store
, C64XP
,
2990 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
2991 FIX2(FIX(op
, 0), FIX(sz
, 1)),
2992 OP2(ORTREG1
, OWMEMSH
),
2993 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
2994 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset
, 1)))
2995 INSN(sth
, d
, doff4_dsz_111
, store
, C64XP
,
2996 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
2997 FIX2(FIX(op
, 0), FIX(sz
, 1)),
2998 OP2(ORTREG1
, OWMEMSH
),
2999 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3000 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset
, 1)))
3001 INSN(sth
, d
, dind_dsz_01x
, store
, C64XP
,
3002 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
3003 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3004 OP2(ORTREG1
, OWMEMSH
),
3005 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3006 ENC(ptr
, reg_ptr
, 1), ENC(src1
, mem_offset
, 1)))
3007 INSN(sth
, d
, dind_dsz_111
, store
, C64XP
,
3008 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
3009 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3010 OP2(ORTREG1
, OWMEMSH
),
3011 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3012 ENC(ptr
, reg_ptr
, 1), ENC(src1
, mem_offset
, 1)))
3013 INSN(sth
, d
, dinc_dsz_01x
, store
, C64XP
,
3014 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
3015 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3016 OP2(ORTREG1
, OWMEMSH
),
3017 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3018 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
3019 INSN(sth
, d
, dinc_dsz_111
, store
, C64XP
,
3020 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
3021 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3022 OP2(ORTREG1
, OWMEMSH
),
3023 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3024 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
3025 INSN(sth
, d
, ddec_dsz_01x
, store
, C64XP
,
3026 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
3027 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3028 OP2(ORTREG1
, OWMEMSH
),
3029 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3030 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
3031 INSN(sth
, d
, ddec_dsz_111
, store
, C64XP
,
3032 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
3033 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3034 OP2(ORTREG1
, OWMEMSH
),
3035 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3036 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
3039 INSN(stndw
, d
, store_nonaligned
, store
, C64X
,
3040 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_UNALIGNED
,
3042 OP2(ORDREGD1
, OWMEMND
),
3043 ENC7(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 1),
3044 ENC(offsetR
, mem_offset_noscale
, 1), ENC(baseR
, reg
, 1),
3045 ENC(sc
, scaled
, 1), ENC(src
, reg_shift
, 0)))
3048 INSN(stndw
, d
, ddecdw
, store
, C64XP
,
3049 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_UNALIGNED
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
3050 FIX3(FIX(op
, 0), FIX(na
, 1), FIX(sz
, 0)),
3051 OP2(ORTREGD1
, OWMEMND
),
3052 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg_shift
, 0),
3053 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one_noscale
, 1)))
3054 INSN(stndw
, d
, dincdw
, store
, C64XP
,
3055 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_UNALIGNED
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
3056 FIX3(FIX(op
, 0), FIX(na
, 1), FIX(sz
, 0)),
3057 OP2(ORTREGD1
, OWMEMND
),
3058 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg_shift
, 0),
3059 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one_noscale
, 1)))
3060 INSN(stndw
, d
, dinddw
, store
, C64XP
,
3061 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_UNALIGNED
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
3062 FIX3(FIX(op
, 0), FIX(na
, 1), FIX(sz
, 0)),
3063 OP2(ORTREGD1
, OWMEMND
),
3064 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(src1
, mem_offset_noscale
, 1),
3065 ENC(ptr
, reg_ptr
, 1), ENC(srcdst
, reg_shift
, 0)))
3066 INSN(stndw
, d
, doff4dw
, store
, C64XP
,
3067 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_UNALIGNED
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
3068 FIX3(FIX(op
, 0), FIX(na
, 1), FIX(sz
, 0)),
3069 OP2(ORTREGD1
, OWMEMND
),
3070 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(cst
, mem_offset_noscale
, 1),
3071 ENC(ptr
, reg_ptr
, 1), ENC(srcdst
, reg_shift
, 0)))
3074 INSN(stnw
, d
, load_store
, store
, C64X
,
3075 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_UNALIGNED
,
3076 FIX2(FIX(op
, 5), FIX(r
, 1)),
3077 OP2(ORDREG1
, OWMEMSW
),
3078 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 1),
3079 ENC(offsetR
, mem_offset
, 1), ENC(baseR
, reg
, 1),
3080 ENC(srcdst
, reg
, 0)))
3083 INSN(stnw
, d
, doff4_dsz_110
, store
, C64XP
,
3084 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
3085 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3086 OP2(ORTREG1
, OWMEMSW
),
3087 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3088 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset
, 1)))
3089 INSN(stnw
, d
, dind_dsz_110
, store
, C64XP
,
3090 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
3091 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3092 OP2(ORTREG1
, OWMEMSW
),
3093 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3094 ENC(ptr
, reg_ptr
, 1), ENC(src1
, mem_offset
, 1)))
3095 INSN(stnw
, d
, dinc_dsz_110
, store
, C64XP
,
3096 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
3097 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3098 OP2(ORTREG1
, OWMEMSW
),
3099 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3100 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
3101 INSN(stnw
, d
, ddec_dsz_110
, store
, C64XP
,
3102 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
3103 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3104 OP2(ORTREG1
, OWMEMSW
),
3105 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3106 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
3109 INSN(stw
, d
, load_store
, store
, C62X
,
3110 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
3111 FIX2(FIX(op
, 7), FIX(r
, 0)),
3112 OP2(ORDREG1
, OWMEMSW
),
3113 ENC6(ENC(s
, data_fu
, 0), ENC(y
, fu
, 0), ENC(mode
, mem_mode
, 1),
3114 ENC(offsetR
, mem_offset
, 1), ENC(baseR
, reg
, 1),
3115 ENC(srcdst
, reg
, 0)))
3116 INSN(stw
, d
, load_store_long
, store
, C62X
,
3117 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_SIDE_B_ONLY
|TIC6X_FLAG_PREFER(0),
3119 OP2(ORDREG1
, OWMEMLW
),
3120 ENC4(ENC(s
, data_fu
, 0), ENC(y
, areg
, 1), ENC(offsetR
, ulcst_dpr_word
, 1),
3124 INSN(stw
, d
, doff4_dsz_0xx
, store
, C64XP
,
3125 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
3126 FIX2(FIX(op
, 0), FIX(sz
, 0)),
3127 OP2(ORTREG1
, OWMEMSW
),
3128 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3129 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset
, 1)))
3130 INSN(stw
, d
, doff4_dsz_100
, store
, C64XP
,
3131 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
),
3132 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3133 OP2(ORTREG1
, OWMEMSW
),
3134 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3135 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset
, 1)))
3136 INSN(stw
, d
, dind_dsz_0xx
, store
, C64XP
,
3137 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
3138 FIX2(FIX(op
, 0), FIX(sz
, 0)),
3139 OP2(ORTREG1
, OWMEMSW
),
3140 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3141 ENC(ptr
, reg_ptr
, 1), ENC(src1
, mem_offset
, 1)))
3142 INSN(stw
, d
, dind_dsz_100
, store
, C64XP
,
3143 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE
),
3144 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3145 OP2(ORTREG1
, OWMEMSW
),
3146 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3147 ENC(ptr
, reg_ptr
, 1), ENC(src1
, mem_offset
, 1)))
3148 INSN(stw
, d
, dinc_dsz_0xx
, store
, C64XP
,
3149 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
3150 FIX2(FIX(op
, 0), FIX(sz
, 0)),
3151 OP2(ORTREG1
, OWMEMSW
),
3152 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3153 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
3154 INSN(stw
, d
, dinc_dsz_100
, store
, C64XP
,
3155 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR
),
3156 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3157 OP2(ORTREG1
, OWMEMSW
),
3158 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3159 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
3160 INSN(stw
, d
, ddec_dsz_0xx
, store
, C64XP
,
3161 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
3162 FIX2(FIX(op
, 0), FIX(sz
, 0)),
3163 OP2(ORTREG1
, OWMEMSW
),
3164 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3165 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
3166 INSN(stw
, d
, ddec_dsz_100
, store
, C64XP
,
3167 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR
),
3168 FIX2(FIX(op
, 0), FIX(sz
, 1)),
3169 OP2(ORTREG1
, OWMEMSW
),
3170 ENC5(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3171 ENC(ptr
, reg_ptr
, 1), ENC(cst
, mem_offset_minus_one
, 1)))
3172 INSN(stw
, d
, dpp
, store
, C64XP
,
3173 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSTDECR
)|TIC6X_FLAG_INSN16_B15PTR
|TIC6X_FLAG_INSN16_NORS
,
3174 FIX2(FIX(op
, 0), FIX(dw
, 0)),
3175 OP2(ORTREG1
, OWMEMSW
),
3176 ENC4(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3177 ENC(cst
, mem_offset_minus_one
, 1)))
3178 INSN(stw
, d
, dstk
, store
, C64XP
,
3179 TIC6X_FLAG_STORE
|TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE
)|TIC6X_FLAG_INSN16_B15PTR
,
3180 FIX2(FIX(op
, 0x0), FIX(s
, 1)),
3181 OP2(ORTREG1
, OWMEMSW
),
3182 ENC4(ENC(s
, fu
, 0), ENC(t
, rside
, 0), ENC(srcdst
, reg
, 0),
3183 ENC(cst
, mem_offset
, 1)))
3186 INSNE(sub
, l_si_xsi_si
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(1),
3187 FIX1(FIX(op
, 0x07)),
3188 OP3(ORREG1
, ORXREG1
, OWREG1
),
3189 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3190 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3191 INSNE(sub
, l_xsi_si_si
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(0),
3192 FIX1(FIX(op
, 0x17)),
3193 OP3(ORXREG1
, ORREG1
, OWREG1
),
3194 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3195 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3196 INSNE(sub
, l_si_xsi_sl
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(1),
3197 FIX1(FIX(op
, 0x27)),
3198 OP3(ORREG1
, ORXREG1
, OWREGL1
),
3199 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3200 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3201 INSNE(sub
, l_xsi_si_sl
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(0),
3202 FIX1(FIX(op
, 0x37)),
3203 OP3(ORXREG1
, ORREG1
, OWREGL1
),
3204 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3205 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3206 INSNE(sub
, l_s5_xsi_si
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
3207 FIX1(FIX(op
, 0x06)),
3208 OP3(OACST
, ORXREG1
, OWREG1
),
3209 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
3210 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3211 INSNE(sub
, l_s5_sl_sl
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
3212 FIX1(FIX(op
, 0x24)),
3213 OP3(OACST
, ORREGL1
, OWREGL1
),
3214 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
3215 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3216 INSNE(sub
, l_xsi_s5_si
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
3218 OP3(ORXREG1
, OACST
, OWREG1
),
3219 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst_negate
, 1),
3220 ENC(src2
, reg
, 0), ENC(dst
, reg
, 2)))
3221 INSNE(sub
, l_sl_s5_sl
, l
, 1_or_2_src
, 1cycle
, C62X
,
3222 TIC6X_FLAG_MACRO
|TIC6X_FLAG_NO_CROSS
,
3223 FIX2(FIX(op
, 0x20), FIX(x
, 0)),
3224 OP3(ORREGL1
, OACST
, OWREGL1
),
3225 ENC4(ENC(s
, fu
, 0), ENC(src1
, scst_negate
, 1), ENC(src2
, reg
, 0),
3227 INSNE(sub
, s_si_xsi_si
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(1),
3228 FIX1(FIX(op
, 0x17)),
3229 OP3(ORREG1
, ORXREG1
, OWREG1
),
3230 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3231 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3232 INSNE(sub
, s_s5_xsi_si
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
3233 FIX1(FIX(op
, 0x16)),
3234 OP3(OACST
, ORXREG1
, OWREG1
),
3235 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
3236 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3237 /* Contrary to SPRUFE8, this is the correct encoding for this
3238 instruction; this instruction can be predicated. */
3239 INSNE(sub
, s_xsi_si_si
, s
, ext_1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_PREFER(0),
3241 OP3(ORXREG1
, ORREG1
, OWREG1
),
3242 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
3243 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
3244 INSNE(sub
, s_xsi_s5_si
, s
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_MACRO
,
3246 OP3(ORXREG1
, OACST
, OWREG1
),
3247 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst_negate
, 1),
3248 ENC(src2
, reg
, 0), ENC(dst
, reg
, 2)))
3249 INSNE(sub
, d_si_si_si
, d
, 1_or_2_src
, 1cycle
, C62X
,
3250 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_PREFER(1),
3251 FIX1(FIX(op
, 0x11)),
3252 OP3(ORREG1
, ORREG1
, OWREG1
),
3253 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
3255 INSNE(sub
, d_si_u5_si
, d
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
3256 FIX1(FIX(op
, 0x13)),
3257 OP3(ORREG1
, OACST
, OWREG1
),
3258 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
3260 INSNE(sub
, d_si_xsi_si
, d
, ext_1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_PREFER(0),
3262 OP3(ORREG1
, ORXREG1
, OWREG1
),
3263 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3264 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3267 INSN(sub
, l
, l3_sat_0
, 1cycle
, C64XP
, 0,
3269 OP3(ORREG1
, ORXREG1
, OWREG1
),
3270 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3271 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3272 INSN(sub
, l
, lx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
3274 OP3(OHWCST0
, ORREG1
, OWREG1
),
3275 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 1), ENC(srcdst
, reg
, 2)))
3276 INSN(sub
, s
, sx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
3278 OP3(OHWCST0
, ORREG1
, OWREG1
),
3279 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 1), ENC(srcdst
, reg
, 2)))
3280 INSN(sub
, s
, sx2op
, 1cycle
, C64XP
, 0,
3282 OP3(ORREG1
, ORXREG1
, OWREG1
),
3283 ENC5(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(srcdst
, reg
, 2),
3284 ENC(src2
, reg
, 1), ENC(x
, xpath
, 1)))
3285 INSN(sub
, s
, s3_sat_x
, 1cycle
, C64XP
, 0,
3287 OP3(ORREG1
, ORXREG1
, OWREG1
),
3288 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3289 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3290 INSN(sub
, d
, dx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
3292 OP3(ORREG1
, OHWCST1
, OWREG1
),
3293 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(srcdst
, reg
, 2)))
3294 INSN(sub
, d
, dx2op
, 1cycle
, C64XP
, 0,
3296 OP3(ORREG1
, ORXREG1
, OWREG1
),
3297 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(srcdst
, reg
, 0),
3298 ENC(src2
, reg
, 1), ENC(srcdst
, reg
, 2)))
3301 INSNE(subab
, d_si_si_si
, d
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
3302 FIX1(FIX(op
, 0x31)),
3303 OP3(ORREG1
, ORREG1
, OWREG1
),
3304 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
3306 INSNE(subab
, d_si_u5_si
, d
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
3307 FIX1(FIX(op
, 0x33)),
3308 OP3(ORREG1
, OACST
, OWREG1
),
3309 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
3312 INSN(subabs4
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
3313 FIX1(FIX(op
, 0x5a)),
3314 OP3(ORREG1
, ORXREG1
, OWREG1
),
3315 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3316 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3318 INSNE(subah
, d_si_si_si
, d
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
3319 FIX1(FIX(op
, 0x35)),
3320 OP3(ORREG1
, ORREG1
, OWREG1
),
3321 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
3323 INSNE(subah
, d_si_u5_si
, d
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
3324 FIX1(FIX(op
, 0x37)),
3325 OP3(ORREG1
, OACST
, OWREG1
),
3326 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
3329 INSNE(subaw
, d_si_si_si
, d
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
3330 FIX1(FIX(op
, 0x39)),
3331 OP3(ORREG1
, ORREG1
, OWREG1
),
3332 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, reg
, 1),
3334 INSNE(subaw
, d_si_u5_si
, d
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
,
3335 FIX1(FIX(op
, 0x3b)),
3336 OP3(ORREG1
, OACST
, OWREG1
),
3337 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg
, 0), ENC(src1
, ucst
, 1),
3341 INSN(subaw
, d
, dx5p
, 1cycle
, C64XP
, 0,
3343 OP3(ORB15REG1
, OACST
, OWB15REG1
),
3344 ENC2(ENC(s
, fu
, 0), ENC(cst
, ucst
, 1)))
3347 INSN(subc
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
3348 FIX1(FIX(op
, 0x4b)),
3349 OP3(ORREG1
, ORXREG1
, OWREG1
),
3350 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3351 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3353 INSNE(subdp
, l_dp_xdp_dp
, l
, 1_or_2_src
, addsubdp
, C67X
, TIC6X_FLAG_PREFER(1),
3354 FIX1(FIX(op
, 0x19)),
3355 OP3(ORREGD12
, ORXREGD12
, OWREGD67
),
3356 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3357 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3358 INSNE(subdp
, l_xdp_dp_dp
, l
, 1_or_2_src
, addsubdp
, C67X
, TIC6X_FLAG_PREFER(0),
3359 FIX1(FIX(op
, 0x1d)),
3360 OP3(ORXREGD12
, ORREGD12
, OWREGD67
),
3361 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3362 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3363 INSNE(subdp
, s_dp_xdp_dp
, s
, l_1_or_2_src
, addsubdp
, C67XP
,
3364 TIC6X_FLAG_PREFER(1),
3365 FIX1(FIX(op
, 0x73)),
3366 OP3(ORREGD12
, ORXREGD12
, OWREGD67
),
3367 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3368 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3369 INSNE(subdp
, s_xdp_dp_dp
, s
, l_1_or_2_src
, addsubdp
, C67XP
,
3370 TIC6X_FLAG_PREFER(0),
3371 FIX1(FIX(op
, 0x77)),
3372 OP3(ORXREGD12
, ORREGD12
, OWREGD67
),
3373 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
3374 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
3376 INSNE(subsp
, l_sp_xsp_sp
, l
, 1_or_2_src
, 4cycle
, C67X
, TIC6X_FLAG_PREFER(1),
3377 FIX1(FIX(op
, 0x11)),
3378 OP3(ORREG1
, ORXREG1
, OWREG4
),
3379 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3380 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3381 INSNE(subsp
, l_xsp_sp_sp
, l
, 1_or_2_src
, 4cycle
, C67X
, TIC6X_FLAG_PREFER(0),
3382 FIX1(FIX(op
, 0x15)),
3383 OP3(ORXREG1
, ORREG1
, OWREG4
),
3384 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3385 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3386 INSNE(subsp
, s_sp_xsp_sp
, s
, l_1_or_2_src
, 4cycle
, C67XP
,
3387 TIC6X_FLAG_PREFER(1),
3388 FIX1(FIX(op
, 0x71)),
3389 OP3(ORREG1
, ORXREG1
, OWREG4
),
3390 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3391 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3392 INSNE(subsp
, s_xsp_sp_sp
, s
, l_1_or_2_src
, 4cycle
, C67XP
,
3393 TIC6X_FLAG_PREFER(0),
3394 FIX1(FIX(op
, 0x75)),
3395 OP3(ORXREG1
, ORREG1
, OWREG4
),
3396 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
3397 ENC(src1
, reg
, 1), ENC(dst
, reg
, 2)))
3399 INSNE(subu
, l_ui_xui_ul
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(1),
3400 FIX1(FIX(op
, 0x2f)),
3401 OP3(ORREG1
, ORXREG1
, OWREGL1
),
3402 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3403 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3404 INSNE(subu
, l_xui_ui_ul
, l
, 1_or_2_src
, 1cycle
, C62X
, TIC6X_FLAG_PREFER(0),
3405 FIX1(FIX(op
, 0x3f)),
3406 OP3(ORXREG1
, ORREG1
, OWREGL1
),
3407 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3408 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3410 INSN(sub2
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
3411 FIX1(FIX(op
, 0x04)),
3412 OP3(ORREG1
, ORXREG1
, OWREG1
),
3413 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3414 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3415 INSN(sub2
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
3416 FIX1(FIX(op
, 0x11)),
3417 OP3(ORREG1
, ORXREG1
, OWREG1
),
3418 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3419 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3420 INSN(sub2
, d
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
3422 OP3(ORREG1
, ORXREG1
, OWREG1
),
3423 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3424 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3426 INSN(sub4
, l
, 1_or_2_src
, 1cycle
, C64X
, 0,
3427 FIX1(FIX(op
, 0x66)),
3428 OP3(ORREG1
, ORXREG1
, OWREG1
),
3429 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3430 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3432 INSN(swap2
, l
, 1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_MACRO
|TIC6X_FLAG_NO_CROSS
,
3433 FIX2(FIX(op
, 0x1b), FIX(x
, 0)),
3434 OP2(ORREG1
, OWREG1
),
3435 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3436 ENC(src2
, reg
, 0), ENC(dst
, reg
, 1)))
3437 INSN(swap2
, s
, 1_or_2_src
, 1cycle
, C64X
, TIC6X_FLAG_MACRO
|TIC6X_FLAG_NO_CROSS
,
3438 FIX2(FIX(op
, 0x10), FIX(x
, 0)),
3439 OP2(ORREG1
, OWREG1
),
3440 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3441 ENC(src2
, reg
, 0), ENC(dst
, reg
, 1)))
3443 /* Contrary to SPRUFE8, this is the correct encoding for this
3445 INSN(swap4
, l
, unary
, 1cycle
, C64X
, 0,
3447 OP2(ORXREG1
, OWREG1
),
3448 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
3451 INSN(swe
, nfu
, swe
, 1cycle
, C64XP
, 0,
3456 INSN(swenr
, nfu
, swenr
, 1cycle
, C64XP
, 0,
3461 INSN(unpkhu4
, l
, unary
, 1cycle
, C64X
, 0,
3462 FIX1(FIX(op
, 0x03)),
3463 OP2(ORXREG1
, OWREG1
),
3464 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
3466 INSN(unpkhu4
, s
, unary
, 1cycle
, C64X
, 0,
3467 FIX1(FIX(op
, 0x03)),
3468 OP2(ORXREG1
, OWREG1
),
3469 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
3472 INSN(unpklu4
, l
, unary
, 1cycle
, C64X
, 0,
3473 FIX1(FIX(op
, 0x02)),
3474 OP2(ORXREG1
, OWREG1
),
3475 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
3477 INSN(unpklu4
, s
, unary
, 1cycle
, C64X
, 0,
3478 FIX1(FIX(op
, 0x02)),
3479 OP2(ORXREG1
, OWREG1
),
3480 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
3483 INSNE(xor, l_ui_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
3484 FIX1(FIX(op
, 0x6f)),
3485 OP3(ORREG1
, ORXREG1
, OWREG1
),
3486 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3487 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3488 INSNE(xor, l_s5_xui_ui
, l
, 1_or_2_src
, 1cycle
, C62X
, 0,
3489 FIX1(FIX(op
, 0x6e)),
3490 OP3(OACST
, ORXREG1
, OWREG1
),
3491 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
3492 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3493 INSNE(xor, s_ui_xui_ui
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
3494 FIX1(FIX(op
, 0x0b)),
3495 OP3(ORREG1
, ORXREG1
, OWREG1
),
3496 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3497 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3498 INSNE(xor, s_s5_xui_ui
, s
, 1_or_2_src
, 1cycle
, C62X
, 0,
3499 FIX1(FIX(op
, 0x0a)),
3500 OP3(OACST
, ORXREG1
, OWREG1
),
3501 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
3502 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3503 INSNE(xor, d_ui_xui_ui
, d
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
3505 OP3(ORREG1
, ORXREG1
, OWREG1
),
3506 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3507 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3508 INSNE(xor, d_s5_xui_ui
, d
, ext_1_or_2_src
, 1cycle
, C64X
, 0,
3510 OP3(OACST
, ORXREG1
, OWREG1
),
3511 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, scst
, 0),
3512 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3515 INSN(xor, l
, l2c
, 1cycle
, C64XP
, 0,
3517 OP3(ORREG1
, ORXREG1
, OWREG1NORS
),
3518 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3519 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3520 INSNU(xor, l
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
3521 FIX2(FIX(op
, 0x7), FIX(unit
, 0x0)),
3522 OP3(ORREG1
, OHWCST1
, OWREG1
),
3523 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(srcdst
, reg
, 2)))
3524 INSNU(xor, s
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
3525 FIX2(FIX(op
, 0x7), FIX(unit
, 0x1)),
3526 OP3(ORREG1
, OHWCST1
, OWREG1
),
3527 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(srcdst
, reg
, 2)))
3528 INSNU(xor, d
, lsdx1
, 1cycle
, C64XP
, TIC6X_FLAG_NO_CROSS
,
3529 FIX2(FIX(op
, 0x7), FIX(unit
, 0x2)),
3530 OP3(ORREG1
, OHWCST1
, OWREG1
),
3531 ENC3(ENC(s
, fu
, 0), ENC(srcdst
, reg
, 0), ENC(srcdst
, reg
, 2)))
3534 INSN(xormpy
, m
, 1_or_2_src
, 4cycle
, C64XP
, 0,
3535 FIX1(FIX(op
, 0x1b)),
3536 OP3(ORREG1
, ORXREG1
, OWREG4
),
3537 ENC5(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src1
, reg
, 0),
3538 ENC(src2
, reg
, 1), ENC(dst
, reg
, 2)))
3540 INSN(xpnd2
, m
, unary
, 1616_m
, C64X
, 0,
3541 FIX1(FIX(op
, 0x19)),
3542 OP2(ORXREG1
, OWREG2
),
3543 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
3546 INSN(xpnd4
, m
, unary
, 1616_m
, C64X
, 0,
3547 FIX1(FIX(op
, 0x18)),
3548 OP2(ORXREG1
, OWREG2
),
3549 ENC4(ENC(s
, fu
, 0), ENC(x
, xpath
, 0), ENC(src2
, reg
, 0),
3552 INSN(zero
, s
, mvk
, 1cycle
, C62X
, TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
,
3553 FIX2(FIX(h
, 0), FIX(cst
, 0)),
3555 ENC2(ENC(s
, fu
, 0), ENC(dst
, reg
, 0)))
3556 INSN(zero
, l
, unary
, 1cycle
, C64X
,
3557 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_PREFER(1),
3558 FIX3(FIX(x
, 0), FIX(op
, 0x05), FIX(src2
, 0)),
3560 ENC2(ENC(s
, fu
, 0), ENC(dst
, reg
, 0)))
3561 INSNE(zero
, l_sub
, l
, 1_or_2_src
, 1cycle
, C62X
,
3562 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_PREFER(0),
3563 FIX2(FIX(op
, 0x07), FIX(x
, 0)),
3565 ENC4(ENC(s
, fu
, 0), ENC(src1
, reg_unused
, 0), ENC(src2
, reg_unused
, 0),
3567 INSNE(zero
, l_sub_sl
, l
, 1_or_2_src
, 1cycle
, C62X
,
3568 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
,
3569 FIX2(FIX(op
, 0x27), FIX(x
, 0)),
3571 ENC4(ENC(s
, fu
, 0), ENC(src1
, reg_unused
, 0), ENC(src2
, reg_unused
, 0),
3573 INSNE(zero
, d_mvk
, d
, 1_or_2_src
, 1cycle
, C64X
,
3574 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_PREFER(1),
3575 FIX3(FIX(op
, 0x00), FIX(src1
, 0), FIX(src2
, 0)),
3577 ENC2(ENC(s
, fu
, 0), ENC(dst
, reg
, 0)))
3578 INSNE(zero
, d_sub
, d
, 1_or_2_src
, 1cycle
, C62X
,
3579 TIC6X_FLAG_NO_CROSS
|TIC6X_FLAG_MACRO
|TIC6X_FLAG_PREFER(0),
3580 FIX1(FIX(op
, 0x11)),
3582 ENC4(ENC(s
, fu
, 0), ENC(src2
, reg_unused
, 0), ENC(src1
, reg_unused
, 0),
3585 #undef TIC6X_INSN_C64X_AND_C67X
3586 #undef tic6x_insn_format_nfu_s_branch_nop_cst
3587 #undef tic6x_insn_format_s_l_1_or_2_src