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