1 1.1 christos /* TI C6X opcode table. 2 1.11 christos Copyright (C) 2010-2024 Free Software Foundation, Inc. 3 1.1 christos 4 1.1 christos This program is free software; you can redistribute it and/or modify 5 1.1 christos it under the terms of the GNU General Public License as published by 6 1.1 christos the Free Software Foundation; either version 3 of the License, or 7 1.1 christos (at your option) any later version. 8 1.1 christos 9 1.1 christos This program is distributed in the hope that it will be useful, 10 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of 11 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 1.1 christos GNU General Public License for more details. 13 1.1 christos 14 1.1 christos You should have received a copy of the GNU General Public License 15 1.1 christos along with this program; if not, write to the Free Software 16 1.1 christos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, 17 1.1 christos MA 02110-1301, USA. */ 18 1.1 christos 19 1.1 christos /* Define the INSN macro before including this file; it takes as 20 1.1 christos arguments the fields from tic6x_opcode (defined in tic6x.h). The 21 1.1 christos name is given as an identifier; the subsequent four operands should 22 1.1 christos have "tic6x_func_unit_", "tic6x_insn_format_", "tic6x_pipeline_" 23 1.1 christos and "TIC6X_INSN_", respectively, prepended to them by the macro 24 1.1 christos definition. Also define INSNE, which has a second argument that 25 1.1 christos goes after tic6x_opcode_NAME_ to form the enumeration value for 26 1.1 christos this instruction, where the value otherwise formed from the name, 27 1.1 christos functional unit and format is ambiguous, but otherwise has the same 28 1.1 christos arguments as INSN. */ 29 1.1 christos 30 1.1 christos #define TIC6X_INSN_C64X_AND_C67X TIC6X_INSN_C64X|TIC6X_INSN_C67X 31 1.1 christos #define tic6x_insn_format_nfu_s_branch_nop_cst \ 32 1.1 christos tic6x_insn_format_s_branch_nop_cst 33 1.1 christos #define tic6x_insn_format_s_l_1_or_2_src tic6x_insn_format_l_1_or_2_src 34 1.1 christos #define RAN(id, min, max) { CONCAT2(tic6x_field_,id), (min), (max) } 35 1.1 christos #define FIX(id, val) RAN(id, val, val) 36 1.1 christos #define FIX0() 0, { { 0, 0, 0 } } 37 1.1 christos #define FIX1(a) 1, { a } 38 1.1 christos #define FIX2(a, b) 2, { a, b } 39 1.1 christos #define FIX3(a, b, c) 3, { a, b, c } 40 1.1 christos #define FIX4(a, b, c, d) 4, { a, b, c, d } 41 1.10 christos #define OP0() 0, { { 0, 0, false, 0, 0, 0, 0 } } 42 1.1 christos #define OP1(a) 1, { a } 43 1.1 christos #define OP2(a, b) 2, { a, b } 44 1.1 christos #define OP3(a, b, c) 3, { a, b, c } 45 1.1 christos #define OP4(a, b, c, d) 4, { a, b, c, d } 46 1.1 christos #define OACST { tic6x_operand_asm_const, 0, tic6x_rw_none, 0, 0, 0, 0 } 47 1.1 christos #define OLCST { tic6x_operand_link_const, 0, tic6x_rw_none, 0, 0, 0, 0 } 48 1.1 christos #define OHWCSTM1 { tic6x_operand_hw_const_minus_1, 0, tic6x_rw_none, 0, 0, 0, 0 } 49 1.1 christos #define OHWCST0 { tic6x_operand_hw_const_0, 0, tic6x_rw_none, 0, 0, 0, 0 } 50 1.1 christos #define OHWCST1 { tic6x_operand_hw_const_1, 0, tic6x_rw_none, 0, 0, 0, 0 } 51 1.1 christos #define OHWCST5 { tic6x_operand_hw_const_5, 0, tic6x_rw_none, 0, 0, 0, 0 } 52 1.1 christos #define OHWCST16 { tic6x_operand_hw_const_16, 0, tic6x_rw_none, 0, 0, 0, 0 } 53 1.1 christos #define OHWCST24 { tic6x_operand_hw_const_24, 0, tic6x_rw_none, 0, 0, 0, 0 } 54 1.1 christos #define OHWCST31 { tic6x_operand_hw_const_31, 0, tic6x_rw_none, 0, 0, 0, 0 } 55 1.1 christos #define OFULIST { tic6x_operand_func_unit, 0, tic6x_rw_none, 0, 0, 0, 0 } 56 1.1 christos #define ORIRP1 { tic6x_operand_irp, 4, tic6x_rw_read, 1, 1, 0, 0 } 57 1.1 christos #define ORNRP1 { tic6x_operand_nrp, 4, tic6x_rw_read, 1, 1, 0, 0 } 58 1.1 christos #define OWREG1 { tic6x_operand_reg, 4, tic6x_rw_write, 1, 1, 0, 0 } 59 1.1 christos #define OWREG1Z { tic6x_operand_zreg, 4, tic6x_rw_write, 1, 1, 0, 0 } 60 1.1 christos #define OWREG1NORS { tic6x_operand_reg_nors, 4, tic6x_rw_write, 1, 1, 0, 0 } 61 1.1 christos #define ORREG1B { tic6x_operand_reg_bside, 4, tic6x_rw_write, 1, 1, 0, 0 } 62 1.1 christos #define ORREG1BNORS { tic6x_operand_reg_bside_nors, 4, tic6x_rw_write, 1, 1, 0, 0 } 63 1.1 christos #define OWRETREG1 { tic6x_operand_retreg, 4, tic6x_rw_write, 1, 1, 0, 0 } 64 1.1 christos #define ORREG1 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 1, 0, 0 } 65 1.1 christos #define ORDREG1 { tic6x_operand_dreg, 4, tic6x_rw_read, 1, 1, 0, 0 } 66 1.1 christos #define ORTREG1 { tic6x_operand_treg, 4, tic6x_rw_read, 1, 1, 0, 0 } 67 1.1 christos #define ORWREG1 { tic6x_operand_reg, 4, tic6x_rw_read_write, 1, 1, 0, 0 } 68 1.1 christos #define ORB15REG1 { tic6x_operand_b15reg, 4, tic6x_rw_read, 1, 1, 0, 0 } 69 1.1 christos #define OWB15REG1 { tic6x_operand_b15reg, 4, tic6x_rw_write, 1, 1, 0, 0 } 70 1.1 christos #define ORAREG1 { tic6x_operand_areg, 4, tic6x_rw_read, 1, 1, 0, 0 } 71 1.1 christos #define ORXREG1 { tic6x_operand_xreg, 4, tic6x_rw_read, 1, 1, 0, 0 } 72 1.1 christos #define ORREG12 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 2, 0, 0 } 73 1.1 christos #define ORREG14 { tic6x_operand_reg, 4, tic6x_rw_read, 1, 4, 0, 0 } 74 1.1 christos #define ORXREG14 { tic6x_operand_xreg, 4, tic6x_rw_read, 1, 4, 0, 0 } 75 1.1 christos #define OWREG2 { tic6x_operand_reg, 4, tic6x_rw_write, 2, 2, 0, 0 } 76 1.1 christos #define OWREG4 { tic6x_operand_reg, 4, tic6x_rw_write, 4, 4, 0, 0 } 77 1.1 christos #define OWREG9 { tic6x_operand_reg, 4, tic6x_rw_write, 9, 9, 0, 0 } 78 1.1 christos #define OWDREG5 { tic6x_operand_dreg, 4, tic6x_rw_write, 5, 5, 0, 0 } 79 1.1 christos #define OWTREG5 { tic6x_operand_treg, 4, tic6x_rw_write, 5, 5, 0, 0 } 80 1.1 christos #define OWREGL1 { tic6x_operand_regpair, 5, tic6x_rw_write, 1, 1, 1, 1 } 81 1.1 christos #define ORREGL1 { tic6x_operand_regpair, 5, tic6x_rw_read, 1, 1, 1, 1 } 82 1.1 christos #define OWREGD1 { tic6x_operand_regpair, 8, tic6x_rw_write, 1, 1, 1, 1 } 83 1.1 christos #define OWREGD12 { tic6x_operand_regpair, 8, tic6x_rw_write, 1, 1, 2, 2 } 84 1.1 christos #define OWREGD4 { tic6x_operand_regpair, 8, tic6x_rw_write, 4, 4, 4, 4 } 85 1.1 christos #define ORREGD1 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 1, 1, 1 } 86 1.1 christos #define OWREGD45 { tic6x_operand_regpair, 8, tic6x_rw_write, 4, 4, 5, 5 } 87 1.1 christos #define OWREGD67 { tic6x_operand_regpair, 8, tic6x_rw_write, 6, 6, 7, 7 } 88 1.1 christos #define ORDREGD1 { tic6x_operand_dregpair, 8, tic6x_rw_read, 1, 1, 1, 1 } 89 1.1 christos #define ORTREGD1 { tic6x_operand_tregpair, 8, tic6x_rw_read, 1, 1, 1, 1 } 90 1.1 christos #define OWDREGD5 { tic6x_operand_dregpair, 8, tic6x_rw_write, 5, 5, 5, 5 } 91 1.1 christos #define OWTREGD5 { tic6x_operand_tregpair, 8, tic6x_rw_write, 5, 5, 5, 5 } 92 1.1 christos #define ORREGD12 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 1, 2, 2 } 93 1.1 christos #define ORXREGD12 { tic6x_operand_xregpair, 8, tic6x_rw_read, 1, 1, 2, 2 } 94 1.1 christos #define ORREGD1234 { tic6x_operand_regpair, 8, tic6x_rw_read, 1, 2, 3, 4 } 95 1.1 christos #define ORXREGD1324 { tic6x_operand_xregpair, 8, tic6x_rw_read, 1, 3, 2, 4 } 96 1.1 christos #define OWREGD910 { tic6x_operand_regpair, 8, tic6x_rw_write, 9, 9, 10, 10 } 97 1.1 christos #define ORCREG1 { tic6x_operand_ctrl, 4, tic6x_rw_read, 1, 1, 0, 0 } 98 1.1 christos #define OWCREG1 { tic6x_operand_ctrl, 4, tic6x_rw_write, 1, 1, 0, 0 } 99 1.1 christos #define OWILC1 { tic6x_operand_ilc, 4, tic6x_rw_write, 1, 1, 0, 0 } 100 1.1 christos #define ORMEMDW { tic6x_operand_mem_deref, 4, tic6x_rw_read, 3, 3, 0, 0 } 101 1.1 christos #define OWMEMDW { tic6x_operand_mem_deref, 4, tic6x_rw_write, 3, 3, 0, 0 } 102 1.1 christos #define ORMEMSB { tic6x_operand_mem_short, 1, tic6x_rw_read, 3, 3, 0, 0 } 103 1.1 christos #define OWMEMSB { tic6x_operand_mem_short, 1, tic6x_rw_write, 3, 3, 0, 0 } 104 1.1 christos #define ORMEMLB { tic6x_operand_mem_long, 1, tic6x_rw_read, 3, 3, 0, 0 } 105 1.1 christos #define OWMEMLB { tic6x_operand_mem_long, 1, tic6x_rw_write, 3, 3, 0, 0 } 106 1.1 christos #define ORMEMSH { tic6x_operand_mem_short, 2, tic6x_rw_read, 3, 3, 0, 0 } 107 1.1 christos #define OWMEMSH { tic6x_operand_mem_short, 2, tic6x_rw_write, 3, 3, 0, 0 } 108 1.1 christos #define ORMEMLH { tic6x_operand_mem_long, 2, tic6x_rw_read, 3, 3, 0, 0 } 109 1.1 christos #define OWMEMLH { tic6x_operand_mem_long, 2, tic6x_rw_write, 3, 3, 0, 0 } 110 1.1 christos #define ORMEMSW { tic6x_operand_mem_short, 4, tic6x_rw_read, 3, 3, 0, 0 } 111 1.1 christos #define OWMEMSW { tic6x_operand_mem_short, 4, tic6x_rw_write, 3, 3, 0, 0 } 112 1.1 christos #define ORMEMLW { tic6x_operand_mem_long, 4, tic6x_rw_read, 3, 3, 0, 0 } 113 1.1 christos #define OWMEMLW { tic6x_operand_mem_long, 4, tic6x_rw_write, 3, 3, 0, 0 } 114 1.1 christos #define ORMEMSD { tic6x_operand_mem_short, 8, tic6x_rw_read, 3, 3, 0, 0 } 115 1.1 christos #define OWMEMSD { tic6x_operand_mem_short, 8, tic6x_rw_write, 3, 3, 0, 0 } 116 1.1 christos #define ORMEMND { tic6x_operand_mem_ndw, 8, tic6x_rw_read, 3, 3, 0, 0 } 117 1.1 christos #define OWMEMND { tic6x_operand_mem_ndw, 8, tic6x_rw_write, 3, 3, 0, 0 } 118 1.1 christos #define ENC(id, meth, op) { \ 119 1.1 christos CONCAT2(tic6x_field_,id), \ 120 1.1 christos CONCAT2(tic6x_coding_,meth), \ 121 1.1 christos op \ 122 1.1 christos } 123 1.1 christos #define ENC0() 0, { { 0, 0, 0 } } 124 1.1 christos #define ENC1(a) 1, { a } 125 1.1 christos #define ENC2(a, b) 2, { a, b } 126 1.1 christos #define ENC3(a, b, c) 3, { a, b, c } 127 1.1 christos #define ENC4(a, b, c, d) 4, { a, b, c, d } 128 1.1 christos #define ENC5(a, b, c, d, e) 5, { a, b, c, d, e } 129 1.1 christos #define ENC6(a, b, c, d, e, f) 6, { a, b, c, d, e, f } 130 1.1 christos #define ENC7(a, b, c, d, e, f, g) 7, { a, b, c, d, e, f, g } 131 1.1 christos 132 1.1 christos INSN(abs, l, unary, 1cycle, C62X, 0, 133 1.1 christos FIX1(FIX(op, 0)), 134 1.1 christos OP2(ORXREG1, OWREG1), 135 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 136 1.1 christos ENC(dst, reg, 1))) 137 1.1 christos INSN(abs, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 138 1.1 christos FIX3(FIX(op, 0x38), FIX(x, 0), FIX(src1, 0)), 139 1.1 christos OP2(ORREGL1, OWREGL1), 140 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1))) 141 1.1 christos 142 1.1 christos INSN(abs2, l, unary, 1cycle, C64X, 0, 143 1.1 christos FIX1(FIX(op, 0x4)), 144 1.1 christos OP2(ORXREG1, OWREG1), 145 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 146 1.1 christos ENC(dst, reg, 1))) 147 1.1 christos 148 1.1 christos INSN(absdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS, 149 1.1 christos FIX2(FIX(op, 0x2c), FIX(x, 0)), 150 1.1 christos OP2(ORREGD1, OWREGD12), 151 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), 152 1.1 christos ENC(dst, reg, 1))) 153 1.1 christos 154 1.1 christos INSN(abssp, s, unary, 1cycle, C67X, 0, 155 1.1 christos FIX1(FIX(op, 0)), 156 1.1 christos OP2(ORXREG1, OWREG1), 157 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 158 1.1 christos ENC(dst, reg, 1))) 159 1.1 christos 160 1.1 christos INSNE(add, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, 161 1.1 christos FIX1(FIX(op, 0x3)), 162 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 163 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 164 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 165 1.1 christos INSNE(add, l_si_xsi_sl, l, 1_or_2_src, 1cycle, C62X, 0, 166 1.1 christos FIX1(FIX(op, 0x23)), 167 1.1 christos OP3(ORREG1, ORXREG1, OWREGL1), 168 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 169 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 170 1.1 christos INSNE(add, l_xsi_sl_sl, l, 1_or_2_src, 1cycle, C62X, 0, 171 1.1 christos FIX1(FIX(op, 0x21)), 172 1.1 christos OP3(ORXREG1, ORREGL1, OWREGL1), 173 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 174 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 175 1.1 christos INSNE(add, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, 176 1.1 christos FIX1(FIX(op, 0x2)), 177 1.1 christos OP3(OACST, ORXREG1, OWREG1), 178 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 179 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 180 1.1 christos INSNE(add, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 181 1.1 christos FIX2(FIX(op, 0x20), FIX(x, 0)), 182 1.1 christos OP3(OACST, ORREGL1, OWREGL1), 183 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1), 184 1.1 christos ENC(dst, reg, 2))) 185 1.1 christos INSNE(add, s_si_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0, 186 1.1 christos FIX1(FIX(op, 0x7)), 187 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 188 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 189 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 190 1.1 christos INSNE(add, s_s5_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0, 191 1.1 christos FIX1(FIX(op, 0x6)), 192 1.1 christos OP3(OACST, ORXREG1, OWREG1), 193 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 194 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 195 1.1 christos INSNE(add, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, 196 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 197 1.1 christos FIX1(FIX(op, 0x10)), 198 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 199 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 200 1.1 christos ENC(dst, reg, 2))) 201 1.1 christos INSNE(add, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, 202 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 203 1.1 christos FIX1(FIX(op, 0x12)), 204 1.1 christos OP3(ORREG1, OACST, OWREG1), 205 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 206 1.1 christos ENC(dst, reg, 2))) 207 1.1 christos INSNE(add, d_si_xsi_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0), 208 1.1 christos FIX1(FIX(op, 0xa)), 209 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 210 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 211 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 212 1.1 christos INSNE(add, d_xsi_s5_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0), 213 1.1 christos FIX1(FIX(op, 0xb)), 214 1.1 christos OP3(ORXREG1, OACST, OWREG1), 215 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 216 1.1 christos ENC(src1, scst, 1), ENC(dst, reg, 2))) 217 1.1 christos 218 1.1 christos /* 16 bits insn */ 219 1.1 christos INSN(add, l, l3_sat_0, 1cycle, C64XP, 0, 220 1.1 christos FIX1(FIX(op, 0x0)), 221 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 222 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 223 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 224 1.1 christos INSN(add, l, l3i, 1cycle, C64XP, 0, 225 1.1 christos FIX0(), 226 1.1 christos OP3(OACST, ORXREG1, OWREG1), 227 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(cst, scst_l3i, 0), 228 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 229 1.1 christos INSN(add, l, lx1, 1cycle, C64XP, 230 1.1 christos TIC6X_FLAG_NO_CROSS, 231 1.1 christos FIX1(FIX(op, 0x3)), 232 1.1 christos OP3(OHWCSTM1, ORREG1, OWREG1), 233 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 1), ENC(srcdst, reg, 2))) 234 1.1 christos INSN(add, s, s3_sat_0, 1cycle, C64XP, 0, 235 1.1 christos FIX1(FIX(op, 0x0)), 236 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 237 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 238 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 239 1.1 christos INSN(add, s, sx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 240 1.1 christos FIX1(FIX(op, 0x3)), 241 1.1 christos OP3(OHWCSTM1, ORREG1, OWREG1), 242 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 1), ENC(srcdst, reg, 2))) 243 1.1 christos INSN(add, s, sx2op, 1cycle, C64XP, 0, 244 1.1 christos FIX1(FIX(op, 0x0)), 245 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 246 1.1 christos ENC5(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2), 247 1.1 christos ENC(src2, reg, 1), ENC(x, xpath, 1))) 248 1.1 christos INSN(add, d, dx2op, 1cycle, C64XP, 0, 249 1.1 christos FIX1(FIX(op, 0x0)), 250 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 251 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 1), ENC(srcdst, reg, 0), 252 1.1 christos ENC(src2, reg, 1), ENC(srcdst, reg, 2))) 253 1.1 christos INSNU(add, l, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 254 1.1 christos FIX2(FIX(op, 0x5), FIX(unit, 0x0)), 255 1.1 christos OP3(ORREG1, OHWCST1, OWREG1), 256 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) 257 1.1 christos INSNU(add, s, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 258 1.1 christos FIX2(FIX(op, 0x5), FIX(unit, 0x1)), 259 1.1 christos OP3(ORREG1, OHWCST1, OWREG1), 260 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) 261 1.1 christos INSNU(add, d, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 262 1.1 christos FIX2(FIX(op, 0x5), FIX(unit, 0x2)), 263 1.1 christos OP3(ORREG1, OHWCST1, OWREG1), 264 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) 265 1.1 christos /**/ 266 1.1 christos 267 1.1 christos INSNE(addab, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 268 1.1 christos FIX1(FIX(op, 0x30)), 269 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 270 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 271 1.1 christos ENC(dst, reg, 2))) 272 1.1 christos INSNE(addab, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, 273 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 274 1.1 christos FIX1(FIX(op, 0x32)), 275 1.1 christos OP3(ORREG1, OACST, OWREG1), 276 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 277 1.1 christos ENC(dst, reg, 2))) 278 1.1 christos INSN(addab, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0), 279 1.1 christos FIX1(FIX(op, 3)), 280 1.1 christos OP3(ORAREG1, OLCST, OWREG1), 281 1.1 christos ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 1), 282 1.1 christos ENC(dst, reg, 2))) 283 1.1 christos 284 1.1 christos INSNE(addad, d_si_si_si, d, 1_or_2_src, 1cycle, C64X_AND_C67X, 285 1.1 christos TIC6X_FLAG_NO_CROSS, 286 1.1 christos FIX1(FIX(op, 0x3c)), 287 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 288 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 289 1.1 christos ENC(dst, reg, 2))) 290 1.1 christos INSNE(addad, d_si_u5_si, d, 1_or_2_src, 1cycle, C64X_AND_C67X, 291 1.1 christos TIC6X_FLAG_NO_CROSS, 292 1.1 christos FIX1(FIX(op, 0x3d)), 293 1.1 christos OP3(ORREG1, OACST, OWREG1), 294 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 295 1.1 christos ENC(dst, reg, 2))) 296 1.1 christos 297 1.1 christos INSNE(addah, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 298 1.1 christos FIX1(FIX(op, 0x34)), 299 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 300 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 301 1.1 christos ENC(dst, reg, 2))) 302 1.1 christos INSNE(addah, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, 303 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 304 1.1 christos FIX1(FIX(op, 0x36)), 305 1.1 christos OP3(ORREG1, OACST, OWREG1), 306 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 307 1.1 christos ENC(dst, reg, 2))) 308 1.1 christos INSN(addah, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0), 309 1.1 christos FIX1(FIX(op, 5)), 310 1.1 christos OP3(ORAREG1, OLCST, OWREG1), 311 1.1 christos ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 1), 312 1.1 christos ENC(dst, reg, 2))) 313 1.1 christos 314 1.1 christos INSNE(addaw, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 315 1.1 christos FIX1(FIX(op, 0x38)), 316 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 317 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 318 1.1 christos ENC(dst, reg, 2))) 319 1.1 christos INSNE(addaw, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, 320 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 321 1.1 christos FIX1(FIX(op, 0x3a)), 322 1.1 christos OP3(ORREG1, OACST, OWREG1), 323 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 324 1.1 christos ENC(dst, reg, 2))) 325 1.1 christos INSN(addaw, d, adda_long, 1cycle, C64XP, TIC6X_FLAG_PREFER(0), 326 1.1 christos FIX1(FIX(op, 7)), 327 1.1 christos OP3(ORAREG1, OLCST, OWREG1), 328 1.1 christos ENC4(ENC(s, fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_word, 1), 329 1.1 christos ENC(dst, reg, 2))) 330 1.1 christos 331 1.1 christos /* 16 bits insn */ 332 1.1 christos INSN(addaw, d, dx5, 1cycle, C64XP, TIC6X_FLAG_INSN16_BSIDE, 333 1.1 christos FIX0(), 334 1.1 christos OP3(ORB15REG1, OACST, OWREG1), 335 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, ucst, 1), ENC(dst, reg, 2))) 336 1.1 christos INSN(addaw, d, dx5p, 1cycle, C64XP, TIC6X_FLAG_INSN16_BSIDE, 337 1.1 christos FIX1(FIX(op, 0)), 338 1.1 christos OP3(ORB15REG1, OACST, OWB15REG1), 339 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, ucst, 1))) 340 1.1 christos /**/ 341 1.1 christos 342 1.1 christos INSN(adddp, l, 1_or_2_src, addsubdp, C67X, 0, 343 1.1 christos FIX1(FIX(op, 0x18)), 344 1.1 christos OP3(ORREGD12, ORXREGD12, OWREGD67), 345 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 346 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 347 1.1 christos INSN(adddp, s, l_1_or_2_src, addsubdp, C67XP, 0, 348 1.1 christos FIX1(FIX(op, 0x72)), 349 1.1 christos OP3(ORREGD12, ORXREGD12, OWREGD67), 350 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 351 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 352 1.1 christos 353 1.1 christos INSN(addk, s, addk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 354 1.1 christos FIX0(), 355 1.1 christos OP2(OLCST, OWREG1), 356 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, scst, 0), ENC(dst, reg, 1))) 357 1.1 christos 358 1.1 christos /* 16 bits insn */ 359 1.1 christos INSN(addk, s, sx5, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 360 1.1 christos FIX0(), 361 1.1 christos OP2(OACST, OWREG1), 362 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(dst, reg, 1))) 363 1.1 christos /**/ 364 1.1 christos 365 1.1 christos INSN(addkpc, s, addkpc, 1cycle, C64X, 366 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_SIDE_B_ONLY, 367 1.1 christos FIX1(FIX(s, 1)), 368 1.1 christos OP3(OLCST, OWREG1, OACST), 369 1.1 christos ENC3(ENC(src1, pcrel, 0), ENC(dst, reg, 1), ENC(src2, ucst, 2))) 370 1.1 christos 371 1.1 christos INSN(addsp, l, 1_or_2_src, 4cycle, C67X, 0, 372 1.1 christos FIX1(FIX(op, 0x10)), 373 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 374 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 375 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 376 1.1 christos INSN(addsp, s, l_1_or_2_src, 4cycle, C67XP, 0, 377 1.1 christos FIX1(FIX(op, 0x70)), 378 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 379 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 380 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 381 1.1 christos 382 1.1 christos INSN(addsub, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, 383 1.1 christos FIX1(FIX(op, 0xc)), 384 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1), 385 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 386 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 387 1.1 christos 388 1.1 christos INSN(addsub2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, 389 1.1 christos FIX1(FIX(op, 0xd)), 390 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1), 391 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 392 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 393 1.1 christos 394 1.1 christos INSNE(addu, l_ui_xui_ul, l, 1_or_2_src, 1cycle, C62X, 0, 395 1.1 christos FIX1(FIX(op, 0x2b)), 396 1.1 christos OP3(ORREG1, ORXREG1, OWREGL1), 397 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 398 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 399 1.1 christos INSNE(addu, l_xui_ul_ul, l, 1_or_2_src, 1cycle, C62X, 0, 400 1.1 christos FIX1(FIX(op, 0x29)), 401 1.1 christos OP3(ORXREG1, ORREGL1, OWREGL1), 402 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 403 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 404 1.1 christos 405 1.1 christos INSN(add2, s, 1_or_2_src, 1cycle, C62X, 0, 406 1.1 christos FIX1(FIX(op, 0x1)), 407 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 408 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 409 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 410 1.1 christos INSN(add2, l, 1_or_2_src, 1cycle, C64X, 0, 411 1.1 christos FIX1(FIX(op, 0x5)), 412 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 413 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 414 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 415 1.1 christos INSN(add2, d, ext_1_or_2_src, 1cycle, C64X, 0, 416 1.1 christos FIX1(FIX(op, 0x4)), 417 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 418 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 419 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 420 1.1 christos 421 1.1 christos INSN(add4, l, 1_or_2_src, 1cycle, C64X, 0, 422 1.1 christos FIX1(FIX(op, 0x65)), 423 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 424 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 425 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 426 1.1 christos 427 1.1 christos INSNE(and, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, 428 1.1 christos FIX1(FIX(op, 0x7b)), 429 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 430 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 431 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 432 1.1 christos INSNE(and, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, 433 1.1 christos FIX1(FIX(op, 0x7a)), 434 1.1 christos OP3(OACST, ORXREG1, OWREG1), 435 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 436 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 437 1.1 christos INSNE(and, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, 438 1.1 christos FIX1(FIX(op, 0x1f)), 439 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 440 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 441 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 442 1.1 christos INSNE(and, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, 443 1.1 christos FIX1(FIX(op, 0x1e)), 444 1.1 christos OP3(OACST, ORXREG1, OWREG1), 445 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 446 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 447 1.1 christos INSNE(and, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, 448 1.1 christos FIX1(FIX(op, 0x6)), 449 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 450 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 451 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 452 1.1 christos INSNE(and, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, 453 1.1 christos FIX1(FIX(op, 0x7)), 454 1.1 christos OP3(OACST, ORXREG1, OWREG1), 455 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 456 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 457 1.1 christos 458 1.1 christos /* 16 bits insn */ 459 1.1 christos INSN(and, l, l2c, 1cycle, C64XP, 0, 460 1.1 christos FIX1(FIX(op, 0)), 461 1.1 christos OP3(ORREG1, ORXREG1, OWREG1NORS), 462 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 463 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 464 1.1 christos /**/ 465 1.1 christos 466 1.1 christos INSN(andn, l, 1_or_2_src, 1cycle, C64X, 0, 467 1.1 christos FIX1(FIX(op, 0x7c)), 468 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 469 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 470 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 471 1.1 christos INSN(andn, s, ext_1_or_2_src, 1cycle, C64X, 0, 472 1.1 christos FIX1(FIX(op, 0x6)), 473 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 474 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 475 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 476 1.1 christos INSN(andn, d, ext_1_or_2_src, 1cycle, C64X, 0, 477 1.1 christos FIX1(FIX(op, 0x0)), 478 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 479 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 480 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 481 1.1 christos 482 1.1 christos INSN(avg2, m, compound, 1616_m, C64X, 0, 483 1.1 christos FIX1(FIX(op, 0x13)), 484 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 485 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 486 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 487 1.1 christos 488 1.1 christos INSN(avgu4, m, compound, 1616_m, C64X, 0, 489 1.1 christos FIX1(FIX(op, 0x12)), 490 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 491 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 492 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 493 1.1 christos 494 1.1 christos INSN(b, s, ext_branch_cond_imm, branch, C62X, TIC6X_FLAG_NO_CROSS, 495 1.1 christos FIX0(), 496 1.1 christos OP1(OLCST), 497 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) 498 1.1 christos INSN(b, s, branch, branch, C62X, TIC6X_FLAG_SIDE_B_ONLY, 499 1.1 christos FIX1(FIX(s, 1)), 500 1.1 christos OP1(ORXREG1), 501 1.1 christos ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0))) 502 1.1 christos INSN(b, s, b_irp, branch, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY, 503 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), 504 1.1 christos OP1(ORIRP1), 505 1.1 christos ENC0()) 506 1.1 christos INSN(b, s, b_nrp, branch, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY, 507 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), 508 1.1 christos OP1(ORNRP1), 509 1.1 christos ENC0()) 510 1.1 christos 511 1.1 christos INSN(bdec, s, bdec, branch, C64X, TIC6X_FLAG_NO_CROSS, 512 1.1 christos FIX0(), 513 1.1 christos OP2(OLCST, ORWREG1), 514 1.1 christos ENC3(ENC(s, fu, 0), ENC(src, pcrel, 0), ENC(dst, reg, 1))) 515 1.1 christos 516 1.1 christos INSN(bitc4, m, unary, 1616_m, C64X, 0, 517 1.1 christos FIX1(FIX(op, 0x1e)), 518 1.1 christos OP2(ORXREG1, OWREG2), 519 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 520 1.1 christos ENC(dst, reg, 1))) 521 1.1 christos 522 1.1 christos INSN(bitr, m, unary, 1616_m, C64X, 0, 523 1.1 christos FIX1(FIX(op, 0x1f)), 524 1.1 christos OP2(ORXREG1, OWREG2), 525 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 526 1.1 christos ENC(dst, reg, 1))) 527 1.1 christos 528 1.1 christos INSN(bnop, s, branch_nop_cst, branch, C64X, 529 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, 530 1.1 christos FIX0(), 531 1.1 christos OP2(OLCST, OACST), 532 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, pcrel_half, 0), ENC(src1, ucst, 1))) 533 1.1 christos INSN(bnop, nfu, s_branch_nop_cst, branch, C64XP, 534 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP, 535 1.1 christos FIX1(FIX(s, 0)), 536 1.1 christos OP2(OLCST, OACST), 537 1.1 christos ENC2(ENC(src2, pcrel, 0), ENC(src1, ucst, 1))) 538 1.1 christos INSN(bnop, s, branch_nop_reg, branch, C64X, 539 1.1 christos TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MCNOP, 540 1.1 christos FIX1(FIX(s, 1)), 541 1.1 christos OP2(ORXREG1, OACST), 542 1.1 christos ENC3(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1))) 543 1.1 christos 544 1.1 christos /* 16 bits insn format */ 545 1.1 christos INSN(bnop, s, sbu8, branch, C64XP, 546 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, 547 1.1 christos FIX0(), 548 1.1 christos OP2(OLCST, OHWCST5), 549 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel_half_unsigned, 0))) 550 1.1 christos INSN(bnop, s, sbs7, branch, C64XP, 551 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, 552 1.1 christos FIX0(), 553 1.1 christos OP2(OLCST, OACST), 554 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, pcrel_half, 0), ENC(n, ucst, 1))) 555 1.1 christos INSN(bnop, s, sbu8c, branch, C64XP, 556 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_INSN16_SPRED, 557 1.1 christos FIX0(), 558 1.1 christos OP2(OLCST, OHWCST5), 559 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel_half_unsigned, 0))) 560 1.1 christos INSN(bnop, s, sbs7c, branch, C64XP, 561 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_INSN16_SPRED, 562 1.1 christos FIX0(), 563 1.1 christos OP2(OLCST, OACST), 564 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, pcrel_half, 0), ENC(n, ucst, 1))) 565 1.1 christos INSN(bnop, s, sx1b, branch, C64XP, 566 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, 567 1.1 christos FIX0(), 568 1.1 christos OP2(ORREG1BNORS, OACST), 569 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(n, ucst, 1))) 570 1.1 christos /**/ 571 1.1 christos 572 1.1 christos INSN(bpos, s, bpos, branch, C64X, TIC6X_FLAG_NO_CROSS, 573 1.1 christos FIX0(), 574 1.1 christos OP2(OLCST, ORREG1), 575 1.1 christos ENC3(ENC(s, fu, 0), ENC(src, pcrel, 0), ENC(dst, reg, 1))) 576 1.1 christos 577 1.1 christos INSN(call, s, ext_branch_cond_imm, branch, C62X, 578 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL, 579 1.1 christos FIX0(), 580 1.1 christos OP1(OLCST), 581 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) 582 1.1 christos INSN(call, s, branch, branch, C62X, 583 1.1 christos TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL, 584 1.1 christos FIX1(FIX(s, 1)), 585 1.1 christos OP1(ORXREG1), 586 1.1 christos ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0))) 587 1.1 christos INSN(call, s, b_irp, branch, C62X, 588 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL, 589 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), 590 1.1 christos OP1(ORIRP1), 591 1.1 christos ENC0()) 592 1.1 christos INSN(call, s, b_nrp, branch, C62X, 593 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL, 594 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), 595 1.1 christos OP1(ORNRP1), 596 1.1 christos ENC0()) 597 1.1 christos 598 1.1 christos INSN(callnop, s, branch_nop_cst, branch, C64X, 599 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL, 600 1.1 christos FIX0(), 601 1.1 christos OP2(OLCST, OACST), 602 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, pcrel, 0), ENC(src1, ucst, 1))) 603 1.1 christos INSN(callnop, nfu, s_branch_nop_cst, branch, C64XP, 604 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL, 605 1.1 christos FIX1(FIX(s, 0)), 606 1.1 christos OP2(OLCST, OACST), 607 1.1 christos ENC2(ENC(src2, pcrel, 0), ENC(src1, ucst, 1))) 608 1.1 christos INSN(callnop, s, branch_nop_reg, branch, C64X, 609 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MCNOP|TIC6X_FLAG_CALL, 610 1.1 christos FIX1(FIX(s, 1)), 611 1.1 christos OP2(ORXREG1, OACST), 612 1.1 christos ENC3(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1))) 613 1.1 christos 614 1.1 christos 615 1.1 christos INSN(callp, s, call_imm_nop, branch, C64XP, 616 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, 617 1.1 christos FIX1(FIX(z, 1)), 618 1.1 christos OP2(OLCST, OWRETREG1), 619 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) 620 1.1 christos 621 1.1 christos /* 16 bits insn format */ 622 1.1 christos INSN(callp, s, scs10, branch, C64XP, 623 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP, 624 1.1 christos FIX0(), 625 1.1 christos OP2(OLCST, OWRETREG1), 626 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) 627 1.1 christos /**/ 628 1.1 christos 629 1.1 christos INSN(callret, s, ext_branch_cond_imm, branch, C62X, 630 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN, 631 1.1 christos FIX0(), 632 1.1 christos OP1(OLCST), 633 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) 634 1.1 christos INSN(callret, s, branch, branch, C62X, 635 1.1 christos TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN, 636 1.1 christos FIX1(FIX(s, 1)), 637 1.1 christos OP1(ORXREG1), 638 1.1 christos ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0))) 639 1.1 christos INSN(callret, s, b_irp, branch, C62X, 640 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN, 641 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), 642 1.1 christos OP1(ORIRP1), 643 1.1 christos ENC0()) 644 1.1 christos INSN(callret, s, b_nrp, branch, C62X, 645 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_CALL|TIC6X_FLAG_RETURN, 646 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), 647 1.1 christos OP1(ORNRP1), 648 1.1 christos ENC0()) 649 1.1 christos 650 1.1 christos INSN(clr, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 651 1.1 christos FIX1(FIX(op, 0x3)), 652 1.1 christos OP4(ORREG1, OACST, OACST, OWREG1), 653 1.1 christos ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1), 654 1.1 christos ENC(cstb, ucst, 2), ENC(dst, reg, 3))) 655 1.1 christos INSN(clr, s, 1_or_2_src, 1cycle, C62X, 0, 656 1.1 christos FIX1(FIX(op, 0x3f)), 657 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 658 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 659 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 660 1.1 christos 661 1.1 christos /* 16 bits insn */ 662 1.1 christos INSN(clr, s, sc5, 1cycle, C64XP, 0, 663 1.1 christos FIX1(FIX(op, 2)), 664 1.1 christos OP4(ORREG1, OACST, OACST, OWREG1), 665 1.1 christos ENC5(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(cst, ucst, 1), 666 1.1 christos ENC(cst, ucst, 2), ENC(srcdst, reg, 3))) 667 1.1 christos /**/ 668 1.1 christos 669 1.1 christos INSNE(cmpeq, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0, 670 1.1 christos FIX1(FIX(op, 0x53)), 671 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 672 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 673 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 674 1.1 christos INSNE(cmpeq, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0, 675 1.1 christos FIX1(FIX(op, 0x52)), 676 1.1 christos OP3(OACST, ORXREG1, OWREG1), 677 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 678 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 679 1.1 christos INSNE(cmpeq, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0, 680 1.1 christos FIX1(FIX(op, 0x51)), 681 1.1 christos OP3(ORXREG1, ORREGL1, OWREG1), 682 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 683 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 684 1.1 christos INSNE(cmpeq, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 685 1.1 christos FIX2(FIX(op, 0x50), FIX(x, 0)), 686 1.1 christos OP3(OACST, ORREGL1, OWREG1), 687 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1), 688 1.1 christos ENC(dst, reg, 2))) 689 1.1 christos 690 1.1 christos /* 16 bits insn */ 691 1.1 christos INSN(cmpeq, l, lx3c, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 692 1.1 christos FIX0(), 693 1.1 christos OP3(OACST, ORXREG1, OWREG1), 694 1.1 christos ENC4(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(src2, reg, 1), 695 1.1 christos ENC(dst, reg, 2))) 696 1.1 christos 697 1.1 christos INSN(cmpeq, l, l2c, 1cycle, C64XP, 0, 698 1.1 christos FIX1(FIX(op, 3)), 699 1.1 christos OP3(ORREG1, ORXREG1, OWREG1NORS), 700 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 701 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 702 1.1 christos /**/ 703 1.1 christos 704 1.1 christos INSN(cmpeq2, s, 1_or_2_src, 1cycle, C64X, 0, 705 1.1 christos FIX1(FIX(op, 0x1d)), 706 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 707 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 708 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 709 1.1 christos 710 1.1 christos INSN(cmpeq4, s, 1_or_2_src, 1cycle, C64X, 0, 711 1.1 christos FIX1(FIX(op, 0x1c)), 712 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 713 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 714 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 715 1.1 christos 716 1.1 christos INSN(cmpeqdp, s, 1_or_2_src, dpcmp, C67X, 0, 717 1.1 christos FIX1(FIX(op, 0x28)), 718 1.1 christos OP3(ORREGD12, ORXREGD12, OWREG2), 719 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 720 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 721 1.1 christos 722 1.1 christos INSN(cmpeqsp, s, 1_or_2_src, 1cycle, C67X, 0, 723 1.1 christos FIX1(FIX(op, 0x38)), 724 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 725 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 726 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 727 1.1 christos 728 1.1 christos INSNE(cmpgt, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), 729 1.1 christos FIX1(FIX(op, 0x47)), 730 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 731 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 732 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 733 1.1 christos INSNE(cmpgt, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0, 734 1.1 christos FIX1(FIX(op, 0x46)), 735 1.1 christos OP3(OACST, ORXREG1, OWREG1), 736 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 737 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 738 1.1 christos INSNE(cmpgt, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0, 739 1.1 christos FIX1(FIX(op, 0x45)), 740 1.1 christos OP3(ORXREG1, ORREGL1, OWREG1), 741 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 742 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 743 1.1 christos INSNE(cmpgt, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 744 1.1 christos FIX2(FIX(op, 0x44), FIX(x, 0)), 745 1.1 christos OP3(OACST, ORREGL1, OWREG1), 746 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1), 747 1.1 christos ENC(dst, reg, 2))) 748 1.1 christos INSNE(cmpgt, l_xsi_si_ui, l, 1_or_2_src, 1cycle, C62X, 749 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0), 750 1.1 christos FIX1(FIX(op, 0x57)), 751 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 752 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1), 753 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2))) 754 1.1 christos INSNE(cmpgt, l_xsi_s5_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 755 1.1 christos FIX1(FIX(op, 0x56)), 756 1.1 christos OP3(ORXREG1, OACST, OWREG1), 757 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 1), 758 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2))) 759 1.1 christos INSNE(cmpgt, l_sl_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 760 1.1 christos FIX1(FIX(op, 0x55)), 761 1.1 christos OP3(ORREGL1, ORXREG1, OWREG1), 762 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1), 763 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2))) 764 1.1 christos INSNE(cmpgt, l_sl_s5_ui, l, 1_or_2_src, 1cycle, C62X, 765 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS, 766 1.1 christos FIX2(FIX(op, 0x54), FIX(x, 0)), 767 1.1 christos OP3(ORREGL1, OACST, OWREG1), 768 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 1), ENC(src2, reg, 0), 769 1.1 christos ENC(dst, reg, 2))) 770 1.1 christos 771 1.1 christos /* 16 bits insn */ 772 1.1 christos INSN(cmpgt, l, lx1c, 1cycle, C64XP, 0, 773 1.1 christos FIX1(FIX(op, 1)), 774 1.1 christos OP3(OACST, ORREG1, OWREG1), 775 1.1 christos ENC4(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(src2, reg, 1), 776 1.1 christos ENC(dst, reg, 2))) 777 1.1 christos INSN(cmpgt, l, l2c, 1cycle, C64XP, 0, 778 1.1 christos FIX1(FIX(op, 5)), 779 1.1 christos OP3(ORREG1, ORXREG1, OWREG1NORS), 780 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 781 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 782 1.1 christos /**/ 783 1.1 christos 784 1.1 christos INSN(cmpgt2, s, 1_or_2_src, 1cycle, C64X, 0, 785 1.1 christos FIX1(FIX(op, 0x14)), 786 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 787 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 788 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 789 1.1 christos 790 1.1 christos INSN(cmpgtdp, s, 1_or_2_src, dpcmp, C67X, 0, 791 1.1 christos FIX1(FIX(op, 0x29)), 792 1.1 christos OP3(ORREGD12, ORXREGD12, OWREG2), 793 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 794 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 795 1.1 christos 796 1.1 christos INSN(cmpgtsp, s, 1_or_2_src, 1cycle, C67X, 0, 797 1.1 christos FIX1(FIX(op, 0x39)), 798 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 799 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 800 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 801 1.1 christos 802 1.1 christos INSNE(cmpgtu, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, 803 1.1 christos FIX1(FIX(op, 0x4f)), 804 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 805 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 806 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 807 1.1 christos INSNE(cmpgtu, l_u4_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), 808 1.1 christos FIX2(FIX(op, 0x4e), RAN(src1, 0, 15)), 809 1.1 christos OP3(OACST, ORXREG1, OWREG1), 810 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0), 811 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 812 1.1 christos /* Although not mentioned in SPRUFE8, CMPGTU and CMPLTU support a 813 1.1 christos 5-bit unsigned constant operand on C64X and above. */ 814 1.1 christos INSNE(cmpgtu, l_u5_xui_ui, l, 1_or_2_src, 1cycle, C64X, 0, 815 1.1 christos FIX2(FIX(op, 0x4e), RAN(src1, 16, 31)), 816 1.1 christos OP3(OACST, ORXREG1, OWREG1), 817 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0), 818 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 819 1.1 christos INSNE(cmpgtu, l_xui_ul_ui, l, 1_or_2_src, 1cycle, C62X, 0, 820 1.1 christos FIX1(FIX(op, 0x4d)), 821 1.1 christos OP3(ORXREG1, ORREGL1, OWREG1), 822 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 823 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 824 1.1 christos INSNE(cmpgtu, l_u4_ul_ui, l, 1_or_2_src, 1cycle, C62X, 825 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 826 1.1 christos FIX3(FIX(op, 0x4c), FIX(x, 0), RAN(src1, 0, 15)), 827 1.1 christos OP3(OACST, ORREGL1, OWREG1), 828 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1), 829 1.1 christos ENC(dst, reg, 2))) 830 1.1 christos INSNE(cmpgtu, l_u5_ul_ui, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS, 831 1.1 christos FIX3(FIX(op, 0x4c), FIX(x, 0), RAN(src1, 16, 31)), 832 1.1 christos OP3(OACST, ORREGL1, OWREG1), 833 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1), 834 1.1 christos ENC(dst, reg, 2))) 835 1.1 christos 836 1.1 christos /* 16 bits insn */ 837 1.1 christos INSN(cmpgtu, l, lx1c, 1cycle, C64XP, 0, 838 1.1 christos FIX1(FIX(op, 3)), 839 1.1 christos OP3(OACST, ORREG1, OWREG1), 840 1.1 christos ENC4(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(src2, reg, 1), 841 1.1 christos ENC(dst, reg, 2))) 842 1.1 christos INSN(cmpgtu, l, l2c, 1cycle, C64XP, 0, 843 1.1 christos FIX1(FIX(op, 7)), 844 1.1 christos OP3(ORREG1, ORXREG1, OWREG1NORS), 845 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 846 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 847 1.1 christos /**/ 848 1.1 christos 849 1.1 christos INSN(cmpgtu4, s, 1_or_2_src, 1cycle, C64X, 0, 850 1.1 christos FIX1(FIX(op, 0x15)), 851 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 852 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 853 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 854 1.1 christos 855 1.1 christos INSNE(cmplt, l_si_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), 856 1.1 christos FIX1(FIX(op, 0x57)), 857 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 858 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 859 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 860 1.1 christos INSNE(cmplt, l_s5_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0, 861 1.1 christos FIX1(FIX(op, 0x56)), 862 1.1 christos OP3(OACST, ORXREG1, OWREG1), 863 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 864 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 865 1.1 christos INSNE(cmplt, l_xsi_sl_ui, l, 1_or_2_src, 1cycle, C62X, 0, 866 1.1 christos FIX1(FIX(op, 0x55)), 867 1.1 christos OP3(ORXREG1, ORREGL1, OWREG1), 868 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 869 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 870 1.1 christos INSNE(cmplt, l_s5_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 871 1.1 christos FIX2(FIX(op, 0x54), FIX(x, 0)), 872 1.1 christos OP3(OACST, ORREGL1, OWREG1), 873 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(src2, reg, 1), 874 1.1 christos ENC(dst, reg, 2))) 875 1.1 christos INSNE(cmplt, l_xsi_si_ui, l, 1_or_2_src, 1cycle, C62X, 876 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0), 877 1.1 christos FIX1(FIX(op, 0x47)), 878 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 879 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1), 880 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2))) 881 1.1 christos INSNE(cmplt, l_xsi_s5_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 882 1.1 christos FIX1(FIX(op, 0x46)), 883 1.1 christos OP3(ORXREG1, OACST, OWREG1), 884 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 1), 885 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2))) 886 1.1 christos INSNE(cmplt, l_sl_xsi_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 887 1.1 christos FIX1(FIX(op, 0x45)), 888 1.1 christos OP3(ORREGL1, ORXREG1, OWREG1), 889 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 1), 890 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2))) 891 1.1 christos INSNE(cmplt, l_sl_s5_ui, l, 1_or_2_src, 1cycle, C62X, 892 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS, 893 1.1 christos FIX2(FIX(op, 0x44), FIX(x, 0)), 894 1.1 christos OP3(ORREGL1, OACST, OWREG1), 895 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst, 1), ENC(src2, reg, 0), 896 1.1 christos ENC(dst, reg, 2))) 897 1.1 christos 898 1.1 christos /* 16 bits insn */ 899 1.1 christos INSN(cmplt, l, lx1c, 1cycle, C64XP, 0, 900 1.1 christos FIX1(FIX(op, 0)), 901 1.1 christos OP3(OACST, ORREG1, OWREG1), 902 1.1 christos ENC4(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(src2, reg, 1), 903 1.1 christos ENC(dst, reg, 2))) 904 1.1 christos INSN(cmplt, l, l2c, 1cycle, C64XP, 0, 905 1.1 christos FIX1(FIX(op, 4)), 906 1.1 christos OP3(ORREG1, ORXREG1, OWREG1NORS), 907 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 908 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 909 1.1 christos /**/ 910 1.1 christos 911 1.1 christos INSN(cmplt2, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO, 912 1.1 christos FIX1(FIX(op, 0x14)), 913 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 914 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 915 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 916 1.1 christos 917 1.1 christos INSN(cmpltdp, s, 1_or_2_src, dpcmp, C67X, 0, 918 1.1 christos FIX1(FIX(op, 0x2a)), 919 1.1 christos OP3(ORREGD12, ORXREGD12, OWREG2), 920 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 921 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 922 1.1 christos 923 1.1 christos INSN(cmpltsp, s, 1_or_2_src, 1cycle, C67X, 0, 924 1.1 christos FIX1(FIX(op, 0x3a)), 925 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 926 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 927 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 928 1.1 christos 929 1.1 christos INSNE(cmpltu, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, 930 1.1 christos FIX1(FIX(op, 0x5f)), 931 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 932 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 933 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 934 1.1 christos INSNE(cmpltu, l_u4_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), 935 1.1 christos FIX2(FIX(op, 0x5e), RAN(src1, 0, 15)), 936 1.1 christos OP3(OACST, ORXREG1, OWREG1), 937 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0), 938 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 939 1.1 christos INSNE(cmpltu, l_u5_xui_ui, l, 1_or_2_src, 1cycle, C64X, 0, 940 1.1 christos FIX2(FIX(op, 0x5e), RAN(src1, 16, 31)), 941 1.1 christos OP3(OACST, ORXREG1, OWREG1), 942 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, ucst, 0), 943 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 944 1.1 christos INSNE(cmpltu, l_xui_ul_ui, l, 1_or_2_src, 1cycle, C62X, 0, 945 1.1 christos FIX1(FIX(op, 0x5d)), 946 1.1 christos OP3(ORXREG1, ORREGL1, OWREG1), 947 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 948 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 949 1.1 christos INSNE(cmpltu, l_u4_ul_ui, l, 1_or_2_src, 1cycle, C62X, 950 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 951 1.1 christos FIX3(FIX(op, 0x5c), FIX(x, 0), RAN(src1, 0, 15)), 952 1.1 christos OP3(OACST, ORREGL1, OWREG1), 953 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1), 954 1.1 christos ENC(dst, reg, 2))) 955 1.1 christos INSNE(cmpltu, l_u5_ul_ui, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS, 956 1.1 christos FIX3(FIX(op, 0x5c), FIX(x, 0), RAN(src1, 16, 31)), 957 1.1 christos OP3(OACST, ORREGL1, OWREG1), 958 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, ucst, 0), ENC(src2, reg, 1), 959 1.1 christos ENC(dst, reg, 2))) 960 1.1 christos 961 1.1 christos /* 16 bits insn */ 962 1.1 christos INSN(cmpltu, l, lx1c, 1cycle, C64XP, 0, 963 1.1 christos FIX1(FIX(op, 2)), 964 1.1 christos OP3(OACST, ORREG1, OWREG1), 965 1.1 christos ENC4(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(src2, reg, 1), 966 1.1 christos ENC(dst, reg, 2))) 967 1.1 christos INSN(cmpltu, l, l2c, 1cycle, C64XP, 0, 968 1.1 christos FIX1(FIX(op, 6)), 969 1.1 christos OP3(ORREG1, ORXREG1, OWREG1NORS), 970 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 971 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 972 1.1 christos /**/ 973 1.1 christos 974 1.1 christos INSN(cmpltu4, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO, 975 1.1 christos FIX1(FIX(op, 0x15)), 976 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 977 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 978 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 979 1.1 christos 980 1.1 christos INSN(cmpy, m, 1_or_2_src, 4cycle, C64XP, 0, 981 1.1 christos FIX1(FIX(op, 0xa)), 982 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 983 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 984 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 985 1.1 christos 986 1.1 christos INSN(cmpyr, m, 1_or_2_src, 4cycle, C64XP, 0, 987 1.1 christos FIX1(FIX(op, 0xb)), 988 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 989 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 990 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 991 1.1 christos 992 1.1 christos INSN(cmpyr1, m, 1_or_2_src, 4cycle, C64XP, 0, 993 1.1 christos FIX1(FIX(op, 0xc)), 994 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 995 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 996 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 997 1.1 christos 998 1.1 christos INSN(cmtl, d, 1_or_2_src, load, C64XP, 999 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS, 1000 1.1 christos FIX3(FIX(s, 1), FIX(op, 0xe), FIX(src1, 0)), 1001 1.1 christos OP2(ORMEMDW, OWDREG5), 1002 1.1 christos ENC2(ENC(src2, reg, 0), ENC(dst, reg, 1))) 1003 1.1 christos 1004 1.1 christos INSN(ddotp4, m, 1_or_2_src, 4cycle, C64XP, 0, 1005 1.1 christos FIX1(FIX(op, 0x18)), 1006 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1007 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1008 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1009 1.1 christos 1010 1.1 christos INSN(ddotph2, m, 1_or_2_src, 4cycle, C64XP, 0, 1011 1.1 christos FIX1(FIX(op, 0x17)), 1012 1.1 christos OP3(ORREGD1, ORXREG1, OWREGD4), 1013 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1014 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1015 1.1 christos 1016 1.1 christos INSN(ddotph2r, m, 1_or_2_src, 4cycle, C64XP, 0, 1017 1.1 christos FIX1(FIX(op, 0x15)), 1018 1.1 christos OP3(ORREGD1, ORXREG1, OWREG4), 1019 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1020 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1021 1.1 christos 1022 1.1 christos INSN(ddotpl2, m, 1_or_2_src, 4cycle, C64XP, 0, 1023 1.1 christos FIX1(FIX(op, 0x16)), 1024 1.1 christos OP3(ORREGD1, ORXREG1, OWREGD4), 1025 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1026 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1027 1.1 christos 1028 1.1 christos INSN(ddotpl2r, m, 1_or_2_src, 4cycle, C64XP, 0, 1029 1.1 christos FIX1(FIX(op, 0x14)), 1030 1.1 christos OP3(ORREGD1, ORXREG1, OWREG4), 1031 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1032 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1033 1.1 christos 1034 1.1 christos INSN(deal, m, unary, 1616_m, C64X, 0, 1035 1.1 christos FIX1(FIX(op, 0x1d)), 1036 1.1 christos OP2(ORXREG1, OWREG2), 1037 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1038 1.1 christos ENC(dst, reg, 1))) 1039 1.1 christos 1040 1.1 christos INSN(dint, nfu, dint, 1cycle, C64XP, 0, 1041 1.1 christos FIX1(FIX(s, 0)), 1042 1.1 christos OP0(), 1043 1.1 christos ENC0()) 1044 1.1 christos 1045 1.1 christos INSN(dmv, s, ext_1_or_2_src, 1cycle, C64XP, 0, 1046 1.1 christos FIX1(FIX(op, 0xb)), 1047 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1), 1048 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1049 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1050 1.1 christos 1051 1.1 christos INSNE(dotp2, m_s2_xs2_si, m, compound, 4cycle, C64X, 0, 1052 1.1 christos FIX1(FIX(op, 0xc)), 1053 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1054 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1055 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1056 1.1 christos INSNE(dotp2, m_s2_xs2_sll, m, compound, 4cycle, C64X, 0, 1057 1.1 christos FIX1(FIX(op, 0xb)), 1058 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1059 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1060 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1061 1.1 christos 1062 1.1 christos INSN(dotpn2, m, compound, 4cycle, C64X, 0, 1063 1.1 christos FIX1(FIX(op, 0x9)), 1064 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1065 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1066 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1067 1.1 christos 1068 1.1 christos INSN(dotpnrsu2, m, compound, 4cycle, C64X, 0, 1069 1.1 christos FIX1(FIX(op, 0x7)), 1070 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1071 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1072 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1073 1.1 christos 1074 1.1 christos INSN(dotpnrus2, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, 1075 1.1 christos FIX1(FIX(op, 0x7)), 1076 1.1 christos OP3(ORXREG1, ORREG1, OWREG4), 1077 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1078 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 1079 1.1 christos 1080 1.1 christos INSN(dotprsu2, m, compound, 4cycle, C64X, 0, 1081 1.1 christos FIX1(FIX(op, 0xd)), 1082 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1083 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1084 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1085 1.1 christos 1086 1.1 christos INSN(dotprus2, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, 1087 1.1 christos FIX1(FIX(op, 0xd)), 1088 1.1 christos OP3(ORXREG1, ORREG1, OWREG4), 1089 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1090 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 1091 1.1 christos 1092 1.1 christos INSN(dotpsu4, m, compound, 4cycle, C64X, 0, 1093 1.1 christos FIX1(FIX(op, 0x2)), 1094 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1095 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1096 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1097 1.1 christos 1098 1.1 christos INSN(dotpus4, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, 1099 1.1 christos FIX1(FIX(op, 0x2)), 1100 1.1 christos OP3(ORXREG1, ORREG1, OWREG4), 1101 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1102 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 1103 1.1 christos 1104 1.1 christos INSN(dotpu4, m, compound, 4cycle, C64X, 0, 1105 1.1 christos FIX1(FIX(op, 0x6)), 1106 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1107 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1108 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1109 1.1 christos 1110 1.1 christos INSN(dpack2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, 1111 1.1 christos FIX1(FIX(op, 0x34)), 1112 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1), 1113 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1114 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1115 1.1 christos 1116 1.1 christos INSN(dpackx2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, 1117 1.1 christos FIX1(FIX(op, 0x33)), 1118 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1), 1119 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1120 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1121 1.1 christos 1122 1.1 christos INSN(dpint, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS, 1123 1.1 christos FIX2(FIX(op, 0x8), FIX(x, 0)), 1124 1.1 christos OP2(ORREGD1, OWREG4), 1125 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), 1126 1.1 christos ENC(dst, reg, 1))) 1127 1.1 christos 1128 1.1 christos INSN(dpsp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS, 1129 1.1 christos FIX2(FIX(op, 0x9), FIX(x, 0)), 1130 1.1 christos OP2(ORREGD1, OWREG4), 1131 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), 1132 1.1 christos ENC(dst, reg, 1))) 1133 1.1 christos 1134 1.1 christos INSN(dptrunc, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_NO_CROSS, 1135 1.1 christos FIX2(FIX(op, 0x1), FIX(x, 0)), 1136 1.1 christos OP2(ORREGD1, OWREG4), 1137 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), 1138 1.1 christos ENC(dst, reg, 1))) 1139 1.1 christos 1140 1.1 christos INSN(ext, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 1141 1.1 christos FIX1(FIX(op, 0x1)), 1142 1.1 christos OP4(ORREG1, OACST, OACST, OWREG1), 1143 1.1 christos ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1), 1144 1.1 christos ENC(cstb, ucst, 2), ENC(dst, reg, 3))) 1145 1.1 christos INSN(ext, s, 1_or_2_src, 1cycle, C62X, 0, 1146 1.1 christos FIX1(FIX(op, 0x2f)), 1147 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 1148 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1149 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 1150 1.1 christos 1151 1.1 christos /* 16 bits insn */ 1152 1.1 christos INSNE(ext, hwcst16, s, s2ext, 1cycle, C64XP, 0, 1153 1.1 christos FIX1(FIX(op, 0x0)), 1154 1.1 christos OP4(ORREG1, OHWCST16, OHWCST16, OWREG1), 1155 1.1 christos ENC3(ENC(s, fu, 0), ENC(src, reg, 0), ENC(dst, reg, 3))) 1156 1.1 christos INSNE(ext, hwcst24, s, s2ext, 1cycle, C64XP, 0, 1157 1.1 christos FIX1(FIX(op, 0x1)), 1158 1.1 christos OP4(ORREG1, OHWCST24, OHWCST24, OWREG1), 1159 1.1 christos ENC3(ENC(s, fu, 0), ENC(src, reg, 0), ENC(dst, reg, 3))) 1160 1.1 christos /**/ 1161 1.1 christos 1162 1.1 christos INSN(extu, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 1163 1.1 christos FIX1(FIX(op, 0x0)), 1164 1.1 christos OP4(ORREG1, OACST, OACST, OWREG1), 1165 1.1 christos ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1), 1166 1.1 christos ENC(cstb, ucst, 2), ENC(dst, reg, 3))) 1167 1.1 christos INSN(extu, s, 1_or_2_src, 1cycle, C62X, 0, 1168 1.1 christos FIX1(FIX(op, 0x2b)), 1169 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 1170 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1171 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 1172 1.1 christos 1173 1.1 christos /* 16 bits insn */ 1174 1.1 christos INSNE(extu, hwcst16, s, s2ext, 1cycle, C64XP, 0, 1175 1.1 christos FIX1(FIX(op, 0x2)), 1176 1.1 christos OP4(ORREG1, OHWCST16, OHWCST16, OWREG1), 1177 1.1 christos ENC3(ENC(s, fu, 0), ENC(src, reg, 0), ENC(dst, reg, 3))) 1178 1.1 christos INSNE(extu, hwcst24, s, s2ext, 1cycle, C64XP, 0, 1179 1.1 christos FIX1(FIX(op, 0x3)), 1180 1.1 christos OP4(ORREG1, OHWCST24, OHWCST24, OWREG1), 1181 1.1 christos ENC3(ENC(s, fu, 0), ENC(src, reg, 0), ENC(dst, reg, 3))) 1182 1.1 christos INSN(extu, s, sc5, 1cycle, C64XP, 0, 1183 1.1 christos FIX1(FIX(op, 0)), 1184 1.1 christos OP4(ORREG1, OACST, OHWCST31, OWREG1Z), 1185 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(cst, ucst, 1))) 1186 1.1 christos /**/ 1187 1.1 christos 1188 1.1 christos INSN(gmpy, m, 1_or_2_src, 4cycle, C64XP, TIC6X_FLAG_NO_CROSS, 1189 1.1 christos FIX2(FIX(op, 0x1f), FIX(x, 0)), 1190 1.1 christos OP3(ORREG1, ORREG1, OWREG4), 1191 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, reg, 0), ENC(src2, reg, 1), 1192 1.1 christos ENC(dst, reg, 2))) 1193 1.1 christos 1194 1.1 christos /* This instruction can be predicated as usual; SPRUFE8 is incorrect 1195 1.1 christos where it shows the "z" field as fixed to 1. */ 1196 1.1 christos INSN(gmpy4, m, compound, 4cycle, C64X, 0, 1197 1.1 christos FIX1(FIX(op, 0x11)), 1198 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1199 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1200 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1201 1.1 christos 1202 1.1 christos INSN(idle, nfu, nop_idle, nop, C62X, TIC6X_FLAG_MCNOP, 1203 1.1 christos FIX2(FIX(s, 0), FIX(op, 0xf)), 1204 1.1 christos OP0(), 1205 1.1 christos ENC0()) 1206 1.1 christos 1207 1.1 christos INSN(intdp, l, 1_or_2_src, intdp, C67X, 0, 1208 1.1 christos FIX2(FIX(op, 0x39), FIX(src1, 0)), 1209 1.1 christos OP2(ORXREG1, OWREGD45), 1210 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1211 1.1 christos ENC(dst, reg, 1))) 1212 1.1 christos 1213 1.1 christos INSN(intdpu, l, 1_or_2_src, intdp, C67X, 0, 1214 1.1 christos FIX2(FIX(op, 0x3b), FIX(src1, 0)), 1215 1.1 christos OP2(ORXREG1, OWREGD45), 1216 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1217 1.1 christos ENC(dst, reg, 1))) 1218 1.1 christos 1219 1.1 christos INSN(intsp, l, 1_or_2_src, 4cycle, C67X, 0, 1220 1.1 christos FIX2(FIX(op, 0x4a), FIX(src1, 0)), 1221 1.1 christos OP2(ORXREG1, OWREG4), 1222 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1223 1.1 christos ENC(dst, reg, 1))) 1224 1.1 christos 1225 1.1 christos INSN(intspu, l, 1_or_2_src, 4cycle, C67X, 0, 1226 1.1 christos FIX2(FIX(op, 0x49), FIX(src1, 0)), 1227 1.1 christos OP2(ORXREG1, OWREG4), 1228 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1229 1.1 christos ENC(dst, reg, 1))) 1230 1.1 christos 1231 1.1 christos INSN(ldb, d, load_store, load, C62X, 1232 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 1233 1.1 christos FIX2(FIX(op, 2), FIX(r, 0)), 1234 1.1 christos OP2(ORMEMSB, OWDREG5), 1235 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), 1236 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), 1237 1.1 christos ENC(srcdst, reg, 1))) 1238 1.1 christos INSN(ldb, d, load_store_long, load, C62X, 1239 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), 1240 1.1 christos FIX1(FIX(op, 2)), 1241 1.1 christos OP2(ORMEMLB, OWDREG5), 1242 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 0), 1243 1.1 christos ENC(dst, reg, 1))) 1244 1.1 christos 1245 1.1 christos /* 16 bits insn */ 1246 1.1 christos INSN(ldb, d, doff4_dsz_x01, load, C64XP, 1247 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 1248 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1249 1.1 christos OP2(ORMEMSB, OWTREG5), 1250 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1251 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset, 0))) 1252 1.1 christos INSN(ldb, d, dind_dsz_x01, load, C64XP, 1253 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 1254 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1255 1.1 christos OP2(ORMEMSB, OWTREG5), 1256 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1257 1.1 christos ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) 1258 1.1 christos INSN(ldb, d, dinc_dsz_x01, load, C64XP, 1259 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 1260 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1261 1.1 christos OP2(ORMEMSB, OWTREG5), 1262 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1263 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1264 1.1 christos INSN(ldb, d, ddec_dsz_x01, load, C64XP, 1265 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 1266 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1267 1.1 christos OP2(ORMEMSB, OWTREG5), 1268 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1269 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1270 1.1 christos /**/ 1271 1.1 christos 1272 1.1 christos INSN(ldbu, d, load_store, load, C62X, 1273 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 1274 1.1 christos FIX2(FIX(op, 1), FIX(r, 0)), 1275 1.1 christos OP2(ORMEMSB, OWDREG5), 1276 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), 1277 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), 1278 1.1 christos ENC(srcdst, reg, 1))) 1279 1.1 christos INSN(ldbu, d, load_store_long, load, C62X, 1280 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), 1281 1.1 christos FIX1(FIX(op, 1)), 1282 1.1 christos OP2(ORMEMLB, OWDREG5), 1283 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_byte, 0), 1284 1.1 christos ENC(dst, reg, 1))) 1285 1.1 christos 1286 1.1 christos /* 16 bits insn */ 1287 1.1 christos INSN(ldbu, d, dinc_dsz_000, load, C64XP, 1288 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 1289 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1290 1.1 christos OP2(ORMEMSB, OWTREG5), 1291 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset_minus_one, 0), 1292 1.1 christos ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) 1293 1.1 christos INSN(ldbu, d, dind_dsz_000, load, C64XP, 1294 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 1295 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1296 1.1 christos OP2(ORMEMSB, OWTREG5), 1297 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset, 0), 1298 1.1 christos ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) 1299 1.1 christos INSN(ldbu, d, doff4_dsz_000, load, C64XP, 1300 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 1301 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1302 1.1 christos OP2(ORMEMSB, OWTREG5), 1303 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset, 0), 1304 1.1 christos ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) 1305 1.1 christos INSN(ldbu, d, ddec_dsz_000, load, C64XP, 1306 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 1307 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1308 1.1 christos OP2(ORMEMSB, OWTREG5), 1309 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset_minus_one, 0), 1310 1.1 christos ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) 1311 1.1 christos /**/ 1312 1.1 christos 1313 1.1 christos INSN(lddw, d, load_store, load, C64X_AND_C67X, 1314 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS, 1315 1.1 christos FIX2(FIX(op, 6), FIX(r, 1)), 1316 1.1 christos OP2(ORMEMSD, OWDREGD5), 1317 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), 1318 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), 1319 1.1 christos ENC(srcdst, reg, 1))) 1320 1.1 christos 1321 1.1 christos /* 16 bits insn */ 1322 1.1 christos INSN(lddw, d, dpp, load, C64XP, 1323 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREINCR)|TIC6X_FLAG_INSN16_B15PTR|TIC6X_FLAG_INSN16_NORS, 1324 1.1 christos FIX2(FIX(op, 1), FIX(dw, 1)), 1325 1.1 christos OP2(ORMEMSD, OWDREGD5), 1326 1.1 christos ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1327 1.1 christos ENC(cst, mem_offset_minus_one, 0))) 1328 1.1 christos INSN(lddw, d, ddecdw, load, C64XP, 1329 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 1330 1.1 christos FIX3(FIX(op, 1), FIX(na, 0), FIX(sz, 0)), 1331 1.1 christos OP2(ORMEMSD, OWTREGD5), 1332 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 1), 1333 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1334 1.1 christos INSN(lddw, d, dincdw, load, C64XP, 1335 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 1336 1.1 christos FIX3(FIX(op, 1), FIX(na, 0), FIX(sz, 0)), 1337 1.1 christos OP2(ORMEMSD, OWTREGD5), 1338 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 1), 1339 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1340 1.1 christos INSN(lddw, d, dinddw, load, C64XP, 1341 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 1342 1.1 christos FIX3(FIX(op, 1), FIX(na, 0), FIX(sz, 0)), 1343 1.1 christos OP2(ORMEMSD, OWTREGD5), 1344 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset, 0), 1345 1.1 christos ENC(ptr, reg_ptr, 0), ENC(srcdst, reg_shift, 1))) 1346 1.1 christos INSN(lddw, d, doff4dw, load, C64XP, 1347 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 1348 1.1 christos FIX3(FIX(op, 1), FIX(na, 0), FIX(sz, 0)), 1349 1.1 christos OP2(ORMEMSD, OWTREGD5), 1350 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset, 0), 1351 1.1 christos ENC(ptr, reg_ptr, 0), ENC(srcdst, reg_shift, 1))) 1352 1.1 christos /**/ 1353 1.1 christos 1354 1.1 christos INSN(ldh, d, load_store, load, C62X, 1355 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 1356 1.1 christos FIX2(FIX(op, 4), FIX(r, 0)), 1357 1.1 christos OP2(ORMEMSH, OWDREG5), 1358 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), 1359 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), 1360 1.1 christos ENC(srcdst, reg, 1))) 1361 1.1 christos INSN(ldh, d, load_store_long, load, C62X, 1362 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), 1363 1.1 christos FIX1(FIX(op, 4)), 1364 1.1 christos OP2(ORMEMLH, OWDREG5), 1365 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 0), 1366 1.1 christos ENC(dst, reg, 1))) 1367 1.1 christos 1368 1.1 christos /* 16 bits insn */ 1369 1.1 christos INSN(ldh, d, doff4_dsz_x11, load, C64XP, 1370 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 1371 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1372 1.1 christos OP2(ORMEMSH, OWTREG5), 1373 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset, 0), 1374 1.1 christos ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) 1375 1.1 christos INSN(ldh, d, dind_dsz_x11, load, C64XP, 1376 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 1377 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1378 1.1 christos OP2(ORMEMSH, OWTREG5), 1379 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1380 1.1 christos ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) 1381 1.1 christos INSN(ldh, d, dinc_dsz_x11, load, C64XP, 1382 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 1383 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1384 1.1 christos OP2(ORMEMSH, OWTREG5), 1385 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1386 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1387 1.1 christos INSN(ldh, d, ddec_dsz_x11, load, C64XP, 1388 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 1389 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1390 1.1 christos OP2(ORMEMSH, OWTREG5), 1391 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1392 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1393 1.1 christos /**/ 1394 1.1 christos 1395 1.1 christos INSN(ldhu, d, load_store, load, C62X, 1396 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 1397 1.1 christos FIX2(FIX(op, 0), FIX(r, 0)), 1398 1.1 christos OP2(ORMEMSH, OWDREG5), 1399 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), 1400 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), 1401 1.1 christos ENC(srcdst, reg, 1))) 1402 1.1 christos INSN(ldhu, d, load_store_long, load, C62X, 1403 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), 1404 1.1 christos FIX1(FIX(op, 0)), 1405 1.1 christos OP2(ORMEMLH, OWDREG5), 1406 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_half, 0), 1407 1.1 christos ENC(dst, reg, 1))) 1408 1.1 christos 1409 1.1 christos /* 16 bits insn */ 1410 1.1 christos INSN(ldhu, d, doff4_dsz_010, load, C64XP, 1411 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 1412 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1413 1.1 christos OP2(ORMEMSH, OWTREG5), 1414 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset, 0), 1415 1.1 christos ENC(ptr, reg_ptr, 0), ENC(srcdst, reg, 1))) 1416 1.1 christos INSN(ldhu, d, dind_dsz_010, load, C64XP, 1417 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 1418 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1419 1.1 christos OP2(ORMEMSH, OWTREG5), 1420 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1421 1.1 christos ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) 1422 1.1 christos INSN(ldhu, d, dinc_dsz_010, load, C64XP, 1423 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 1424 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1425 1.1 christos OP2(ORMEMSH, OWTREG5), 1426 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1427 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1428 1.1 christos INSN(ldhu, d, ddec_dsz_010, load, C64XP, 1429 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 1430 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1431 1.1 christos OP2(ORMEMSH, OWTREG5), 1432 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1433 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1434 1.1 christos /**/ 1435 1.1 christos 1436 1.1 christos INSN(ldndw, d, load_nonaligned, load, C64X, 1437 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED, 1438 1.1 christos FIX0(), 1439 1.1 christos OP2(ORMEMND, OWDREGD5), 1440 1.1 christos ENC7(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), 1441 1.1 christos ENC(offsetR, mem_offset_noscale, 0), ENC(baseR, reg, 0), 1442 1.1 christos ENC(sc, scaled, 0), ENC(dst, reg_shift, 1))) 1443 1.1 christos 1444 1.1 christos /* 16 bits insn */ 1445 1.1 christos INSN(ldndw, d, ddecdw, load, C64XP, 1446 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 1447 1.1 christos FIX3(FIX(op, 1), FIX(na, 1), FIX(sz, 0)), 1448 1.1 christos OP2(ORMEMND, OWTREGD5), 1449 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 1), 1450 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one_noscale, 0))) 1451 1.1 christos INSN(ldndw, d, dincdw, load, C64XP, 1452 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 1453 1.1 christos FIX3(FIX(op, 1), FIX(na, 1), FIX(sz, 0)), 1454 1.1 christos OP2(ORMEMND, OWTREGD5), 1455 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 1), 1456 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one_noscale, 0))) 1457 1.1 christos INSN(ldndw, d, dinddw, load, C64XP, 1458 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 1459 1.1 christos FIX3(FIX(op, 1), FIX(na, 1), FIX(sz, 0)), 1460 1.1 christos OP2(ORMEMND, OWTREGD5), 1461 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset_noscale, 0), 1462 1.1 christos ENC(ptr, reg_ptr, 0), ENC(srcdst, reg_shift, 1))) 1463 1.1 christos INSN(ldndw, d, doff4dw, load, C64XP, 1464 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 1465 1.1 christos FIX3(FIX(op, 1), FIX(na, 1), FIX(sz, 0)), 1466 1.1 christos OP2(ORMEMND, OWTREGD5), 1467 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset_noscale, 0), 1468 1.1 christos ENC(ptr, reg_ptr, 0), ENC(srcdst, reg_shift, 1))) 1469 1.1 christos /**/ 1470 1.1 christos 1471 1.1 christos INSN(ldnw, d, load_store, load, C64X, 1472 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED, 1473 1.1 christos FIX2(FIX(op, 3), FIX(r, 1)), 1474 1.1 christos OP2(ORMEMSW, OWDREG5), 1475 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), 1476 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), 1477 1.1 christos ENC(srcdst, reg, 1))) 1478 1.1 christos 1479 1.1 christos /* 16 bits insn */ 1480 1.1 christos INSN(ldnw, d, doff4_dsz_110, load, C64XP, 1481 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 1482 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1483 1.1 christos OP2(ORMEMSW, OWTREG5), 1484 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1485 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset, 0))) 1486 1.1 christos INSN(ldnw, d, dind_dsz_110, load, C64XP, 1487 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 1488 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1489 1.1 christos OP2(ORMEMSW, OWTREG5), 1490 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1491 1.1 christos ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) 1492 1.1 christos INSN(ldnw, d, dinc_dsz_110, load, C64XP, 1493 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 1494 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1495 1.1 christos OP2(ORMEMSW, OWTREG5), 1496 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1497 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1498 1.1 christos INSN(ldnw, d, ddec_dsz_110, load, C64XP, 1499 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 1500 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1501 1.1 christos OP2(ORMEMSW, OWTREG5), 1502 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1503 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1504 1.1 christos /**/ 1505 1.1 christos 1506 1.1 christos INSN(ldw, d, load_store, load, C62X, 1507 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 1508 1.1 christos FIX2(FIX(op, 6), FIX(r, 0)), 1509 1.1 christos OP2(ORMEMSW, OWDREG5), 1510 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 0), 1511 1.1 christos ENC(offsetR, mem_offset, 0), ENC(baseR, reg, 0), 1512 1.1 christos ENC(srcdst, reg, 1))) 1513 1.1 christos INSN(ldw, d, load_store_long, load, C62X, 1514 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), 1515 1.1 christos FIX1(FIX(op, 6)), 1516 1.1 christos OP2(ORMEMLW, OWDREG5), 1517 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 0), ENC(offsetR, ulcst_dpr_word, 0), 1518 1.1 christos ENC(dst, reg, 1))) 1519 1.1 christos 1520 1.1 christos /* 16 bits insn */ 1521 1.1 christos INSN(ldw, d, doff4_dsz_0xx, load, C64XP, 1522 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 1523 1.1 christos FIX2(FIX(op, 1), FIX(sz, 0)), 1524 1.1 christos OP2(ORMEMSW, OWTREG5), 1525 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1526 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset, 0))) 1527 1.1 christos INSN(ldw, d, doff4_dsz_100, load, C64XP, 1528 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 1529 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1530 1.1 christos OP2(ORMEMSW, OWTREG5), 1531 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1532 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset, 0))) 1533 1.1 christos INSN(ldw, d, dind_dsz_0xx, load, C64XP, 1534 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 1535 1.1 christos FIX2(FIX(op, 1), FIX(sz, 0)), 1536 1.1 christos OP2(ORMEMSW, OWTREG5), 1537 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1538 1.1 christos ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) 1539 1.1 christos INSN(ldw, d, dind_dsz_100, load, C64XP, 1540 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 1541 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1542 1.1 christos OP2(ORMEMSW, OWTREG5), 1543 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1544 1.1 christos ENC(ptr, reg_ptr, 0), ENC(src1, mem_offset, 0))) 1545 1.1 christos INSN(ldw, d, dinc_dsz_0xx, load, C64XP, 1546 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 1547 1.1 christos FIX2(FIX(op, 1), FIX(sz, 0)), 1548 1.1 christos OP2(ORMEMSW, OWTREG5), 1549 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1550 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1551 1.1 christos INSN(ldw, d, dinc_dsz_100, load, C64XP, 1552 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 1553 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1554 1.1 christos OP2(ORMEMSW, OWTREG5), 1555 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1556 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1557 1.1 christos INSN(ldw, d, ddec_dsz_0xx, load, C64XP, 1558 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 1559 1.1 christos FIX2(FIX(op, 1), FIX(sz, 0)), 1560 1.1 christos OP2(ORMEMSW, OWTREG5), 1561 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1562 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1563 1.1 christos INSN(ldw, d, ddec_dsz_100, load, C64XP, 1564 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 1565 1.1 christos FIX2(FIX(op, 1), FIX(sz, 1)), 1566 1.1 christos OP2(ORMEMSW, OWTREG5), 1567 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1568 1.1 christos ENC(ptr, reg_ptr, 0), ENC(cst, mem_offset_minus_one, 0))) 1569 1.1 christos INSN(ldw, d, dpp, load, C64XP, 1570 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREINCR)|TIC6X_FLAG_INSN16_B15PTR|TIC6X_FLAG_INSN16_NORS, 1571 1.1 christos FIX2(FIX(op, 1), FIX(dw, 0)), 1572 1.1 christos OP2(ORMEMSW, OWTREG5), 1573 1.1 christos ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1574 1.1 christos ENC(cst, mem_offset_minus_one, 0))) 1575 1.1 christos INSN(ldw, d, dstk, load, C64XP, 1576 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE)|TIC6X_FLAG_INSN16_B15PTR, 1577 1.1 christos FIX2(FIX(op, 0x1), FIX(s, 1)), 1578 1.1 christos OP2(ORMEMSW, OWTREG5), 1579 1.1 christos ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 1), 1580 1.1 christos ENC(cst, mem_offset, 0))) 1581 1.1 christos /**/ 1582 1.1 christos 1583 1.1 christos INSN(ll, d, 1_or_2_src, load, C64XP, 1584 1.1 christos TIC6X_FLAG_LOAD|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS, 1585 1.1 christos FIX3(FIX(s, 1), FIX(op, 0xc), FIX(src1, 0)), 1586 1.1 christos OP2(ORMEMDW, OWDREG5), 1587 1.1 christos ENC2(ENC(src2, reg, 0), ENC(dst, reg, 1))) 1588 1.1 christos 1589 1.1 christos INSNE(lmbd, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, 1590 1.1 christos FIX1(FIX(op, 0x6b)), 1591 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 1592 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1593 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1594 1.1 christos INSNE(lmbd, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, 1595 1.1 christos FIX1(FIX(op, 0x6a)), 1596 1.1 christos OP3(OACST, ORXREG1, OWREG1), 1597 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 1598 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1599 1.1 christos 1600 1.1 christos INSN(max2, l, 1_or_2_src, 1cycle, C64X, 0, 1601 1.1 christos FIX1(FIX(op, 0x42)), 1602 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 1603 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1604 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1605 1.1 christos INSN(max2, s, ext_1_or_2_src, 1cycle, C64XP, 0, 1606 1.1 christos FIX1(FIX(op, 0xd)), 1607 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 1608 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1609 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1610 1.1 christos 1611 1.1 christos INSN(maxu4, l, 1_or_2_src, 1cycle, C64X, 0, 1612 1.1 christos FIX1(FIX(op, 0x43)), 1613 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 1614 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1615 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1616 1.1 christos 1617 1.1 christos INSN(min2, l, 1_or_2_src, 1cycle, C64X, 0, 1618 1.1 christos FIX1(FIX(op, 0x41)), 1619 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 1620 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1621 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1622 1.1 christos INSN(min2, s, ext_1_or_2_src, 1cycle, C64XP, 0, 1623 1.1 christos FIX1(FIX(op, 0xc)), 1624 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 1625 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1626 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1627 1.1 christos 1628 1.1 christos INSN(minu4, l, 1_or_2_src, 1cycle, C64X, 0, 1629 1.1 christos FIX1(FIX(op, 0x48)), 1630 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 1631 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1632 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1633 1.1 christos 1634 1.1 christos INSNE(mpy, m_sl16_xsl16_si, m, mpy, 1616_m, C62X, 0, 1635 1.1 christos FIX1(FIX(op, 0x19)), 1636 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1637 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1638 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1639 1.1 christos INSNE(mpy, m_s5_xsl16_si, m, mpy, 1616_m, C62X, 0, 1640 1.1 christos FIX1(FIX(op, 0x18)), 1641 1.1 christos OP3(OACST, ORXREG1, OWREG2), 1642 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 1643 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1644 1.1 christos 1645 1.1 christos /* 16-bit insn. */ 1646 1.1 christos INSN(mpy, m, m3_sat_0, 1616_m, C67X, 0, 1647 1.1 christos FIX1(FIX(op, 0x0)), 1648 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1649 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1650 1.1 christos ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) 1651 1.1 christos 1652 1.1 christos INSN(mpydp, m, mpy, mpydp, C67X, 0, 1653 1.1 christos FIX1(FIX(op, 0x0e)), 1654 1.1 christos OP3(ORREGD1234, ORXREGD1324, OWREGD910), 1655 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1656 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1657 1.1 christos 1658 1.1 christos INSN(mpyh, m, mpy, 1616_m, C62X, 0, 1659 1.1 christos FIX1(FIX(op, 0x01)), 1660 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1661 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1662 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1663 1.1 christos 1664 1.1 christos /* 16 bits insn */ 1665 1.1 christos INSN(mpyh, m, m3_sat_0, 1616_m, C67X, 0, 1666 1.1 christos FIX1(FIX(op, 0x1)), 1667 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1668 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1669 1.1 christos ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) 1670 1.1 christos /**/ 1671 1.1 christos 1672 1.1 christos INSN(mpyhi, m, compound, 4cycle, C64X, 0, 1673 1.1 christos FIX1(FIX(op, 0x14)), 1674 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1675 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1676 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1677 1.1 christos 1678 1.1 christos INSN(mpyhir, m, compound, 4cycle, C64X, 0, 1679 1.1 christos FIX1(FIX(op, 0x10)), 1680 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1681 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1682 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1683 1.1 christos 1684 1.1 christos INSN(mpyhl, m, mpy, 1616_m, C62X, 0, 1685 1.1 christos FIX1(FIX(op, 0x09)), 1686 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1687 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1688 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1689 1.1 christos 1690 1.1 christos /* 16 bits insn */ 1691 1.1 christos INSN(mpyhl, m, m3_sat_0, 1616_m, C67X, 0, 1692 1.1 christos FIX1(FIX(op, 0x3)), 1693 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1694 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1695 1.1 christos ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) 1696 1.1 christos /**/ 1697 1.1 christos 1698 1.1 christos INSN(mpyhlu, m, mpy, 1616_m, C62X, 0, 1699 1.1 christos FIX1(FIX(op, 0x0f)), 1700 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1701 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1702 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1703 1.1 christos 1704 1.1 christos INSN(mpyhslu, m, mpy, 1616_m, C62X, 0, 1705 1.1 christos FIX1(FIX(op, 0x0b)), 1706 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1707 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1708 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1709 1.1 christos 1710 1.1 christos INSN(mpyhsu, m, mpy, 1616_m, C62X, 0, 1711 1.1 christos FIX1(FIX(op, 0x03)), 1712 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1713 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1714 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1715 1.1 christos 1716 1.1 christos INSN(mpyhu, m, mpy, 1616_m, C62X, 0, 1717 1.1 christos FIX1(FIX(op, 0x07)), 1718 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1719 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1720 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1721 1.1 christos 1722 1.1 christos INSN(mpyhuls, m, mpy, 1616_m, C62X, 0, 1723 1.1 christos FIX1(FIX(op, 0x0d)), 1724 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1725 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1726 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1727 1.1 christos 1728 1.1 christos INSN(mpyhus, m, mpy, 1616_m, C62X, 0, 1729 1.1 christos FIX1(FIX(op, 0x05)), 1730 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1731 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1732 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1733 1.1 christos 1734 1.1 christos INSNE(mpyi, m_si_xsi_si, m, mpy, mpyi, C67X, 0, 1735 1.1 christos FIX1(FIX(op, 0x04)), 1736 1.1 christos OP3(ORREG14, ORXREG14, OWREG9), 1737 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1738 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1739 1.1 christos INSNE(mpyi, m_s5_xsi_si, m, mpy, mpyi, C67X, 0, 1740 1.1 christos FIX1(FIX(op, 0x06)), 1741 1.1 christos OP3(OACST, ORXREG14, OWREG9), 1742 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 1743 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1744 1.1 christos 1745 1.1 christos INSNE(mpyid, m_si_xsi_sll, m, mpy, mpyid, C67X, 0, 1746 1.1 christos FIX1(FIX(op, 0x08)), 1747 1.1 christos OP3(ORREG14, ORXREG14, OWREGD910), 1748 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1749 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1750 1.1 christos INSNE(mpyid, m_s5_xsi_sll, m, mpy, mpyid, C67X, 0, 1751 1.1 christos FIX1(FIX(op, 0x0c)), 1752 1.1 christos OP3(OACST, ORXREG14, OWREGD910), 1753 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 1754 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1755 1.1 christos 1756 1.1 christos INSN(mpyih, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, 1757 1.1 christos FIX1(FIX(op, 0x14)), 1758 1.1 christos OP3(ORXREG1, ORREG1, OWREGD4), 1759 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1760 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 1761 1.1 christos 1762 1.1 christos INSN(mpyihr, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, 1763 1.1 christos FIX1(FIX(op, 0x10)), 1764 1.1 christos OP3(ORXREG1, ORREG1, OWREG4), 1765 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1766 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 1767 1.1 christos 1768 1.1 christos INSN(mpyil, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, 1769 1.1 christos FIX1(FIX(op, 0x15)), 1770 1.1 christos OP3(ORXREG1, ORREG1, OWREGD4), 1771 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1772 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 1773 1.1 christos 1774 1.1 christos INSN(mpyilr, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, 1775 1.1 christos FIX1(FIX(op, 0x0e)), 1776 1.1 christos OP3(ORXREG1, ORREG1, OWREG4), 1777 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1778 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 1779 1.1 christos 1780 1.1 christos INSN(mpylh, m, mpy, 1616_m, C62X, 0, 1781 1.1 christos FIX1(FIX(op, 0x11)), 1782 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1783 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1784 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1785 1.1 christos 1786 1.1 christos /* 16 bits insn */ 1787 1.1 christos INSN(mpylh, m, m3_sat_0, 1616_m, C67X, 0, 1788 1.1 christos FIX1(FIX(op, 0x2)), 1789 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1790 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1791 1.1 christos ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) 1792 1.1 christos /**/ 1793 1.1 christos 1794 1.1 christos INSN(mpylhu, m, mpy, 1616_m, C62X, 0, 1795 1.1 christos FIX1(FIX(op, 0x17)), 1796 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1797 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1798 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1799 1.1 christos 1800 1.1 christos INSN(mpyli, m, compound, 4cycle, C64X, 0, 1801 1.1 christos FIX1(FIX(op, 0x15)), 1802 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1803 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1804 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1805 1.1 christos 1806 1.1 christos INSN(mpylir, m, compound, 4cycle, C64X, 0, 1807 1.1 christos FIX1(FIX(op, 0x0e)), 1808 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1809 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1810 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1811 1.1 christos 1812 1.1 christos INSN(mpylshu, m, mpy, 1616_m, C62X, 0, 1813 1.1 christos FIX1(FIX(op, 0x13)), 1814 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1815 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1816 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1817 1.1 christos 1818 1.1 christos INSN(mpyluhs, m, mpy, 1616_m, C62X, 0, 1819 1.1 christos FIX1(FIX(op, 0x15)), 1820 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1821 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1822 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1823 1.1 christos 1824 1.1 christos INSN(mpysp, m, mpy, 4cycle, C67X, 0, 1825 1.1 christos FIX1(FIX(op, 0x1c)), 1826 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1827 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1828 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1829 1.1 christos 1830 1.1 christos /* Contrary to SPRU733A, MPYSPDP and MPYSP2DP are on both C67X and 1831 1.1 christos C67X+. */ 1832 1.1 christos INSN(mpyspdp, m, compound, mpyspdp, C67X, 0, 1833 1.1 christos FIX1(FIX(op, 0x16)), 1834 1.1 christos OP3(ORREG12, ORXREGD12, OWREGD67), 1835 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1836 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1837 1.1 christos 1838 1.1 christos INSN(mpysp2dp, m, compound, mpyspdp, C67X, 0, 1839 1.1 christos FIX1(FIX(op, 0x17)), 1840 1.1 christos OP3(ORREG1, ORXREG1, OWREGD45), 1841 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1842 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1843 1.1 christos 1844 1.1 christos INSNE(mpysu, m_sl16_xul16_si, m, mpy, 1616_m, C62X, 0, 1845 1.1 christos FIX1(FIX(op, 0x1b)), 1846 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1847 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1848 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1849 1.1 christos INSNE(mpysu, m_s5_xul16_si, m, mpy, 1616_m, C62X, 0, 1850 1.1 christos FIX1(FIX(op, 0x1e)), 1851 1.1 christos OP3(OACST, ORXREG1, OWREG2), 1852 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 1853 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1854 1.1 christos 1855 1.1 christos INSN(mpysu4, m, compound, 4cycle, C64X, 0, 1856 1.1 christos FIX1(FIX(op, 0x05)), 1857 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1858 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1859 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1860 1.1 christos 1861 1.1 christos INSN(mpyu, m, mpy, 1616_m, C62X, 0, 1862 1.1 christos FIX1(FIX(op, 0x1f)), 1863 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1864 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1865 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1866 1.1 christos 1867 1.1 christos INSN(mpyu4, m, compound, 4cycle, C64X, 0, 1868 1.1 christos FIX1(FIX(op, 0x04)), 1869 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1870 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1871 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1872 1.1 christos 1873 1.1 christos INSN(mpyus, m, mpy, 1616_m, C62X, 0, 1874 1.1 christos FIX1(FIX(op, 0x1d)), 1875 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 1876 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1877 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1878 1.1 christos 1879 1.1 christos INSN(mpyus4, m, compound, 4cycle, C64X, TIC6X_FLAG_MACRO, 1880 1.1 christos FIX1(FIX(op, 0x05)), 1881 1.1 christos OP3(ORXREG1, ORREG1, OWREGD4), 1882 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1883 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 1884 1.1 christos 1885 1.1 christos INSN(mpy2, m, compound, 4cycle, C64X, 0, 1886 1.1 christos FIX1(FIX(op, 0x00)), 1887 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1888 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1889 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1890 1.1 christos 1891 1.1 christos INSN(mpy2ir, m, 1_or_2_src, 4cycle, C64XP, 0, 1892 1.1 christos FIX1(FIX(op, 0x0f)), 1893 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1894 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1895 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1896 1.1 christos 1897 1.1 christos INSNE(mpy32, 32_32_32, m, mpy, 4cycle, C64XP, 0, 1898 1.1 christos FIX1(FIX(op, 0x10)), 1899 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 1900 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1901 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1902 1.1 christos INSNE(mpy32, 32_32_64, m, mpy, 4cycle, C64XP, 0, 1903 1.1 christos FIX1(FIX(op, 0x14)), 1904 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1905 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1906 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1907 1.1 christos 1908 1.1 christos INSN(mpy32su, m, mpy, 4cycle, C64XP, 0, 1909 1.1 christos FIX1(FIX(op, 0x16)), 1910 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1911 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1912 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1913 1.1 christos 1914 1.1 christos INSN(mpy32u, m, compound, 4cycle, C64XP, 0, 1915 1.1 christos FIX1(FIX(op, 0x18)), 1916 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1917 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1918 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1919 1.1 christos 1920 1.1 christos INSN(mpy32us, m, compound, 4cycle, C64XP, 0, 1921 1.1 christos FIX1(FIX(op, 0x19)), 1922 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 1923 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 1924 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 1925 1.1 christos 1926 1.1 christos /* "or" forms of "mv" are preferred over "add" forms when available 1927 1.1 christos because "or" uses less power. However, 40-bit moves are only 1928 1.1 christos available through "add", and before C64X D-unit moves are only 1929 1.1 christos available through "add" (without cross paths being available). */ 1930 1.1 christos INSNE(mv, l_xui_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 1931 1.1 christos FIX2(FIX(op, 0x7e), FIX(src1, 0)), 1932 1.1 christos OP2(ORXREG1, OWREG1), 1933 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1934 1.1 christos ENC(dst, reg, 1))) 1935 1.1 christos INSNE(mv, l_sl_sl, l, 1_or_2_src, 1cycle, C62X, 1936 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, 1937 1.1 christos FIX3(FIX(op, 0x20), FIX(x, 0), FIX(src1, 0)), 1938 1.1 christos OP2(ORREGL1, OWREGL1), 1939 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1))) 1940 1.1 christos INSNE(mv, s_xui_ui, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 1941 1.1 christos FIX2(FIX(op, 0x1a), FIX(src1, 0)), 1942 1.1 christos OP2(ORXREG1, OWREG1), 1943 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1944 1.1 christos ENC(dst, reg, 1))) 1945 1.1 christos INSNE(mv, d_si_si, d, 1_or_2_src, 1cycle, C62X, 1946 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(0), 1947 1.1 christos FIX2(FIX(op, 0x12), FIX(src1, 0)), 1948 1.1 christos OP2(ORREG1, OWREG1), 1949 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1))) 1950 1.1 christos INSNE(mv, d_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 1951 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1), 1952 1.1 christos FIX2(FIX(op, 0x3), FIX(src1, 0)), 1953 1.1 christos OP2(ORXREG1, OWREG1), 1954 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 1955 1.1 christos ENC(dst, reg, 1))) 1956 1.1 christos 1957 1.1 christos /* 16 bits insn */ 1958 1.1 christos INSNU(mv, l, lsdmvto, 1cycle, C64X, 0, 1959 1.1 christos FIX1(FIX(unit, 0x0)), 1960 1.1 christos OP2(ORXREG1, OWREG1), 1961 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) 1962 1.1 christos 1963 1.1 christos INSNU(mv, s, lsdmvto, 1cycle, C64X, 0, 1964 1.1 christos FIX1(FIX(unit, 0x1)), 1965 1.1 christos OP2(ORXREG1, OWREG1), 1966 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) 1967 1.1 christos 1968 1.1 christos INSNU(mv, d, lsdmvto, 1cycle, C64X, 0, 1969 1.1 christos FIX1(FIX(unit, 0x2)), 1970 1.1 christos OP2(ORXREG1, OWREG1), 1971 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) 1972 1.1 christos 1973 1.1 christos INSNU(mv, l, lsdmvfr, 1cycle, C64X, 0, 1974 1.1 christos FIX1(FIX(unit, 0x0)), 1975 1.1 christos OP2(ORXREG1, OWREG1), 1976 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) 1977 1.1 christos 1978 1.1 christos INSNU(mv, s, lsdmvfr, 1cycle, C64X, 0, 1979 1.1 christos FIX1(FIX(unit, 0x1)), 1980 1.1 christos OP2(ORXREG1, OWREG1), 1981 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) 1982 1.1 christos 1983 1.1 christos INSNU(mv, d, lsdmvfr, 1cycle, C64X, 0, 1984 1.1 christos FIX1(FIX(unit, 0x2)), 1985 1.1 christos OP2(ORXREG1, OWREG1), 1986 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(x, xpath, 0), ENC(dst, reg, 1))) 1987 1.1 christos /**/ 1988 1.1 christos 1989 1.1 christos INSNE(mvc, from_cr, s, 1_or_2_src, 1cycle, C62X, 1990 1.1 christos TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_NO_CROSS, 1991 1.1 christos FIX3(FIX(s, 1), FIX(op, 0x0f), FIX(x, 0)), 1992 1.1 christos OP2(ORCREG1, OWREG1), 1993 1.1 christos ENC3(ENC(src1, crhi, 0), ENC(src2, crlo, 0), ENC(dst, reg, 1))) 1994 1.1 christos INSNE(mvc, to_cr, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_SIDE_B_ONLY, 1995 1.1 christos FIX2(FIX(s, 1), FIX(op, 0x0e)), 1996 1.1 christos OP2(ORXREG1, OWCREG1), 1997 1.1 christos ENC4(ENC(x, xpath, 0), ENC(src2, reg, 0), ENC(src1, crhi, 1), 1998 1.1 christos ENC(dst, crlo, 1))) 1999 1.1 christos 2000 1.1 christos /* 16 bits insn */ 2001 1.1 christos INSN(mvc, s, sx1, 1cycle, C64XP, 2002 1.1 christos TIC6X_FLAG_NO_CROSS, 2003 1.1 christos FIX1(FIX(op, 0x6)), 2004 1.1 christos OP2(ORREG1B, OWILC1), 2005 1.1 christos ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 0))) 2006 1.1 christos /**/ 2007 1.1 christos 2008 1.1 christos INSN(mvd, m, unary, 4cycle, C64X, 0, 2009 1.1 christos FIX1(FIX(op, 0x1a)), 2010 1.1 christos OP2(ORXREG1, OWREG4), 2011 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2012 1.1 christos ENC(dst, reg, 1))) 2013 1.1 christos 2014 1.1 christos INSN(mvk, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2015 1.1 christos FIX1(FIX(h, 0)), 2016 1.1 christos OP2(OLCST, OWREG1), 2017 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, scst, 0), ENC(dst, reg, 1))) 2018 1.1 christos INSN(mvk, l, unary, 1cycle, C64X, TIC6X_FLAG_NO_CROSS, 2019 1.1 christos FIX2(FIX(x, 0), FIX(op, 0x05)), 2020 1.1 christos OP2(OACST, OWREG1), 2021 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, scst, 0), ENC(dst, reg, 1))) 2022 1.1 christos INSN(mvk, d, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_NO_CROSS, 2023 1.1 christos FIX2(FIX(op, 0x00), FIX(src2, 0)), 2024 1.1 christos OP2(OACST, OWREG1), 2025 1.1 christos ENC3(ENC(s, fu, 0), ENC(src1, scst, 0), ENC(dst, reg, 1))) 2026 1.1 christos 2027 1.1 christos /* 16 bits insn */ 2028 1.1 christos INSN(mvk, l, lx5, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 2029 1.1 christos FIX0(), 2030 1.1 christos OP2(OLCST, OWREG1), 2031 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, scst, 0), ENC(dst, reg, 1))) 2032 1.1 christos INSN(mvk, s, smvk8, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 2033 1.1 christos FIX0(), 2034 1.1 christos OP2(OLCST, OWREG1), 2035 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(dst, reg, 1))) 2036 1.1 christos INSNU(mvk, l, lsdx1c, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_SPRED, 2037 1.1 christos FIX1(FIX(unit, 0x0)), 2038 1.1 christos OP2(OACST, OWREG1), 2039 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(dst, reg, 1))) 2040 1.1 christos INSNU(mvk, s, lsdx1c, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_SPRED, 2041 1.1 christos FIX1(FIX(unit, 0x1)), 2042 1.1 christos OP2(OACST, OWREG1), 2043 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(dst, reg, 1))) 2044 1.1 christos INSNU(mvk, d, lsdx1c, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_SPRED, 2045 1.1 christos FIX1(FIX(unit, 0x2)), 2046 1.1 christos OP2(OACST, OWREG1), 2047 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, ucst, 0), ENC(dst, reg, 1))) 2048 1.1 christos INSNUE(mvk, zero, l, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 2049 1.1 christos FIX2(FIX(op, 0), FIX(unit, 0x0)), 2050 1.1 christos OP2(OHWCST0, OWREG1), 2051 1.1 christos ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) 2052 1.1 christos INSNUE(mvk, zero, s, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 2053 1.1 christos FIX2(FIX(op, 0), FIX(unit, 0x1)), 2054 1.1 christos OP2(OHWCST0, OWREG1), 2055 1.1 christos ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) 2056 1.1 christos INSNUE(mvk, zero, d, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 2057 1.1 christos FIX2(FIX(op, 0), FIX(unit, 0x2)), 2058 1.1 christos OP2(OHWCST0, OWREG1), 2059 1.1 christos ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) 2060 1.1 christos INSNUE(mvk, one, l, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 2061 1.1 christos FIX2(FIX(op, 1), FIX(unit, 0x0)), 2062 1.1 christos OP2(OHWCST1, OWREG1), 2063 1.1 christos ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) 2064 1.1 christos INSNUE(mvk, one, s, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 2065 1.1 christos FIX2(FIX(op, 1), FIX(unit, 0x1)), 2066 1.1 christos OP2(OHWCST1, OWREG1), 2067 1.1 christos ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) 2068 1.1 christos INSNUE(mvk, one, d, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 2069 1.1 christos FIX2(FIX(op, 1), FIX(unit, 0x2)), 2070 1.1 christos OP2(OHWCST1, OWREG1), 2071 1.1 christos ENC2(ENC(s, fu, 0), ENC(srcdst, reg, 1))) 2072 1.1 christos /**/ 2073 1.1 christos 2074 1.1 christos INSN(mvkh, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2075 1.1 christos FIX1(FIX(h, 1)), 2076 1.1 christos OP2(OLCST, OWREG1), 2077 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, lcst_high16, 0), ENC(dst, reg, 1))) 2078 1.1 christos 2079 1.1 christos INSN(mvklh, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, 2080 1.1 christos FIX1(FIX(h, 1)), 2081 1.1 christos OP2(OLCST, OWREG1), 2082 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, lcst_low16, 0), ENC(dst, reg, 1))) 2083 1.1 christos 2084 1.1 christos INSN(mvkl, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, 2085 1.1 christos FIX1(FIX(h, 0)), 2086 1.1 christos OP2(OLCST, OWREG1), 2087 1.1 christos ENC3(ENC(s, fu, 0), ENC(cst, lcst_low16, 0), ENC(dst, reg, 1))) 2088 1.1 christos 2089 1.1 christos INSNE(neg, s_xsi_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 2090 1.1 christos FIX2(FIX(op, 0x16), FIX(src1, 0)), 2091 1.1 christos OP2(ORXREG1, OWREG1), 2092 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2093 1.1 christos ENC(dst, reg, 1))) 2094 1.1 christos INSNE(neg, l_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 2095 1.1 christos FIX2(FIX(op, 0x06), FIX(src1, 0)), 2096 1.1 christos OP2(ORXREG1, OWREG1), 2097 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2098 1.1 christos ENC(dst, reg, 1))) 2099 1.1 christos INSNE(neg, l_sl_sl, l, 1_or_2_src, 1cycle, C62X, 2100 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, 2101 1.1 christos FIX2(FIX(op, 0x24), FIX(src1, 0)), 2102 1.1 christos OP2(ORREGL1, OWREGL1), 2103 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2104 1.1 christos ENC(dst, reg, 1))) 2105 1.1 christos 2106 1.1 christos INSN(nop, nfu, nop_idle, nop, C62X, 0, 2107 1.1 christos FIX2(FIX(s, 0), RAN(op, 0, 8)), 2108 1.1 christos OP1(OACST), 2109 1.1 christos ENC1(ENC(op, ucst_minus_one, 0))) 2110 1.1 christos INSNE(nop, 1, nfu, nop_idle, nop, C62X, TIC6X_FLAG_MACRO, 2111 1.1 christos FIX2(FIX(s, 0), FIX(op, 0)), 2112 1.1 christos OP0(), 2113 1.1 christos ENC0()) 2114 1.1 christos 2115 1.1 christos /* 16 bits insn */ 2116 1.1 christos /* contrary to sprufe8b.pdf p767, and accordingly to 2117 1.1 christos * dis6x.exe output, unop3 opcode is decoded as NOP N3 + 1 */ 2118 1.1 christos INSN(nop, nfu, unop, nop, C64XP, 0, 2119 1.1 christos FIX0(), 2120 1.1 christos OP1(OACST), 2121 1.1 christos ENC1(ENC(n, ucst_minus_one, 0))) 2122 1.1 christos /**/ 2123 1.1 christos 2124 1.1 christos INSNE(norm, l_xsi_ui, l, 1_or_2_src, 1cycle, C62X, 0, 2125 1.1 christos FIX2(FIX(op, 0x63), FIX(src1, 0)), 2126 1.1 christos OP2(ORXREG1, OWREG1), 2127 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2128 1.1 christos ENC(dst, reg, 1))) 2129 1.1 christos INSNE(norm, l_sl_ui, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2130 1.1 christos FIX3(FIX(op, 0x60), FIX(x, 0), FIX(src1, 0)), 2131 1.1 christos OP2(ORREGL1, OWREG1), 2132 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1))) 2133 1.1 christos 2134 1.1 christos INSN(not, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 2135 1.1 christos FIX2(FIX(op, 0x6e), FIX(src1, 0x1f)), 2136 1.1 christos OP2(ORXREG1, OWREG1), 2137 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2138 1.1 christos ENC(dst, reg, 1))) 2139 1.1 christos INSN(not, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 2140 1.1 christos FIX2(FIX(op, 0x0a), FIX(src1, 0x1f)), 2141 1.1 christos OP2(ORXREG1, OWREG1), 2142 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2143 1.1 christos ENC(dst, reg, 1))) 2144 1.1 christos INSN(not, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO, 2145 1.1 christos FIX2(FIX(op, 0xf), FIX(src1, 0x1f)), 2146 1.1 christos OP2(ORXREG1, OWREG1), 2147 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2148 1.1 christos ENC(dst, reg, 1))) 2149 1.1 christos 2150 1.1 christos INSNE(or, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, 2151 1.1 christos FIX1(FIX(op, 0x2)), 2152 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2153 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2154 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2155 1.1 christos INSNE(or, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, 2156 1.1 christos FIX1(FIX(op, 0x3)), 2157 1.1 christos OP3(OACST, ORXREG1, OWREG1), 2158 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 2159 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2160 1.1 christos INSNE(or, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, 2161 1.1 christos FIX1(FIX(op, 0x7f)), 2162 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2163 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2164 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2165 1.1 christos INSNE(or, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, 2166 1.1 christos FIX1(FIX(op, 0x7e)), 2167 1.1 christos OP3(OACST, ORXREG1, OWREG1), 2168 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 2169 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2170 1.1 christos INSNE(or, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, 2171 1.1 christos FIX1(FIX(op, 0x1b)), 2172 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2173 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2174 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2175 1.1 christos INSNE(or, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, 2176 1.1 christos FIX1(FIX(op, 0x1a)), 2177 1.1 christos OP3(OACST, ORXREG1, OWREG1), 2178 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 2179 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2180 1.1 christos 2181 1.1 christos /* 16 bits insn */ 2182 1.1 christos INSN(or, l, l2c, 1cycle, C64XP, 0, 2183 1.1 christos FIX1(FIX(op, 1)), 2184 1.1 christos OP3(ORREG1, ORXREG1, OWREG1NORS), 2185 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2186 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2187 1.1 christos /**/ 2188 1.1 christos 2189 1.1 christos INSN(pack2, l, 1_or_2_src, 1cycle, C64X, 0, 2190 1.1 christos FIX1(FIX(op, 0x0)), 2191 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2192 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2193 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2194 1.1 christos INSN(pack2, s, ext_1_or_2_src, 1cycle, C64X, 0, 2195 1.1 christos FIX1(FIX(op, 0xf)), 2196 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2197 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2198 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2199 1.1 christos 2200 1.1 christos INSN(packh2, l, 1_or_2_src, 1cycle, C64X, 0, 2201 1.1 christos FIX1(FIX(op, 0x1e)), 2202 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2203 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2204 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2205 1.1 christos INSN(packh2, s, 1_or_2_src, 1cycle, C64X, 0, 2206 1.1 christos FIX1(FIX(op, 0x9)), 2207 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2208 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2209 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2210 1.1 christos 2211 1.1 christos INSN(packh4, l, 1_or_2_src, 1cycle, C64X, 0, 2212 1.1 christos FIX1(FIX(op, 0x69)), 2213 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2214 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2215 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2216 1.1 christos 2217 1.1 christos INSN(packhl2, l, 1_or_2_src, 1cycle, C64X, 0, 2218 1.1 christos FIX1(FIX(op, 0x1c)), 2219 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2220 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2221 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2222 1.1 christos INSN(packhl2, s, 1_or_2_src, 1cycle, C64X, 0, 2223 1.1 christos FIX1(FIX(op, 0x8)), 2224 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2225 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2226 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2227 1.1 christos 2228 1.1 christos INSN(packlh2, l, 1_or_2_src, 1cycle, C64X, 0, 2229 1.1 christos FIX1(FIX(op, 0x1b)), 2230 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2231 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2232 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2233 1.1 christos INSN(packlh2, s, 1_or_2_src, 1cycle, C64X, 0, 2234 1.1 christos FIX1(FIX(op, 0x10)), 2235 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2236 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2237 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2238 1.1 christos 2239 1.1 christos INSN(packl4, l, 1_or_2_src, 1cycle, C64X, 0, 2240 1.1 christos FIX1(FIX(op, 0x68)), 2241 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2242 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2243 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2244 1.1 christos 2245 1.1 christos INSN(rcpdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS, 2246 1.1 christos FIX2(FIX(op, 0x2d), FIX(x, 0)), 2247 1.1 christos OP2(ORREGD1, OWREGD12), 2248 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), 2249 1.1 christos ENC(dst, reg, 1))) 2250 1.1 christos 2251 1.1 christos INSN(rcpsp, s, 1_or_2_src, 1cycle, C67X, 0, 2252 1.1 christos FIX2(FIX(op, 0x3d), FIX(src1, 0)), 2253 1.1 christos OP2(ORXREG1, OWREG1), 2254 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2255 1.1 christos ENC(dst, reg, 1))) 2256 1.1 christos 2257 1.1 christos INSN(ret, s, ext_branch_cond_imm, branch, C62X, 2258 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN, 2259 1.1 christos FIX0(), 2260 1.1 christos OP1(OLCST), 2261 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) 2262 1.1 christos INSN(ret, s, branch, branch, C62X, 2263 1.1 christos TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN, 2264 1.1 christos FIX1(FIX(s, 1)), 2265 1.1 christos OP1(ORXREG1), 2266 1.1 christos ENC2(ENC(x, xpath, 0), ENC(src2, reg, 0))) 2267 1.1 christos INSN(ret, s, b_irp, branch, C62X, 2268 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN, 2269 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), 2270 1.1 christos OP1(ORIRP1), 2271 1.1 christos ENC0()) 2272 1.1 christos INSN(ret, s, b_nrp, branch, C62X, 2273 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN, 2274 1.1 christos FIX3(FIX(s, 1), FIX(x, 0), FIX(dst, 0)), 2275 1.1 christos OP1(ORNRP1), 2276 1.1 christos ENC0()) 2277 1.1 christos 2278 1.1 christos INSN(retp, s, call_imm_nop, branch, C64XP, 2279 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MCNOP|TIC6X_FLAG_MACRO|TIC6X_FLAG_RETURN, 2280 1.1 christos FIX1(FIX(z, 1)), 2281 1.1 christos OP2(OLCST, OWRETREG1), 2282 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, pcrel, 0))) 2283 1.1 christos 2284 1.1 christos INSN(rint, nfu, rint, 1cycle, C64XP, 0, 2285 1.1 christos FIX1(FIX(s, 0)), 2286 1.1 christos OP0(), 2287 1.1 christos ENC0()) 2288 1.1 christos 2289 1.1 christos INSNE(rotl, m_ui_xui_ui, m, compound, 1616_m, C64X, 0, 2290 1.1 christos FIX1(FIX(op, 0x1d)), 2291 1.1 christos OP3(ORXREG1, ORREG1, OWREG2), 2292 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2293 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2294 1.1 christos INSNE(rotl, m_u5_xui_ui, m, compound, 1616_m, C64X, 0, 2295 1.1 christos FIX1(FIX(op, 0x1e)), 2296 1.1 christos OP3(ORXREG1, OACST, OWREG2), 2297 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2298 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2))) 2299 1.1 christos 2300 1.1 christos INSN(rpack2, s, ext_1_or_2_src_noncond, 1cycle, C64XP, 0, 2301 1.1 christos FIX2(FIX(op, 0xb), FIX(z, 1)), 2302 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2303 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2304 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2305 1.1 christos 2306 1.1 christos INSN(rsqrdp, s, 1_or_2_src, 2cycle_dp, C67X, TIC6X_FLAG_NO_CROSS, 2307 1.1 christos FIX2(FIX(op, 0x2e), FIX(x, 0)), 2308 1.1 christos OP2(ORREGD1, OWREGD12), 2309 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, regpair_msb, 0), ENC(src1, regpair_lsb, 0), 2310 1.1 christos ENC(dst, reg, 1))) 2311 1.1 christos 2312 1.1 christos INSN(rsqrsp, s, 1_or_2_src, 1cycle, C67X, 0, 2313 1.1 christos FIX2(FIX(op, 0x3e), FIX(src1, 0)), 2314 1.1 christos OP2(ORXREG1, OWREG1), 2315 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2316 1.1 christos ENC(dst, reg, 1))) 2317 1.1 christos 2318 1.1 christos INSNE(sadd, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, 2319 1.1 christos FIX1(FIX(op, 0x13)), 2320 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2321 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2322 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2323 1.1 christos INSNE(sadd, l_xsi_sl_sl, l, 1_or_2_src, 1cycle, C62X, 0, 2324 1.1 christos FIX1(FIX(op, 0x31)), 2325 1.1 christos OP3(ORXREG1, ORREGL1, OWREGL1), 2326 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2327 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2328 1.1 christos INSNE(sadd, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, 2329 1.1 christos FIX1(FIX(op, 0x12)), 2330 1.1 christos OP3(OACST, ORXREG1, OWREG1), 2331 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 2332 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2333 1.1 christos INSNE(sadd, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2334 1.1 christos FIX1(FIX(op, 0x30)), 2335 1.1 christos OP3(OACST, ORREGL1, OWREGL1), 2336 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 2337 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2338 1.1 christos INSNE(sadd, s_si_xsi_si, s, 1_or_2_src, 1cycle, C64X, 0, 2339 1.1 christos FIX1(FIX(op, 0x20)), 2340 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2341 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2342 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2343 1.1 christos 2344 1.1 christos /* 16 bits insn */ 2345 1.1 christos INSN(sadd, l, l3_sat_1, 1cycle, C64XP, 0, 2346 1.1 christos FIX1(FIX(op, 0)), 2347 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2348 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2349 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2350 1.1 christos 2351 1.1 christos INSN(sadd, s, s3_sat_1, 1cycle, C64XP,0, 2352 1.1 christos FIX1(FIX(op, 0x0)), 2353 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2354 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2355 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2356 1.1 christos /**/ 2357 1.1 christos 2358 1.1 christos INSN(sadd2, s, ext_1_or_2_src, 1cycle, C64X, 0, 2359 1.1 christos FIX1(FIX(op, 0x0)), 2360 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2361 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2362 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2363 1.1 christos 2364 1.1 christos INSN(saddsub, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, 2365 1.1 christos FIX1(FIX(op, 0x0e)), 2366 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1), 2367 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2368 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2369 1.1 christos 2370 1.1 christos INSN(saddsub2, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, 2371 1.1 christos FIX1(FIX(op, 0x0f)), 2372 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1), 2373 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2374 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2375 1.1 christos 2376 1.1 christos INSN(saddsu2, s, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO, 2377 1.1 christos FIX1(FIX(op, 0x1)), 2378 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 2379 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2380 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2381 1.1 christos 2382 1.1 christos INSN(saddus2, s, ext_1_or_2_src, 1cycle, C64X, 0, 2383 1.1 christos FIX1(FIX(op, 0x1)), 2384 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2385 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2386 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2387 1.1 christos 2388 1.1 christos INSN(saddu4, s, ext_1_or_2_src, 1cycle, C64X, 0, 2389 1.1 christos FIX1(FIX(op, 0x3)), 2390 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2391 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2392 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2393 1.1 christos 2394 1.1 christos INSN(sat, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2395 1.1 christos FIX3(FIX(op, 0x40), FIX(x, 0), FIX(src1, 0)), 2396 1.1 christos OP2(ORREGL1, OWREG1), 2397 1.1 christos ENC3(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(dst, reg, 1))) 2398 1.1 christos 2399 1.1 christos INSN(set, s, field, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2400 1.1 christos FIX1(FIX(op, 0x2)), 2401 1.1 christos OP4(ORREG1, OACST, OACST, OWREG1), 2402 1.1 christos ENC5(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(csta, ucst, 1), 2403 1.1 christos ENC(cstb, ucst, 2), ENC(dst, reg, 3))) 2404 1.1 christos INSN(set, s, 1_or_2_src, 1cycle, C62X, 0, 2405 1.1 christos FIX1(FIX(op, 0x3b)), 2406 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 2407 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2408 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2409 1.1 christos 2410 1.1 christos /* 16 bits insn */ 2411 1.1 christos INSN(set, s, sc5, 1cycle, C64XP, 0, 2412 1.1 christos FIX1(FIX(op, 1)), 2413 1.1 christos OP4(ORREG1, OACST, OACST, OWREG1), 2414 1.1 christos ENC5(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(cst, ucst, 1), 2415 1.1 christos ENC(cst, ucst, 2), ENC(srcdst, reg, 3))) 2416 1.1 christos /**/ 2417 1.1 christos 2418 1.1 christos INSN(shfl, m, unary, 1616_m, C64X, 0, 2419 1.1 christos FIX1(FIX(op, 0x1c)), 2420 1.1 christos OP2(ORXREG1, OWREG2), 2421 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2422 1.1 christos ENC(dst, reg, 1))) 2423 1.1 christos 2424 1.1 christos INSN(shfl3, l, 1_or_2_src_noncond, 1cycle, C64XP, 0, 2425 1.1 christos FIX1(FIX(op, 0x36)), 2426 1.1 christos OP3(ORREG1, ORXREG1, OWREGD1), 2427 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2428 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2429 1.1 christos 2430 1.1 christos INSNE(shl, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0, 2431 1.1 christos FIX1(FIX(op, 0x33)), 2432 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 2433 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2434 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2435 1.1 christos INSNE(shl, s_sl_ui_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2436 1.1 christos FIX2(FIX(op, 0x31), FIX(x, 0)), 2437 1.1 christos OP3(ORREGL1, ORREG1, OWREGL1), 2438 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 2439 1.1 christos ENC(dst, reg, 2))) 2440 1.1 christos INSNE(shl, s_xui_ui_ul, s, 1_or_2_src, 1cycle, C62X, 0, 2441 1.1 christos FIX1(FIX(op, 0x13)), 2442 1.1 christos OP3(ORXREG1, ORREG1, OWREGL1), 2443 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2444 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2445 1.1 christos INSNE(shl, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0, 2446 1.1 christos FIX1(FIX(op, 0x32)), 2447 1.1 christos OP3(ORXREG1, OACST, OWREG1), 2448 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2449 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2))) 2450 1.1 christos INSNE(shl, s_sl_u5_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2451 1.1 christos FIX2(FIX(op, 0x30), FIX(x, 0)), 2452 1.1 christos OP3(ORREGL1, OACST, OWREGL1), 2453 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 2454 1.1 christos ENC(dst, reg, 2))) 2455 1.1 christos INSNE(shl, s_xui_u5_ul, s, 1_or_2_src, 1cycle, C62X, 0, 2456 1.1 christos FIX1(FIX(op, 0x12)), 2457 1.1 christos OP3(ORXREG1, OACST, OWREGL1), 2458 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2459 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2))) 2460 1.1 christos 2461 1.1 christos /* 16bit insn */ 2462 1.1 christos INSN(shl, s, s3i, 1cycle, C64XP, 0, 2463 1.1 christos FIX1(FIX(op, 0x0)), 2464 1.1 christos OP3(ORXREG1, OACST, OWREG1), 2465 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2466 1.1 christos ENC(cst, cst_s3i, 1), ENC(dst, reg, 2))) 2467 1.1 christos INSN(shl, s, ssh5_sat_x, 1cycle, C64XP, 2468 1.1 christos TIC6X_FLAG_NO_CROSS, 2469 1.1 christos FIX1(FIX(op, 0x0)), 2470 1.1 christos OP3(ORREG1, OACST, OWREG1), 2471 1.1 christos ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), 2472 1.1 christos ENC(cst, ucst, 1), ENC(srcdst, reg, 2))) 2473 1.1 christos INSN(shl, s, s2sh, 1cycle, C64XP, 0, 2474 1.1 christos FIX1(FIX(op, 0x0)), 2475 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 2476 1.1 christos ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(src1, reg, 1), 2477 1.1 christos ENC(srcdst, reg, 2))) 2478 1.1 christos /**/ 2479 1.1 christos 2480 1.1 christos INSN(shlmb, l, 1_or_2_src, 1cycle, C64X, 0, 2481 1.1 christos FIX1(FIX(op, 0x61)), 2482 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2483 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2484 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2485 1.1 christos INSN(shlmb, s, ext_1_or_2_src, 1cycle, C64X, 0, 2486 1.1 christos FIX1(FIX(op, 0x9)), 2487 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2488 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2489 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2490 1.1 christos 2491 1.1 christos INSNE(shr, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0, 2492 1.1 christos FIX1(FIX(op, 0x37)), 2493 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 2494 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2495 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2496 1.1 christos INSNE(shr, s_sl_ui_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2497 1.1 christos FIX2(FIX(op, 0x35), FIX(x, 0)), 2498 1.1 christos OP3(ORREGL1, ORREG1, OWREGL1), 2499 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 2500 1.1 christos ENC(dst, reg, 2))) 2501 1.1 christos INSNE(shr, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0, 2502 1.1 christos FIX1(FIX(op, 0x36)), 2503 1.1 christos OP3(ORXREG1, OACST, OWREG1), 2504 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2505 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2))) 2506 1.1 christos INSNE(shr, s_sl_u5_sl, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2507 1.1 christos FIX2(FIX(op, 0x34), FIX(x, 0)), 2508 1.1 christos OP3(ORREGL1, OACST, OWREGL1), 2509 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 2510 1.1 christos ENC(dst, reg, 2))) 2511 1.1 christos 2512 1.1 christos /* 16bit insn */ 2513 1.1 christos INSN(shr, s, s3i, 1cycle, C64XP, 0, 2514 1.1 christos FIX1(FIX(op, 0x1)), 2515 1.1 christos OP3(ORXREG1, OACST, OWREG1), 2516 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2517 1.1 christos ENC(cst, cst_s3i, 1), ENC(dst, reg, 2))) 2518 1.1 christos INSN(shr, s, ssh5_sat_x, 1cycle, C64XP, 2519 1.1 christos TIC6X_FLAG_NO_CROSS, 2520 1.1 christos FIX1(FIX(op, 0x1)), 2521 1.1 christos OP3(ORREG1, OACST, OWREG1), 2522 1.1 christos ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), 2523 1.1 christos ENC(cst, ucst, 1), ENC(srcdst, reg, 2))) 2524 1.1 christos INSN(shr, s, s2sh, 1cycle, C64XP, 0, 2525 1.1 christos FIX1(FIX(op, 0x1)), 2526 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 2527 1.1 christos ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(src1, reg, 1), 2528 1.1 christos ENC(srcdst, reg, 2))) 2529 1.1 christos /**/ 2530 1.1 christos 2531 1.1 christos INSNE(shr2, s_xs2_ui_s2, s, ext_1_or_2_src, 1cycle, C64X, 0, 2532 1.1 christos FIX1(FIX(op, 0x7)), 2533 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 2534 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2535 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2536 1.1 christos INSNE(shr2, s_xs2_u5_s2, s, 1_or_2_src, 1cycle, C64X, 0, 2537 1.1 christos FIX1(FIX(op, 0x18)), 2538 1.1 christos OP3(ORXREG1, OACST, OWREG1), 2539 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2540 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2))) 2541 1.1 christos 2542 1.1 christos INSN(shrmb, l, 1_or_2_src, 1cycle, C64X, 0, 2543 1.1 christos FIX1(FIX(op, 0x62)), 2544 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2545 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2546 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2547 1.1 christos INSN(shrmb, s, ext_1_or_2_src, 1cycle, C64X, 0, 2548 1.1 christos FIX1(FIX(op, 0xa)), 2549 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2550 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2551 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2552 1.1 christos 2553 1.1 christos INSNE(shru, s_xui_ui_ui, s, 1_or_2_src, 1cycle, C62X, 0, 2554 1.1 christos FIX1(FIX(op, 0x27)), 2555 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 2556 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2557 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2558 1.1 christos INSNE(shru, s_ul_ui_ul, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2559 1.1 christos FIX2(FIX(op, 0x25), FIX(x, 0)), 2560 1.1 christos OP3(ORREGL1, ORREG1, OWREGL1), 2561 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 2562 1.1 christos ENC(dst, reg, 2))) 2563 1.1 christos INSNE(shru, s_xui_u5_ui, s, 1_or_2_src, 1cycle, C62X, 0, 2564 1.1 christos FIX1(FIX(op, 0x26)), 2565 1.1 christos OP3(ORXREG1, OACST, OWREG1), 2566 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2567 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2))) 2568 1.1 christos INSNE(shru, s_ul_u5_ul, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2569 1.1 christos FIX2(FIX(op, 0x24), FIX(x, 0)), 2570 1.1 christos OP3(ORREGL1, OACST, OWREGL1), 2571 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 2572 1.1 christos ENC(dst, reg, 2))) 2573 1.1 christos 2574 1.1 christos /* 16 bits insn */ 2575 1.1 christos INSN(shru, s, ssh5_sat_0, 1cycle, C64XP, 2576 1.1 christos TIC6X_FLAG_NO_CROSS, 2577 1.1 christos FIX1(FIX(op, 0x2)), 2578 1.1 christos OP3(ORREG1, OACST, OWREG1), 2579 1.1 christos ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), 2580 1.1 christos ENC(cst, ucst, 1), ENC(srcdst, reg, 2))) 2581 1.1 christos INSN(shru, s, s2sh, 1cycle, C64XP, 0, 2582 1.1 christos FIX1(FIX(op, 0x2)), 2583 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 2584 1.1 christos ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(src1, reg, 1), 2585 1.1 christos ENC(srcdst, reg, 2))) 2586 1.1 christos /**/ 2587 1.1 christos 2588 1.1 christos INSNE(shru2, s_xu2_ui_u2, s, ext_1_or_2_src, 1cycle, C64X, 0, 2589 1.1 christos FIX1(FIX(op, 0x8)), 2590 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 2591 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2592 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2593 1.1 christos INSNE(shru2, s_xu2_u5_u2, s, 1_or_2_src, 1cycle, C64X, 0, 2594 1.1 christos FIX1(FIX(op, 0x19)), 2595 1.1 christos OP3(ORXREG1, OACST, OWREG1), 2596 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2597 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2))) 2598 1.1 christos 2599 1.1 christos INSN(sl, d, 1_or_2_src, store, C64XP, 2600 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_SIDE_T2_ONLY|TIC6X_FLAG_NO_CROSS, 2601 1.1 christos FIX3(FIX(s, 1), FIX(op, 0xd), FIX(src1, 0)), 2602 1.1 christos OP2(ORDREG1, OWMEMDW), 2603 1.1 christos ENC2(ENC(dst, reg, 0), ENC(src2, reg, 1))) 2604 1.1 christos 2605 1.1 christos INSN(smpy, m, mpy, 1616_m, C62X, 0, 2606 1.1 christos FIX1(FIX(op, 0x1a)), 2607 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 2608 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2609 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2610 1.1 christos 2611 1.1 christos /* 16 bits insn */ 2612 1.1 christos INSN(smpy, m, m3_sat_1, 1616_m, C67X, 0, 2613 1.1 christos FIX1(FIX(op, 0x0)), 2614 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 2615 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2616 1.1 christos ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) 2617 1.1 christos /**/ 2618 1.1 christos 2619 1.1 christos INSN(smpyh, m, mpy, 1616_m, C62X, 0, 2620 1.1 christos FIX1(FIX(op, 0x02)), 2621 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 2622 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2623 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2624 1.1 christos 2625 1.1 christos /* 16 bits insn */ 2626 1.1 christos INSN(smpyh, m, m3_sat_1, 1616_m, C67X, 0, 2627 1.1 christos FIX1(FIX(op, 0x1)), 2628 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 2629 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2630 1.1 christos ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) 2631 1.1 christos /**/ 2632 1.1 christos 2633 1.1 christos INSN(smpyhl, m, mpy, 1616_m, C62X, 0, 2634 1.1 christos FIX1(FIX(op, 0x0a)), 2635 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 2636 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2637 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2638 1.1 christos 2639 1.1 christos /* 16 bits insn */ 2640 1.1 christos INSN(smpyhl, m, m3_sat_1, 1616_m, C67X, 0, 2641 1.1 christos FIX1(FIX(op, 0x3)), 2642 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 2643 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2644 1.1 christos ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) 2645 1.1 christos /**/ 2646 1.1 christos 2647 1.1 christos INSN(smpylh, m, mpy, 1616_m, C62X, 0, 2648 1.1 christos FIX1(FIX(op, 0x12)), 2649 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 2650 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2651 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2652 1.1 christos 2653 1.1 christos /* 16 bits insn */ 2654 1.1 christos INSN(smpylh, m, m3_sat_1, 1616_m, C67X, 0, 2655 1.1 christos FIX1(FIX(op, 0x2)), 2656 1.1 christos OP3(ORREG1, ORXREG1, OWREG2), 2657 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2658 1.1 christos ENC(src2, reg, 1), ENC(dst, reg_shift, 2))) 2659 1.1 christos /**/ 2660 1.1 christos 2661 1.1 christos INSN(smpy2, m, compound, 4cycle, C64X, 0, 2662 1.1 christos FIX1(FIX(op, 0x01)), 2663 1.1 christos OP3(ORREG1, ORXREG1, OWREGD4), 2664 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2665 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2666 1.1 christos 2667 1.1 christos /* Contrary to SPRUFE8, this is the correct operand order for this 2668 1.1 christos instruction. */ 2669 1.1 christos INSN(smpy32, m, 1_or_2_src, 4cycle, C64XP, 0, 2670 1.1 christos FIX1(FIX(op, 0x19)), 2671 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 2672 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2673 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2674 1.1 christos 2675 1.1 christos INSN(spack2, s, ext_1_or_2_src, 1cycle, C64X, 0, 2676 1.1 christos FIX1(FIX(op, 0x2)), 2677 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2678 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2679 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2680 1.1 christos 2681 1.1 christos INSN(spacku4, s, ext_1_or_2_src, 1cycle, C64X, 0, 2682 1.1 christos FIX1(FIX(op, 0x4)), 2683 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2684 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2685 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2686 1.1 christos 2687 1.1 christos INSN(spdp, s, 1_or_2_src, 2cycle_dp, C67X, 0, 2688 1.1 christos FIX2(FIX(op, 0x02), FIX(src1, 0)), 2689 1.1 christos OP2(ORXREG1, OWREGD12), 2690 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2691 1.1 christos ENC(dst, reg, 1))) 2692 1.1 christos 2693 1.1 christos INSN(spint, l, 1_or_2_src, 4cycle, C67X, 0, 2694 1.1 christos FIX2(FIX(op, 0x0a), FIX(src1, 0)), 2695 1.1 christos OP2(ORXREG1, OWREG4), 2696 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2697 1.1 christos ENC(dst, reg, 1))) 2698 1.1 christos 2699 1.1 christos INSNE(spkernel, nfu_2, nfu, spkernel, 1cycle, C64XP, 2700 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL, 2701 1.1 christos FIX1(FIX(s, 0)), 2702 1.1 christos OP2(OACST, OACST), 2703 1.1 christos ENC2(ENC(fstgfcyc, fstg, 0), ENC(fstgfcyc, fcyc, 1))) 2704 1.1 christos INSNE(spkernel, nfu_0, nfu, spkernel, 1cycle, C64XP, 2705 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL|TIC6X_FLAG_MACRO, 2706 1.1 christos FIX2(FIX(s, 0), FIX(fstgfcyc, 0)), 2707 1.1 christos OP0(), 2708 1.1 christos ENC0()) 2709 1.1 christos 2710 1.1 christos /* 16 bits insn */ 2711 1.1 christos INSN(spkernel, nfu, uspk, 1cycle, C64XP, 2712 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL, 2713 1.1 christos FIX0(), 2714 1.1 christos OP2(OACST, OACST), 2715 1.1 christos ENC2(ENC(fstgfcyc, fstg, 0), ENC(fstgfcyc, fcyc, 1))) 2716 1.1 christos /**/ 2717 1.1 christos 2718 1.1 christos INSN(spkernelr, nfu, spkernelr, 1cycle, C64XP, 2719 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPKERNEL, 2720 1.1 christos FIX1(FIX(s, 0)), 2721 1.1 christos OP0(), 2722 1.1 christos ENC0()) 2723 1.1 christos 2724 1.1 christos INSN(sploop, nfu, loop_buffer, 1cycle, C64XP, 2725 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP, 2726 1.1 christos FIX4(FIX(s, 0), FIX(op, 0xc), FIX(csta, 0), RAN(cstb, 0, 13)), 2727 1.1 christos OP1(OACST), 2728 1.1 christos ENC1(ENC(cstb, ucst_minus_one, 0))) 2729 1.1 christos 2730 1.1 christos INSN(sploopd, nfu, loop_buffer, 1cycle, C64XP, 2731 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP, 2732 1.1 christos FIX4(FIX(s, 0), FIX(op, 0xd), FIX(csta, 0), RAN(cstb, 0, 13)), 2733 1.1 christos OP1(OACST), 2734 1.1 christos ENC1(ENC(cstb, ucst_minus_one, 0))) 2735 1.1 christos 2736 1.1 christos INSN(sploopw, nfu, loop_buffer, 1cycle, C64XP, 2737 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP, 2738 1.1 christos FIX4(FIX(s, 0), FIX(op, 0xf), FIX(csta, 0), RAN(cstb, 0, 13)), 2739 1.1 christos OP1(OACST), 2740 1.1 christos ENC1(ENC(cstb, ucst_minus_one, 0))) 2741 1.1 christos 2742 1.1 christos /* 16 bits insn */ 2743 1.1 christos INSN(sploop, nfu, uspl, 1cycle, C64XP, 2744 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP, 2745 1.1 christos FIX1(FIX(op, 0)), 2746 1.1 christos OP1(OACST), 2747 1.1 christos ENC1(ENC(ii, ucst_minus_one, 0))) 2748 1.1 christos 2749 1.1 christos INSN(sploopd, nfu, uspl, 1cycle, C64XP, 2750 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP, 2751 1.1 christos FIX1(FIX(op, 1)), 2752 1.1 christos OP1(OACST), 2753 1.1 christos ENC1(ENC(ii, ucst_minus_one, 0))) 2754 1.1 christos 2755 1.1 christos INSN(sploopd, nfu, uspldr, 1cycle, C64XP, 2756 1.1 christos TIC6X_FLAG_FIRST|TIC6X_FLAG_NO_MCNOP|TIC6X_FLAG_SPLOOP|TIC6X_FLAG_INSN16_SPRED, 2757 1.1 christos FIX0(), 2758 1.1 christos OP1(OACST), 2759 1.1 christos ENC1(ENC(ii, ucst_minus_one, 0))) 2760 1.1 christos /**/ 2761 1.1 christos 2762 1.1 christos 2763 1.1 christos /* Contrary to SPRUFE8, this is the correct encoding for this 2764 1.1 christos instruction. */ 2765 1.1 christos INSN(spmask, nfu, spmask, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK, 2766 1.1 christos FIX2(FIX(s, 0), FIX(op, 0x8)), 2767 1.1 christos OP1(OFULIST), 2768 1.1 christos ENC1(ENC(mask, spmask, 0))) 2769 1.1 christos 2770 1.1 christos /* 16 bits insn */ 2771 1.1 christos INSN(spmask, nfu, uspma, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK, 2772 1.1 christos FIX0(), 2773 1.1 christos OP1(OFULIST), 2774 1.1 christos ENC1(ENC(mask, spmask, 0))) 2775 1.1 christos /**/ 2776 1.1 christos 2777 1.1 christos INSN(spmaskr, nfu, spmask, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK, 2778 1.1 christos FIX2(FIX(s, 0), FIX(op, 0x9)), 2779 1.1 christos OP1(OFULIST), 2780 1.1 christos ENC1(ENC(mask, spmask, 0))) 2781 1.1 christos 2782 1.1 christos /* 16 bits insn */ 2783 1.1 christos INSN(spmaskr, nfu, uspmb, 1cycle, C64XP, TIC6X_FLAG_FIRST|TIC6X_FLAG_SPMASK, 2784 1.1 christos FIX0(), 2785 1.1 christos OP1(OFULIST), 2786 1.1 christos ENC1(ENC(mask, spmask, 0))) 2787 1.1 christos /**/ 2788 1.1 christos 2789 1.1 christos INSN(sptrunc, l, 1_or_2_src, 4cycle, C67X, 0, 2790 1.1 christos FIX2(FIX(op, 0x0b), FIX(src1, 0)), 2791 1.1 christos OP2(ORXREG1, OWREG4), 2792 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2793 1.1 christos ENC(dst, reg, 1))) 2794 1.1 christos 2795 1.1 christos INSNE(sshl, s_xsi_ui_si, s, 1_or_2_src, 1cycle, C62X, 0, 2796 1.1 christos FIX1(FIX(op, 0x23)), 2797 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 2798 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2799 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2800 1.1 christos INSNE(sshl, s_xsi_u5_si, s, 1_or_2_src, 1cycle, C62X, 0, 2801 1.1 christos FIX1(FIX(op, 0x22)), 2802 1.1 christos OP3(ORXREG1, OACST, OWREG1), 2803 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2804 1.1 christos ENC(src1, ucst, 1), ENC(dst, reg, 2))) 2805 1.1 christos 2806 1.1 christos /* 16 bits insn */ 2807 1.1 christos INSN(sshl, s, ssh5_sat_1, 1cycle, C64XP, 2808 1.1 christos TIC6X_FLAG_NO_CROSS, 2809 1.1 christos FIX1(FIX(op, 0x2)), 2810 1.1 christos OP3(ORREG1, OACST, OWREG1), 2811 1.1 christos ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), 2812 1.1 christos ENC(cst, ucst, 1), ENC(srcdst, reg, 2))) 2813 1.1 christos INSN(sshl, s, s2sh, 1cycle, C64XP, 0, 2814 1.1 christos FIX1(FIX(op, 0x3)), 2815 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 2816 1.1 christos ENC4(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(src1, reg, 1), 2817 1.1 christos ENC(srcdst, reg, 2))) 2818 1.1 christos /**/ 2819 1.1 christos 2820 1.1 christos INSN(sshvl, m, compound, 1616_m, C64X, 0, 2821 1.1 christos FIX1(FIX(op, 0x1c)), 2822 1.1 christos OP3(ORXREG1, ORREG1, OWREG2), 2823 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2824 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2825 1.1 christos 2826 1.1 christos /* Contrary to SPRUFE8, this is the correct encoding for this 2827 1.1 christos instruction. */ 2828 1.1 christos INSN(sshvr, m, compound, 1616_m, C64X, 0, 2829 1.1 christos FIX1(FIX(op, 0x1a)), 2830 1.1 christos OP3(ORXREG1, ORREG1, OWREG2), 2831 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 2832 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 2833 1.1 christos 2834 1.1 christos INSNE(ssub, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), 2835 1.1 christos FIX1(FIX(op, 0x0f)), 2836 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2837 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2838 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2839 1.1 christos INSNE(ssub, l_xsi_si_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0), 2840 1.1 christos FIX1(FIX(op, 0x1f)), 2841 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 2842 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2843 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2844 1.1 christos INSNE(ssub, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, 2845 1.1 christos FIX1(FIX(op, 0x0e)), 2846 1.1 christos OP3(OACST, ORXREG1, OWREG1), 2847 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 2848 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2849 1.1 christos INSNE(ssub, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 2850 1.1 christos FIX1(FIX(op, 0x2c)), 2851 1.1 christos OP3(OACST, ORREGL1, OWREGL1), 2852 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 2853 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2854 1.1 christos 2855 1.1 christos /* 16 bits insn */ 2856 1.1 christos INSN(ssub, l, l3_sat_1, 1cycle, C64XP, 0, 2857 1.1 christos FIX1(FIX(op, 1)), 2858 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2859 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2860 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2861 1.1 christos /**/ 2862 1.1 christos 2863 1.1 christos INSN(ssub2, l, 1_or_2_src, 1cycle, C64XP, 0, 2864 1.1 christos FIX1(FIX(op, 0x64)), 2865 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 2866 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 2867 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 2868 1.1 christos 2869 1.1 christos INSN(stb, d, load_store, store, C62X, 2870 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 2871 1.1 christos FIX2(FIX(op, 3), FIX(r, 0)), 2872 1.1 christos OP2(ORDREG1, OWMEMSB), 2873 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), 2874 1.1 christos ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1), 2875 1.1 christos ENC(srcdst, reg, 0))) 2876 1.1 christos INSN(stb, d, load_store_long, store, C62X, 2877 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), 2878 1.1 christos FIX1(FIX(op, 3)), 2879 1.1 christos OP2(ORDREG1, OWMEMLB), 2880 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_byte, 1), 2881 1.1 christos ENC(dst, reg, 0))) 2882 1.1 christos 2883 1.1 christos /* 16 bits insn */ 2884 1.1 christos INSN(stb, d, doff4_dsz_000, store, C64XP, 2885 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 2886 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 2887 1.1 christos OP2(ORTREG1, OWMEMSB), 2888 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 2889 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) 2890 1.1 christos INSN(stb, d, doff4_dsz_x01, store, C64XP, 2891 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 2892 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 2893 1.1 christos OP2(ORTREG1, OWMEMSB), 2894 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 2895 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) 2896 1.1 christos INSN(stb, d, dind_dsz_000, store, C64XP, 2897 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 2898 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 2899 1.1 christos OP2(ORTREG1, OWMEMSB), 2900 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset, 1), 2901 1.1 christos ENC(ptr, reg_ptr, 1), ENC(srcdst, reg, 0))) 2902 1.1 christos INSN(stb, d, dind_dsz_x01, store, C64XP, 2903 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 2904 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 2905 1.1 christos OP2(ORTREG1, OWMEMSB), 2906 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset, 1), 2907 1.1 christos ENC(ptr, reg_ptr, 1), ENC(srcdst, reg, 0))) 2908 1.1 christos INSN(stb, d, dinc_dsz_000, store, C64XP, 2909 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 2910 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 2911 1.1 christos OP2(ORTREG1, OWMEMSB), 2912 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 2913 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 2914 1.1 christos INSN(stb, d, dinc_dsz_x01, store, C64XP, 2915 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 2916 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 2917 1.1 christos OP2(ORTREG1, OWMEMSB), 2918 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 2919 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 2920 1.1 christos INSN(stb, d, ddec_dsz_000, store, C64XP, 2921 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 2922 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 2923 1.1 christos OP2(ORTREG1, OWMEMSB), 2924 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 2925 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 2926 1.1 christos INSN(stb, d, ddec_dsz_x01, store, C64XP, 2927 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 2928 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 2929 1.1 christos OP2(ORTREG1, OWMEMSB), 2930 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 2931 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 2932 1.1 christos /**/ 2933 1.1 christos 2934 1.1 christos INSN(stdw, d, load_store, store, C64X, TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS, 2935 1.1 christos FIX2(FIX(op, 4), FIX(r, 1)), 2936 1.1 christos OP2(ORDREGD1, OWMEMSD), 2937 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), 2938 1.1 christos ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1), 2939 1.1 christos ENC(srcdst, reg, 0))) 2940 1.1 christos 2941 1.1 christos /* 16 bits insn */ 2942 1.1 christos INSN(stdw, d, dpp, store, C64XP, 2943 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTDECR)|TIC6X_FLAG_INSN16_B15PTR|TIC6X_FLAG_INSN16_NORS, 2944 1.1 christos FIX3(FIX(op, 0), FIX(dw, 1), FIX(s, 1)), 2945 1.1 christos OP2(ORTREGD1, OWMEMSD), 2946 1.1 christos ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 2947 1.1 christos ENC(cst, mem_offset_minus_one, 1))) 2948 1.1 christos INSN(stdw, d, ddecdw, store, C64XP, 2949 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 2950 1.1 christos FIX3(FIX(op, 0), FIX(na, 0), FIX(sz, 0)), 2951 1.1 christos OP2(ORTREGD1, OWMEMSD), 2952 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 0), 2953 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 2954 1.1 christos INSN(stdw, d, dincdw, store, C64XP, 2955 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 2956 1.1 christos FIX3(FIX(op, 0), FIX(na, 0), FIX(sz, 0)), 2957 1.1 christos OP2(ORTREGD1, OWMEMSD), 2958 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 0), 2959 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 2960 1.1 christos INSN(stdw, d, dinddw, store, C64XP, 2961 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 2962 1.1 christos FIX3(FIX(op, 0), FIX(na, 0), FIX(sz, 0)), 2963 1.1 christos OP2(ORTREGD1, OWMEMSD), 2964 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset, 1), 2965 1.1 christos ENC(ptr, reg_ptr, 1), ENC(srcdst, reg_shift, 0))) 2966 1.1 christos INSN(stdw, d, doff4dw, store, C64XP, 2967 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 2968 1.1 christos FIX3(FIX(op, 0), FIX(na, 0), FIX(sz, 0)), 2969 1.1 christos OP2(ORTREGD1, OWMEMSD), 2970 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset, 1), 2971 1.1 christos ENC(ptr, reg_ptr, 1), ENC(srcdst, reg_shift, 0))) 2972 1.1 christos /**/ 2973 1.1 christos 2974 1.1 christos INSN(sth, d, load_store, store, C62X, 2975 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 2976 1.1 christos FIX2(FIX(op, 5), FIX(r, 0)), 2977 1.1 christos OP2(ORDREG1, OWMEMSH), 2978 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), 2979 1.1 christos ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1), 2980 1.1 christos ENC(srcdst, reg, 0))) 2981 1.1 christos INSN(sth, d, load_store_long, store, C62X, 2982 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), 2983 1.1 christos FIX1(FIX(op, 5)), 2984 1.1 christos OP2(ORDREG1, OWMEMLH), 2985 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_half, 1), 2986 1.1 christos ENC(dst, reg, 0))) 2987 1.1 christos 2988 1.1 christos /* 16 bits insn */ 2989 1.1 christos INSN(sth, d, doff4_dsz_01x, store, C64XP, 2990 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 2991 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 2992 1.1 christos OP2(ORTREG1, OWMEMSH), 2993 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 2994 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) 2995 1.1 christos INSN(sth, d, doff4_dsz_111, store, C64XP, 2996 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 2997 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 2998 1.1 christos OP2(ORTREG1, OWMEMSH), 2999 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3000 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) 3001 1.1 christos INSN(sth, d, dind_dsz_01x, store, C64XP, 3002 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 3003 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3004 1.1 christos OP2(ORTREG1, OWMEMSH), 3005 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3006 1.1 christos ENC(ptr, reg_ptr, 1), ENC(src1, mem_offset, 1))) 3007 1.1 christos INSN(sth, d, dind_dsz_111, store, C64XP, 3008 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 3009 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3010 1.1 christos OP2(ORTREG1, OWMEMSH), 3011 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3012 1.1 christos ENC(ptr, reg_ptr, 1), ENC(src1, mem_offset, 1))) 3013 1.1 christos INSN(sth, d, dinc_dsz_01x, store, C64XP, 3014 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 3015 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3016 1.1 christos OP2(ORTREG1, OWMEMSH), 3017 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3018 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 3019 1.1 christos INSN(sth, d, dinc_dsz_111, store, C64XP, 3020 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 3021 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3022 1.1 christos OP2(ORTREG1, OWMEMSH), 3023 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3024 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 3025 1.1 christos INSN(sth, d, ddec_dsz_01x, store, C64XP, 3026 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 3027 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3028 1.1 christos OP2(ORTREG1, OWMEMSH), 3029 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3030 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 3031 1.1 christos INSN(sth, d, ddec_dsz_111, store, C64XP, 3032 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 3033 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3034 1.1 christos OP2(ORTREG1, OWMEMSH), 3035 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3036 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 3037 1.1 christos /**/ 3038 1.1 christos 3039 1.1 christos INSN(stndw, d, store_nonaligned, store, C64X, 3040 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED, 3041 1.1 christos FIX0(), 3042 1.1 christos OP2(ORDREGD1, OWMEMND), 3043 1.1 christos ENC7(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), 3044 1.1 christos ENC(offsetR, mem_offset_noscale, 1), ENC(baseR, reg, 1), 3045 1.1 christos ENC(sc, scaled, 1), ENC(src, reg_shift, 0))) 3046 1.1 christos 3047 1.1 christos /* 16 bits insn */ 3048 1.1 christos INSN(stndw, d, ddecdw, store, C64XP, 3049 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 3050 1.1 christos FIX3(FIX(op, 0), FIX(na, 1), FIX(sz, 0)), 3051 1.1 christos OP2(ORTREGD1, OWMEMND), 3052 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 0), 3053 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one_noscale, 1))) 3054 1.1 christos INSN(stndw, d, dincdw, store, C64XP, 3055 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 3056 1.1 christos FIX3(FIX(op, 0), FIX(na, 1), FIX(sz, 0)), 3057 1.1 christos OP2(ORTREGD1, OWMEMND), 3058 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg_shift, 0), 3059 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one_noscale, 1))) 3060 1.1 christos INSN(stndw, d, dinddw, store, C64XP, 3061 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 3062 1.1 christos FIX3(FIX(op, 0), FIX(na, 1), FIX(sz, 0)), 3063 1.1 christos OP2(ORTREGD1, OWMEMND), 3064 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(src1, mem_offset_noscale, 1), 3065 1.1 christos ENC(ptr, reg_ptr, 1), ENC(srcdst, reg_shift, 0))) 3066 1.1 christos INSN(stndw, d, doff4dw, store, C64XP, 3067 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 3068 1.1 christos FIX3(FIX(op, 0), FIX(na, 1), FIX(sz, 0)), 3069 1.1 christos OP2(ORTREGD1, OWMEMND), 3070 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(cst, mem_offset_noscale, 1), 3071 1.1 christos ENC(ptr, reg_ptr, 1), ENC(srcdst, reg_shift, 0))) 3072 1.1 christos /**/ 3073 1.1 christos 3074 1.1 christos INSN(stnw, d, load_store, store, C64X, 3075 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_UNALIGNED, 3076 1.1 christos FIX2(FIX(op, 5), FIX(r, 1)), 3077 1.1 christos OP2(ORDREG1, OWMEMSW), 3078 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), 3079 1.1 christos ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1), 3080 1.1 christos ENC(srcdst, reg, 0))) 3081 1.1 christos 3082 1.1 christos /* 16 bits insn */ 3083 1.1 christos INSN(stnw, d, doff4_dsz_110, store, C64XP, 3084 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 3085 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3086 1.1 christos OP2(ORTREG1, OWMEMSW), 3087 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3088 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) 3089 1.1 christos INSN(stnw, d, dind_dsz_110, store, C64XP, 3090 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 3091 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3092 1.1 christos OP2(ORTREG1, OWMEMSW), 3093 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3094 1.1 christos ENC(ptr, reg_ptr, 1), ENC(src1, mem_offset, 1))) 3095 1.1 christos INSN(stnw, d, dinc_dsz_110, store, C64XP, 3096 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 3097 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3098 1.1 christos OP2(ORTREG1, OWMEMSW), 3099 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3100 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 3101 1.1 christos INSN(stnw, d, ddec_dsz_110, store, C64XP, 3102 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 3103 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3104 1.1 christos OP2(ORTREG1, OWMEMSW), 3105 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3106 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 3107 1.1 christos /**/ 3108 1.1 christos 3109 1.1 christos INSN(stw, d, load_store, store, C62X, 3110 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 3111 1.1 christos FIX2(FIX(op, 7), FIX(r, 0)), 3112 1.1 christos OP2(ORDREG1, OWMEMSW), 3113 1.1 christos ENC6(ENC(s, data_fu, 0), ENC(y, fu, 0), ENC(mode, mem_mode, 1), 3114 1.1 christos ENC(offsetR, mem_offset, 1), ENC(baseR, reg, 1), 3115 1.1 christos ENC(srcdst, reg, 0))) 3116 1.1 christos INSN(stw, d, load_store_long, store, C62X, 3117 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_SIDE_B_ONLY|TIC6X_FLAG_PREFER(0), 3118 1.1 christos FIX1(FIX(op, 7)), 3119 1.1 christos OP2(ORDREG1, OWMEMLW), 3120 1.1 christos ENC4(ENC(s, data_fu, 0), ENC(y, areg, 1), ENC(offsetR, ulcst_dpr_word, 1), 3121 1.1 christos ENC(dst, reg, 0))) 3122 1.1 christos 3123 1.1 christos /* 16 bits insn */ 3124 1.1 christos INSN(stw, d, doff4_dsz_0xx, store, C64XP, 3125 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 3126 1.1 christos FIX2(FIX(op, 0), FIX(sz, 0)), 3127 1.1 christos OP2(ORTREG1, OWMEMSW), 3128 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3129 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) 3130 1.1 christos INSN(stw, d, doff4_dsz_100, store, C64XP, 3131 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE), 3132 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3133 1.1 christos OP2(ORTREG1, OWMEMSW), 3134 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3135 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset, 1))) 3136 1.1 christos INSN(stw, d, dind_dsz_0xx, store, C64XP, 3137 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 3138 1.1 christos FIX2(FIX(op, 0), FIX(sz, 0)), 3139 1.1 christos OP2(ORTREG1, OWMEMSW), 3140 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3141 1.1 christos ENC(ptr, reg_ptr, 1), ENC(src1, mem_offset, 1))) 3142 1.1 christos INSN(stw, d, dind_dsz_100, store, C64XP, 3143 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(REG_POSITIVE), 3144 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3145 1.1 christos OP2(ORTREG1, OWMEMSW), 3146 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3147 1.1 christos ENC(ptr, reg_ptr, 1), ENC(src1, mem_offset, 1))) 3148 1.1 christos INSN(stw, d, dinc_dsz_0xx, store, C64XP, 3149 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 3150 1.1 christos FIX2(FIX(op, 0), FIX(sz, 0)), 3151 1.1 christos OP2(ORTREG1, OWMEMSW), 3152 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3153 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 3154 1.1 christos INSN(stw, d, dinc_dsz_100, store, C64XP, 3155 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTINCR), 3156 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3157 1.1 christos OP2(ORTREG1, OWMEMSW), 3158 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3159 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 3160 1.1 christos INSN(stw, d, ddec_dsz_0xx, store, C64XP, 3161 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 3162 1.1 christos FIX2(FIX(op, 0), FIX(sz, 0)), 3163 1.1 christos OP2(ORTREG1, OWMEMSW), 3164 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3165 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 3166 1.1 christos INSN(stw, d, ddec_dsz_100, store, C64XP, 3167 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(PREDECR), 3168 1.1 christos FIX2(FIX(op, 0), FIX(sz, 1)), 3169 1.1 christos OP2(ORTREG1, OWMEMSW), 3170 1.1 christos ENC5(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3171 1.1 christos ENC(ptr, reg_ptr, 1), ENC(cst, mem_offset_minus_one, 1))) 3172 1.1 christos INSN(stw, d, dpp, store, C64XP, 3173 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSTDECR)|TIC6X_FLAG_INSN16_B15PTR|TIC6X_FLAG_INSN16_NORS, 3174 1.1 christos FIX2(FIX(op, 0), FIX(dw, 0)), 3175 1.1 christos OP2(ORTREG1, OWMEMSW), 3176 1.1 christos ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3177 1.1 christos ENC(cst, mem_offset_minus_one, 1))) 3178 1.1 christos INSN(stw, d, dstk, store, C64XP, 3179 1.1 christos TIC6X_FLAG_STORE|TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_INSN16_MEM_MODE(POSITIVE)|TIC6X_FLAG_INSN16_B15PTR, 3180 1.1 christos FIX2(FIX(op, 0x0), FIX(s, 1)), 3181 1.1 christos OP2(ORTREG1, OWMEMSW), 3182 1.1 christos ENC4(ENC(s, fu, 0), ENC(t, rside, 0), ENC(srcdst, reg, 0), 3183 1.1 christos ENC(cst, mem_offset, 1))) 3184 1.1 christos /**/ 3185 1.1 christos 3186 1.1 christos INSNE(sub, l_si_xsi_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), 3187 1.1 christos FIX1(FIX(op, 0x07)), 3188 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3189 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3190 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3191 1.1 christos INSNE(sub, l_xsi_si_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0), 3192 1.1 christos FIX1(FIX(op, 0x17)), 3193 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 3194 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3195 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3196 1.1 christos INSNE(sub, l_si_xsi_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), 3197 1.1 christos FIX1(FIX(op, 0x27)), 3198 1.1 christos OP3(ORREG1, ORXREG1, OWREGL1), 3199 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3200 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3201 1.1 christos INSNE(sub, l_xsi_si_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0), 3202 1.1 christos FIX1(FIX(op, 0x37)), 3203 1.1 christos OP3(ORXREG1, ORREG1, OWREGL1), 3204 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3205 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3206 1.1 christos INSNE(sub, l_s5_xsi_si, l, 1_or_2_src, 1cycle, C62X, 0, 3207 1.1 christos FIX1(FIX(op, 0x06)), 3208 1.1 christos OP3(OACST, ORXREG1, OWREG1), 3209 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 3210 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3211 1.1 christos INSNE(sub, l_s5_sl_sl, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 3212 1.1 christos FIX1(FIX(op, 0x24)), 3213 1.1 christos OP3(OACST, ORREGL1, OWREGL1), 3214 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 3215 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3216 1.1 christos INSNE(sub, l_xsi_s5_si, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 3217 1.1 christos FIX1(FIX(op, 0x2)), 3218 1.1 christos OP3(ORXREG1, OACST, OWREG1), 3219 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst_negate, 1), 3220 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2))) 3221 1.1 christos INSNE(sub, l_sl_s5_sl, l, 1_or_2_src, 1cycle, C62X, 3222 1.1 christos TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS, 3223 1.1 christos FIX2(FIX(op, 0x20), FIX(x, 0)), 3224 1.1 christos OP3(ORREGL1, OACST, OWREGL1), 3225 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, scst_negate, 1), ENC(src2, reg, 0), 3226 1.1 christos ENC(dst, reg, 2))) 3227 1.1 christos INSNE(sub, s_si_xsi_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), 3228 1.1 christos FIX1(FIX(op, 0x17)), 3229 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3230 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3231 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3232 1.1 christos INSNE(sub, s_s5_xsi_si, s, 1_or_2_src, 1cycle, C62X, 0, 3233 1.1 christos FIX1(FIX(op, 0x16)), 3234 1.1 christos OP3(OACST, ORXREG1, OWREG1), 3235 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 3236 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3237 1.1 christos /* Contrary to SPRUFE8, this is the correct encoding for this 3238 1.1 christos instruction; this instruction can be predicated. */ 3239 1.1 christos INSNE(sub, s_xsi_si_si, s, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0), 3240 1.1 christos FIX1(FIX(op, 0x5)), 3241 1.1 christos OP3(ORXREG1, ORREG1, OWREG1), 3242 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 3243 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 3244 1.1 christos INSNE(sub, s_xsi_s5_si, s, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_MACRO, 3245 1.1 christos FIX1(FIX(op, 0x6)), 3246 1.1 christos OP3(ORXREG1, OACST, OWREG1), 3247 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst_negate, 1), 3248 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 2))) 3249 1.1 christos INSNE(sub, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, 3250 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_PREFER(1), 3251 1.1 christos FIX1(FIX(op, 0x11)), 3252 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 3253 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 3254 1.1 christos ENC(dst, reg, 2))) 3255 1.1 christos INSNE(sub, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 3256 1.1 christos FIX1(FIX(op, 0x13)), 3257 1.1 christos OP3(ORREG1, OACST, OWREG1), 3258 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 3259 1.1 christos ENC(dst, reg, 2))) 3260 1.1 christos INSNE(sub, d_si_xsi_si, d, ext_1_or_2_src, 1cycle, C64X, TIC6X_FLAG_PREFER(0), 3261 1.1 christos FIX1(FIX(op, 0xc)), 3262 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3263 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3264 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3265 1.1 christos 3266 1.1 christos /* 16 bits insn */ 3267 1.1 christos INSN(sub, l, l3_sat_0, 1cycle, C64XP, 0, 3268 1.1 christos FIX1(FIX(op, 0x1)), 3269 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3270 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3271 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3272 1.1 christos INSN(sub, l, lx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 3273 1.1 christos FIX1(FIX(op, 0x2)), 3274 1.1 christos OP3(OHWCST0, ORREG1, OWREG1), 3275 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 1), ENC(srcdst, reg, 2))) 3276 1.1 christos INSN(sub, s, sx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 3277 1.1 christos FIX1(FIX(op, 0x2)), 3278 1.1 christos OP3(OHWCST0, ORREG1, OWREG1), 3279 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 1), ENC(srcdst, reg, 2))) 3280 1.1 christos INSN(sub, s, sx2op, 1cycle, C64XP, 0, 3281 1.1 christos FIX1(FIX(op, 0x1)), 3282 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3283 1.1 christos ENC5(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2), 3284 1.1 christos ENC(src2, reg, 1), ENC(x, xpath, 1))) 3285 1.1 christos INSN(sub, s, s3_sat_x, 1cycle, C64XP, 0, 3286 1.1 christos FIX1(FIX(op, 0x1)), 3287 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3288 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3289 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3290 1.1 christos INSN(sub, d, dx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 3291 1.1 christos FIX1(FIX(op, 0x3)), 3292 1.1 christos OP3(ORREG1, OHWCST1, OWREG1), 3293 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) 3294 1.1 christos INSN(sub, d, dx2op, 1cycle, C64XP, 0, 3295 1.1 christos FIX1(FIX(op, 0x1)), 3296 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3297 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(srcdst, reg, 0), 3298 1.1 christos ENC(src2, reg, 1), ENC(srcdst, reg, 2))) 3299 1.1 christos /**/ 3300 1.1 christos 3301 1.1 christos INSNE(subab, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 3302 1.1 christos FIX1(FIX(op, 0x31)), 3303 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 3304 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 3305 1.1 christos ENC(dst, reg, 2))) 3306 1.1 christos INSNE(subab, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 3307 1.1 christos FIX1(FIX(op, 0x33)), 3308 1.1 christos OP3(ORREG1, OACST, OWREG1), 3309 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 3310 1.1 christos ENC(dst, reg, 2))) 3311 1.1 christos 3312 1.1 christos INSN(subabs4, l, 1_or_2_src, 1cycle, C64X, 0, 3313 1.1 christos FIX1(FIX(op, 0x5a)), 3314 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3315 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3316 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3317 1.1 christos 3318 1.1 christos INSNE(subah, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 3319 1.1 christos FIX1(FIX(op, 0x35)), 3320 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 3321 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 3322 1.1 christos ENC(dst, reg, 2))) 3323 1.1 christos INSNE(subah, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 3324 1.1 christos FIX1(FIX(op, 0x37)), 3325 1.1 christos OP3(ORREG1, OACST, OWREG1), 3326 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 3327 1.1 christos ENC(dst, reg, 2))) 3328 1.1 christos 3329 1.1 christos INSNE(subaw, d_si_si_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 3330 1.1 christos FIX1(FIX(op, 0x39)), 3331 1.1 christos OP3(ORREG1, ORREG1, OWREG1), 3332 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, reg, 1), 3333 1.1 christos ENC(dst, reg, 2))) 3334 1.1 christos INSNE(subaw, d_si_u5_si, d, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_NO_CROSS, 3335 1.1 christos FIX1(FIX(op, 0x3b)), 3336 1.1 christos OP3(ORREG1, OACST, OWREG1), 3337 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg, 0), ENC(src1, ucst, 1), 3338 1.1 christos ENC(dst, reg, 2))) 3339 1.1 christos 3340 1.1 christos /* 16 bits insn */ 3341 1.1 christos INSN(subaw, d, dx5p, 1cycle, C64XP, 0, 3342 1.1 christos FIX1(FIX(op, 1)), 3343 1.1 christos OP3(ORB15REG1, OACST, OWB15REG1), 3344 1.1 christos ENC2(ENC(s, fu, 0), ENC(cst, ucst, 1))) 3345 1.1 christos /**/ 3346 1.1 christos 3347 1.1 christos INSN(subc, l, 1_or_2_src, 1cycle, C62X, 0, 3348 1.1 christos FIX1(FIX(op, 0x4b)), 3349 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3350 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3351 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3352 1.1 christos 3353 1.1 christos INSNE(subdp, l_dp_xdp_dp, l, 1_or_2_src, addsubdp, C67X, TIC6X_FLAG_PREFER(1), 3354 1.1 christos FIX1(FIX(op, 0x19)), 3355 1.1 christos OP3(ORREGD12, ORXREGD12, OWREGD67), 3356 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3357 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3358 1.1 christos INSNE(subdp, l_xdp_dp_dp, l, 1_or_2_src, addsubdp, C67X, TIC6X_FLAG_PREFER(0), 3359 1.1 christos FIX1(FIX(op, 0x1d)), 3360 1.1 christos OP3(ORXREGD12, ORREGD12, OWREGD67), 3361 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3362 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3363 1.1 christos INSNE(subdp, s_dp_xdp_dp, s, l_1_or_2_src, addsubdp, C67XP, 3364 1.1 christos TIC6X_FLAG_PREFER(1), 3365 1.1 christos FIX1(FIX(op, 0x73)), 3366 1.1 christos OP3(ORREGD12, ORXREGD12, OWREGD67), 3367 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3368 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3369 1.1 christos INSNE(subdp, s_xdp_dp_dp, s, l_1_or_2_src, addsubdp, C67XP, 3370 1.1 christos TIC6X_FLAG_PREFER(0), 3371 1.1 christos FIX1(FIX(op, 0x77)), 3372 1.1 christos OP3(ORXREGD12, ORREGD12, OWREGD67), 3373 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 3374 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 3375 1.1 christos 3376 1.1 christos INSNE(subsp, l_sp_xsp_sp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_PREFER(1), 3377 1.1 christos FIX1(FIX(op, 0x11)), 3378 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 3379 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3380 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3381 1.1 christos INSNE(subsp, l_xsp_sp_sp, l, 1_or_2_src, 4cycle, C67X, TIC6X_FLAG_PREFER(0), 3382 1.1 christos FIX1(FIX(op, 0x15)), 3383 1.1 christos OP3(ORXREG1, ORREG1, OWREG4), 3384 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3385 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3386 1.1 christos INSNE(subsp, s_sp_xsp_sp, s, l_1_or_2_src, 4cycle, C67XP, 3387 1.1 christos TIC6X_FLAG_PREFER(1), 3388 1.1 christos FIX1(FIX(op, 0x71)), 3389 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 3390 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3391 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3392 1.1 christos INSNE(subsp, s_xsp_sp_sp, s, l_1_or_2_src, 4cycle, C67XP, 3393 1.1 christos TIC6X_FLAG_PREFER(0), 3394 1.1 christos FIX1(FIX(op, 0x75)), 3395 1.1 christos OP3(ORXREG1, ORREG1, OWREG4), 3396 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 3397 1.1 christos ENC(src1, reg, 1), ENC(dst, reg, 2))) 3398 1.1 christos 3399 1.1 christos INSNE(subu, l_ui_xui_ul, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(1), 3400 1.1 christos FIX1(FIX(op, 0x2f)), 3401 1.1 christos OP3(ORREG1, ORXREG1, OWREGL1), 3402 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3403 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3404 1.1 christos INSNE(subu, l_xui_ui_ul, l, 1_or_2_src, 1cycle, C62X, TIC6X_FLAG_PREFER(0), 3405 1.1 christos FIX1(FIX(op, 0x3f)), 3406 1.1 christos OP3(ORXREG1, ORREG1, OWREGL1), 3407 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3408 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3409 1.1 christos 3410 1.1 christos INSN(sub2, l, 1_or_2_src, 1cycle, C64X, 0, 3411 1.1 christos FIX1(FIX(op, 0x04)), 3412 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3413 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3414 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3415 1.1 christos INSN(sub2, s, 1_or_2_src, 1cycle, C62X, 0, 3416 1.1 christos FIX1(FIX(op, 0x11)), 3417 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3418 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3419 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3420 1.1 christos INSN(sub2, d, ext_1_or_2_src, 1cycle, C64X, 0, 3421 1.1 christos FIX1(FIX(op, 0x5)), 3422 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3423 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3424 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3425 1.1 christos 3426 1.1 christos INSN(sub4, l, 1_or_2_src, 1cycle, C64X, 0, 3427 1.1 christos FIX1(FIX(op, 0x66)), 3428 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3429 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3430 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3431 1.1 christos 3432 1.1 christos INSN(swap2, l, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS, 3433 1.1 christos FIX2(FIX(op, 0x1b), FIX(x, 0)), 3434 1.1 christos OP2(ORREG1, OWREG1), 3435 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3436 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 1))) 3437 1.1 christos INSN(swap2, s, 1_or_2_src, 1cycle, C64X, TIC6X_FLAG_MACRO|TIC6X_FLAG_NO_CROSS, 3438 1.1 christos FIX2(FIX(op, 0x10), FIX(x, 0)), 3439 1.1 christos OP2(ORREG1, OWREG1), 3440 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3441 1.1 christos ENC(src2, reg, 0), ENC(dst, reg, 1))) 3442 1.1 christos 3443 1.1 christos /* Contrary to SPRUFE8, this is the correct encoding for this 3444 1.1 christos instruction. */ 3445 1.1 christos INSN(swap4, l, unary, 1cycle, C64X, 0, 3446 1.1 christos FIX1(FIX(op, 0x1)), 3447 1.1 christos OP2(ORXREG1, OWREG1), 3448 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 3449 1.1 christos ENC(dst, reg, 1))) 3450 1.1 christos 3451 1.1 christos INSN(swe, nfu, swe, 1cycle, C64XP, 0, 3452 1.1 christos FIX1(FIX(s, 0)), 3453 1.1 christos OP0(), 3454 1.1 christos ENC0()) 3455 1.1 christos 3456 1.1 christos INSN(swenr, nfu, swenr, 1cycle, C64XP, 0, 3457 1.1 christos FIX1(FIX(s, 0)), 3458 1.1 christos OP0(), 3459 1.1 christos ENC0()) 3460 1.1 christos 3461 1.1 christos INSN(unpkhu4, l, unary, 1cycle, C64X, 0, 3462 1.1 christos FIX1(FIX(op, 0x03)), 3463 1.1 christos OP2(ORXREG1, OWREG1), 3464 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 3465 1.1 christos ENC(dst, reg, 1))) 3466 1.1 christos INSN(unpkhu4, s, unary, 1cycle, C64X, 0, 3467 1.1 christos FIX1(FIX(op, 0x03)), 3468 1.1 christos OP2(ORXREG1, OWREG1), 3469 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 3470 1.1 christos ENC(dst, reg, 1))) 3471 1.1 christos 3472 1.1 christos INSN(unpklu4, l, unary, 1cycle, C64X, 0, 3473 1.1 christos FIX1(FIX(op, 0x02)), 3474 1.1 christos OP2(ORXREG1, OWREG1), 3475 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 3476 1.1 christos ENC(dst, reg, 1))) 3477 1.1 christos INSN(unpklu4, s, unary, 1cycle, C64X, 0, 3478 1.1 christos FIX1(FIX(op, 0x02)), 3479 1.1 christos OP2(ORXREG1, OWREG1), 3480 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 3481 1.1 christos ENC(dst, reg, 1))) 3482 1.1 christos 3483 1.1 christos INSNE(xor, l_ui_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, 3484 1.1 christos FIX1(FIX(op, 0x6f)), 3485 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3486 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3487 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3488 1.1 christos INSNE(xor, l_s5_xui_ui, l, 1_or_2_src, 1cycle, C62X, 0, 3489 1.1 christos FIX1(FIX(op, 0x6e)), 3490 1.1 christos OP3(OACST, ORXREG1, OWREG1), 3491 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 3492 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3493 1.1 christos INSNE(xor, s_ui_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, 3494 1.1 christos FIX1(FIX(op, 0x0b)), 3495 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3496 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3497 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3498 1.1 christos INSNE(xor, s_s5_xui_ui, s, 1_or_2_src, 1cycle, C62X, 0, 3499 1.1 christos FIX1(FIX(op, 0x0a)), 3500 1.1 christos OP3(OACST, ORXREG1, OWREG1), 3501 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 3502 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3503 1.1 christos INSNE(xor, d_ui_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, 3504 1.1 christos FIX1(FIX(op, 0xe)), 3505 1.1 christos OP3(ORREG1, ORXREG1, OWREG1), 3506 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3507 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3508 1.1 christos INSNE(xor, d_s5_xui_ui, d, ext_1_or_2_src, 1cycle, C64X, 0, 3509 1.1 christos FIX1(FIX(op, 0xf)), 3510 1.1 christos OP3(OACST, ORXREG1, OWREG1), 3511 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, scst, 0), 3512 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3513 1.1 christos 3514 1.1 christos /* 16 bits insn */ 3515 1.1 christos INSN(xor, l, l2c, 1cycle, C64XP, 0, 3516 1.1 christos FIX1(FIX(op, 0x2)), 3517 1.1 christos OP3(ORREG1, ORXREG1, OWREG1NORS), 3518 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3519 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3520 1.1 christos INSNU(xor, l, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 3521 1.1 christos FIX2(FIX(op, 0x7), FIX(unit, 0x0)), 3522 1.1 christos OP3(ORREG1, OHWCST1, OWREG1), 3523 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) 3524 1.1 christos INSNU(xor, s, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 3525 1.1 christos FIX2(FIX(op, 0x7), FIX(unit, 0x1)), 3526 1.1 christos OP3(ORREG1, OHWCST1, OWREG1), 3527 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) 3528 1.1 christos INSNU(xor, d, lsdx1, 1cycle, C64XP, TIC6X_FLAG_NO_CROSS, 3529 1.1 christos FIX2(FIX(op, 0x7), FIX(unit, 0x2)), 3530 1.1 christos OP3(ORREG1, OHWCST1, OWREG1), 3531 1.1 christos ENC3(ENC(s, fu, 0), ENC(srcdst, reg, 0), ENC(srcdst, reg, 2))) 3532 1.1 christos /**/ 3533 1.1 christos 3534 1.1 christos INSN(xormpy, m, 1_or_2_src, 4cycle, C64XP, 0, 3535 1.1 christos FIX1(FIX(op, 0x1b)), 3536 1.1 christos OP3(ORREG1, ORXREG1, OWREG4), 3537 1.1 christos ENC5(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src1, reg, 0), 3538 1.1 christos ENC(src2, reg, 1), ENC(dst, reg, 2))) 3539 1.1 christos 3540 1.1 christos INSN(xpnd2, m, unary, 1616_m, C64X, 0, 3541 1.1 christos FIX1(FIX(op, 0x19)), 3542 1.1 christos OP2(ORXREG1, OWREG2), 3543 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 3544 1.1 christos ENC(dst, reg, 1))) 3545 1.1 christos 3546 1.1 christos INSN(xpnd4, m, unary, 1616_m, C64X, 0, 3547 1.1 christos FIX1(FIX(op, 0x18)), 3548 1.1 christos OP2(ORXREG1, OWREG2), 3549 1.1 christos ENC4(ENC(s, fu, 0), ENC(x, xpath, 0), ENC(src2, reg, 0), 3550 1.1 christos ENC(dst, reg, 1))) 3551 1.1 christos 3552 1.1 christos INSN(zero, s, mvk, 1cycle, C62X, TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, 3553 1.1 christos FIX2(FIX(h, 0), FIX(cst, 0)), 3554 1.1 christos OP1(OWREG1), 3555 1.1 christos ENC2(ENC(s, fu, 0), ENC(dst, reg, 0))) 3556 1.1 christos INSN(zero, l, unary, 1cycle, C64X, 3557 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1), 3558 1.1 christos FIX3(FIX(x, 0), FIX(op, 0x05), FIX(src2, 0)), 3559 1.1 christos OP1(OWREG1), 3560 1.1 christos ENC2(ENC(s, fu, 0), ENC(dst, reg, 0))) 3561 1.1 christos INSNE(zero, l_sub, l, 1_or_2_src, 1cycle, C62X, 3562 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0), 3563 1.1 christos FIX2(FIX(op, 0x07), FIX(x, 0)), 3564 1.1 christos OP1(OWREG1), 3565 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, reg_unused, 0), ENC(src2, reg_unused, 0), 3566 1.1 christos ENC(dst, reg, 0))) 3567 1.1 christos INSNE(zero, l_sub_sl, l, 1_or_2_src, 1cycle, C62X, 3568 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO, 3569 1.1 christos FIX2(FIX(op, 0x27), FIX(x, 0)), 3570 1.1 christos OP1(OWREGL1), 3571 1.1 christos ENC4(ENC(s, fu, 0), ENC(src1, reg_unused, 0), ENC(src2, reg_unused, 0), 3572 1.1 christos ENC(dst, reg, 0))) 3573 1.1 christos INSNE(zero, d_mvk, d, 1_or_2_src, 1cycle, C64X, 3574 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(1), 3575 1.1 christos FIX3(FIX(op, 0x00), FIX(src1, 0), FIX(src2, 0)), 3576 1.1 christos OP1(OWREG1), 3577 1.1 christos ENC2(ENC(s, fu, 0), ENC(dst, reg, 0))) 3578 1.1 christos INSNE(zero, d_sub, d, 1_or_2_src, 1cycle, C62X, 3579 1.1 christos TIC6X_FLAG_NO_CROSS|TIC6X_FLAG_MACRO|TIC6X_FLAG_PREFER(0), 3580 1.1 christos FIX1(FIX(op, 0x11)), 3581 1.1 christos OP1(OWREG1), 3582 1.1 christos ENC4(ENC(s, fu, 0), ENC(src2, reg_unused, 0), ENC(src1, reg_unused, 0), 3583 1.1 christos ENC(dst, reg, 0))) 3584 1.1 christos 3585 1.1 christos #undef TIC6X_INSN_C64X_AND_C67X 3586 1.1 christos #undef tic6x_insn_format_nfu_s_branch_nop_cst 3587 1.1 christos #undef tic6x_insn_format_s_l_1_or_2_src 3588 1.1 christos #undef RAN 3589 1.1 christos #undef FIX 3590 1.1 christos #undef FIX0 3591 1.1 christos #undef FIX1 3592 1.1 christos #undef FIX2 3593 1.1 christos #undef FIX3 3594 1.1 christos #undef FIX4 3595 1.1 christos #undef OP0 3596 1.1 christos #undef OP1 3597 1.1 christos #undef OP2 3598 1.1 christos #undef OP3 3599 1.1 christos #undef OP4 3600 1.1 christos #undef OACST 3601 1.1 christos #undef OLCST 3602 1.1 christos #undef OHWCSTM1 3603 1.1 christos #undef OHWCST0 3604 1.1 christos #undef OHWCST1 3605 1.1 christos #undef OHWCST5 3606 1.1 christos #undef OHWCST16 3607 1.1 christos #undef OHWCST24 3608 1.1 christos #undef OHWCST31 3609 1.1 christos #undef OFULIST 3610 1.1 christos #undef ORIRP1 3611 1.1 christos #undef ORNRP1 3612 1.1 christos #undef OWREG1 3613 1.1 christos #undef OWRETREG1 3614 1.1 christos #undef ORREG1 3615 1.1 christos #undef ORDREG1 3616 1.1 christos #undef ORWREG1 3617 1.1 christos #undef ORAREG1 3618 1.1 christos #undef ORXREG1 3619 1.1 christos #undef ORREG12 3620 1.1 christos #undef ORREG14 3621 1.1 christos #undef ORXREG14 3622 1.1 christos #undef OWREG2 3623 1.1 christos #undef OWREG4 3624 1.1 christos #undef OWREG9 3625 1.1 christos #undef OWDREG5 3626 1.1 christos #undef OWREGL1 3627 1.1 christos #undef ORREGL1 3628 1.1 christos #undef OWREGD1 3629 1.1 christos #undef ORTREG1 3630 1.1 christos #undef ORTREGD1 3631 1.1 christos #undef OWTREG5 3632 1.1 christos #undef OWTREGD5 3633 1.1 christos #undef OWREGD12 3634 1.1 christos #undef OWREGD4 3635 1.1 christos #undef ORREGD1 3636 1.1 christos #undef OWREGD45 3637 1.1 christos #undef OWREGD67 3638 1.1 christos #undef ORDREGD1 3639 1.1 christos #undef OWDREGD5 3640 1.1 christos #undef ORREGD12 3641 1.1 christos #undef ORXREGD12 3642 1.1 christos #undef ORXREGD1234 3643 1.1 christos #undef ORREGD1324 3644 1.1 christos #undef OWREGD910 3645 1.1 christos #undef OWILC1 3646 1.1 christos #undef ORCREG1 3647 1.1 christos #undef OWCREG1 3648 1.1 christos #undef OWREG1Z 3649 1.1 christos #undef ORB15REG1 3650 1.1 christos #undef OWB15REG1 3651 1.1 christos #undef ORMEMDW 3652 1.1 christos #undef OWMEMDW 3653 1.1 christos #undef ORMEMSB 3654 1.1 christos #undef OWMEMSB 3655 1.1 christos #undef ORMEMLB 3656 1.1 christos #undef OWMEMLB 3657 1.1 christos #undef ORMEMSH 3658 1.1 christos #undef OWMEMSH 3659 1.1 christos #undef ORMEMLH 3660 1.1 christos #undef OWMEMLH 3661 1.1 christos #undef ORMEMSW 3662 1.1 christos #undef OWMEMSW 3663 1.1 christos #undef ORMEMLW 3664 1.1 christos #undef OWMEMLW 3665 1.1 christos #undef ORMEMSD 3666 1.1 christos #undef OWMEMSD 3667 1.1 christos #undef ORMEMND 3668 1.1 christos #undef OWMEMND 3669 1.1 christos #undef ENC 3670 1.1 christos #undef ENC0 3671 1.1 christos #undef ENC1 3672 1.1 christos #undef ENC2 3673 1.1 christos #undef ENC3 3674 1.1 christos #undef ENC4 3675 1.1 christos #undef ENC5 3676 1.1 christos #undef ENC6 3677 1.1 christos #undef ENC7 3678