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