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