Home | History | Annotate | Line # | Download | only in opcodes
      1   1.1.1.5  christos /* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
      2       1.1     skrll /* Instruction opcode table for fr30.
      3       1.1     skrll 
      4       1.1     skrll THIS FILE IS MACHINE GENERATED WITH CGEN.
      5       1.1     skrll 
      6  1.1.1.10  christos Copyright (C) 1996-2026 Free Software Foundation, Inc.
      7       1.1     skrll 
      8       1.1     skrll This file is part of the GNU Binutils and/or GDB, the GNU debugger.
      9       1.1     skrll 
     10       1.1     skrll    This file is free software; you can redistribute it and/or modify
     11       1.1     skrll    it under the terms of the GNU General Public License as published by
     12       1.1     skrll    the Free Software Foundation; either version 3, or (at your option)
     13       1.1     skrll    any later version.
     14       1.1     skrll 
     15       1.1     skrll    It is distributed in the hope that it will be useful, but WITHOUT
     16       1.1     skrll    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     17       1.1     skrll    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     18       1.1     skrll    License for more details.
     19       1.1     skrll 
     20       1.1     skrll    You should have received a copy of the GNU General Public License along
     21       1.1     skrll    with this program; if not, write to the Free Software Foundation, Inc.,
     22       1.1     skrll    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
     23       1.1     skrll 
     24       1.1     skrll */
     25       1.1     skrll 
     26       1.1     skrll #include "sysdep.h"
     27       1.1     skrll #include "ansidecl.h"
     28       1.1     skrll #include "bfd.h"
     29       1.1     skrll #include "symcat.h"
     30       1.1     skrll #include "fr30-desc.h"
     31       1.1     skrll #include "fr30-opc.h"
     32       1.1     skrll #include "libiberty.h"
     33       1.1     skrll 
     34       1.1     skrll /* The hash functions are recorded here to help keep assembler code out of
     35       1.1     skrll    the disassembler and vice versa.  */
     36       1.1     skrll 
     37       1.1     skrll static int asm_hash_insn_p        (const CGEN_INSN *);
     38       1.1     skrll static unsigned int asm_hash_insn (const char *);
     39       1.1     skrll static int dis_hash_insn_p        (const CGEN_INSN *);
     40       1.1     skrll static unsigned int dis_hash_insn (const char *, CGEN_INSN_INT);
     41       1.1     skrll 
     42       1.1     skrll /* Instruction formats.  */
     43       1.1     skrll 
     44       1.1     skrll #define F(f) & fr30_cgen_ifld_table[FR30_##f]
     45       1.1     skrll static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
     46       1.1     skrll   0, 0, 0x0, { { 0 } }
     47       1.1     skrll };
     48       1.1     skrll 
     49       1.1     skrll static const CGEN_IFMT ifmt_add ATTRIBUTE_UNUSED = {
     50       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_RJ) }, { F (F_RI) }, { 0 } }
     51       1.1     skrll };
     52       1.1     skrll 
     53       1.1     skrll static const CGEN_IFMT ifmt_addi ATTRIBUTE_UNUSED = {
     54       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_U4) }, { F (F_RI) }, { 0 } }
     55       1.1     skrll };
     56       1.1     skrll 
     57       1.1     skrll static const CGEN_IFMT ifmt_add2 ATTRIBUTE_UNUSED = {
     58       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_M4) }, { F (F_RI) }, { 0 } }
     59       1.1     skrll };
     60       1.1     skrll 
     61       1.1     skrll static const CGEN_IFMT ifmt_div0s ATTRIBUTE_UNUSED = {
     62       1.1     skrll   16, 16, 0xfff0, { { F (F_OP1) }, { F (F_OP2) }, { F (F_OP3) }, { F (F_RI) }, { 0 } }
     63       1.1     skrll };
     64       1.1     skrll 
     65       1.1     skrll static const CGEN_IFMT ifmt_div3 ATTRIBUTE_UNUSED = {
     66       1.1     skrll   16, 16, 0xffff, { { F (F_OP1) }, { F (F_OP2) }, { F (F_OP3) }, { F (F_OP4) }, { 0 } }
     67       1.1     skrll };
     68       1.1     skrll 
     69       1.1     skrll static const CGEN_IFMT ifmt_ldi8 ATTRIBUTE_UNUSED = {
     70       1.1     skrll   16, 16, 0xf000, { { F (F_OP1) }, { F (F_I8) }, { F (F_RI) }, { 0 } }
     71       1.1     skrll };
     72       1.1     skrll 
     73       1.1     skrll static const CGEN_IFMT ifmt_ldi20 ATTRIBUTE_UNUSED = {
     74       1.1     skrll   16, 32, 0xff00, { { F (F_OP1) }, { F (F_I20) }, { F (F_OP2) }, { F (F_RI) }, { 0 } }
     75       1.1     skrll };
     76       1.1     skrll 
     77       1.1     skrll static const CGEN_IFMT ifmt_ldi32 ATTRIBUTE_UNUSED = {
     78       1.1     skrll   16, 48, 0xfff0, { { F (F_OP1) }, { F (F_I32) }, { F (F_OP2) }, { F (F_OP3) }, { F (F_RI) }, { 0 } }
     79       1.1     skrll };
     80       1.1     skrll 
     81       1.1     skrll static const CGEN_IFMT ifmt_ldr14 ATTRIBUTE_UNUSED = {
     82       1.1     skrll   16, 16, 0xf000, { { F (F_OP1) }, { F (F_DISP10) }, { F (F_RI) }, { 0 } }
     83       1.1     skrll };
     84       1.1     skrll 
     85       1.1     skrll static const CGEN_IFMT ifmt_ldr14uh ATTRIBUTE_UNUSED = {
     86       1.1     skrll   16, 16, 0xf000, { { F (F_OP1) }, { F (F_DISP9) }, { F (F_RI) }, { 0 } }
     87       1.1     skrll };
     88       1.1     skrll 
     89       1.1     skrll static const CGEN_IFMT ifmt_ldr14ub ATTRIBUTE_UNUSED = {
     90       1.1     skrll   16, 16, 0xf000, { { F (F_OP1) }, { F (F_DISP8) }, { F (F_RI) }, { 0 } }
     91       1.1     skrll };
     92       1.1     skrll 
     93       1.1     skrll static const CGEN_IFMT ifmt_ldr15 ATTRIBUTE_UNUSED = {
     94       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_UDISP6) }, { F (F_RI) }, { 0 } }
     95       1.1     skrll };
     96       1.1     skrll 
     97       1.1     skrll static const CGEN_IFMT ifmt_ldr15dr ATTRIBUTE_UNUSED = {
     98       1.1     skrll   16, 16, 0xfff0, { { F (F_OP1) }, { F (F_OP2) }, { F (F_OP3) }, { F (F_RS2) }, { 0 } }
     99       1.1     skrll };
    100       1.1     skrll 
    101       1.1     skrll static const CGEN_IFMT ifmt_movdr ATTRIBUTE_UNUSED = {
    102       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_RS1) }, { F (F_RI) }, { 0 } }
    103       1.1     skrll };
    104       1.1     skrll 
    105       1.1     skrll static const CGEN_IFMT ifmt_call ATTRIBUTE_UNUSED = {
    106       1.1     skrll   16, 16, 0xf800, { { F (F_OP1) }, { F (F_OP5) }, { F (F_REL12) }, { 0 } }
    107       1.1     skrll };
    108       1.1     skrll 
    109       1.1     skrll static const CGEN_IFMT ifmt_int ATTRIBUTE_UNUSED = {
    110       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_U8) }, { 0 } }
    111       1.1     skrll };
    112       1.1     skrll 
    113       1.1     skrll static const CGEN_IFMT ifmt_brad ATTRIBUTE_UNUSED = {
    114       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_CC) }, { F (F_REL9) }, { 0 } }
    115       1.1     skrll };
    116       1.1     skrll 
    117       1.1     skrll static const CGEN_IFMT ifmt_dmovr13 ATTRIBUTE_UNUSED = {
    118       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_DIR10) }, { 0 } }
    119       1.1     skrll };
    120       1.1     skrll 
    121       1.1     skrll static const CGEN_IFMT ifmt_dmovr13h ATTRIBUTE_UNUSED = {
    122       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_DIR9) }, { 0 } }
    123       1.1     skrll };
    124       1.1     skrll 
    125       1.1     skrll static const CGEN_IFMT ifmt_dmovr13b ATTRIBUTE_UNUSED = {
    126       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_DIR8) }, { 0 } }
    127       1.1     skrll };
    128       1.1     skrll 
    129       1.1     skrll static const CGEN_IFMT ifmt_copop ATTRIBUTE_UNUSED = {
    130       1.1     skrll   16, 32, 0xfff0, { { F (F_OP1) }, { F (F_CCC) }, { F (F_OP2) }, { F (F_OP3) }, { F (F_CRJ) }, { F (F_U4C) }, { F (F_CRI) }, { 0 } }
    131       1.1     skrll };
    132       1.1     skrll 
    133       1.1     skrll static const CGEN_IFMT ifmt_copld ATTRIBUTE_UNUSED = {
    134       1.1     skrll   16, 32, 0xfff0, { { F (F_OP1) }, { F (F_CCC) }, { F (F_OP2) }, { F (F_OP3) }, { F (F_RJC) }, { F (F_U4C) }, { F (F_CRI) }, { 0 } }
    135       1.1     skrll };
    136       1.1     skrll 
    137       1.1     skrll static const CGEN_IFMT ifmt_copst ATTRIBUTE_UNUSED = {
    138       1.1     skrll   16, 32, 0xfff0, { { F (F_OP1) }, { F (F_CCC) }, { F (F_OP2) }, { F (F_OP3) }, { F (F_CRJ) }, { F (F_U4C) }, { F (F_RIC) }, { 0 } }
    139       1.1     skrll };
    140       1.1     skrll 
    141       1.1     skrll static const CGEN_IFMT ifmt_addsp ATTRIBUTE_UNUSED = {
    142       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_S10) }, { 0 } }
    143       1.1     skrll };
    144       1.1     skrll 
    145       1.1     skrll static const CGEN_IFMT ifmt_ldm0 ATTRIBUTE_UNUSED = {
    146       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_REGLIST_LOW_LD) }, { 0 } }
    147       1.1     skrll };
    148       1.1     skrll 
    149       1.1     skrll static const CGEN_IFMT ifmt_ldm1 ATTRIBUTE_UNUSED = {
    150       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_REGLIST_HI_LD) }, { 0 } }
    151       1.1     skrll };
    152       1.1     skrll 
    153       1.1     skrll static const CGEN_IFMT ifmt_stm0 ATTRIBUTE_UNUSED = {
    154       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_REGLIST_LOW_ST) }, { 0 } }
    155       1.1     skrll };
    156       1.1     skrll 
    157       1.1     skrll static const CGEN_IFMT ifmt_stm1 ATTRIBUTE_UNUSED = {
    158       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_REGLIST_HI_ST) }, { 0 } }
    159       1.1     skrll };
    160       1.1     skrll 
    161       1.1     skrll static const CGEN_IFMT ifmt_enter ATTRIBUTE_UNUSED = {
    162       1.1     skrll   16, 16, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_U10) }, { 0 } }
    163       1.1     skrll };
    164       1.1     skrll 
    165       1.1     skrll #undef F
    166       1.1     skrll 
    167       1.1     skrll #define A(a) (1 << CGEN_INSN_##a)
    168       1.1     skrll #define OPERAND(op) FR30_OPERAND_##op
    169       1.1     skrll #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
    170       1.1     skrll #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
    171       1.1     skrll 
    172       1.1     skrll /* The instruction table.  */
    173       1.1     skrll 
    174       1.1     skrll static const CGEN_OPCODE fr30_cgen_insn_opcode_table[MAX_INSNS] =
    175       1.1     skrll {
    176       1.1     skrll   /* Special null first entry.
    177       1.1     skrll      A `num' value of zero is thus invalid.
    178       1.1     skrll      Also, the special `invalid' insn resides here.  */
    179       1.1     skrll   { { 0, 0, 0, 0 }, {{0}}, 0, {0}},
    180       1.1     skrll /* add $Rj,$Ri */
    181       1.1     skrll   {
    182       1.1     skrll     { 0, 0, 0, 0 },
    183       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    184       1.1     skrll     & ifmt_add, { 0xa600 }
    185       1.1     skrll   },
    186       1.1     skrll /* add $u4,$Ri */
    187       1.1     skrll   {
    188       1.1     skrll     { 0, 0, 0, 0 },
    189       1.1     skrll     { { MNEM, ' ', OP (U4), ',', OP (RI), 0 } },
    190       1.1     skrll     & ifmt_addi, { 0xa400 }
    191       1.1     skrll   },
    192       1.1     skrll /* add2 $m4,$Ri */
    193       1.1     skrll   {
    194       1.1     skrll     { 0, 0, 0, 0 },
    195       1.1     skrll     { { MNEM, ' ', OP (M4), ',', OP (RI), 0 } },
    196       1.1     skrll     & ifmt_add2, { 0xa500 }
    197       1.1     skrll   },
    198       1.1     skrll /* addc $Rj,$Ri */
    199       1.1     skrll   {
    200       1.1     skrll     { 0, 0, 0, 0 },
    201       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    202       1.1     skrll     & ifmt_add, { 0xa700 }
    203       1.1     skrll   },
    204       1.1     skrll /* addn $Rj,$Ri */
    205       1.1     skrll   {
    206       1.1     skrll     { 0, 0, 0, 0 },
    207       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    208       1.1     skrll     & ifmt_add, { 0xa200 }
    209       1.1     skrll   },
    210       1.1     skrll /* addn $u4,$Ri */
    211       1.1     skrll   {
    212       1.1     skrll     { 0, 0, 0, 0 },
    213       1.1     skrll     { { MNEM, ' ', OP (U4), ',', OP (RI), 0 } },
    214       1.1     skrll     & ifmt_addi, { 0xa000 }
    215       1.1     skrll   },
    216       1.1     skrll /* addn2 $m4,$Ri */
    217       1.1     skrll   {
    218       1.1     skrll     { 0, 0, 0, 0 },
    219       1.1     skrll     { { MNEM, ' ', OP (M4), ',', OP (RI), 0 } },
    220       1.1     skrll     & ifmt_add2, { 0xa100 }
    221       1.1     skrll   },
    222       1.1     skrll /* sub $Rj,$Ri */
    223       1.1     skrll   {
    224       1.1     skrll     { 0, 0, 0, 0 },
    225       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    226       1.1     skrll     & ifmt_add, { 0xac00 }
    227       1.1     skrll   },
    228       1.1     skrll /* subc $Rj,$Ri */
    229       1.1     skrll   {
    230       1.1     skrll     { 0, 0, 0, 0 },
    231       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    232       1.1     skrll     & ifmt_add, { 0xad00 }
    233       1.1     skrll   },
    234       1.1     skrll /* subn $Rj,$Ri */
    235       1.1     skrll   {
    236       1.1     skrll     { 0, 0, 0, 0 },
    237       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    238       1.1     skrll     & ifmt_add, { 0xae00 }
    239       1.1     skrll   },
    240       1.1     skrll /* cmp $Rj,$Ri */
    241       1.1     skrll   {
    242       1.1     skrll     { 0, 0, 0, 0 },
    243       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    244       1.1     skrll     & ifmt_add, { 0xaa00 }
    245       1.1     skrll   },
    246       1.1     skrll /* cmp $u4,$Ri */
    247       1.1     skrll   {
    248       1.1     skrll     { 0, 0, 0, 0 },
    249       1.1     skrll     { { MNEM, ' ', OP (U4), ',', OP (RI), 0 } },
    250       1.1     skrll     & ifmt_addi, { 0xa800 }
    251       1.1     skrll   },
    252       1.1     skrll /* cmp2 $m4,$Ri */
    253       1.1     skrll   {
    254       1.1     skrll     { 0, 0, 0, 0 },
    255       1.1     skrll     { { MNEM, ' ', OP (M4), ',', OP (RI), 0 } },
    256       1.1     skrll     & ifmt_add2, { 0xa900 }
    257       1.1     skrll   },
    258       1.1     skrll /* and $Rj,$Ri */
    259       1.1     skrll   {
    260       1.1     skrll     { 0, 0, 0, 0 },
    261       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    262       1.1     skrll     & ifmt_add, { 0x8200 }
    263       1.1     skrll   },
    264       1.1     skrll /* or $Rj,$Ri */
    265       1.1     skrll   {
    266       1.1     skrll     { 0, 0, 0, 0 },
    267       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    268       1.1     skrll     & ifmt_add, { 0x9200 }
    269       1.1     skrll   },
    270       1.1     skrll /* eor $Rj,$Ri */
    271       1.1     skrll   {
    272       1.1     skrll     { 0, 0, 0, 0 },
    273       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    274       1.1     skrll     & ifmt_add, { 0x9a00 }
    275       1.1     skrll   },
    276       1.1     skrll /* and $Rj,@$Ri */
    277       1.1     skrll   {
    278       1.1     skrll     { 0, 0, 0, 0 },
    279       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', '@', OP (RI), 0 } },
    280       1.1     skrll     & ifmt_add, { 0x8400 }
    281       1.1     skrll   },
    282       1.1     skrll /* andh $Rj,@$Ri */
    283       1.1     skrll   {
    284       1.1     skrll     { 0, 0, 0, 0 },
    285       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', '@', OP (RI), 0 } },
    286       1.1     skrll     & ifmt_add, { 0x8500 }
    287       1.1     skrll   },
    288       1.1     skrll /* andb $Rj,@$Ri */
    289       1.1     skrll   {
    290       1.1     skrll     { 0, 0, 0, 0 },
    291       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', '@', OP (RI), 0 } },
    292       1.1     skrll     & ifmt_add, { 0x8600 }
    293       1.1     skrll   },
    294       1.1     skrll /* or $Rj,@$Ri */
    295       1.1     skrll   {
    296       1.1     skrll     { 0, 0, 0, 0 },
    297       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', '@', OP (RI), 0 } },
    298       1.1     skrll     & ifmt_add, { 0x9400 }
    299       1.1     skrll   },
    300       1.1     skrll /* orh $Rj,@$Ri */
    301       1.1     skrll   {
    302       1.1     skrll     { 0, 0, 0, 0 },
    303       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', '@', OP (RI), 0 } },
    304       1.1     skrll     & ifmt_add, { 0x9500 }
    305       1.1     skrll   },
    306       1.1     skrll /* orb $Rj,@$Ri */
    307       1.1     skrll   {
    308       1.1     skrll     { 0, 0, 0, 0 },
    309       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', '@', OP (RI), 0 } },
    310       1.1     skrll     & ifmt_add, { 0x9600 }
    311       1.1     skrll   },
    312       1.1     skrll /* eor $Rj,@$Ri */
    313       1.1     skrll   {
    314       1.1     skrll     { 0, 0, 0, 0 },
    315       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', '@', OP (RI), 0 } },
    316       1.1     skrll     & ifmt_add, { 0x9c00 }
    317       1.1     skrll   },
    318       1.1     skrll /* eorh $Rj,@$Ri */
    319       1.1     skrll   {
    320       1.1     skrll     { 0, 0, 0, 0 },
    321       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', '@', OP (RI), 0 } },
    322       1.1     skrll     & ifmt_add, { 0x9d00 }
    323       1.1     skrll   },
    324       1.1     skrll /* eorb $Rj,@$Ri */
    325       1.1     skrll   {
    326       1.1     skrll     { 0, 0, 0, 0 },
    327       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', '@', OP (RI), 0 } },
    328       1.1     skrll     & ifmt_add, { 0x9e00 }
    329       1.1     skrll   },
    330       1.1     skrll /* bandl $u4,@$Ri */
    331       1.1     skrll   {
    332       1.1     skrll     { 0, 0, 0, 0 },
    333       1.1     skrll     { { MNEM, ' ', OP (U4), ',', '@', OP (RI), 0 } },
    334       1.1     skrll     & ifmt_addi, { 0x8000 }
    335       1.1     skrll   },
    336       1.1     skrll /* borl $u4,@$Ri */
    337       1.1     skrll   {
    338       1.1     skrll     { 0, 0, 0, 0 },
    339       1.1     skrll     { { MNEM, ' ', OP (U4), ',', '@', OP (RI), 0 } },
    340       1.1     skrll     & ifmt_addi, { 0x9000 }
    341       1.1     skrll   },
    342       1.1     skrll /* beorl $u4,@$Ri */
    343       1.1     skrll   {
    344       1.1     skrll     { 0, 0, 0, 0 },
    345       1.1     skrll     { { MNEM, ' ', OP (U4), ',', '@', OP (RI), 0 } },
    346       1.1     skrll     & ifmt_addi, { 0x9800 }
    347       1.1     skrll   },
    348       1.1     skrll /* bandh $u4,@$Ri */
    349       1.1     skrll   {
    350       1.1     skrll     { 0, 0, 0, 0 },
    351       1.1     skrll     { { MNEM, ' ', OP (U4), ',', '@', OP (RI), 0 } },
    352       1.1     skrll     & ifmt_addi, { 0x8100 }
    353       1.1     skrll   },
    354       1.1     skrll /* borh $u4,@$Ri */
    355       1.1     skrll   {
    356       1.1     skrll     { 0, 0, 0, 0 },
    357       1.1     skrll     { { MNEM, ' ', OP (U4), ',', '@', OP (RI), 0 } },
    358       1.1     skrll     & ifmt_addi, { 0x9100 }
    359       1.1     skrll   },
    360       1.1     skrll /* beorh $u4,@$Ri */
    361       1.1     skrll   {
    362       1.1     skrll     { 0, 0, 0, 0 },
    363       1.1     skrll     { { MNEM, ' ', OP (U4), ',', '@', OP (RI), 0 } },
    364       1.1     skrll     & ifmt_addi, { 0x9900 }
    365       1.1     skrll   },
    366       1.1     skrll /* btstl $u4,@$Ri */
    367       1.1     skrll   {
    368       1.1     skrll     { 0, 0, 0, 0 },
    369       1.1     skrll     { { MNEM, ' ', OP (U4), ',', '@', OP (RI), 0 } },
    370       1.1     skrll     & ifmt_addi, { 0x8800 }
    371       1.1     skrll   },
    372       1.1     skrll /* btsth $u4,@$Ri */
    373       1.1     skrll   {
    374       1.1     skrll     { 0, 0, 0, 0 },
    375       1.1     skrll     { { MNEM, ' ', OP (U4), ',', '@', OP (RI), 0 } },
    376       1.1     skrll     & ifmt_addi, { 0x8900 }
    377       1.1     skrll   },
    378       1.1     skrll /* mul $Rj,$Ri */
    379       1.1     skrll   {
    380       1.1     skrll     { 0, 0, 0, 0 },
    381       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    382       1.1     skrll     & ifmt_add, { 0xaf00 }
    383       1.1     skrll   },
    384       1.1     skrll /* mulu $Rj,$Ri */
    385       1.1     skrll   {
    386       1.1     skrll     { 0, 0, 0, 0 },
    387       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    388       1.1     skrll     & ifmt_add, { 0xab00 }
    389       1.1     skrll   },
    390       1.1     skrll /* mulh $Rj,$Ri */
    391       1.1     skrll   {
    392       1.1     skrll     { 0, 0, 0, 0 },
    393       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    394       1.1     skrll     & ifmt_add, { 0xbf00 }
    395       1.1     skrll   },
    396       1.1     skrll /* muluh $Rj,$Ri */
    397       1.1     skrll   {
    398       1.1     skrll     { 0, 0, 0, 0 },
    399       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    400       1.1     skrll     & ifmt_add, { 0xbb00 }
    401       1.1     skrll   },
    402       1.1     skrll /* div0s $Ri */
    403       1.1     skrll   {
    404       1.1     skrll     { 0, 0, 0, 0 },
    405       1.1     skrll     { { MNEM, ' ', OP (RI), 0 } },
    406       1.1     skrll     & ifmt_div0s, { 0x9740 }
    407       1.1     skrll   },
    408       1.1     skrll /* div0u $Ri */
    409       1.1     skrll   {
    410       1.1     skrll     { 0, 0, 0, 0 },
    411       1.1     skrll     { { MNEM, ' ', OP (RI), 0 } },
    412       1.1     skrll     & ifmt_div0s, { 0x9750 }
    413       1.1     skrll   },
    414       1.1     skrll /* div1 $Ri */
    415       1.1     skrll   {
    416       1.1     skrll     { 0, 0, 0, 0 },
    417       1.1     skrll     { { MNEM, ' ', OP (RI), 0 } },
    418       1.1     skrll     & ifmt_div0s, { 0x9760 }
    419       1.1     skrll   },
    420       1.1     skrll /* div2 $Ri */
    421       1.1     skrll   {
    422       1.1     skrll     { 0, 0, 0, 0 },
    423       1.1     skrll     { { MNEM, ' ', OP (RI), 0 } },
    424       1.1     skrll     & ifmt_div0s, { 0x9770 }
    425       1.1     skrll   },
    426       1.1     skrll /* div3 */
    427       1.1     skrll   {
    428       1.1     skrll     { 0, 0, 0, 0 },
    429       1.1     skrll     { { MNEM, 0 } },
    430       1.1     skrll     & ifmt_div3, { 0x9f60 }
    431       1.1     skrll   },
    432       1.1     skrll /* div4s */
    433       1.1     skrll   {
    434       1.1     skrll     { 0, 0, 0, 0 },
    435       1.1     skrll     { { MNEM, 0 } },
    436       1.1     skrll     & ifmt_div3, { 0x9f70 }
    437       1.1     skrll   },
    438       1.1     skrll /* lsl $Rj,$Ri */
    439       1.1     skrll   {
    440       1.1     skrll     { 0, 0, 0, 0 },
    441       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    442       1.1     skrll     & ifmt_add, { 0xb600 }
    443       1.1     skrll   },
    444       1.1     skrll /* lsl $u4,$Ri */
    445       1.1     skrll   {
    446       1.1     skrll     { 0, 0, 0, 0 },
    447       1.1     skrll     { { MNEM, ' ', OP (U4), ',', OP (RI), 0 } },
    448       1.1     skrll     & ifmt_addi, { 0xb400 }
    449       1.1     skrll   },
    450       1.1     skrll /* lsl2 $u4,$Ri */
    451       1.1     skrll   {
    452       1.1     skrll     { 0, 0, 0, 0 },
    453       1.1     skrll     { { MNEM, ' ', OP (U4), ',', OP (RI), 0 } },
    454       1.1     skrll     & ifmt_addi, { 0xb500 }
    455       1.1     skrll   },
    456       1.1     skrll /* lsr $Rj,$Ri */
    457       1.1     skrll   {
    458       1.1     skrll     { 0, 0, 0, 0 },
    459       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    460       1.1     skrll     & ifmt_add, { 0xb200 }
    461       1.1     skrll   },
    462       1.1     skrll /* lsr $u4,$Ri */
    463       1.1     skrll   {
    464       1.1     skrll     { 0, 0, 0, 0 },
    465       1.1     skrll     { { MNEM, ' ', OP (U4), ',', OP (RI), 0 } },
    466       1.1     skrll     & ifmt_addi, { 0xb000 }
    467       1.1     skrll   },
    468       1.1     skrll /* lsr2 $u4,$Ri */
    469       1.1     skrll   {
    470       1.1     skrll     { 0, 0, 0, 0 },
    471       1.1     skrll     { { MNEM, ' ', OP (U4), ',', OP (RI), 0 } },
    472       1.1     skrll     & ifmt_addi, { 0xb100 }
    473       1.1     skrll   },
    474       1.1     skrll /* asr $Rj,$Ri */
    475       1.1     skrll   {
    476       1.1     skrll     { 0, 0, 0, 0 },
    477       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    478       1.1     skrll     & ifmt_add, { 0xba00 }
    479       1.1     skrll   },
    480       1.1     skrll /* asr $u4,$Ri */
    481       1.1     skrll   {
    482       1.1     skrll     { 0, 0, 0, 0 },
    483       1.1     skrll     { { MNEM, ' ', OP (U4), ',', OP (RI), 0 } },
    484       1.1     skrll     & ifmt_addi, { 0xb800 }
    485       1.1     skrll   },
    486       1.1     skrll /* asr2 $u4,$Ri */
    487       1.1     skrll   {
    488       1.1     skrll     { 0, 0, 0, 0 },
    489       1.1     skrll     { { MNEM, ' ', OP (U4), ',', OP (RI), 0 } },
    490       1.1     skrll     & ifmt_addi, { 0xb900 }
    491       1.1     skrll   },
    492       1.1     skrll /* ldi:8 $i8,$Ri */
    493       1.1     skrll   {
    494       1.1     skrll     { 0, 0, 0, 0 },
    495       1.1     skrll     { { MNEM, ' ', OP (I8), ',', OP (RI), 0 } },
    496       1.1     skrll     & ifmt_ldi8, { 0xc000 }
    497       1.1     skrll   },
    498       1.1     skrll /* ldi:20 $i20,$Ri */
    499       1.1     skrll   {
    500       1.1     skrll     { 0, 0, 0, 0 },
    501       1.1     skrll     { { MNEM, ' ', OP (I20), ',', OP (RI), 0 } },
    502       1.1     skrll     & ifmt_ldi20, { 0x9b00 }
    503       1.1     skrll   },
    504       1.1     skrll /* ldi:32 $i32,$Ri */
    505       1.1     skrll   {
    506       1.1     skrll     { 0, 0, 0, 0 },
    507       1.1     skrll     { { MNEM, ' ', OP (I32), ',', OP (RI), 0 } },
    508       1.1     skrll     & ifmt_ldi32, { 0x9f80 }
    509       1.1     skrll   },
    510       1.1     skrll /* ld @$Rj,$Ri */
    511       1.1     skrll   {
    512       1.1     skrll     { 0, 0, 0, 0 },
    513       1.1     skrll     { { MNEM, ' ', '@', OP (RJ), ',', OP (RI), 0 } },
    514       1.1     skrll     & ifmt_add, { 0x400 }
    515       1.1     skrll   },
    516       1.1     skrll /* lduh @$Rj,$Ri */
    517       1.1     skrll   {
    518       1.1     skrll     { 0, 0, 0, 0 },
    519       1.1     skrll     { { MNEM, ' ', '@', OP (RJ), ',', OP (RI), 0 } },
    520       1.1     skrll     & ifmt_add, { 0x500 }
    521       1.1     skrll   },
    522       1.1     skrll /* ldub @$Rj,$Ri */
    523       1.1     skrll   {
    524       1.1     skrll     { 0, 0, 0, 0 },
    525       1.1     skrll     { { MNEM, ' ', '@', OP (RJ), ',', OP (RI), 0 } },
    526       1.1     skrll     & ifmt_add, { 0x600 }
    527       1.1     skrll   },
    528       1.1     skrll /* ld @($R13,$Rj),$Ri */
    529       1.1     skrll   {
    530       1.1     skrll     { 0, 0, 0, 0 },
    531       1.1     skrll     { { MNEM, ' ', '@', '(', OP (R13), ',', OP (RJ), ')', ',', OP (RI), 0 } },
    532       1.1     skrll     & ifmt_add, { 0x0 }
    533       1.1     skrll   },
    534       1.1     skrll /* lduh @($R13,$Rj),$Ri */
    535       1.1     skrll   {
    536       1.1     skrll     { 0, 0, 0, 0 },
    537       1.1     skrll     { { MNEM, ' ', '@', '(', OP (R13), ',', OP (RJ), ')', ',', OP (RI), 0 } },
    538       1.1     skrll     & ifmt_add, { 0x100 }
    539       1.1     skrll   },
    540       1.1     skrll /* ldub @($R13,$Rj),$Ri */
    541       1.1     skrll   {
    542       1.1     skrll     { 0, 0, 0, 0 },
    543       1.1     skrll     { { MNEM, ' ', '@', '(', OP (R13), ',', OP (RJ), ')', ',', OP (RI), 0 } },
    544       1.1     skrll     & ifmt_add, { 0x200 }
    545       1.1     skrll   },
    546       1.1     skrll /* ld @($R14,$disp10),$Ri */
    547       1.1     skrll   {
    548       1.1     skrll     { 0, 0, 0, 0 },
    549       1.1     skrll     { { MNEM, ' ', '@', '(', OP (R14), ',', OP (DISP10), ')', ',', OP (RI), 0 } },
    550       1.1     skrll     & ifmt_ldr14, { 0x2000 }
    551       1.1     skrll   },
    552       1.1     skrll /* lduh @($R14,$disp9),$Ri */
    553       1.1     skrll   {
    554       1.1     skrll     { 0, 0, 0, 0 },
    555       1.1     skrll     { { MNEM, ' ', '@', '(', OP (R14), ',', OP (DISP9), ')', ',', OP (RI), 0 } },
    556       1.1     skrll     & ifmt_ldr14uh, { 0x4000 }
    557       1.1     skrll   },
    558       1.1     skrll /* ldub @($R14,$disp8),$Ri */
    559       1.1     skrll   {
    560       1.1     skrll     { 0, 0, 0, 0 },
    561       1.1     skrll     { { MNEM, ' ', '@', '(', OP (R14), ',', OP (DISP8), ')', ',', OP (RI), 0 } },
    562       1.1     skrll     & ifmt_ldr14ub, { 0x6000 }
    563       1.1     skrll   },
    564       1.1     skrll /* ld @($R15,$udisp6),$Ri */
    565       1.1     skrll   {
    566       1.1     skrll     { 0, 0, 0, 0 },
    567       1.1     skrll     { { MNEM, ' ', '@', '(', OP (R15), ',', OP (UDISP6), ')', ',', OP (RI), 0 } },
    568       1.1     skrll     & ifmt_ldr15, { 0x300 }
    569       1.1     skrll   },
    570       1.1     skrll /* ld @$R15+,$Ri */
    571       1.1     skrll   {
    572       1.1     skrll     { 0, 0, 0, 0 },
    573       1.1     skrll     { { MNEM, ' ', '@', OP (R15), '+', ',', OP (RI), 0 } },
    574       1.1     skrll     & ifmt_div0s, { 0x700 }
    575       1.1     skrll   },
    576       1.1     skrll /* ld @$R15+,$Rs2 */
    577       1.1     skrll   {
    578       1.1     skrll     { 0, 0, 0, 0 },
    579       1.1     skrll     { { MNEM, ' ', '@', OP (R15), '+', ',', OP (RS2), 0 } },
    580       1.1     skrll     & ifmt_ldr15dr, { 0x780 }
    581       1.1     skrll   },
    582       1.1     skrll /* ld @$R15+,$ps */
    583       1.1     skrll   {
    584       1.1     skrll     { 0, 0, 0, 0 },
    585       1.1     skrll     { { MNEM, ' ', '@', OP (R15), '+', ',', OP (PS), 0 } },
    586       1.1     skrll     & ifmt_div3, { 0x790 }
    587       1.1     skrll   },
    588       1.1     skrll /* st $Ri,@$Rj */
    589       1.1     skrll   {
    590       1.1     skrll     { 0, 0, 0, 0 },
    591       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', OP (RJ), 0 } },
    592       1.1     skrll     & ifmt_add, { 0x1400 }
    593       1.1     skrll   },
    594       1.1     skrll /* sth $Ri,@$Rj */
    595       1.1     skrll   {
    596       1.1     skrll     { 0, 0, 0, 0 },
    597       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', OP (RJ), 0 } },
    598       1.1     skrll     & ifmt_add, { 0x1500 }
    599       1.1     skrll   },
    600       1.1     skrll /* stb $Ri,@$Rj */
    601       1.1     skrll   {
    602       1.1     skrll     { 0, 0, 0, 0 },
    603       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', OP (RJ), 0 } },
    604       1.1     skrll     & ifmt_add, { 0x1600 }
    605       1.1     skrll   },
    606       1.1     skrll /* st $Ri,@($R13,$Rj) */
    607       1.1     skrll   {
    608       1.1     skrll     { 0, 0, 0, 0 },
    609       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', '(', OP (R13), ',', OP (RJ), ')', 0 } },
    610       1.1     skrll     & ifmt_add, { 0x1000 }
    611       1.1     skrll   },
    612       1.1     skrll /* sth $Ri,@($R13,$Rj) */
    613       1.1     skrll   {
    614       1.1     skrll     { 0, 0, 0, 0 },
    615       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', '(', OP (R13), ',', OP (RJ), ')', 0 } },
    616       1.1     skrll     & ifmt_add, { 0x1100 }
    617       1.1     skrll   },
    618       1.1     skrll /* stb $Ri,@($R13,$Rj) */
    619       1.1     skrll   {
    620       1.1     skrll     { 0, 0, 0, 0 },
    621       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', '(', OP (R13), ',', OP (RJ), ')', 0 } },
    622       1.1     skrll     & ifmt_add, { 0x1200 }
    623       1.1     skrll   },
    624       1.1     skrll /* st $Ri,@($R14,$disp10) */
    625       1.1     skrll   {
    626       1.1     skrll     { 0, 0, 0, 0 },
    627       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', '(', OP (R14), ',', OP (DISP10), ')', 0 } },
    628       1.1     skrll     & ifmt_ldr14, { 0x3000 }
    629       1.1     skrll   },
    630       1.1     skrll /* sth $Ri,@($R14,$disp9) */
    631       1.1     skrll   {
    632       1.1     skrll     { 0, 0, 0, 0 },
    633       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', '(', OP (R14), ',', OP (DISP9), ')', 0 } },
    634       1.1     skrll     & ifmt_ldr14uh, { 0x5000 }
    635       1.1     skrll   },
    636       1.1     skrll /* stb $Ri,@($R14,$disp8) */
    637       1.1     skrll   {
    638       1.1     skrll     { 0, 0, 0, 0 },
    639       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', '(', OP (R14), ',', OP (DISP8), ')', 0 } },
    640       1.1     skrll     & ifmt_ldr14ub, { 0x7000 }
    641       1.1     skrll   },
    642       1.1     skrll /* st $Ri,@($R15,$udisp6) */
    643       1.1     skrll   {
    644       1.1     skrll     { 0, 0, 0, 0 },
    645       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', '(', OP (R15), ',', OP (UDISP6), ')', 0 } },
    646       1.1     skrll     & ifmt_ldr15, { 0x1300 }
    647       1.1     skrll   },
    648       1.1     skrll /* st $Ri,@-$R15 */
    649       1.1     skrll   {
    650       1.1     skrll     { 0, 0, 0, 0 },
    651       1.1     skrll     { { MNEM, ' ', OP (RI), ',', '@', '-', OP (R15), 0 } },
    652       1.1     skrll     & ifmt_div0s, { 0x1700 }
    653       1.1     skrll   },
    654       1.1     skrll /* st $Rs2,@-$R15 */
    655       1.1     skrll   {
    656       1.1     skrll     { 0, 0, 0, 0 },
    657       1.1     skrll     { { MNEM, ' ', OP (RS2), ',', '@', '-', OP (R15), 0 } },
    658       1.1     skrll     & ifmt_ldr15dr, { 0x1780 }
    659       1.1     skrll   },
    660       1.1     skrll /* st $ps,@-$R15 */
    661       1.1     skrll   {
    662       1.1     skrll     { 0, 0, 0, 0 },
    663       1.1     skrll     { { MNEM, ' ', OP (PS), ',', '@', '-', OP (R15), 0 } },
    664       1.1     skrll     & ifmt_div3, { 0x1790 }
    665       1.1     skrll   },
    666       1.1     skrll /* mov $Rj,$Ri */
    667       1.1     skrll   {
    668       1.1     skrll     { 0, 0, 0, 0 },
    669       1.1     skrll     { { MNEM, ' ', OP (RJ), ',', OP (RI), 0 } },
    670       1.1     skrll     & ifmt_add, { 0x8b00 }
    671       1.1     skrll   },
    672       1.1     skrll /* mov $Rs1,$Ri */
    673       1.1     skrll   {
    674       1.1     skrll     { 0, 0, 0, 0 },
    675       1.1     skrll     { { MNEM, ' ', OP (RS1), ',', OP (RI), 0 } },
    676       1.1     skrll     & ifmt_movdr, { 0xb700 }
    677       1.1     skrll   },
    678       1.1     skrll /* mov $ps,$Ri */
    679       1.1     skrll   {
    680       1.1     skrll     { 0, 0, 0, 0 },
    681       1.1     skrll     { { MNEM, ' ', OP (PS), ',', OP (RI), 0 } },
    682       1.1     skrll     & ifmt_div0s, { 0x1710 }
    683       1.1     skrll   },
    684       1.1     skrll /* mov $Ri,$Rs1 */
    685       1.1     skrll   {
    686       1.1     skrll     { 0, 0, 0, 0 },
    687       1.1     skrll     { { MNEM, ' ', OP (RI), ',', OP (RS1), 0 } },
    688       1.1     skrll     & ifmt_movdr, { 0xb300 }
    689       1.1     skrll   },
    690       1.1     skrll /* mov $Ri,$ps */
    691       1.1     skrll   {
    692       1.1     skrll     { 0, 0, 0, 0 },
    693       1.1     skrll     { { MNEM, ' ', OP (RI), ',', OP (PS), 0 } },
    694       1.1     skrll     & ifmt_div0s, { 0x710 }
    695       1.1     skrll   },
    696       1.1     skrll /* jmp @$Ri */
    697       1.1     skrll   {
    698       1.1     skrll     { 0, 0, 0, 0 },
    699       1.1     skrll     { { MNEM, ' ', '@', OP (RI), 0 } },
    700       1.1     skrll     & ifmt_div0s, { 0x9700 }
    701       1.1     skrll   },
    702       1.1     skrll /* jmp:d @$Ri */
    703       1.1     skrll   {
    704       1.1     skrll     { 0, 0, 0, 0 },
    705       1.1     skrll     { { MNEM, ' ', '@', OP (RI), 0 } },
    706       1.1     skrll     & ifmt_div0s, { 0x9f00 }
    707       1.1     skrll   },
    708       1.1     skrll /* call @$Ri */
    709       1.1     skrll   {
    710       1.1     skrll     { 0, 0, 0, 0 },
    711       1.1     skrll     { { MNEM, ' ', '@', OP (RI), 0 } },
    712       1.1     skrll     & ifmt_div0s, { 0x9710 }
    713       1.1     skrll   },
    714       1.1     skrll /* call:d @$Ri */
    715       1.1     skrll   {
    716       1.1     skrll     { 0, 0, 0, 0 },
    717       1.1     skrll     { { MNEM, ' ', '@', OP (RI), 0 } },
    718       1.1     skrll     & ifmt_div0s, { 0x9f10 }
    719       1.1     skrll   },
    720       1.1     skrll /* call $label12 */
    721       1.1     skrll   {
    722       1.1     skrll     { 0, 0, 0, 0 },
    723       1.1     skrll     { { MNEM, ' ', OP (LABEL12), 0 } },
    724       1.1     skrll     & ifmt_call, { 0xd000 }
    725       1.1     skrll   },
    726       1.1     skrll /* call:d $label12 */
    727       1.1     skrll   {
    728       1.1     skrll     { 0, 0, 0, 0 },
    729       1.1     skrll     { { MNEM, ' ', OP (LABEL12), 0 } },
    730       1.1     skrll     & ifmt_call, { 0xd800 }
    731       1.1     skrll   },
    732       1.1     skrll /* ret */
    733       1.1     skrll   {
    734       1.1     skrll     { 0, 0, 0, 0 },
    735       1.1     skrll     { { MNEM, 0 } },
    736       1.1     skrll     & ifmt_div3, { 0x9720 }
    737       1.1     skrll   },
    738       1.1     skrll /* ret:d */
    739       1.1     skrll   {
    740       1.1     skrll     { 0, 0, 0, 0 },
    741       1.1     skrll     { { MNEM, 0 } },
    742       1.1     skrll     & ifmt_div3, { 0x9f20 }
    743       1.1     skrll   },
    744       1.1     skrll /* int $u8 */
    745       1.1     skrll   {
    746       1.1     skrll     { 0, 0, 0, 0 },
    747       1.1     skrll     { { MNEM, ' ', OP (U8), 0 } },
    748       1.1     skrll     & ifmt_int, { 0x1f00 }
    749       1.1     skrll   },
    750       1.1     skrll /* inte */
    751       1.1     skrll   {
    752       1.1     skrll     { 0, 0, 0, 0 },
    753       1.1     skrll     { { MNEM, 0 } },
    754       1.1     skrll     & ifmt_div3, { 0x9f30 }
    755       1.1     skrll   },
    756       1.1     skrll /* reti */
    757       1.1     skrll   {
    758       1.1     skrll     { 0, 0, 0, 0 },
    759       1.1     skrll     { { MNEM, 0 } },
    760       1.1     skrll     & ifmt_div3, { 0x9730 }
    761       1.1     skrll   },
    762       1.1     skrll /* bra:d $label9 */
    763       1.1     skrll   {
    764       1.1     skrll     { 0, 0, 0, 0 },
    765       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    766       1.1     skrll     & ifmt_brad, { 0xf000 }
    767       1.1     skrll   },
    768       1.1     skrll /* bra $label9 */
    769       1.1     skrll   {
    770       1.1     skrll     { 0, 0, 0, 0 },
    771       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    772       1.1     skrll     & ifmt_brad, { 0xe000 }
    773       1.1     skrll   },
    774       1.1     skrll /* bno:d $label9 */
    775       1.1     skrll   {
    776       1.1     skrll     { 0, 0, 0, 0 },
    777       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    778       1.1     skrll     & ifmt_brad, { 0xf100 }
    779       1.1     skrll   },
    780       1.1     skrll /* bno $label9 */
    781       1.1     skrll   {
    782       1.1     skrll     { 0, 0, 0, 0 },
    783       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    784       1.1     skrll     & ifmt_brad, { 0xe100 }
    785       1.1     skrll   },
    786       1.1     skrll /* beq:d $label9 */
    787       1.1     skrll   {
    788       1.1     skrll     { 0, 0, 0, 0 },
    789       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    790       1.1     skrll     & ifmt_brad, { 0xf200 }
    791       1.1     skrll   },
    792       1.1     skrll /* beq $label9 */
    793       1.1     skrll   {
    794       1.1     skrll     { 0, 0, 0, 0 },
    795       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    796       1.1     skrll     & ifmt_brad, { 0xe200 }
    797       1.1     skrll   },
    798       1.1     skrll /* bne:d $label9 */
    799       1.1     skrll   {
    800       1.1     skrll     { 0, 0, 0, 0 },
    801       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    802       1.1     skrll     & ifmt_brad, { 0xf300 }
    803       1.1     skrll   },
    804       1.1     skrll /* bne $label9 */
    805       1.1     skrll   {
    806       1.1     skrll     { 0, 0, 0, 0 },
    807       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    808       1.1     skrll     & ifmt_brad, { 0xe300 }
    809       1.1     skrll   },
    810       1.1     skrll /* bc:d $label9 */
    811       1.1     skrll   {
    812       1.1     skrll     { 0, 0, 0, 0 },
    813       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    814       1.1     skrll     & ifmt_brad, { 0xf400 }
    815       1.1     skrll   },
    816       1.1     skrll /* bc $label9 */
    817       1.1     skrll   {
    818       1.1     skrll     { 0, 0, 0, 0 },
    819       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    820       1.1     skrll     & ifmt_brad, { 0xe400 }
    821       1.1     skrll   },
    822       1.1     skrll /* bnc:d $label9 */
    823       1.1     skrll   {
    824       1.1     skrll     { 0, 0, 0, 0 },
    825       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    826       1.1     skrll     & ifmt_brad, { 0xf500 }
    827       1.1     skrll   },
    828       1.1     skrll /* bnc $label9 */
    829       1.1     skrll   {
    830       1.1     skrll     { 0, 0, 0, 0 },
    831       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    832       1.1     skrll     & ifmt_brad, { 0xe500 }
    833       1.1     skrll   },
    834       1.1     skrll /* bn:d $label9 */
    835       1.1     skrll   {
    836       1.1     skrll     { 0, 0, 0, 0 },
    837       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    838       1.1     skrll     & ifmt_brad, { 0xf600 }
    839       1.1     skrll   },
    840       1.1     skrll /* bn $label9 */
    841       1.1     skrll   {
    842       1.1     skrll     { 0, 0, 0, 0 },
    843       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    844       1.1     skrll     & ifmt_brad, { 0xe600 }
    845       1.1     skrll   },
    846       1.1     skrll /* bp:d $label9 */
    847       1.1     skrll   {
    848       1.1     skrll     { 0, 0, 0, 0 },
    849       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    850       1.1     skrll     & ifmt_brad, { 0xf700 }
    851       1.1     skrll   },
    852       1.1     skrll /* bp $label9 */
    853       1.1     skrll   {
    854       1.1     skrll     { 0, 0, 0, 0 },
    855       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    856       1.1     skrll     & ifmt_brad, { 0xe700 }
    857       1.1     skrll   },
    858       1.1     skrll /* bv:d $label9 */
    859       1.1     skrll   {
    860       1.1     skrll     { 0, 0, 0, 0 },
    861       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    862       1.1     skrll     & ifmt_brad, { 0xf800 }
    863       1.1     skrll   },
    864       1.1     skrll /* bv $label9 */
    865       1.1     skrll   {
    866       1.1     skrll     { 0, 0, 0, 0 },
    867       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    868       1.1     skrll     & ifmt_brad, { 0xe800 }
    869       1.1     skrll   },
    870       1.1     skrll /* bnv:d $label9 */
    871       1.1     skrll   {
    872       1.1     skrll     { 0, 0, 0, 0 },
    873       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    874       1.1     skrll     & ifmt_brad, { 0xf900 }
    875       1.1     skrll   },
    876       1.1     skrll /* bnv $label9 */
    877       1.1     skrll   {
    878       1.1     skrll     { 0, 0, 0, 0 },
    879       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    880       1.1     skrll     & ifmt_brad, { 0xe900 }
    881       1.1     skrll   },
    882       1.1     skrll /* blt:d $label9 */
    883       1.1     skrll   {
    884       1.1     skrll     { 0, 0, 0, 0 },
    885       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    886       1.1     skrll     & ifmt_brad, { 0xfa00 }
    887       1.1     skrll   },
    888       1.1     skrll /* blt $label9 */
    889       1.1     skrll   {
    890       1.1     skrll     { 0, 0, 0, 0 },
    891       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    892       1.1     skrll     & ifmt_brad, { 0xea00 }
    893       1.1     skrll   },
    894       1.1     skrll /* bge:d $label9 */
    895       1.1     skrll   {
    896       1.1     skrll     { 0, 0, 0, 0 },
    897       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    898       1.1     skrll     & ifmt_brad, { 0xfb00 }
    899       1.1     skrll   },
    900       1.1     skrll /* bge $label9 */
    901       1.1     skrll   {
    902       1.1     skrll     { 0, 0, 0, 0 },
    903       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    904       1.1     skrll     & ifmt_brad, { 0xeb00 }
    905       1.1     skrll   },
    906       1.1     skrll /* ble:d $label9 */
    907       1.1     skrll   {
    908       1.1     skrll     { 0, 0, 0, 0 },
    909       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    910       1.1     skrll     & ifmt_brad, { 0xfc00 }
    911       1.1     skrll   },
    912       1.1     skrll /* ble $label9 */
    913       1.1     skrll   {
    914       1.1     skrll     { 0, 0, 0, 0 },
    915       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    916       1.1     skrll     & ifmt_brad, { 0xec00 }
    917       1.1     skrll   },
    918       1.1     skrll /* bgt:d $label9 */
    919       1.1     skrll   {
    920       1.1     skrll     { 0, 0, 0, 0 },
    921       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    922       1.1     skrll     & ifmt_brad, { 0xfd00 }
    923       1.1     skrll   },
    924       1.1     skrll /* bgt $label9 */
    925       1.1     skrll   {
    926       1.1     skrll     { 0, 0, 0, 0 },
    927       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    928       1.1     skrll     & ifmt_brad, { 0xed00 }
    929       1.1     skrll   },
    930       1.1     skrll /* bls:d $label9 */
    931       1.1     skrll   {
    932       1.1     skrll     { 0, 0, 0, 0 },
    933       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    934       1.1     skrll     & ifmt_brad, { 0xfe00 }
    935       1.1     skrll   },
    936       1.1     skrll /* bls $label9 */
    937       1.1     skrll   {
    938       1.1     skrll     { 0, 0, 0, 0 },
    939       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    940       1.1     skrll     & ifmt_brad, { 0xee00 }
    941       1.1     skrll   },
    942       1.1     skrll /* bhi:d $label9 */
    943       1.1     skrll   {
    944       1.1     skrll     { 0, 0, 0, 0 },
    945       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    946       1.1     skrll     & ifmt_brad, { 0xff00 }
    947       1.1     skrll   },
    948       1.1     skrll /* bhi $label9 */
    949       1.1     skrll   {
    950       1.1     skrll     { 0, 0, 0, 0 },
    951       1.1     skrll     { { MNEM, ' ', OP (LABEL9), 0 } },
    952       1.1     skrll     & ifmt_brad, { 0xef00 }
    953       1.1     skrll   },
    954       1.1     skrll /* dmov $R13,@$dir10 */
    955       1.1     skrll   {
    956       1.1     skrll     { 0, 0, 0, 0 },
    957       1.1     skrll     { { MNEM, ' ', OP (R13), ',', '@', OP (DIR10), 0 } },
    958       1.1     skrll     & ifmt_dmovr13, { 0x1800 }
    959       1.1     skrll   },
    960       1.1     skrll /* dmovh $R13,@$dir9 */
    961       1.1     skrll   {
    962       1.1     skrll     { 0, 0, 0, 0 },
    963       1.1     skrll     { { MNEM, ' ', OP (R13), ',', '@', OP (DIR9), 0 } },
    964       1.1     skrll     & ifmt_dmovr13h, { 0x1900 }
    965       1.1     skrll   },
    966       1.1     skrll /* dmovb $R13,@$dir8 */
    967       1.1     skrll   {
    968       1.1     skrll     { 0, 0, 0, 0 },
    969       1.1     skrll     { { MNEM, ' ', OP (R13), ',', '@', OP (DIR8), 0 } },
    970       1.1     skrll     & ifmt_dmovr13b, { 0x1a00 }
    971       1.1     skrll   },
    972       1.1     skrll /* dmov @$R13+,@$dir10 */
    973       1.1     skrll   {
    974       1.1     skrll     { 0, 0, 0, 0 },
    975       1.1     skrll     { { MNEM, ' ', '@', OP (R13), '+', ',', '@', OP (DIR10), 0 } },
    976       1.1     skrll     & ifmt_dmovr13, { 0x1c00 }
    977       1.1     skrll   },
    978       1.1     skrll /* dmovh @$R13+,@$dir9 */
    979       1.1     skrll   {
    980       1.1     skrll     { 0, 0, 0, 0 },
    981       1.1     skrll     { { MNEM, ' ', '@', OP (R13), '+', ',', '@', OP (DIR9), 0 } },
    982       1.1     skrll     & ifmt_dmovr13h, { 0x1d00 }
    983       1.1     skrll   },
    984       1.1     skrll /* dmovb @$R13+,@$dir8 */
    985       1.1     skrll   {
    986       1.1     skrll     { 0, 0, 0, 0 },
    987       1.1     skrll     { { MNEM, ' ', '@', OP (R13), '+', ',', '@', OP (DIR8), 0 } },
    988       1.1     skrll     & ifmt_dmovr13b, { 0x1e00 }
    989       1.1     skrll   },
    990       1.1     skrll /* dmov @$R15+,@$dir10 */
    991       1.1     skrll   {
    992       1.1     skrll     { 0, 0, 0, 0 },
    993       1.1     skrll     { { MNEM, ' ', '@', OP (R15), '+', ',', '@', OP (DIR10), 0 } },
    994       1.1     skrll     & ifmt_dmovr13, { 0x1b00 }
    995       1.1     skrll   },
    996       1.1     skrll /* dmov @$dir10,$R13 */
    997       1.1     skrll   {
    998       1.1     skrll     { 0, 0, 0, 0 },
    999       1.1     skrll     { { MNEM, ' ', '@', OP (DIR10), ',', OP (R13), 0 } },
   1000       1.1     skrll     & ifmt_dmovr13, { 0x800 }
   1001       1.1     skrll   },
   1002       1.1     skrll /* dmovh @$dir9,$R13 */
   1003       1.1     skrll   {
   1004       1.1     skrll     { 0, 0, 0, 0 },
   1005       1.1     skrll     { { MNEM, ' ', '@', OP (DIR9), ',', OP (R13), 0 } },
   1006       1.1     skrll     & ifmt_dmovr13h, { 0x900 }
   1007       1.1     skrll   },
   1008       1.1     skrll /* dmovb @$dir8,$R13 */
   1009       1.1     skrll   {
   1010       1.1     skrll     { 0, 0, 0, 0 },
   1011       1.1     skrll     { { MNEM, ' ', '@', OP (DIR8), ',', OP (R13), 0 } },
   1012       1.1     skrll     & ifmt_dmovr13b, { 0xa00 }
   1013       1.1     skrll   },
   1014       1.1     skrll /* dmov @$dir10,@$R13+ */
   1015       1.1     skrll   {
   1016       1.1     skrll     { 0, 0, 0, 0 },
   1017       1.1     skrll     { { MNEM, ' ', '@', OP (DIR10), ',', '@', OP (R13), '+', 0 } },
   1018       1.1     skrll     & ifmt_dmovr13, { 0xc00 }
   1019       1.1     skrll   },
   1020       1.1     skrll /* dmovh @$dir9,@$R13+ */
   1021       1.1     skrll   {
   1022       1.1     skrll     { 0, 0, 0, 0 },
   1023       1.1     skrll     { { MNEM, ' ', '@', OP (DIR9), ',', '@', OP (R13), '+', 0 } },
   1024       1.1     skrll     & ifmt_dmovr13h, { 0xd00 }
   1025       1.1     skrll   },
   1026       1.1     skrll /* dmovb @$dir8,@$R13+ */
   1027       1.1     skrll   {
   1028       1.1     skrll     { 0, 0, 0, 0 },
   1029       1.1     skrll     { { MNEM, ' ', '@', OP (DIR8), ',', '@', OP (R13), '+', 0 } },
   1030       1.1     skrll     & ifmt_dmovr13b, { 0xe00 }
   1031       1.1     skrll   },
   1032       1.1     skrll /* dmov @$dir10,@-$R15 */
   1033       1.1     skrll   {
   1034       1.1     skrll     { 0, 0, 0, 0 },
   1035       1.1     skrll     { { MNEM, ' ', '@', OP (DIR10), ',', '@', '-', OP (R15), 0 } },
   1036       1.1     skrll     & ifmt_dmovr13, { 0xb00 }
   1037       1.1     skrll   },
   1038       1.1     skrll /* ldres @$Ri+,$u4 */
   1039       1.1     skrll   {
   1040       1.1     skrll     { 0, 0, 0, 0 },
   1041       1.1     skrll     { { MNEM, ' ', '@', OP (RI), '+', ',', OP (U4), 0 } },
   1042       1.1     skrll     & ifmt_addi, { 0xbc00 }
   1043       1.1     skrll   },
   1044       1.1     skrll /* stres $u4,@$Ri+ */
   1045       1.1     skrll   {
   1046       1.1     skrll     { 0, 0, 0, 0 },
   1047       1.1     skrll     { { MNEM, ' ', OP (U4), ',', '@', OP (RI), '+', 0 } },
   1048       1.1     skrll     & ifmt_addi, { 0xbd00 }
   1049       1.1     skrll   },
   1050       1.1     skrll /* copop $u4c,$ccc,$CRj,$CRi */
   1051       1.1     skrll   {
   1052       1.1     skrll     { 0, 0, 0, 0 },
   1053       1.1     skrll     { { MNEM, ' ', OP (U4C), ',', OP (CCC), ',', OP (CRJ), ',', OP (CRI), 0 } },
   1054       1.1     skrll     & ifmt_copop, { 0x9fc0 }
   1055       1.1     skrll   },
   1056       1.1     skrll /* copld $u4c,$ccc,$Rjc,$CRi */
   1057       1.1     skrll   {
   1058       1.1     skrll     { 0, 0, 0, 0 },
   1059       1.1     skrll     { { MNEM, ' ', OP (U4C), ',', OP (CCC), ',', OP (RJC), ',', OP (CRI), 0 } },
   1060       1.1     skrll     & ifmt_copld, { 0x9fd0 }
   1061       1.1     skrll   },
   1062       1.1     skrll /* copst $u4c,$ccc,$CRj,$Ric */
   1063       1.1     skrll   {
   1064       1.1     skrll     { 0, 0, 0, 0 },
   1065       1.1     skrll     { { MNEM, ' ', OP (U4C), ',', OP (CCC), ',', OP (CRJ), ',', OP (RIC), 0 } },
   1066       1.1     skrll     & ifmt_copst, { 0x9fe0 }
   1067       1.1     skrll   },
   1068       1.1     skrll /* copsv $u4c,$ccc,$CRj,$Ric */
   1069       1.1     skrll   {
   1070       1.1     skrll     { 0, 0, 0, 0 },
   1071       1.1     skrll     { { MNEM, ' ', OP (U4C), ',', OP (CCC), ',', OP (CRJ), ',', OP (RIC), 0 } },
   1072       1.1     skrll     & ifmt_copst, { 0x9ff0 }
   1073       1.1     skrll   },
   1074       1.1     skrll /* nop */
   1075       1.1     skrll   {
   1076       1.1     skrll     { 0, 0, 0, 0 },
   1077       1.1     skrll     { { MNEM, 0 } },
   1078       1.1     skrll     & ifmt_div3, { 0x9fa0 }
   1079       1.1     skrll   },
   1080       1.1     skrll /* andccr $u8 */
   1081       1.1     skrll   {
   1082       1.1     skrll     { 0, 0, 0, 0 },
   1083       1.1     skrll     { { MNEM, ' ', OP (U8), 0 } },
   1084       1.1     skrll     & ifmt_int, { 0x8300 }
   1085       1.1     skrll   },
   1086       1.1     skrll /* orccr $u8 */
   1087       1.1     skrll   {
   1088       1.1     skrll     { 0, 0, 0, 0 },
   1089       1.1     skrll     { { MNEM, ' ', OP (U8), 0 } },
   1090       1.1     skrll     & ifmt_int, { 0x9300 }
   1091       1.1     skrll   },
   1092       1.1     skrll /* stilm $u8 */
   1093       1.1     skrll   {
   1094       1.1     skrll     { 0, 0, 0, 0 },
   1095       1.1     skrll     { { MNEM, ' ', OP (U8), 0 } },
   1096       1.1     skrll     & ifmt_int, { 0x8700 }
   1097       1.1     skrll   },
   1098       1.1     skrll /* addsp $s10 */
   1099       1.1     skrll   {
   1100       1.1     skrll     { 0, 0, 0, 0 },
   1101       1.1     skrll     { { MNEM, ' ', OP (S10), 0 } },
   1102       1.1     skrll     & ifmt_addsp, { 0xa300 }
   1103       1.1     skrll   },
   1104       1.1     skrll /* extsb $Ri */
   1105       1.1     skrll   {
   1106       1.1     skrll     { 0, 0, 0, 0 },
   1107       1.1     skrll     { { MNEM, ' ', OP (RI), 0 } },
   1108       1.1     skrll     & ifmt_div0s, { 0x9780 }
   1109       1.1     skrll   },
   1110       1.1     skrll /* extub $Ri */
   1111       1.1     skrll   {
   1112       1.1     skrll     { 0, 0, 0, 0 },
   1113       1.1     skrll     { { MNEM, ' ', OP (RI), 0 } },
   1114       1.1     skrll     & ifmt_div0s, { 0x9790 }
   1115       1.1     skrll   },
   1116       1.1     skrll /* extsh $Ri */
   1117       1.1     skrll   {
   1118       1.1     skrll     { 0, 0, 0, 0 },
   1119       1.1     skrll     { { MNEM, ' ', OP (RI), 0 } },
   1120       1.1     skrll     & ifmt_div0s, { 0x97a0 }
   1121       1.1     skrll   },
   1122       1.1     skrll /* extuh $Ri */
   1123       1.1     skrll   {
   1124       1.1     skrll     { 0, 0, 0, 0 },
   1125       1.1     skrll     { { MNEM, ' ', OP (RI), 0 } },
   1126       1.1     skrll     & ifmt_div0s, { 0x97b0 }
   1127       1.1     skrll   },
   1128       1.1     skrll /* ldm0 ($reglist_low_ld) */
   1129       1.1     skrll   {
   1130       1.1     skrll     { 0, 0, 0, 0 },
   1131       1.1     skrll     { { MNEM, ' ', '(', OP (REGLIST_LOW_LD), ')', 0 } },
   1132       1.1     skrll     & ifmt_ldm0, { 0x8c00 }
   1133       1.1     skrll   },
   1134       1.1     skrll /* ldm1 ($reglist_hi_ld) */
   1135       1.1     skrll   {
   1136       1.1     skrll     { 0, 0, 0, 0 },
   1137       1.1     skrll     { { MNEM, ' ', '(', OP (REGLIST_HI_LD), ')', 0 } },
   1138       1.1     skrll     & ifmt_ldm1, { 0x8d00 }
   1139       1.1     skrll   },
   1140       1.1     skrll /* stm0 ($reglist_low_st) */
   1141       1.1     skrll   {
   1142       1.1     skrll     { 0, 0, 0, 0 },
   1143       1.1     skrll     { { MNEM, ' ', '(', OP (REGLIST_LOW_ST), ')', 0 } },
   1144       1.1     skrll     & ifmt_stm0, { 0x8e00 }
   1145       1.1     skrll   },
   1146       1.1     skrll /* stm1 ($reglist_hi_st) */
   1147       1.1     skrll   {
   1148       1.1     skrll     { 0, 0, 0, 0 },
   1149       1.1     skrll     { { MNEM, ' ', '(', OP (REGLIST_HI_ST), ')', 0 } },
   1150       1.1     skrll     & ifmt_stm1, { 0x8f00 }
   1151       1.1     skrll   },
   1152       1.1     skrll /* enter $u10 */
   1153       1.1     skrll   {
   1154       1.1     skrll     { 0, 0, 0, 0 },
   1155       1.1     skrll     { { MNEM, ' ', OP (U10), 0 } },
   1156       1.1     skrll     & ifmt_enter, { 0xf00 }
   1157       1.1     skrll   },
   1158       1.1     skrll /* leave */
   1159       1.1     skrll   {
   1160       1.1     skrll     { 0, 0, 0, 0 },
   1161       1.1     skrll     { { MNEM, 0 } },
   1162       1.1     skrll     & ifmt_div3, { 0x9f90 }
   1163       1.1     skrll   },
   1164       1.1     skrll /* xchb @$Rj,$Ri */
   1165       1.1     skrll   {
   1166       1.1     skrll     { 0, 0, 0, 0 },
   1167       1.1     skrll     { { MNEM, ' ', '@', OP (RJ), ',', OP (RI), 0 } },
   1168       1.1     skrll     & ifmt_add, { 0x8a00 }
   1169       1.1     skrll   },
   1170       1.1     skrll };
   1171       1.1     skrll 
   1172       1.1     skrll #undef A
   1173       1.1     skrll #undef OPERAND
   1174       1.1     skrll #undef MNEM
   1175       1.1     skrll #undef OP
   1176       1.1     skrll 
   1177       1.1     skrll /* Formats for ALIAS macro-insns.  */
   1178       1.1     skrll 
   1179       1.1     skrll #define F(f) & fr30_cgen_ifld_table[FR30_##f]
   1180       1.1     skrll static const CGEN_IFMT ifmt_ldi8m ATTRIBUTE_UNUSED = {
   1181       1.1     skrll   16, 16, 0xf000, { { F (F_OP1) }, { F (F_I8) }, { F (F_RI) }, { 0 } }
   1182       1.1     skrll };
   1183       1.1     skrll 
   1184       1.1     skrll static const CGEN_IFMT ifmt_ldi20m ATTRIBUTE_UNUSED = {
   1185       1.1     skrll   16, 32, 0xff00, { { F (F_OP1) }, { F (F_OP2) }, { F (F_RI) }, { F (F_I20) }, { 0 } }
   1186       1.1     skrll };
   1187       1.1     skrll 
   1188       1.1     skrll static const CGEN_IFMT ifmt_ldi32m ATTRIBUTE_UNUSED = {
   1189       1.1     skrll   16, 48, 0xfff0, { { F (F_OP1) }, { F (F_OP2) }, { F (F_OP3) }, { F (F_RI) }, { F (F_I32) }, { 0 } }
   1190       1.1     skrll };
   1191       1.1     skrll 
   1192       1.1     skrll #undef F
   1193       1.1     skrll 
   1194       1.1     skrll /* Each non-simple macro entry points to an array of expansion possibilities.  */
   1195       1.1     skrll 
   1196       1.1     skrll #define A(a) (1 << CGEN_INSN_##a)
   1197       1.1     skrll #define OPERAND(op) FR30_OPERAND_##op
   1198       1.1     skrll #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
   1199       1.1     skrll #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
   1200       1.1     skrll 
   1201       1.1     skrll /* The macro instruction table.  */
   1202       1.1     skrll 
   1203       1.1     skrll static const CGEN_IBASE fr30_cgen_macro_insn_table[] =
   1204       1.1     skrll {
   1205       1.1     skrll /* ldi8 $i8,$Ri */
   1206       1.1     skrll   {
   1207       1.1     skrll     -1, "ldi8m", "ldi8", 16,
   1208       1.1     skrll     { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   1209       1.1     skrll   },
   1210       1.1     skrll /* ldi20 $i20,$Ri */
   1211       1.1     skrll   {
   1212       1.1     skrll     -1, "ldi20m", "ldi20", 32,
   1213       1.1     skrll     { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   1214       1.1     skrll   },
   1215       1.1     skrll /* ldi32 $i32,$Ri */
   1216       1.1     skrll   {
   1217       1.1     skrll     -1, "ldi32m", "ldi32", 48,
   1218       1.1     skrll     { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   1219       1.1     skrll   },
   1220       1.1     skrll };
   1221       1.1     skrll 
   1222       1.1     skrll /* The macro instruction opcode table.  */
   1223       1.1     skrll 
   1224       1.1     skrll static const CGEN_OPCODE fr30_cgen_macro_insn_opcode_table[] =
   1225       1.1     skrll {
   1226       1.1     skrll /* ldi8 $i8,$Ri */
   1227       1.1     skrll   {
   1228       1.1     skrll     { 0, 0, 0, 0 },
   1229       1.1     skrll     { { MNEM, ' ', OP (I8), ',', OP (RI), 0 } },
   1230       1.1     skrll     & ifmt_ldi8m, { 0xc000 }
   1231       1.1     skrll   },
   1232       1.1     skrll /* ldi20 $i20,$Ri */
   1233       1.1     skrll   {
   1234       1.1     skrll     { 0, 0, 0, 0 },
   1235       1.1     skrll     { { MNEM, ' ', OP (I20), ',', OP (RI), 0 } },
   1236       1.1     skrll     & ifmt_ldi20m, { 0x9b00 }
   1237       1.1     skrll   },
   1238       1.1     skrll /* ldi32 $i32,$Ri */
   1239       1.1     skrll   {
   1240       1.1     skrll     { 0, 0, 0, 0 },
   1241       1.1     skrll     { { MNEM, ' ', OP (I32), ',', OP (RI), 0 } },
   1242       1.1     skrll     & ifmt_ldi32m, { 0x9f80 }
   1243       1.1     skrll   },
   1244       1.1     skrll };
   1245       1.1     skrll 
   1246       1.1     skrll #undef A
   1247       1.1     skrll #undef OPERAND
   1248       1.1     skrll #undef MNEM
   1249       1.1     skrll #undef OP
   1250       1.1     skrll 
   1251       1.1     skrll #ifndef CGEN_ASM_HASH_P
   1252       1.1     skrll #define CGEN_ASM_HASH_P(insn) 1
   1253       1.1     skrll #endif
   1254       1.1     skrll 
   1255       1.1     skrll #ifndef CGEN_DIS_HASH_P
   1256       1.1     skrll #define CGEN_DIS_HASH_P(insn) 1
   1257       1.1     skrll #endif
   1258       1.1     skrll 
   1259       1.1     skrll /* Return non-zero if INSN is to be added to the hash table.
   1260       1.1     skrll    Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file.  */
   1261       1.1     skrll 
   1262       1.1     skrll static int
   1263   1.1.1.4  christos asm_hash_insn_p (const CGEN_INSN *insn ATTRIBUTE_UNUSED)
   1264       1.1     skrll {
   1265       1.1     skrll   return CGEN_ASM_HASH_P (insn);
   1266       1.1     skrll }
   1267       1.1     skrll 
   1268       1.1     skrll static int
   1269   1.1.1.4  christos dis_hash_insn_p (const CGEN_INSN *insn)
   1270       1.1     skrll {
   1271       1.1     skrll   /* If building the hash table and the NO-DIS attribute is present,
   1272       1.1     skrll      ignore.  */
   1273       1.1     skrll   if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
   1274       1.1     skrll     return 0;
   1275       1.1     skrll   return CGEN_DIS_HASH_P (insn);
   1276       1.1     skrll }
   1277       1.1     skrll 
   1278       1.1     skrll #ifndef CGEN_ASM_HASH
   1279       1.1     skrll #define CGEN_ASM_HASH_SIZE 127
   1280       1.1     skrll #ifdef CGEN_MNEMONIC_OPERANDS
   1281       1.1     skrll #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
   1282       1.1     skrll #else
   1283       1.1     skrll #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
   1284       1.1     skrll #endif
   1285       1.1     skrll #endif
   1286       1.1     skrll 
   1287       1.1     skrll /* It doesn't make much sense to provide a default here,
   1288       1.1     skrll    but while this is under development we do.
   1289       1.1     skrll    BUFFER is a pointer to the bytes of the insn, target order.
   1290       1.1     skrll    VALUE is the first base_insn_bitsize bits as an int in host order.  */
   1291       1.1     skrll 
   1292       1.1     skrll #ifndef CGEN_DIS_HASH
   1293       1.1     skrll #define CGEN_DIS_HASH_SIZE 256
   1294       1.1     skrll #define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
   1295       1.1     skrll #endif
   1296       1.1     skrll 
   1297       1.1     skrll /* The result is the hash value of the insn.
   1298       1.1     skrll    Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file.  */
   1299       1.1     skrll 
   1300       1.1     skrll static unsigned int
   1301   1.1.1.4  christos asm_hash_insn (const char *mnem)
   1302       1.1     skrll {
   1303       1.1     skrll   return CGEN_ASM_HASH (mnem);
   1304       1.1     skrll }
   1305       1.1     skrll 
   1306       1.1     skrll /* BUF is a pointer to the bytes of the insn, target order.
   1307       1.1     skrll    VALUE is the first base_insn_bitsize bits as an int in host order.  */
   1308       1.1     skrll 
   1309       1.1     skrll static unsigned int
   1310   1.1.1.4  christos dis_hash_insn (const char *buf ATTRIBUTE_UNUSED,
   1311   1.1.1.4  christos 		     CGEN_INSN_INT value ATTRIBUTE_UNUSED)
   1312       1.1     skrll {
   1313       1.1     skrll   return CGEN_DIS_HASH (buf, value);
   1314       1.1     skrll }
   1315       1.1     skrll 
   1316       1.1     skrll /* Set the recorded length of the insn in the CGEN_FIELDS struct.  */
   1317       1.1     skrll 
   1318       1.1     skrll static void
   1319       1.1     skrll set_fields_bitsize (CGEN_FIELDS *fields, int size)
   1320       1.1     skrll {
   1321       1.1     skrll   CGEN_FIELDS_BITSIZE (fields) = size;
   1322       1.1     skrll }
   1323       1.1     skrll 
   1324       1.1     skrll /* Function to call before using the operand instance table.
   1325       1.1     skrll    This plugs the opcode entries and macro instructions into the cpu table.  */
   1326       1.1     skrll 
   1327       1.1     skrll void
   1328       1.1     skrll fr30_cgen_init_opcode_table (CGEN_CPU_DESC cd)
   1329       1.1     skrll {
   1330       1.1     skrll   int i;
   1331       1.1     skrll   int num_macros = (sizeof (fr30_cgen_macro_insn_table) /
   1332       1.1     skrll 		    sizeof (fr30_cgen_macro_insn_table[0]));
   1333       1.1     skrll   const CGEN_IBASE *ib = & fr30_cgen_macro_insn_table[0];
   1334       1.1     skrll   const CGEN_OPCODE *oc = & fr30_cgen_macro_insn_opcode_table[0];
   1335       1.1     skrll   CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));
   1336       1.1     skrll 
   1337   1.1.1.2  christos   /* This test has been added to avoid a warning generated
   1338   1.1.1.2  christos      if memset is called with a third argument of value zero.  */
   1339   1.1.1.2  christos   if (num_macros >= 1)
   1340   1.1.1.2  christos     memset (insns, 0, num_macros * sizeof (CGEN_INSN));
   1341       1.1     skrll   for (i = 0; i < num_macros; ++i)
   1342       1.1     skrll     {
   1343       1.1     skrll       insns[i].base = &ib[i];
   1344       1.1     skrll       insns[i].opcode = &oc[i];
   1345       1.1     skrll       fr30_cgen_build_insn_regex (& insns[i]);
   1346       1.1     skrll     }
   1347       1.1     skrll   cd->macro_insn_table.init_entries = insns;
   1348       1.1     skrll   cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
   1349       1.1     skrll   cd->macro_insn_table.num_init_entries = num_macros;
   1350       1.1     skrll 
   1351       1.1     skrll   oc = & fr30_cgen_insn_opcode_table[0];
   1352       1.1     skrll   insns = (CGEN_INSN *) cd->insn_table.init_entries;
   1353       1.1     skrll   for (i = 0; i < MAX_INSNS; ++i)
   1354       1.1     skrll     {
   1355       1.1     skrll       insns[i].opcode = &oc[i];
   1356       1.1     skrll       fr30_cgen_build_insn_regex (& insns[i]);
   1357       1.1     skrll     }
   1358       1.1     skrll 
   1359       1.1     skrll   cd->sizeof_fields = sizeof (CGEN_FIELDS);
   1360       1.1     skrll   cd->set_fields_bitsize = set_fields_bitsize;
   1361       1.1     skrll 
   1362       1.1     skrll   cd->asm_hash_p = asm_hash_insn_p;
   1363       1.1     skrll   cd->asm_hash = asm_hash_insn;
   1364       1.1     skrll   cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
   1365       1.1     skrll 
   1366       1.1     skrll   cd->dis_hash_p = dis_hash_insn_p;
   1367       1.1     skrll   cd->dis_hash = dis_hash_insn;
   1368       1.1     skrll   cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
   1369       1.1     skrll }
   1370