Ignore:
Timestamp:
Aug 16, 2003, 6:59:22 PM (22 years ago)
Author:
bird
Message:

binutils v2.14 - offical sources.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/GNU/src/binutils/opcodes/z8kgen.c

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.1.1.2
    r608 r609  
    1 /*
    2   Copyright 2001 Free Software Foundation, Inc.
    3 
    4   This file is part of GNU Binutils.
    5 
    6   This program is free software; you can redistribute it and/or modify
    7   it under the terms of the GNU General Public License as published by
    8   the Free Software Foundation; either version 2 of the License, or
    9   (at your option) any later version.
    10 
    11   This program is distributed in the hope that it will be useful,
    12   but WITHOUT ANY WARRANTY; without even the implied warranty of
    13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    14   GNU General Public License for more details.
    15 
    16   You should have received a copy of the GNU General Public License
    17   along with this program; if not, write to the Free Software
    18   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
    19 
    20 /* This program generates z8k-opc.h */
    21 
     1/* Copyright 2001, 2002 Free Software Foundation, Inc.
     2
     3   This file is part of GNU Binutils.
     4
     5   This program is free software; you can redistribute it and/or modify
     6   it under the terms of the GNU General Public License as published by
     7   the Free Software Foundation; either version 2 of the License, or
     8   (at your option) any later version.
     9
     10   This program is distributed in the hope that it will be useful,
     11   but WITHOUT ANY WARRANTY; without even the implied warranty of
     12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13   GNU General Public License for more details.
     14
     15   You should have received a copy of the GNU General Public License
     16   along with this program; if not, write to the Free Software
     17   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
     18   USA.  */
     19
     20/* This program generates z8k-opc.h.  */
     21
     22#include <stdio.h>
    2223#include "sysdep.h"
     24#include "libiberty.h"
    2325
    2426#define BYTE_INFO_LEN 10
     
    3739struct op opt[] =
    3840{
    39   "------", 10, 8, "0000 1110 imm8", "ext0e imm8", 0,
    40   "------", 10, 8, "0000 1111 imm8", "ext0f imm8", 0,
    41   "------", 10, 8, "1000 1110 imm8", "ext8e imm8", 0,
    42   "------", 10, 8, "1000 1111 imm8", "ext8f imm8", 0,
    43 
    44   "------", 10, 8, "0011 0110 imm8", "rsvd36", 0,
    45   "------", 10, 8, "0011 1000 imm8", "rsvd38", 0,
    46   "------", 10, 8, "0111 1000 imm8", "rsvd78", 0,
    47   "------", 10, 8, "0111 1110 imm8", "rsvd7e", 0,
    48 
    49   "------", 10, 8, "1001 1101 imm8", "rsvd9d", 0,
    50   "------", 10, 8, "1001 1111 imm8", "rsvd9f", 0,
    51 
    52   "------", 10, 8, "1011 1001 imm8", "rsvdb9", 0,
    53   "------", 10, 8, "1011 1111 imm8", "rsvdbf", 0,
    54 
    55   "---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 1000", "ldd @rs,@rd,rr", 0,
    56   "---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 0000", "lddr @rs,@rd,rr", 0,
    57   "---V--", 11, 8, "1011 1011 ssN0 1001 0000 rrrr ddN0 0000", "lddrb @rs,@rd,rr", 0,
    58   "---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 0000", "ldir @rd,@rs,rr", 0,
    59   "CZSV--", 11, 16, "1011 1011 ssN0 0000 0000 rrrr dddd cccc", "cpi rd,@rs,rr,cc", 0,
    60   "CZSV--", 11, 16, "1011 1011 ssN0 0100 0000 rrrr dddd cccc", "cpir rd,@rs,rr,cc", 0,
    61   "CZSV--", 11, 16, "1011 1011 ssN0 1100 0000 rrrr dddd cccc", "cpdr rd,@rs,rr,cc", 0,
    62   "---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 1000", "ldi @rd,@rs,rr", 0,
    63   "CZSV--", 11, 16, "1011 1011 ssN0 1000 0000 rrrr dddd cccc", "cpd rd,@rs,rr,cc", 0,
    64   "---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 0000", "ldirb @rd,@rs,rr", 0,
    65   "---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 1000", "lddb @rs,@rd,rr", 0,
    66   "---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 1000", "ldib @rd,@rs,rr", 0,
    67   "CZSV--", 11, 8, "1011 1010 ssN0 1000 0000 rrrr dddd cccc", "cpdb rbd,@rs,rr,cc", 0,
    68   "CZSV--", 11, 8, "1011 1010 ssN0 1100 0000 rrrr dddd cccc", "cpdrb rbd,@rs,rr,cc", 0,
    69   "CZSV--", 11, 8, "1011 1010 ssN0 0000 0000 rrrr dddd cccc", "cpib rbd,@rs,rr,cc", 0,
    70   "CZSV--", 11, 8, "1011 1010 ssN0 0100 0000 rrrr dddd cccc", "cpirb rbd,@rs,rr,cc", 0,
    71   "CZSV--", 11, 16, "1011 1011 ssN0 1010 0000 rrrr ddN0 cccc", "cpsd @rd,@rs,rr,cc", 0,
    72   "CZSV--", 11, 8, "1011 1010 ssN0 1010 0000 rrrr ddN0 cccc", "cpsdb @rd,@rs,rr,cc", 0,
    73   "CZSV--", 11, 16, "1011 1011 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdr @rd,@rs,rr,cc", 0,
    74   "CZSV--", 11, 8, "1011 1010 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdrb @rd,@rs,rr,cc", 0,
    75   "CZSV--", 11, 16, "1011 1011 ssN0 0010 0000 rrrr ddN0 cccc", "cpsi @rd,@rs,rr,cc", 0,
    76   "CZSV--", 11, 8, "1011 1010 ssN0 0010 0000 rrrr ddN0 cccc", "cpsib @rd,@rs,rr,cc", 0,
    77   "CZSV--", 11, 16, "1011 1011 ssN0 0110 0000 rrrr ddN0 cccc", "cpsir @rd,@rs,rr,cc", 0,
    78   "CZSV--", 11, 8, "1011 1010 ssN0 0110 0000 rrrr ddN0 cccc", "cpsirb @rd,@rs,rr,cc", 0,
    79 
    80   "------", 2, 8, "0011 0110 0000 0000", "bpt", 0,
    81   "CZSV--", 5, 16, "1011 0101 ssss dddd", "adc rd,rs", 0,
    82   "CZSVDH", 5, 8, "1011 0100 ssss dddd", "adcb rbd,rbs", 0,
    83   "CZSV--", 7, 16, "0000 0001 ssN0 dddd", "add rd,@rs", 0,
    84 "CZSV--", 9, 16, "0100 0001 0000 dddd address_src", "add rd,address_src", 0,
    85   "CZSV--", 10, 16, "0100 0001 ssN0 dddd address_src", "add rd,address_src(rs)", 0,
    86   "CZSV--", 7, 16, "0000 0001 0000 dddd imm16", "add rd,imm16", 0,
    87   "CZSV--", 4, 16, "1000 0001 ssss dddd", "add rd,rs", 0,
    88   "CZSVDH", 7, 8, "0000 0000 ssN0 dddd", "addb rbd,@rs", 0,
    89 "CZSVDH", 9, 8, "0100 0000 0000 dddd address_src", "addb rbd,address_src", 0,
    90   "CZSVDH", 10, 8, "0100 0000 ssN0 dddd address_src", "addb rbd,address_src(rs)", 0,
    91   "CZSVDH", 7, 8, "0000 0000 0000 dddd imm8 imm8", "addb rbd,imm8", 0,
    92   "CZSVDH", 4, 8, "1000 0000 ssss dddd", "addb rbd,rbs", 0,
    93   "CZSV--", 14, 32, "0001 0110 ssN0 dddd", "addl rrd,@rs", 0,
    94   "CZSV--", 15, 32, "0101 0110 0000 dddd address_src", "addl rrd,address_src", 0,
    95   "CZSV--", 16, 32, "0101 0110 ssN0 dddd address_src", "addl rrd,address_src(rs)", 0,
    96   "CZSV--", 14, 32, "0001 0110 0000 dddd imm32", "addl rrd,imm32", 0,
    97   "CZSV--", 8, 32, "1001 0110 ssss dddd", "addl rrd,rrs", 0,
    98 
    99   "-ZS---", 7, 16, "0000 0111 ssN0 dddd", "and rd,@rs", 0,
    100 "-ZS---", 9, 16, "0100 0111 0000 dddd address_src", "and rd,address_src", 0,
    101   "-ZS---", 10, 16, "0100 0111 ssN0 dddd address_src", "and rd,address_src(rs)", 0,
    102   "-ZS---", 7, 16, "0000 0111 0000 dddd imm16", "and rd,imm16", 0,
    103   "-ZS---", 4, 16, "1000 0111 ssss dddd", "and rd,rs", 0,
    104   "-ZSP--", 7, 8, "0000 0110 ssN0 dddd", "andb rbd,@rs", 0,
    105 "-ZSP--", 9, 8, "0100 0110 0000 dddd address_src", "andb rbd,address_src", 0,
    106   "-ZSP--", 10, 8, "0100 0110 ssN0 dddd address_src", "andb rbd,address_src(rs)", 0,
    107   "-ZSP--", 7, 8, "0000 0110 0000 dddd imm8 imm8", "andb rbd,imm8", 0,
    108   "-ZSP--", 4, 8, "1000 0110 ssss dddd", "andb rbd,rbs", 0,
    109 
    110   "-Z----", 8, 16, "0010 0111 ddN0 imm4", "bit @rd,imm4", 0,
    111   "-Z----", 11, 16, "0110 0111 ddN0 imm4 address_dst", "bit address_dst(rd),imm4", 0,
    112   "-Z----", 10, 16, "0110 0111 0000 imm4 address_dst", "bit address_dst,imm4", 0,
    113   "-Z----", 4, 16, "1010 0111 dddd imm4", "bit rd,imm4", 0,
    114 "-Z----", 10, 16, "0010 0111 0000 ssss 0000 dddd 0000 0000", "bit rd,rs", 0,
    115 
    116   "-Z----", 8, 8, "0010 0110 ddN0 imm4", "bitb @rd,imm4", 0,
    117   "-Z----", 11, 8, "0110 0110 ddN0 imm4 address_dst", "bitb address_dst(rd),imm4", 0,
    118   "-Z----", 10, 8, "0110 0110 0000 imm4 address_dst", "bitb address_dst,imm4", 0,
    119   "-Z----", 4, 8, "1010 0110 dddd imm4", "bitb rbd,imm4", 0,
    120 "-Z----", 10, 8, "0010 0110 0000 ssss 0000 dddd 0000 0000", "bitb rbd,rs", 0,
    121 
    122   "------", 10, 32, "0001 1111 ddN0 0000", "call @rd", 0,
    123   "------", 12, 32, "0101 1111 0000 0000 address_dst", "call address_dst", 0,
    124   "------", 13, 32, "0101 1111 ddN0 0000 address_dst", "call address_dst(rd)", 0,
    125   "------", 10, 16, "1101 disp12", "calr disp12", 0,
    126 
    127   "------", 8, 16, "0000 1101 ddN0 1000", "clr @rd", 0,
    128   "------", 11, 16, "0100 1101 0000 1000 address_dst", "clr address_dst", 0,
    129   "------", 12, 16, "0100 1101 ddN0 1000 address_dst", "clr address_dst(rd)", 0,
    130   "------", 7, 16, "1000 1101 dddd 1000", "clr rd", 0,
    131   "------", 8, 8, "0000 1100 ddN0 1000", "clrb @rd", 0,
    132   "------", 11, 8, "0100 1100 0000 1000 address_dst", "clrb address_dst", 0,
    133   "------", 12, 8, "0100 1100 ddN0 1000 address_dst", "clrb address_dst(rd)", 0,
    134   "------", 7, 8, "1000 1100 dddd 1000", "clrb rbd", 0,
    135   "-ZS---", 12, 16, "0000 1101 ddN0 0000", "com @rd", 0,
    136   "-ZS---", 15, 16, "0100 1101 0000 0000 address_dst", "com address_dst", 0,
    137   "-ZS---", 16, 16, "0100 1101 ddN0 0000 address_dst", "com address_dst(rd)", 0,
    138   "-ZS---", 7, 16, "1000 1101 dddd 0000", "com rd", 0,
    139   "-ZSP--", 12, 8, "0000 1100 ddN0 0000", "comb @rd", 0,
    140   "-ZSP--", 15, 8, "0100 1100 0000 0000 address_dst", "comb address_dst", 0,
    141   "-ZSP--", 16, 8, "0100 1100 ddN0 0000 address_dst", "comb address_dst(rd)", 0,
    142   "-ZSP--", 7, 8, "1000 1100 dddd 0000", "comb rbd", 0,
    143   "CZSP--", 7, 16, "1000 1101 imm4 0101", "comflg flags", 0,
    144 
    145   "CZSV--", 11, 16, "0000 1101 ddN0 0001 imm16", "cp @rd,imm16", 0,
    146   "CZSV--", 15, 16, "0100 1101 ddN0 0001 address_dst imm16", "cp address_dst(rd),imm16", 0,
    147   "CZSV--", 14, 16, "0100 1101 0000 0001 address_dst imm16", "cp address_dst,imm16", 0,
    148 
    149   "CZSV--", 7, 16, "0000 1011 ssN0 dddd", "cp rd,@rs", 0,
    150   "CZSV--", 9, 16, "0100 1011 0000 dddd address_src", "cp rd,address_src", 0,
    151   "CZSV--", 10, 16, "0100 1011 ssN0 dddd address_src", "cp rd,address_src(rs)", 0,
    152   "CZSV--", 7, 16, "0000 1011 0000 dddd imm16", "cp rd,imm16", 0,
    153   "CZSV--", 4, 16, "1000 1011 ssss dddd", "cp rd,rs", 0,
    154 
    155   "CZSV--", 11, 8, "0000 1100 ddN0 0001 imm8 imm8", "cpb @rd,imm8", 0,
    156   "CZSV--", 15, 8, "0100 1100 ddN0 0001 address_dst imm8 imm8", "cpb address_dst(rd),imm8", 0,
    157   "CZSV--", 14, 8, "0100 1100 0000 0001 address_dst imm8 imm8", "cpb address_dst,imm8", 0,
    158   "CZSV--", 7, 8, "0000 1010 ssN0 dddd", "cpb rbd,@rs", 0,
    159 "CZSV--", 9, 8, "0100 1010 0000 dddd address_src", "cpb rbd,address_src", 0,
    160   "CZSV--", 10, 8, "0100 1010 ssN0 dddd address_src", "cpb rbd,address_src(rs)", 0,
    161   "CZSV--", 7, 8, "0000 1010 0000 dddd imm8 imm8", "cpb rbd,imm8", 0,
    162   "CZSV--", 4, 8, "1000 1010 ssss dddd", "cpb rbd,rbs", 0,
    163 
    164   "CZSV--", 14, 32, "0001 0000 ssN0 dddd", "cpl rrd,@rs", 0,
    165   "CZSV--", 15, 32, "0101 0000 0000 dddd address_src", "cpl rrd,address_src", 0,
    166   "CZSV--", 16, 32, "0101 0000 ssN0 dddd address_src", "cpl rrd,address_src(rs)", 0,
    167   "CZSV--", 14, 32, "0001 0000 0000 dddd imm32", "cpl rrd,imm32", 0,
    168   "CZSV--", 8, 32, "1001 0000 ssss dddd", "cpl rrd,rrs", 0,
    169 
    170   "CZS---", 5, 8, "1011 0000 dddd 0000", "dab rbd", 0,
    171   "------", 11, 16, "1111 dddd 1disp7", "dbjnz rbd,disp7", 0,
    172   "-ZSV--", 11, 16, "0010 1011 ddN0 imm4m1", "dec @rd,imm4m1", 0,
    173   "-ZSV--", 14, 16, "0110 1011 ddN0 imm4m1 address_dst", "dec address_dst(rd),imm4m1", 0,
    174   "-ZSV--", 13, 16, "0110 1011 0000 imm4m1 address_dst", "dec address_dst,imm4m1", 0,
    175   "-ZSV--", 4, 16, "1010 1011 dddd imm4m1", "dec rd,imm4m1", 0,
    176   "-ZSV--", 11, 8, "0010 1010 ddN0 imm4m1", "decb @rd,imm4m1", 0,
    177   "-ZSV--", 14, 8, "0110 1010 ddN0 imm4m1 address_dst", "decb address_dst(rd),imm4m1", 0,
    178   "-ZSV--", 13, 8, "0110 1010 0000 imm4m1 address_dst", "decb address_dst,imm4m1", 0,
    179   "-ZSV--", 4, 8, "1010 1010 dddd imm4m1", "decb rbd,imm4m1", 0,
    180 
    181   "------", 7, 16, "0111 1100 0000 00ii", "di i2", 0,
    182   "CZSV--", 107, 16, "0001 1011 ssN0 dddd", "div rrd,@rs", 0,
    183   "CZSV--", 107, 16, "0101 1011 0000 dddd address_src", "div rrd,address_src", 0,
    184   "CZSV--", 107, 16, "0101 1011 ssN0 dddd address_src", "div rrd,address_src(rs)", 0,
    185   "CZSV--", 107, 16, "0001 1011 0000 dddd imm16", "div rrd,imm16", 0,
    186   "CZSV--", 107, 16, "1001 1011 ssss dddd", "div rrd,rs", 0,
    187   "CZSV--", 744, 32, "0001 1010 ssN0 dddd", "divl rqd,@rs", 0,
    188   "CZSV--", 745, 32, "0101 1010 0000 dddd address_src", "divl rqd,address_src", 0,
    189   "CZSV--", 746, 32, "0101 1010 ssN0 dddd address_src", "divl rqd,address_src(rs)", 0,
    190   "CZSV--", 744, 32, "0001 1010 0000 dddd imm32", "divl rqd,imm32", 0,
    191   "CZSV--", 744, 32, "1001 1010 ssss dddd", "divl rqd,rrs", 0,
    192 
    193   "------", 11, 16, "1111 dddd 0disp7", "djnz rd,disp7", 0,
    194   "------", 7, 16, "0111 1100 0000 01ii", "ei i2", 0,
    195   "------", 6, 16, "1010 1101 ssss dddd", "ex rd,rs", 0,
    196   "------", 12, 16, "0010 1101 ssN0 dddd", "ex rd,@rs", 0,
    197 "------", 15, 16, "0110 1101 0000 dddd address_src", "ex rd,address_src", 0,
    198   "------", 16, 16, "0110 1101 ssN0 dddd address_src", "ex rd,address_src(rs)", 0,
    199 
    200   "------", 12, 8, "0010 1100 ssN0 dddd", "exb rbd,@rs", 0,
    201 "------", 15, 8, "0110 1100 0000 dddd address_src", "exb rbd,address_src", 0,
    202   "------", 16, 8, "0110 1100 ssN0 dddd address_src", "exb rbd,address_src(rs)", 0,
    203   "------", 6, 8, "1010 1100 ssss dddd", "exb rbd,rbs", 0,
    204 
    205   "------", 11, 16, "1011 0001 dddd 1010", "exts rrd", 0,
    206   "------", 11, 8, "1011 0001 dddd 0000", "extsb rd", 0,
    207   "------", 11, 32, "1011 0001 dddd 0111", "extsl rqd", 0,
    208 
    209   "------", 8, 16, "0111 1010 0000 0000", "halt", 0,
    210   "------", 10, 16, "0011 1101 ssN0 dddd", "in rd,@rs", 0,
    211   "------", 12, 16, "0011 1101 dddd 0100 imm16", "in rd,imm16", 0,
    212   "------", 12, 8, "0011 1100 ssN0 dddd", "inb rbd,@rs", 0,
    213   "------", 10, 8, "0011 1100 dddd 0100 imm16", "inb rbd,imm16", 0,
    214   "-ZSV--", 11, 16, "0010 1001 ddN0 imm4m1", "inc @rd,imm4m1", 0,
    215   "-ZSV--", 14, 16, "0110 1001 ddN0 imm4m1 address_dst", "inc address_dst(rd),imm4m1", 0,
    216   "-ZSV--", 13, 16, "0110 1001 0000 imm4m1 address_dst", "inc address_dst,imm4m1", 0,
    217   "-ZSV--", 4, 16, "1010 1001 dddd imm4m1", "inc rd,imm4m1", 0,
    218   "-ZSV--", 11, 8, "0010 1000 ddN0 imm4m1", "incb @rd,imm4m1", 0,
    219   "-ZSV--", 14, 8, "0110 1000 ddN0 imm4m1 address_dst", "incb address_dst(rd),imm4m1", 0,
    220   "-ZSV--", 13, 8, "0110 1000 0000 imm4m1 address_dst", "incb address_dst,imm4m1", 0,
    221   "-ZSV--", 4, 8, "1010 1000 dddd imm4m1", "incb rbd,imm4m1", 0,
    222   "---V--", 21, 16, "0011 1011 ssN0 1000 0000 aaaa ddN0 1000", "ind @rd,@rs,ra", 0,
    223   "---V--", 21, 8, "0011 1010 ssN0 1000 0000 aaaa ddN0 1000", "indb @rd,@rs,rba", 0,
    224   "---V--", 21, 8, "0011 1100 ssN0 0000 0000 aaaa ddN0 1000", "inib @rd,@rs,ra", 0,
    225   "---V--", 21, 16, "0011 1100 ssN0 0000 0000 aaaa ddN0 0000", "inibr @rd,@rs,ra", 0,
    226   "CZSVDH", 13, 16, "0111 1011 0000 0000", "iret", 0,
    227   "------", 10, 16, "0001 1110 ddN0 cccc", "jp cc,@rd", 0,
    228   "------", 7, 16, "0101 1110 0000 cccc address_dst", "jp cc,address_dst", 0,
    229   "------", 8, 16, "0101 1110 ddN0 cccc address_dst", "jp cc,address_dst(rd)", 0,
    230   "------", 6, 16, "1110 cccc disp8", "jr cc,disp8", 0,
    231 
    232   "------", 7, 16, "0000 1101 ddN0 0101 imm16", "ld @rd,imm16", 0,
    233   "------", 8, 16, "0010 1111 ddN0 ssss", "ld @rd,rs", 0,
    234   "------", 15, 16, "0100 1101 ddN0 0101 address_dst imm16", "ld address_dst(rd),imm16", 0,
    235   "------", 12, 16, "0110 1111 ddN0 ssss address_dst", "ld address_dst(rd),rs", 0,
    236   "------", 14, 16, "0100 1101 0000 0101 address_dst imm16", "ld address_dst,imm16", 0,
    237 "------", 11, 16, "0110 1111 0000 ssss address_dst", "ld address_dst,rs", 0,
    238   "------", 14, 16, "0011 0011 ddN0 ssss imm16", "ld rd(imm16),rs", 0,
    239   "------", 14, 16, "0111 0011 ddN0 ssss 0000 xxxx 0000 0000", "ld rd(rx),rs", 0,
    240   "------", 7, 16, "0010 0001 ssN0 dddd", "ld rd,@rs", 0,
    241   "------", 9, 16, "0110 0001 0000 dddd address_src", "ld rd,address_src", 0,
    242   "------", 10, 16, "0110 0001 ssN0 dddd address_src", "ld rd,address_src(rs)", 0,
    243   "------", 7, 16, "0010 0001 0000 dddd imm16", "ld rd,imm16", 0,
    244   "------", 3, 16, "1010 0001 ssss dddd", "ld rd,rs", 0,
    245   "------", 14, 16, "0011 0001 ssN0 dddd imm16", "ld rd,rs(imm16)", 0,
    246   "------", 14, 16, "0111 0001 ssN0 dddd 0000 xxxx 0000 0000", "ld rd,rs(rx)", 0,
    247 
    248   "------", 7, 8, "0000 1100 ddN0 0101 imm8 imm8", "ldb @rd,imm8", 0,
    249   "------", 8, 8, "0010 1110 ddN0 ssss", "ldb @rd,rbs", 0,
    250   "------", 15, 8, "0100 1100 ddN0 0101 address_dst imm8 imm8", "ldb address_dst(rd),imm8", 0,
    251   "------", 12, 8, "0100 1110 ddN0 ssN0 address_dst", "ldb address_dst(rd),rbs", 0,
    252   "------", 14, 8, "0100 1100 0000 0101 address_dst imm8 imm8", "ldb address_dst,imm8", 0,
    253 "------", 11, 8, "0110 1110 0000 ssss address_dst", "ldb address_dst,rbs", 0,
    254   "------", 14, 8, "0011 0010 ddN0 ssss imm16", "ldb rd(imm16),rbs", 0,
    255   "------", 14, 8, "0111 0010 ddN0 ssss 0000 xxxx 0000 0000", "ldb rd(rx),rbs", 0,
    256   "------", 7, 8, "0010 0000 ssN0 dddd", "ldb rbd,@rs", 0,
    257 "------", 9, 8, "0110 0000 0000 dddd address_src", "ldb rbd,address_src", 0,
    258   "------", 10, 8, "0110 0000 ssN0 dddd address_src", "ldb rbd,address_src(rs)", 0,
    259   "------", 5, 8, "1100 dddd imm8", "ldb rbd,imm8", 0,
    260   "------", 3, 8, "1010 0000 ssss dddd", "ldb rbd,rbs", 0,
    261   "------", 14, 8, "0011 0000 ssN0 dddd imm16", "ldb rbd,rs(imm16)", 0,
    262   "------", 14, 8, "0111 0000 ssN0 dddd 0000 xxxx 0000 0000", "ldb rbd,rs(rx)", 0,
    263 
    264   "------", 11, 32, "0001 1101 ddN0 ssss", "ldl @rd,rrs", 0,
    265   "------", 14, 32, "0101 1101 ddN0 ssss address_dst", "ldl address_dst(rd),rrs", 0,
    266   "------", 15, 32, "0101 1101 0000 ssss address_dst", "ldl address_dst,rrs", 0,
    267   "------", 17, 32, "0011 0111 ddN0 ssss imm16", "ldl rd(imm16),rrs", 0,
    268   "------", 17, 32, "0111 0111 ddN0 ssss 0000 xxxx 0000 0000", "ldl rd(rx),rrs", 0,
    269   "------", 11, 32, "0001 0100 ssN0 dddd", "ldl rrd,@rs", 0,
    270   "------", 12, 32, "0101 0100 0000 dddd address_src", "ldl rrd,address_src", 0,
    271   "------", 13, 32, "0101 0100 ssN0 dddd address_src", "ldl rrd,address_src(rs)", 0,
    272   "------", 11, 32, "0001 0100 0000 dddd imm32", "ldl rrd,imm32", 0,
    273   "------", 5, 32, "1001 0100 ssss dddd", "ldl rrd,rrs", 0,
    274   "------", 17, 32, "0011 0101 ssN0 dddd imm16", "ldl rrd,rs(imm16)", 0,
    275   "------", 17, 32, "0111 0101 ssN0 dddd 0000 xxxx 0000 0000", "ldl rrd,rs(rx)", 0,
    276 
    277   "------", 12, 16, "0111 0110 0000 dddd address_src", "lda prd,address_src", 0,
    278   "------", 13, 16, "0111 0110 ssN0 dddd address_src", "lda prd,address_src(rs)", 0,
    279   "------", 15, 16, "0011 0100 ssN0 dddd imm16", "lda prd,rs(imm16)", 0,
    280   "------", 15, 16, "0111 0100 ssN0 dddd 0000 xxxx 0000 0000", "lda prd,rs(rx)", 0,
    281   "------", 15, 16, "0011 0100 0000 dddd disp16", "ldar prd,disp16", 0,
    282   "------", 7, 32, "0111 1101 ssss 1ccc", "ldctl ctrl,rs", 0,
    283   "------", 7, 32, "0111 1101 dddd 0ccc", "ldctl rd,ctrl", 0,
    284 
    285   "------", 5, 16, "1011 1101 dddd imm4", "ldk rd,imm4", 0,
    286 
    287   "------", 11, 16, "0001 1100 ddN0 1001 0000 ssss 0000 nminus1", "ldm @rd,rs,n", 0,
    288   "------", 15, 16, "0101 1100 ddN0 1001 0000 ssN0 0000 nminus1 address_dst", "ldm address_dst(rd),rs,n", 0,
    289   "------", 14, 16, "0101 1100 0000 1001 0000 ssss 0000 nminus1 address_dst", "ldm address_dst,rs,n", 0,
    290   "------", 11, 16, "0001 1100 ssN0 0001 0000 dddd 0000 nminus1", "ldm rd,@rs,n", 0,
    291   "------", 15, 16, "0101 1100 ssN0 0001 0000 dddd 0000 nminus1 address_src", "ldm rd,address_src(rs),n", 0,
    292   "------", 14, 16, "0101 1100 0000 0001 0000 dddd 0000 nminus1 address_src", "ldm rd,address_src,n", 0,
    293 
    294   "CZSVDH", 12, 16, "0011 1001 ssN0 0000", "ldps @rs", 0,
    295   "CZSVDH", 16, 16, "0111 1001 0000 0000 address_src", "ldps address_src", 0,
    296   "CZSVDH", 17, 16, "0111 1001 ssN0 0000 address_src", "ldps address_src(rs)", 0,
    297 
    298   "------", 14, 16, "0011 0011 0000 ssss disp16", "ldr disp16,rs", 0,
    299   "------", 14, 16, "0011 0001 0000 dddd disp16", "ldr rd,disp16", 0,
    300   "------", 14, 8, "0011 0010 0000 ssss disp16", "ldrb disp16,rbs", 0,
    301   "------", 14, 8, "0011 0000 0000 dddd disp16", "ldrb rbd,disp16", 0,
    302   "------", 17, 32, "0011 0111 0000 ssss disp16", "ldrl disp16,rrs", 0,
    303   "------", 17, 32, "0011 0101 0000 dddd disp16", "ldrl rrd,disp16", 0,
    304 
    305   "CZS---", 7, 16, "0111 1011 0000 1010", "mbit", 0,
    306   "-ZS---", 12, 16, "0111 1011 dddd 1101", "mreq rd", 0,
    307   "------", 5, 16, "0111 1011 0000 1001", "mres", 0,
    308   "------", 5, 16, "0111 1011 0000 1000", "mset", 0,
    309 
    310   "CZSV--", 70, 16, "0001 1001 ssN0 dddd", "mult rrd,@rs", 0,
    311   "CZSV--", 70, 16, "0101 1001 0000 dddd address_src", "mult rrd,address_src", 0,
    312   "CZSV--", 70, 16, "0101 1001 ssN0 dddd address_src", "mult rrd,address_src(rs)", 0,
    313   "CZSV--", 70, 16, "0001 1001 0000 dddd imm16", "mult rrd,imm16", 0,
    314   "CZSV--", 70, 16, "1001 1001 ssss dddd", "mult rrd,rs", 0,
    315   "CZSV--", 282, 32, "0001 1000 ssN0 dddd", "multl rqd,@rs", 0,
    316   "CZSV--", 282, 32, "0101 1000 0000 dddd address_src", "multl rqd,address_src", 0,
    317   "CZSV--", 282, 32, "0101 1000 ssN0 dddd address_src", "multl rqd,address_src(rs)", 0,
    318   "CZSV--", 282, 32, "0001 1000 0000 dddd imm32", "multl rqd,imm32", 0,
    319   "CZSV--", 282, 32, "1001 1000 ssss dddd", "multl rqd,rrs", 0,
    320   "CZSV--", 12, 16, "0000 1101 ddN0 0010", "neg @rd", 0,
    321   "CZSV--", 15, 16, "0100 1101 0000 0010 address_dst", "neg address_dst", 0,
    322   "CZSV--", 16, 16, "0100 1101 ddN0 0010 address_dst", "neg address_dst(rd)", 0,
    323   "CZSV--", 7, 16, "1000 1101 dddd 0010", "neg rd", 0,
    324   "CZSV--", 12, 8, "0000 1100 ddN0 0010", "negb @rd", 0,
    325   "CZSV--", 15, 8, "0100 1100 0000 0010 address_dst", "negb address_dst", 0,
    326   "CZSV--", 16, 8, "0100 1100 ddN0 0010 address_dst", "negb address_dst(rd)", 0,
    327   "CZSV--", 7, 8, "1000 1100 dddd 0010", "negb rbd", 0,
    328 
    329   "------", 7, 16, "1000 1101 0000 0111", "nop", 0,
    330 
    331   "CZS---", 7, 16, "0000 0101 ssN0 dddd", "or rd,@rs", 0,
    332   "CZS---", 9, 16, "0100 0101 0000 dddd address_src", "or rd,address_src", 0,
    333   "CZS---", 10, 16, "0100 0101 ssN0 dddd address_src", "or rd,address_src(rs)", 0,
    334   "CZS---", 7, 16, "0000 0101 0000 dddd imm16", "or rd,imm16", 0,
    335   "CZS---", 4, 16, "1000 0101 ssss dddd", "or rd,rs", 0,
    336 
    337   "CZSP--", 7, 8, "0000 0100 ssN0 dddd", "orb rbd,@rs", 0,
    338 "CZSP--", 9, 8, "0100 0100 0000 dddd address_src", "orb rbd,address_src", 0,
    339   "CZSP--", 10, 8, "0100 0100 ssN0 dddd address_src", "orb rbd,address_src(rs)", 0,
    340   "CZSP--", 7, 8, "0000 0100 0000 dddd imm8 imm8", "orb rbd,imm8", 0,
    341   "CZSP--", 4, 8, "1000 0100 ssss dddd", "orb rbd,rbs", 0,
    342 
    343   "---V--", 0, 16, "0011 1111 ddN0 ssss", "out @rd,rs", 0,
    344   "---V--", 0, 16, "0011 1011 ssss 0110 imm16", "out imm16,rs", 0,
    345   "---V--", 0, 8, "0011 1110 ddN0 ssss", "outb @rd,rbs", 0,
    346   "---V--", 0, 8, "0011 1010 ssss 0110 imm16", "outb imm16,rbs", 0,
    347   "---V--", 0, 16, "0011 1011 ssN0 1010 0000 aaaa ddN0 1000", "outd @rd,@rs,ra", 0,
    348   "---V--", 0, 8, "0011 1010 ssN0 1010 0000 aaaa ddN0 1000", "outdb @rd,@rs,rba", 0,
    349   "---V--", 0, 8, "0011 1100 ssN0 0010 0000 aaaa ddN0 1000", "outib @rd,@rs,ra", 0,
    350   "---V--", 0, 16, "0011 1100 ssN0 0010 0000 aaaa ddN0 0000", "outibr @rd,@rs,ra", 0,
    351 
    352   "------", 12, 16, "0001 0111 ssN0 ddN0", "pop @rd,@rs", 0,
    353   "------", 16, 16, "0101 0111 ssN0 ddN0 address_dst", "pop address_dst(rd),@rs", 0,
    354   "------", 16, 16, "0101 0111 ssN0 0000 address_dst", "pop address_dst,@rs", 0,
    355   "------", 8, 16, "1001 0111 ssN0 dddd", "pop rd,@rs", 0,
    356 
    357   "------", 19, 32, "0001 0101 ssN0 ddN0", "popl @rd,@rs", 0,
    358   "------", 23, 32, "0101 0101 ssN0 ddN0 address_dst", "popl address_dst(rd),@rs", 0,
    359   "------", 23, 32, "0101 0101 ssN0 0000 address_dst", "popl address_dst,@rs", 0,
    360   "------", 12, 32, "1001 0101 ssN0 dddd", "popl rrd,@rs", 0,
    361 
    362   "------", 13, 16, "0001 0011 ddN0 ssN0", "push @rd,@rs", 0,
    363   "------", 14, 16, "0101 0011 ddN0 0000 address_src", "push @rd,address_src", 0,
    364   "------", 14, 16, "0101 0011 ddN0 ssN0 address_src", "push @rd,address_src(rs)", 0,
    365   "------", 12, 16, "0000 1101 ddN0 1001 imm16", "push @rd,imm16", 0,
    366   "------", 9, 16, "1001 0011 ddN0 ssss", "push @rd,rs", 0,
    367 
    368   "------", 20, 32, "0001 0001 ddN0 ssN0", "pushl @rd,@rs", 0,
    369   "------", 21, 32, "0101 0001 ddN0 ssN0 address_src", "pushl @rd,address_src(rs)", 0,
    370   "------", 21, 32, "0101 0001 ddN0 0000 address_src", "pushl @rd,address_src", 0,
    371   "------", 12, 32, "1001 0001 ddN0 ssss", "pushl @rd,rrs", 0,
    372 
    373   "------", 11, 16, "0010 0011 ddN0 imm4", "res @rd,imm4", 0,
    374   "------", 14, 16, "0110 0011 ddN0 imm4 address_dst", "res address_dst(rd),imm4", 0,
    375   "------", 13, 16, "0110 0011 0000 imm4 address_dst", "res address_dst,imm4", 0,
    376   "------", 4, 16, "1010 0011 dddd imm4", "res rd,imm4", 0,
    377 "------", 10, 16, "0010 0011 0000 ssss 0000 dddd 0000 0000", "res rd,rs", 0,
    378 
    379   "------", 11, 8, "0010 0010 ddN0 imm4", "resb @rd,imm4", 0,
    380   "------", 14, 8, "0110 0010 ddN0 imm4 address_dst", "resb address_dst(rd),imm4", 0,
    381   "------", 13, 8, "0110 0010 0000 imm4 address_dst", "resb address_dst,imm4", 0,
    382   "------", 4, 8, "1010 0010 dddd imm4", "resb rbd,imm4", 0,
    383 "------", 10, 8, "0010 0010 0000 ssss 0000 dddd 0000 0000", "resb rbd,rs", 0,
    384 
    385   "CZSV--", 7, 16, "1000 1101 imm4 0011", "resflg imm4", 0,
    386   "------", 10, 16, "1001 1110 0000 cccc", "ret cc", 0,
    387 
    388   "CZSV--", 6, 16, "1011 0011 dddd 00I0", "rl rd,imm1or2", 0,
    389   "CZSV--", 6, 8, "1011 0010 dddd 00I0", "rlb rbd,imm1or2", 0,
    390   "CZSV--", 6, 16, "1011 0011 dddd 10I0", "rlc rd,imm1or2", 0,
    391 
    392   "-Z----", 9, 8, "1011 0010 dddd 10I0", "rlcb rbd,imm1or2", 0,
    393   "-Z----", 9, 8, "1011 1110 aaaa bbbb", "rldb rbb,rba", 0,
    394 
    395   "CZSV--", 6, 16, "1011 0011 dddd 01I0", "rr rd,imm1or2", 0,
    396   "CZSV--", 6, 8, "1011 0010 dddd 01I0", "rrb rbd,imm1or2", 0,
    397   "CZSV--", 6, 16, "1011 0011 dddd 11I0", "rrc rd,imm1or2", 0,
    398 
    399   "-Z----", 9, 8, "1011 0010 dddd 11I0", "rrcb rbd,imm1or2", 0,
    400   "-Z----", 9, 8, "1011 1100 aaaa bbbb", "rrdb rbb,rba", 0,
    401   "CZSV--", 5, 16, "1011 0111 ssss dddd", "sbc rd,rs", 0,
    402   "CZSVDH", 5, 8, "1011 0110 ssss dddd", "sbcb rbd,rbs", 0,
    403 
    404   "CZSVDH", 33, 8, "0111 1111 imm8", "sc imm8", 0,
    405 
    406 "CZSV--", 15, 16, "1011 0011 dddd 1011 0000 ssss 0000 0000", "sda rd,rs", 0,
    407 "CZSV--", 15, 8, "1011 0010 dddd 1011 0000 ssss 0000 0000", "sdab rbd,rs", 0,
    408   "CZSV--", 15, 32, "1011 0011 dddd 1111 0000 ssss 0000 0000", "sdal rrd,rs", 0,
    409 
    410 "CZS---", 15, 16, "1011 0011 dddd 0011 0000 ssss 0000 0000", "sdl rd,rs", 0,
    411 "CZS---", 15, 8, "1011 0010 dddd 0011 0000 ssss 0000 0000", "sdlb rbd,rs", 0,
    412   "CZS---", 15, 32, "1011 0011 dddd 0111 0000 ssss 0000 0000", "sdll rrd,rs", 0,
    413 
    414   "------", 11, 16, "0010 0101 ddN0 imm4", "set @rd,imm4", 0,
    415   "------", 14, 16, "0110 0101 ddN0 imm4 address_dst", "set address_dst(rd),imm4", 0,
    416   "------", 13, 16, "0110 0101 0000 imm4 address_dst", "set address_dst,imm4", 0,
    417   "------", 4, 16, "1010 0101 dddd imm4", "set rd,imm4", 0,
    418 "------", 10, 16, "0010 0101 0000 ssss 0000 dddd 0000 0000", "set rd,rs", 0,
    419   "------", 11, 8, "0010 0100 ddN0 imm4", "setb @rd,imm4", 0,
    420   "------", 14, 8, "0110 0100 ddN0 imm4 address_dst", "setb address_dst(rd),imm4", 0,
    421   "------", 13, 8, "0110 0100 0000 imm4 address_dst", "setb address_dst,imm4", 0,
    422   "------", 4, 8, "1010 0100 dddd imm4", "setb rbd,imm4", 0,
    423 "------", 10, 8, "0010 0100 0000 ssss 0000 dddd 0000 0000", "setb rbd,rs", 0,
    424 
    425   "CZSV--", 7, 16, "1000 1101 imm4 0001", "setflg imm4", 0,
    426 
    427   "------", 0, 8, "0011 1100 dddd 0101 imm16", "sinb rbd,imm16", 0,
    428   "------", 0, 8, "0011 1101 dddd 0101 imm16", "sinb rd,imm16", 0,
    429   "------", 0, 16, "0011 1011 ssN0 1000 0001 aaaa ddN0 1000", "sind @rd,@rs,ra", 0,
    430   "------", 0, 8, "0011 1010 ssN0 1000 0001 aaaa ddN0 1000", "sindb @rd,@rs,rba", 0,
    431   "------", 0, 8, "0011 1100 ssN0 0001 0000 aaaa ddN0 1000", "sinib @rd,@rs,ra", 0,
    432   "------", 0, 16, "0011 1100 ssN0 0001 0000 aaaa ddN0 0000", "sinibr @rd,@rs,ra", 0,
    433 
    434   "CZSV--", 13, 16, "1011 0011 dddd 1001 0000 0000 imm8", "sla rd,imm8", 0,
    435   "CZSV--", 13, 8, "1011 0010 dddd 1001  0000 0000 imm8", "slab rbd,imm8", 0,
    436   "CZSV--", 13, 32, "1011 0011 dddd 1101 0000 0000 imm8", "slal rrd,imm8", 0,
    437 
    438   "CZS---", 13, 16, "1011 0011 dddd 0001 0000 0000 imm8", "sll rd,imm8", 0,
    439   "CZS---", 13, 8, "1011 0010 dddd 0001  0000 0000 imm8", "sllb rbd,imm8", 0,
    440   "CZS---", 13, 32, "1011 0011 dddd 0101 0000 0000 imm8", "slll rrd,imm8", 0,
    441 
    442   "------", 0, 16, "0011 1011 ssss 0111 imm16", "sout imm16,rs", 0,
    443   "------", 0, 8, "0011 1010 ssss 0111 imm16", "soutb imm16,rbs", 0,
    444   "------", 0, 16, "0011 1011 ssN0 1011 0000 aaaa ddN0 1000", "soutd @rd,@rs,ra", 0,
    445   "------", 0, 8, "0011 1010 ssN0 1011 0000 aaaa ddN0 1000", "soutdb @rd,@rs,rba", 0,
    446   "------", 0, 8, "0011 1100 ssN0 0011 0000 aaaa ddN0 1000", "soutib @rd,@rs,ra", 0,
    447   "------", 0, 16, "0011 1100 ssN0 0011 0000 aaaa ddN0 0000", "soutibr @rd,@rs,ra", 0,
    448 
    449   "CZSV--", 13, 16, "1011 0011 dddd 1001 1111 1111 nim8", "sra rd,imm8", 0,
    450   "CZSV--", 13, 8, "1011 0010 dddd 1001 1111 1111 nim8", "srab rbd,imm8", 0,
    451   "CZSV--", 13, 32, "1011 0011 dddd 1101 1111 1111 nim8", "sral rrd,imm8", 0,
    452 
    453   "CZSV--", 13, 16, "1011 0011 dddd 0001 1111 1111 nim8", "srl rd,imm8", 0,
    454   "CZSV--", 13, 8, "1011 0010 dddd 0001 1111 1111 nim8", "srlb rbd,imm8", 0,
    455   "CZSV--", 13, 32, "1011 0011 dddd 0101 1111 1111 nim8", "srll rrd,imm8", 0,
    456 
    457   "CZSV--", 7, 16, "0000 0011 ssN0 dddd", "sub rd,@rs", 0,
    458 "CZSV--", 9, 16, "0100 0011 0000 dddd address_src", "sub rd,address_src", 0,
    459   "CZSV--", 10, 16, "0100 0011 ssN0 dddd address_src", "sub rd,address_src(rs)", 0,
    460   "CZSV--", 7, 16, "0000 0010 0000 dddd imm16", "sub rd,imm16", 0,
    461   "CZSV--", 4, 16, "1000 0011 ssss dddd", "sub rd,rs", 0,
    462 
    463   "CZSVDH", 7, 8, "0000 0010 ssN0 dddd", "subb rbd,@rs", 0,
    464 "CZSVDH", 9, 8, "0100 0010 0000 dddd address_src", "subb rbd,address_src", 0,
    465   "CZSVDH", 10, 8, "0100 0010 ssN0 dddd address_src", "subb rbd,address_src(rs)", 0,
    466   "CZSVDH", 7, 8, "0000 0010 0000 dddd imm8 imm8", "subb rbd,imm8", 0,
    467   "CZSVDH", 4, 8, "1000 0010 ssss dddd", "subb rbd,rbs", 0,
    468 
    469   "CZSV--", 14, 32, "0001 0010 ssN0 dddd", "subl rrd,@rs", 0,
    470   "CZSV--", 15, 32, "0101 0010 0000 dddd address_src", "subl rrd,address_src", 0,
    471   "CZSV--", 16, 32, "0101 0010 ssN0 dddd address_src", "subl rrd,address_src(rs)", 0,
    472   "CZSV--", 14, 32, "0001 0010 0000 dddd imm32", "subl rrd,imm32", 0,
    473   "CZSV--", 8, 32, "1001 0010 ssss dddd", "subl rrd,rrs", 0,
    474 
    475   "------", 5, 16, "1010 1111 dddd cccc", "tcc cc,rd", 0,
    476   "------", 5, 8, "1010 1110 dddd cccc", "tccb cc,rbd", 0,
    477 
    478   "-ZS---", 8, 16, "0000 1101 ddN0 0100", "test @rd", 0,
    479   "------", 11, 16, "0100 1101 0000 0100 address_dst", "test address_dst", 0,
    480   "------", 12, 16, "0100 1101 ddN0 0100 address_dst", "test address_dst(rd)", 0,
    481   "------", 7, 16, "1000 1101 dddd 0100", "test rd", 0,
    482 
    483   "-ZSP--", 8, 8, "0000 1100 ddN0 0100", "testb @rd", 0,
    484   "-ZSP--", 11, 8, "0100 1100 0000 0100 address_dst", "testb address_dst", 0,
    485   "-ZSP--", 12, 8, "0100 1100 ddN0 0100 address_dst", "testb address_dst(rd)", 0,
    486   "-ZSP--", 7, 8, "1000 1100 dddd 0100", "testb rbd", 0,
    487 
    488   "-ZS---", 13, 32, "0001 1100 ddN0 1000", "testl @rd", 0,
    489 "-ZS---", 16, 32, "0101 1100 0000 1000 address_dst", "testl address_dst", 0,
    490   "-ZS---", 17, 32, "0101 1100 ddN0 1000 address_dst", "testl address_dst(rd)", 0,
    491   "-ZS---", 13, 32, "1001 1100 dddd 1000", "testl rrd", 0,
    492 
    493   "-ZSV--", 25, 8, "1011 1000 ddN0 1000 0000 aaaa ssN0 0000", "trdb @rd,@rs,rba", 0,
    494   "-ZSV--", 25, 8, "1011 1000 ddN0 1100 0000 aaaa ssN0 0000", "trdrb @rd,@rs,rba", 0,
    495   "-ZSV--", 25, 8, "1011 1000 ddN0 0000 0000 rrrr ssN0 0000", "trib @rd,@rs,rbr", 0,
    496   "-ZSV--", 25, 8, "1011 1000 ddN0 0100 0000 rrrr ssN0 0000", "trirb @rd,@rs,rbr", 0,
    497   "-ZSV--", 25, 8, "1011 1000 aaN0 1110 0000 rrrr bbN0 1110", "trtdrb @ra,@rb,rbr", 0,
    498   "-ZSV--", 25, 8, "1011 1000 aaN0 0010 0000 rrrr bbN0 0000", "trtib @ra,@rb,rr", 0,
    499   "-ZSV--", 25, 8, "1011 1000 aaN0 0110 0000 rrrr bbN0 1110", "trtirb @ra,@rb,rbr", 0,
    500   "-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtrb @ra,@rb,rbr", 0,
    501 
    502   "--S---", 11, 16, "0000 1101 ddN0 0110", "tset @rd", 0,
    503   "--S---", 14, 16, "0100 1101 0000 0110 address_dst", "tset address_dst", 0,
    504   "--S---", 15, 16, "0100 1101 ddN0 0110 address_dst", "tset address_dst(rd)", 0,
    505   "--S---", 7, 16, "1000 1101 dddd 0110", "tset rd", 0,
    506 
    507   "--S---", 11, 8, "0000 1100 ddN0 0110", "tsetb @rd", 0,
    508   "--S---", 14, 8, "0100 1100 0000 0110 address_dst", "tsetb address_dst", 0,
    509   "--S---", 15, 8, "0100 1100 ddN0 0110 address_dst", "tsetb address_dst(rd)", 0,
    510   "--S---", 7, 8, "1000 1100 dddd 0110", "tsetb rbd", 0,
    511 
    512   "-ZS---", 7, 16, "0000 1001 ssN0 dddd", "xor rd,@rs", 0,
    513 "-ZS---", 9, 16, "0100 1001 0000 dddd address_src", "xor rd,address_src", 0,
    514   "-ZS---", 10, 16, "0100 1001 ssN0 dddd address_src", "xor rd,address_src(rs)", 0,
    515   "-ZS---", 7, 16, "0000 1001 0000 dddd imm16", "xor rd,imm16", 0,
    516   "-ZS---", 4, 16, "1000 1001 ssss dddd", "xor rd,rs", 0,
    517 
    518   "-ZSP--", 7, 8, "0000 1000 ssN0 dddd", "xorb rbd,@rs", 0,
    519 "-ZSP--", 9, 8, "0100 1000 0000 dddd address_src", "xorb rbd,address_src", 0,
    520   "-ZSP--", 10, 8, "0100 1000 ssN0 dddd address_src", "xorb rbd,address_src(rs)", 0,
    521   "-ZSP--", 7, 8, "0000 1000 0000 dddd imm8 imm8", "xorb rbd,imm8", 0,
    522   "-ZSP--", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0,
    523   "*", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0,
    524   "*", 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
     41  {"------", 10, 8, "0000 1110 imm8", "ext0e imm8", 0},
     42  {"------", 10, 8, "0000 1111 imm8", "ext0f imm8", 0},
     43  {"------", 10, 8, "1000 1110 imm8", "ext8e imm8", 0},
     44  {"------", 10, 8, "1000 1111 imm8", "ext8f imm8", 0},
     45
     46  {"------", 10, 8, "0011 0110 imm8", "rsvd36", 0},
     47  {"------", 10, 8, "0011 1000 imm8", "rsvd38", 0},
     48  {"------", 10, 8, "0111 1000 imm8", "rsvd78", 0},
     49  {"------", 10, 8, "0111 1110 imm8", "rsvd7e", 0},
     50
     51  {"------", 10, 8, "1001 1101 imm8", "rsvd9d", 0},
     52  {"------", 10, 8, "1001 1111 imm8", "rsvd9f", 0},
     53
     54  {"------", 10, 8, "1011 1001 imm8", "rsvdb9", 0},
     55  {"------", 10, 8, "1011 1111 imm8", "rsvdbf", 0},
     56
     57  {"---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 1000", "ldd @rd,@rs,rr", 0},
     58  {"---V--", 11, 16, "1011 1011 ssN0 1001 0000 rrrr ddN0 0000", "lddr @rd,@rs,rr", 0},
     59  {"---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 0000", "lddrb @rd,@rs,rr", 0},
     60  {"---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 0000", "ldir @rd,@rs,rr", 0},
     61  {"CZSV--", 11, 16, "1011 1011 ssN0 0000 0000 rrrr dddd cccc", "cpi rd,@rs,rr,cc", 0},
     62  {"CZSV--", 11, 16, "1011 1011 ssN0 0100 0000 rrrr dddd cccc", "cpir rd,@rs,rr,cc", 0},
     63  {"CZSV--", 11, 16, "1011 1011 ssN0 1100 0000 rrrr dddd cccc", "cpdr rd,@rs,rr,cc", 0},
     64  {"---V--", 11, 16, "1011 1011 ssN0 0001 0000 rrrr ddN0 1000", "ldi @rd,@rs,rr", 0},
     65  {"CZSV--", 11, 16, "1011 1011 ssN0 1000 0000 rrrr dddd cccc", "cpd rd,@rs,rr,cc", 0},
     66  {"---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 0000", "ldirb @rd,@rs,rr", 0},
     67  {"---V--", 11, 8, "1011 1010 ssN0 1001 0000 rrrr ddN0 1000", "lddb @rd,@rs,rr", 0},
     68  {"---V--", 11, 8, "1011 1010 ssN0 0001 0000 rrrr ddN0 1000", "ldib @rd,@rs,rr", 0},
     69  {"CZSV--", 11, 8, "1011 1010 ssN0 1000 0000 rrrr dddd cccc", "cpdb rbd,@rs,rr,cc", 0},
     70  {"CZSV--", 11, 8, "1011 1010 ssN0 1100 0000 rrrr dddd cccc", "cpdrb rbd,@rs,rr,cc", 0},
     71  {"CZSV--", 11, 8, "1011 1010 ssN0 0000 0000 rrrr dddd cccc", "cpib rbd,@rs,rr,cc", 0},
     72  {"CZSV--", 11, 8, "1011 1010 ssN0 0100 0000 rrrr dddd cccc", "cpirb rbd,@rs,rr,cc", 0},
     73  {"CZSV--", 11, 16, "1011 1011 ssN0 1010 0000 rrrr ddN0 cccc", "cpsd @rd,@rs,rr,cc", 0},
     74  {"CZSV--", 11, 8, "1011 1010 ssN0 1010 0000 rrrr ddN0 cccc", "cpsdb @rd,@rs,rr,cc", 0},
     75  {"CZSV--", 11, 16, "1011 1011 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdr @rd,@rs,rr,cc", 0},
     76  {"CZSV--", 11, 8, "1011 1010 ssN0 1110 0000 rrrr ddN0 cccc", "cpsdrb @rd,@rs,rr,cc", 0},
     77  {"CZSV--", 11, 16, "1011 1011 ssN0 0010 0000 rrrr ddN0 cccc", "cpsi @rd,@rs,rr,cc", 0},
     78  {"CZSV--", 11, 8, "1011 1010 ssN0 0010 0000 rrrr ddN0 cccc", "cpsib @rd,@rs,rr,cc", 0},
     79  {"CZSV--", 11, 16, "1011 1011 ssN0 0110 0000 rrrr ddN0 cccc", "cpsir @rd,@rs,rr,cc", 0},
     80  {"CZSV--", 11, 8, "1011 1010 ssN0 0110 0000 rrrr ddN0 cccc", "cpsirb @rd,@rs,rr,cc", 0},
     81
     82  {"------", 2, 8, "0011 0110 0000 0000", "bpt", 0},
     83  {"CZSV--", 5, 16, "1011 0101 ssss dddd", "adc rd,rs", 0},
     84  {"CZSVDH", 5, 8, "1011 0100 ssss dddd", "adcb rbd,rbs", 0},
     85  {"CZSV--", 7, 16, "0000 0001 ssN0 dddd", "add rd,@rs", 0},
     86  {"CZSV--", 9, 16, "0100 0001 0000 dddd address_src", "add rd,address_src", 0},
     87  {"CZSV--", 10, 16, "0100 0001 ssN0 dddd address_src", "add rd,address_src(rs)", 0},
     88  {"CZSV--", 7, 16, "0000 0001 0000 dddd imm16", "add rd,imm16", 0},
     89  {"CZSV--", 4, 16, "1000 0001 ssss dddd", "add rd,rs", 0},
     90  {"CZSVDH", 7, 8, "0000 0000 ssN0 dddd", "addb rbd,@rs", 0},
     91  {"CZSVDH", 9, 8, "0100 0000 0000 dddd address_src", "addb rbd,address_src", 0},
     92  {"CZSVDH", 10, 8, "0100 0000 ssN0 dddd address_src", "addb rbd,address_src(rs)", 0},
     93  {"CZSVDH", 7, 8, "0000 0000 0000 dddd imm8 imm8", "addb rbd,imm8", 0},
     94  {"CZSVDH", 4, 8, "1000 0000 ssss dddd", "addb rbd,rbs", 0},
     95  {"CZSV--", 14, 32, "0001 0110 ssN0 dddd", "addl rrd,@rs", 0},
     96  {"CZSV--", 15, 32, "0101 0110 0000 dddd address_src", "addl rrd,address_src", 0},
     97  {"CZSV--", 16, 32, "0101 0110 ssN0 dddd address_src", "addl rrd,address_src(rs)", 0},
     98  {"CZSV--", 14, 32, "0001 0110 0000 dddd imm32", "addl rrd,imm32", 0},
     99  {"CZSV--", 8, 32, "1001 0110 ssss dddd", "addl rrd,rrs", 0},
     100
     101  {"-ZS---", 7, 16, "0000 0111 ssN0 dddd", "and rd,@rs", 0},
     102  {"-ZS---", 9, 16, "0100 0111 0000 dddd address_src", "and rd,address_src", 0},
     103  {"-ZS---", 10, 16, "0100 0111 ssN0 dddd address_src", "and rd,address_src(rs)", 0},
     104  {"-ZS---", 7, 16, "0000 0111 0000 dddd imm16", "and rd,imm16", 0},
     105  {"-ZS---", 4, 16, "1000 0111 ssss dddd", "and rd,rs", 0},
     106  {"-ZSP--", 7, 8, "0000 0110 ssN0 dddd", "andb rbd,@rs", 0},
     107  {"-ZSP--", 9, 8, "0100 0110 0000 dddd address_src", "andb rbd,address_src", 0},
     108  {"-ZSP--", 10, 8, "0100 0110 ssN0 dddd address_src", "andb rbd,address_src(rs)", 0},
     109  {"-ZSP--", 7, 8, "0000 0110 0000 dddd imm8 imm8", "andb rbd,imm8", 0},
     110  {"-ZSP--", 4, 8, "1000 0110 ssss dddd", "andb rbd,rbs", 0},
     111
     112  {"-Z----", 8, 16, "0010 0111 ddN0 imm4", "bit @rd,imm4", 0},
     113  {"-Z----", 11, 16, "0110 0111 ddN0 imm4 address_dst", "bit address_dst(rd),imm4", 0},
     114  {"-Z----", 10, 16, "0110 0111 0000 imm4 address_dst", "bit address_dst,imm4", 0},
     115  {"-Z----", 4, 16, "1010 0111 dddd imm4", "bit rd,imm4", 0},
     116  {"-Z----", 10, 16, "0010 0111 0000 ssss 0000 dddd 0000 0000", "bit rd,rs", 0},
     117
     118  {"-Z----", 8, 8, "0010 0110 ddN0 imm4", "bitb @rd,imm4", 0},
     119  {"-Z----", 11, 8, "0110 0110 ddN0 imm4 address_dst", "bitb address_dst(rd),imm4", 0},
     120  {"-Z----", 10, 8, "0110 0110 0000 imm4 address_dst", "bitb address_dst,imm4", 0},
     121  {"-Z----", 4, 8, "1010 0110 dddd imm4", "bitb rbd,imm4", 0},
     122  {"-Z----", 10, 8, "0010 0110 0000 ssss 0000 dddd 0000 0000", "bitb rbd,rs", 0},
     123
     124  {"------", 10, 32, "0001 1111 ddN0 0000", "call @rd", 0},
     125  {"------", 12, 32, "0101 1111 0000 0000 address_dst", "call address_dst", 0},
     126  {"------", 13, 32, "0101 1111 ddN0 0000 address_dst", "call address_dst(rd)", 0},
     127  {"------", 10, 16, "1101 disp12", "calr disp12", 0},
     128
     129  {"------", 8, 16, "0000 1101 ddN0 1000", "clr @rd", 0},
     130  {"------", 11, 16, "0100 1101 0000 1000 address_dst", "clr address_dst", 0},
     131  {"------", 12, 16, "0100 1101 ddN0 1000 address_dst", "clr address_dst(rd)", 0},
     132  {"------", 7, 16, "1000 1101 dddd 1000", "clr rd", 0},
     133  {"------", 8, 8, "0000 1100 ddN0 1000", "clrb @rd", 0},
     134  {"------", 11, 8, "0100 1100 0000 1000 address_dst", "clrb address_dst", 0},
     135  {"------", 12, 8, "0100 1100 ddN0 1000 address_dst", "clrb address_dst(rd)", 0},
     136  {"------", 7, 8, "1000 1100 dddd 1000", "clrb rbd", 0},
     137  {"-ZS---", 12, 16, "0000 1101 ddN0 0000", "com @rd", 0},
     138  {"-ZS---", 15, 16, "0100 1101 0000 0000 address_dst", "com address_dst", 0},
     139  {"-ZS---", 16, 16, "0100 1101 ddN0 0000 address_dst", "com address_dst(rd)", 0},
     140  {"-ZS---", 7, 16, "1000 1101 dddd 0000", "com rd", 0},
     141  {"-ZSP--", 12, 8, "0000 1100 ddN0 0000", "comb @rd", 0},
     142  {"-ZSP--", 15, 8, "0100 1100 0000 0000 address_dst", "comb address_dst", 0},
     143  {"-ZSP--", 16, 8, "0100 1100 ddN0 0000 address_dst", "comb address_dst(rd)", 0},
     144  {"-ZSP--", 7, 8, "1000 1100 dddd 0000", "comb rbd", 0},
     145  {"CZSP--", 7, 16, "1000 1101 flags 0101", "comflg flags", 0},
     146
     147  {"CZSV--", 11, 16, "0000 1101 ddN0 0001 imm16", "cp @rd,imm16", 0},
     148  {"CZSV--", 15, 16, "0100 1101 ddN0 0001 address_dst imm16", "cp address_dst(rd),imm16", 0},
     149  {"CZSV--", 14, 16, "0100 1101 0000 0001 address_dst imm16", "cp address_dst,imm16", 0},
     150
     151  {"CZSV--", 7, 16, "0000 1011 ssN0 dddd", "cp rd,@rs", 0},
     152  {"CZSV--", 9, 16, "0100 1011 0000 dddd address_src", "cp rd,address_src", 0},
     153  {"CZSV--", 10, 16, "0100 1011 ssN0 dddd address_src", "cp rd,address_src(rs)", 0},
     154  {"CZSV--", 7, 16, "0000 1011 0000 dddd imm16", "cp rd,imm16", 0},
     155  {"CZSV--", 4, 16, "1000 1011 ssss dddd", "cp rd,rs", 0},
     156
     157  {"CZSV--", 11, 8, "0000 1100 ddN0 0001 imm8 imm8", "cpb @rd,imm8", 0},
     158  {"CZSV--", 15, 8, "0100 1100 ddN0 0001 address_dst imm8 imm8", "cpb address_dst(rd),imm8", 0},
     159  {"CZSV--", 14, 8, "0100 1100 0000 0001 address_dst imm8 imm8", "cpb address_dst,imm8", 0},
     160  {"CZSV--", 7, 8, "0000 1010 ssN0 dddd", "cpb rbd,@rs", 0},
     161  {"CZSV--", 9, 8, "0100 1010 0000 dddd address_src", "cpb rbd,address_src", 0},
     162  {"CZSV--", 10, 8, "0100 1010 ssN0 dddd address_src", "cpb rbd,address_src(rs)", 0},
     163  {"CZSV--", 7, 8, "0000 1010 0000 dddd imm8 imm8", "cpb rbd,imm8", 0},
     164  {"CZSV--", 4, 8, "1000 1010 ssss dddd", "cpb rbd,rbs", 0},
     165
     166  {"CZSV--", 14, 32, "0001 0000 ssN0 dddd", "cpl rrd,@rs", 0},
     167  {"CZSV--", 15, 32, "0101 0000 0000 dddd address_src", "cpl rrd,address_src", 0},
     168  {"CZSV--", 16, 32, "0101 0000 ssN0 dddd address_src", "cpl rrd,address_src(rs)", 0},
     169  {"CZSV--", 14, 32, "0001 0000 0000 dddd imm32", "cpl rrd,imm32", 0},
     170  {"CZSV--", 8, 32, "1001 0000 ssss dddd", "cpl rrd,rrs", 0},
     171
     172  {"CZS---", 5, 8, "1011 0000 dddd 0000", "dab rbd", 0},
     173  {"------", 11, 16, "1111 dddd 0disp7", "dbjnz rbd,disp7", 0},
     174  {"-ZSV--", 11, 16, "0010 1011 ddN0 imm4m1", "dec @rd,imm4m1", 0},
     175  {"-ZSV--", 14, 16, "0110 1011 ddN0 imm4m1 address_dst", "dec address_dst(rd),imm4m1", 0},
     176  {"-ZSV--", 13, 16, "0110 1011 0000 imm4m1 address_dst", "dec address_dst,imm4m1", 0},
     177  {"-ZSV--", 4, 16, "1010 1011 dddd imm4m1", "dec rd,imm4m1", 0},
     178  {"-ZSV--", 11, 8, "0010 1010 ddN0 imm4m1", "decb @rd,imm4m1", 0},
     179  {"-ZSV--", 14, 8, "0110 1010 ddN0 imm4m1 address_dst", "decb address_dst(rd),imm4m1", 0},
     180  {"-ZSV--", 13, 8, "0110 1010 0000 imm4m1 address_dst", "decb address_dst,imm4m1", 0},
     181  {"-ZSV--", 4, 8, "1010 1010 dddd imm4m1", "decb rbd,imm4m1", 0},
     182
     183  {"------", 7, 16, "0111 1100 0000 00ii", "di i2", 0},
     184  {"CZSV--", 107, 16, "0001 1011 ssN0 dddd", "div rrd,@rs", 0},
     185  {"CZSV--", 107, 16, "0101 1011 0000 dddd address_src", "div rrd,address_src", 0},
     186  {"CZSV--", 107, 16, "0101 1011 ssN0 dddd address_src", "div rrd,address_src(rs)", 0},
     187  {"CZSV--", 107, 16, "0001 1011 0000 dddd imm16", "div rrd,imm16", 0},
     188  {"CZSV--", 107, 16, "1001 1011 ssss dddd", "div rrd,rs", 0},
     189  {"CZSV--", 744, 32, "0001 1010 ssN0 dddd", "divl rqd,@rs", 0},
     190  {"CZSV--", 745, 32, "0101 1010 0000 dddd address_src", "divl rqd,address_src", 0},
     191  {"CZSV--", 746, 32, "0101 1010 ssN0 dddd address_src", "divl rqd,address_src(rs)", 0},
     192  {"CZSV--", 744, 32, "0001 1010 0000 dddd imm32", "divl rqd,imm32", 0},
     193  {"CZSV--", 744, 32, "1001 1010 ssss dddd", "divl rqd,rrs", 0},
     194
     195  {"------", 11, 16, "1111 dddd 1disp7", "djnz rd,disp7", 0},
     196  {"------", 7, 16, "0111 1100 0000 01ii", "ei i2", 0},
     197  {"------", 6, 16, "1010 1101 ssss dddd", "ex rd,rs", 0},
     198  {"------", 12, 16, "0010 1101 ssN0 dddd", "ex rd,@rs", 0},
     199  {"------", 15, 16, "0110 1101 0000 dddd address_src", "ex rd,address_src", 0},
     200  {"------", 16, 16, "0110 1101 ssN0 dddd address_src", "ex rd,address_src(rs)", 0},
     201
     202  {"------", 12, 8, "0010 1100 ssN0 dddd", "exb rbd,@rs", 0},
     203  {"------", 15, 8, "0110 1100 0000 dddd address_src", "exb rbd,address_src", 0},
     204  {"------", 16, 8, "0110 1100 ssN0 dddd address_src", "exb rbd,address_src(rs)", 0},
     205  {"------", 6, 8, "1010 1100 ssss dddd", "exb rbd,rbs", 0},
     206
     207  {"------", 11, 16, "1011 0001 dddd 1010", "exts rrd", 0},
     208  {"------", 11, 8, "1011 0001 dddd 0000", "extsb rd", 0},
     209  {"------", 11, 32, "1011 0001 dddd 0111", "extsl rqd", 0},
     210
     211  {"------", 8, 16, "0111 1010 0000 0000", "halt", 0},
     212  {"------", 10, 16, "0011 1101 ssN0 dddd", "in rd,@rs", 0},
     213  {"------", 12, 8, "0011 1100 ssN0 dddd", "inb rbd,@rs", 0},
     214  {"------", 12, 16, "0011 1011 dddd 0100 imm16", "in rd,imm16", 0},
     215  {"------", 10, 8, "0011 1010 dddd 0100 imm16", "inb rbd,imm16", 0},
     216  {"-ZSV--", 11, 16, "0010 1001 ddN0 imm4m1", "inc @rd,imm4m1", 0},
     217  {"-ZSV--", 14, 16, "0110 1001 ddN0 imm4m1 address_dst", "inc address_dst(rd),imm4m1", 0},
     218  {"-ZSV--", 13, 16, "0110 1001 0000 imm4m1 address_dst", "inc address_dst,imm4m1", 0},
     219  {"-ZSV--", 4, 16, "1010 1001 dddd imm4m1", "inc rd,imm4m1", 0},
     220  {"-ZSV--", 11, 8, "0010 1000 ddN0 imm4m1", "incb @rd,imm4m1", 0},
     221  {"-ZSV--", 14, 8, "0110 1000 ddN0 imm4m1 address_dst", "incb address_dst(rd),imm4m1", 0},
     222  {"-ZSV--", 13, 8, "0110 1000 0000 imm4m1 address_dst", "incb address_dst,imm4m1", 0},
     223  {"-ZSV--", 4, 8, "1010 1000 dddd imm4m1", "incb rbd,imm4m1", 0},
     224  {"---V--", 21, 16, "0011 1011 ssN0 1000 0000 aaaa ddN0 1000", "ind @rd,@rs,ra", 0},
     225  {"---V--", 21, 8, "0011 1010 ssN0 1000 0000 aaaa ddN0 1000", "indb @rd,@rs,rba", 0},
     226  {"---V--", 21, 8, "0011 1010 ssN0 0000 0000 aaaa ddN0 1000", "inib @rd,@rs,ra", 0},
     227  {"---V--", 21, 16, "0011 1010 ssN0 0000 0000 aaaa ddN0 0000", "inibr @rd,@rs,ra", 0},
     228  {"CZSVDH", 13, 16, "0111 1011 0000 0000", "iret", 0},
     229  {"------", 10, 16, "0001 1110 ddN0 cccc", "jp cc,@rd", 0},
     230  {"------", 7, 16, "0101 1110 0000 cccc address_dst", "jp cc,address_dst", 0},
     231  {"------", 8, 16, "0101 1110 ddN0 cccc address_dst", "jp cc,address_dst(rd)", 0},
     232  {"------", 6, 16, "1110 cccc disp8", "jr cc,disp8", 0},
     233
     234  {"------", 7, 16, "0000 1101 ddN0 0101 imm16", "ld @rd,imm16", 0},
     235  {"------", 8, 16, "0010 1111 ddN0 ssss", "ld @rd,rs", 0},
     236  {"------", 15, 16, "0100 1101 ddN0 0101 address_dst imm16", "ld address_dst(rd),imm16", 0},
     237  {"------", 12, 16, "0110 1111 ddN0 ssss address_dst", "ld address_dst(rd),rs", 0},
     238  {"------", 14, 16, "0100 1101 0000 0101 address_dst imm16", "ld address_dst,imm16", 0},
     239  {"------", 11, 16, "0110 1111 0000 ssss address_dst", "ld address_dst,rs", 0},
     240  {"------", 14, 16, "0011 0011 ddN0 ssss imm16", "ld rd(imm16),rs", 0},
     241  {"------", 14, 16, "0111 0011 ddN0 ssss 0000 xxxx 0000 0000", "ld rd(rx),rs", 0},
     242  {"------", 7, 16, "0010 0001 ssN0 dddd", "ld rd,@rs", 0},
     243  {"------", 9, 16, "0110 0001 0000 dddd address_src", "ld rd,address_src", 0},
     244  {"------", 10, 16, "0110 0001 ssN0 dddd address_src", "ld rd,address_src(rs)", 0},
     245  {"------", 7, 16, "0010 0001 0000 dddd imm16", "ld rd,imm16", 0},
     246  {"------", 3, 16, "1010 0001 ssss dddd", "ld rd,rs", 0},
     247  {"------", 14, 16, "0011 0001 ssN0 dddd imm16", "ld rd,rs(imm16)", 0},
     248  {"------", 14, 16, "0111 0001 ssN0 dddd 0000 xxxx 0000 0000", "ld rd,rs(rx)", 0},
     249
     250  {"------", 7, 8, "0000 1100 ddN0 0101 imm8 imm8", "ldb @rd,imm8", 0},
     251  {"------", 8, 8, "0010 1110 ddN0 ssss", "ldb @rd,rbs", 0},
     252  {"------", 15, 8, "0100 1100 ddN0 0101 address_dst imm8 imm8", "ldb address_dst(rd),imm8", 0},
     253  {"------", 12, 8, "0110 1110 ddN0 ssss address_dst", "ldb address_dst(rd),rbs", 0},
     254  {"------", 14, 8, "0100 1100 0000 0101 address_dst imm8 imm8", "ldb address_dst,imm8", 0},
     255  {"------", 11, 8, "0110 1110 0000 ssss address_dst", "ldb address_dst,rbs", 0},
     256  {"------", 14, 8, "0011 0010 ddN0 ssss imm16", "ldb rd(imm16),rbs", 0},
     257  {"------", 14, 8, "0111 0010 ddN0 ssss 0000 xxxx 0000 0000", "ldb rd(rx),rbs", 0},
     258  {"------", 7, 8, "0010 0000 ssN0 dddd", "ldb rbd,@rs", 0},
     259  {"------", 9, 8, "0110 0000 0000 dddd address_src", "ldb rbd,address_src", 0},
     260  {"------", 10, 8, "0110 0000 ssN0 dddd address_src", "ldb rbd,address_src(rs)", 0},
     261  {"------", 5, 8, "1100 dddd imm8", "ldb rbd,imm8", 0},
     262  {"------", 3, 8, "1010 0000 ssss dddd", "ldb rbd,rbs", 0},
     263  {"------", 14, 8, "0011 0000 ssN0 dddd imm16", "ldb rbd,rs(imm16)", 0},
     264  {"------", 14, 8, "0111 0000 ssN0 dddd 0000 xxxx 0000 0000", "ldb rbd,rs(rx)", 0},
     265
     266  {"------", 11, 32, "0001 1101 ddN0 ssss", "ldl @rd,rrs", 0},
     267  {"------", 14, 32, "0101 1101 ddN0 ssss address_dst", "ldl address_dst(rd),rrs", 0},
     268  {"------", 15, 32, "0101 1101 0000 ssss address_dst", "ldl address_dst,rrs", 0},
     269  {"------", 17, 32, "0011 0111 ddN0 ssss imm16", "ldl rd(imm16),rrs", 0},
     270  {"------", 17, 32, "0111 0111 ddN0 ssss 0000 xxxx 0000 0000", "ldl rd(rx),rrs", 0},
     271  {"------", 11, 32, "0001 0100 ssN0 dddd", "ldl rrd,@rs", 0},
     272  {"------", 12, 32, "0101 0100 0000 dddd address_src", "ldl rrd,address_src", 0},
     273  {"------", 13, 32, "0101 0100 ssN0 dddd address_src", "ldl rrd,address_src(rs)", 0},
     274  {"------", 11, 32, "0001 0100 0000 dddd imm32", "ldl rrd,imm32", 0},
     275  {"------", 5, 32, "1001 0100 ssss dddd", "ldl rrd,rrs", 0},
     276  {"------", 17, 32, "0011 0101 ssN0 dddd imm16", "ldl rrd,rs(imm16)", 0},
     277  {"------", 17, 32, "0111 0101 ssN0 dddd 0000 xxxx 0000 0000", "ldl rrd,rs(rx)", 0},
     278
     279  {"------", 12, 16, "0111 0110 0000 dddd address_src", "lda prd,address_src", 0},
     280  {"------", 13, 16, "0111 0110 ssN0 dddd address_src", "lda prd,address_src(rs)", 0},
     281  {"------", 15, 16, "0011 0100 ssN0 dddd imm16", "lda prd,rs(imm16)", 0},
     282  {"------", 15, 16, "0111 0100 ssN0 dddd 0000 xxxx 0000 0000", "lda prd,rs(rx)", 0},
     283  {"------", 15, 16, "0011 0100 0000 dddd disp16", "ldar prd,disp16", 0},
     284  {"------", 7, 32, "0111 1101 ssss 1ccc", "ldctl ctrl,rs", 0},
     285  {"------", 7, 32, "0111 1101 dddd 0ccc", "ldctl rd,ctrl", 0},
     286
     287  {"------", 5, 16, "1011 1101 dddd imm4", "ldk rd,imm4", 0},
     288
     289  {"------", 11, 16, "0001 1100 ddN0 1001 0000 ssss 0000 imm4m1", "ldm @rd,rs,n", 0},
     290  {"------", 15, 16, "0101 1100 ddN0 1001 0000 ssss 0000 imm4m1 address_dst", "ldm address_dst(rd),rs,n", 0},
     291  {"------", 14, 16, "0101 1100 0000 1001 0000 ssss 0000 imm4m1 address_dst", "ldm address_dst,rs,n", 0},
     292  {"------", 11, 16, "0001 1100 ssN0 0001 0000 dddd 0000 imm4m1", "ldm rd,@rs,n", 0},
     293  {"------", 15, 16, "0101 1100 ssN0 0001 0000 dddd 0000 imm4m1 address_src", "ldm rd,address_src(rs),n", 0},
     294  {"------", 14, 16, "0101 1100 0000 0001 0000 dddd 0000 imm4m1 address_src", "ldm rd,address_src,n", 0},
     295
     296  {"CZSVDH", 12, 16, "0011 1001 ssN0 0000", "ldps @rs", 0},
     297  {"CZSVDH", 16, 16, "0111 1001 0000 0000 address_src", "ldps address_src", 0},
     298  {"CZSVDH", 17, 16, "0111 1001 ssN0 0000 address_src", "ldps address_src(rs)", 0},
     299
     300  {"------", 14, 16, "0011 0011 0000 ssss disp16", "ldr disp16,rs", 0},
     301  {"------", 14, 16, "0011 0001 0000 dddd disp16", "ldr rd,disp16", 0},
     302  {"------", 14, 8, "0011 0010 0000 ssss disp16", "ldrb disp16,rbs", 0},
     303  {"------", 14, 8, "0011 0000 0000 dddd disp16", "ldrb rbd,disp16", 0},
     304  {"------", 17, 32, "0011 0111 0000 ssss disp16", "ldrl disp16,rrs", 0},
     305  {"------", 17, 32, "0011 0101 0000 dddd disp16", "ldrl rrd,disp16", 0},
     306
     307  {"CZS---", 7, 16, "0111 1011 0000 1010", "mbit", 0},
     308  {"-ZS---", 12, 16, "0111 1011 dddd 1101", "mreq rd", 0},
     309  {"------", 5, 16, "0111 1011 0000 1001", "mres", 0},
     310  {"------", 5, 16, "0111 1011 0000 1000", "mset", 0},
     311
     312  {"CZSV--", 70, 16, "0001 1001 ssN0 dddd", "mult rrd,@rs", 0},
     313  {"CZSV--", 70, 16, "0101 1001 0000 dddd address_src", "mult rrd,address_src", 0},
     314  {"CZSV--", 70, 16, "0101 1001 ssN0 dddd address_src", "mult rrd,address_src(rs)", 0},
     315  {"CZSV--", 70, 16, "0001 1001 0000 dddd imm16", "mult rrd,imm16", 0},
     316  {"CZSV--", 70, 16, "1001 1001 ssss dddd", "mult rrd,rs", 0},
     317  {"CZSV--", 282, 32, "0001 1000 ssN0 dddd", "multl rqd,@rs", 0},
     318  {"CZSV--", 282, 32, "0101 1000 0000 dddd address_src", "multl rqd,address_src", 0},
     319  {"CZSV--", 282, 32, "0101 1000 ssN0 dddd address_src", "multl rqd,address_src(rs)", 0},
     320  {"CZSV--", 282, 32, "0001 1000 0000 dddd imm32", "multl rqd,imm32", 0},
     321  {"CZSV--", 282, 32, "1001 1000 ssss dddd", "multl rqd,rrs", 0},
     322  {"CZSV--", 12, 16, "0000 1101 ddN0 0010", "neg @rd", 0},
     323  {"CZSV--", 15, 16, "0100 1101 0000 0010 address_dst", "neg address_dst", 0},
     324  {"CZSV--", 16, 16, "0100 1101 ddN0 0010 address_dst", "neg address_dst(rd)", 0},
     325  {"CZSV--", 7, 16, "1000 1101 dddd 0010", "neg rd", 0},
     326  {"CZSV--", 12, 8, "0000 1100 ddN0 0010", "negb @rd", 0},
     327  {"CZSV--", 15, 8, "0100 1100 0000 0010 address_dst", "negb address_dst", 0},
     328  {"CZSV--", 16, 8, "0100 1100 ddN0 0010 address_dst", "negb address_dst(rd)", 0},
     329  {"CZSV--", 7, 8, "1000 1100 dddd 0010", "negb rbd", 0},
     330
     331  {"------", 7, 16, "1000 1101 0000 0111", "nop", 0},
     332
     333  {"CZS---", 7, 16, "0000 0101 ssN0 dddd", "or rd,@rs", 0},
     334  {"CZS---", 9, 16, "0100 0101 0000 dddd address_src", "or rd,address_src", 0},
     335  {"CZS---", 10, 16, "0100 0101 ssN0 dddd address_src", "or rd,address_src(rs)", 0},
     336  {"CZS---", 7, 16, "0000 0101 0000 dddd imm16", "or rd,imm16", 0},
     337  {"CZS---", 4, 16, "1000 0101 ssss dddd", "or rd,rs", 0},
     338
     339  {"CZSP--", 7, 8, "0000 0100 ssN0 dddd", "orb rbd,@rs", 0},
     340  {"CZSP--", 9, 8, "0100 0100 0000 dddd address_src", "orb rbd,address_src", 0},
     341  {"CZSP--", 10, 8, "0100 0100 ssN0 dddd address_src", "orb rbd,address_src(rs)", 0},
     342  {"CZSP--", 7, 8, "0000 0100 0000 dddd imm8 imm8", "orb rbd,imm8", 0},
     343  {"CZSP--", 4, 8, "1000 0100 ssss dddd", "orb rbd,rbs", 0},
     344
     345  {"---V--", 0, 16, "0011 1111 ddN0 ssss", "out @rd,rs", 0},
     346  {"---V--", 0, 16, "0011 1011 ssss 0110 imm16", "out imm16,rs", 0},
     347  {"---V--", 0, 8, "0011 1110 ddN0 ssss", "outb @rd,rbs", 0},
     348  {"---V--", 0, 8, "0011 1010 ssss 0110 imm16", "outb imm16,rbs", 0},
     349  {"---V--", 0, 16, "0011 1011 ssN0 1010 0000 aaaa ddN0 1000", "outd @rd,@rs,ra", 0},
     350  {"---V--", 0, 16, "0011 1010 ssN0 1010 0000 aaaa ddN0 1000", "outdb @rd,@rs,rba", 0},
     351  {"---V--", 0, 16, "0011 1011 ssN0 0010 0000 aaaa ddN0 1000", "outi @rd,@rs,ra", 0},
     352  {"---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 1000", "outib @rd,@rs,ra", 0},
     353  {"---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 0000", "outibr @rd,@rs,ra", 0},
     354
     355  {"------", 12, 16, "0001 0111 ssN0 ddN0", "pop @rd,@rs", 0},
     356  {"------", 16, 16, "0101 0111 ssN0 ddN0 address_dst", "pop address_dst(rd),@rs", 0},
     357  {"------", 16, 16, "0101 0111 ssN0 0000 address_dst", "pop address_dst,@rs", 0},
     358  {"------", 8, 16, "1001 0111 ssN0 dddd", "pop rd,@rs", 0},
     359
     360  {"------", 19, 32, "0001 0101 ssN0 ddN0", "popl @rd,@rs", 0},
     361  {"------", 23, 32, "0101 0101 ssN0 ddN0 address_dst", "popl address_dst(rd),@rs", 0},
     362  {"------", 23, 32, "0101 0101 ssN0 0000 address_dst", "popl address_dst,@rs", 0},
     363  {"------", 12, 32, "1001 0101 ssN0 dddd", "popl rrd,@rs", 0},
     364
     365  {"------", 13, 16, "0001 0011 ddN0 ssN0", "push @rd,@rs", 0},
     366  {"------", 14, 16, "0101 0011 ddN0 0000 address_src", "push @rd,address_src", 0},
     367  {"------", 14, 16, "0101 0011 ddN0 ssN0 address_src", "push @rd,address_src(rs)", 0},
     368  {"------", 12, 16, "0000 1101 ddN0 1001 imm16", "push @rd,imm16", 0},
     369  {"------", 9, 16, "1001 0011 ddN0 ssss", "push @rd,rs", 0},
     370
     371  {"------", 20, 32, "0001 0001 ddN0 ssN0", "pushl @rd,@rs", 0},
     372  {"------", 21, 32, "0101 0001 ddN0 ssN0 address_src", "pushl @rd,address_src(rs)", 0},
     373  {"------", 21, 32, "0101 0001 ddN0 0000 address_src", "pushl @rd,address_src", 0},
     374  {"------", 12, 32, "1001 0001 ddN0 ssss", "pushl @rd,rrs", 0},
     375
     376  {"------", 11, 16, "0010 0011 ddN0 imm4", "res @rd,imm4", 0},
     377  {"------", 14, 16, "0110 0011 ddN0 imm4 address_dst", "res address_dst(rd),imm4", 0},
     378  {"------", 13, 16, "0110 0011 0000 imm4 address_dst", "res address_dst,imm4", 0},
     379  {"------", 4, 16, "1010 0011 dddd imm4", "res rd,imm4", 0},
     380  {"------", 10, 16, "0010 0011 0000 ssss 0000 dddd 0000 0000", "res rd,rs", 0},
     381
     382  {"------", 11, 8, "0010 0010 ddN0 imm4", "resb @rd,imm4", 0},
     383  {"------", 14, 8, "0110 0010 ddN0 imm4 address_dst", "resb address_dst(rd),imm4", 0},
     384  {"------", 13, 8, "0110 0010 0000 imm4 address_dst", "resb address_dst,imm4", 0},
     385  {"------", 4, 8, "1010 0010 dddd imm4", "resb rbd,imm4", 0},
     386  {"------", 10, 8, "0010 0010 0000 ssss 0000 dddd 0000 0000", "resb rbd,rs", 0},
     387
     388  {"CZSV--", 7, 16, "1000 1101 flags 0011", "resflg flags", 0},
     389  {"------", 10, 16, "1001 1110 0000 cccc", "ret cc", 0},
     390
     391  {"CZSV--", 6, 16, "1011 0011 dddd 00I0", "rl rd,imm1or2", 0},
     392  {"CZSV--", 6, 8, "1011 0010 dddd 00I0", "rlb rbd,imm1or2", 0},
     393  {"CZSV--", 6, 16, "1011 0011 dddd 10I0", "rlc rd,imm1or2", 0},
     394
     395  {"-Z----", 9, 8, "1011 0010 dddd 10I0", "rlcb rbd,imm1or2", 0},
     396  {"-Z----", 9, 8, "1011 1110 aaaa bbbb", "rldb rbb,rba", 0},
     397
     398  {"CZSV--", 6, 16, "1011 0011 dddd 01I0", "rr rd,imm1or2", 0},
     399  {"CZSV--", 6, 8, "1011 0010 dddd 01I0", "rrb rbd,imm1or2", 0},
     400  {"CZSV--", 6, 16, "1011 0011 dddd 11I0", "rrc rd,imm1or2", 0},
     401
     402  {"-Z----", 9, 8, "1011 0010 dddd 11I0", "rrcb rbd,imm1or2", 0},
     403  {"-Z----", 9, 8, "1011 1100 aaaa bbbb", "rrdb rbb,rba", 0},
     404  {"CZSV--", 5, 16, "1011 0111 ssss dddd", "sbc rd,rs", 0},
     405  {"CZSVDH", 5, 8, "1011 0110 ssss dddd", "sbcb rbd,rbs", 0},
     406
     407  {"CZSVDH", 33, 8, "0111 1111 imm8", "sc imm8", 0},
     408
     409  {"CZSV--", 15, 16, "1011 0011 dddd 1011 0000 ssss 0000 0000", "sda rd,rs", 0},
     410  {"CZSV--", 15, 8, "1011 0010 dddd 1011 0000 ssss 0000 0000", "sdab rbd,rs", 0},
     411  {"CZSV--", 15, 32, "1011 0011 dddd 1111 0000 ssss 0000 0000", "sdal rrd,rs", 0},
     412
     413  {"CZS---", 15, 16, "1011 0011 dddd 0011 0000 ssss 0000 0000", "sdl rd,rs", 0},
     414  {"CZS---", 15, 8, "1011 0010 dddd 0011 0000 ssss 0000 0000", "sdlb rbd,rs", 0},
     415  {"CZS---", 15, 32, "1011 0011 dddd 0111 0000 ssss 0000 0000", "sdll rrd,rs", 0},
     416
     417  {"------", 11, 16, "0010 0101 ddN0 imm4", "set @rd,imm4", 0},
     418  {"------", 14, 16, "0110 0101 ddN0 imm4 address_dst", "set address_dst(rd),imm4", 0},
     419  {"------", 13, 16, "0110 0101 0000 imm4 address_dst", "set address_dst,imm4", 0},
     420  {"------", 4, 16, "1010 0101 dddd imm4", "set rd,imm4", 0},
     421  {"------", 10, 16, "0010 0101 0000 ssss 0000 dddd 0000 0000", "set rd,rs", 0},
     422  {"------", 11, 8, "0010 0100 ddN0 imm4", "setb @rd,imm4", 0},
     423  {"------", 14, 8, "0110 0100 ddN0 imm4 address_dst", "setb address_dst(rd),imm4", 0},
     424  {"------", 13, 8, "0110 0100 0000 imm4 address_dst", "setb address_dst,imm4", 0},
     425  {"------", 4, 8, "1010 0100 dddd imm4", "setb rbd,imm4", 0},
     426  {"------", 10, 8, "0010 0100 0000 ssss 0000 dddd 0000 0000", "setb rbd,rs", 0},
     427
     428  {"CZSV--", 7, 16, "1000 1101 flags 0001", "setflg flags", 0},
     429
     430  {"------", 0, 8, "0011 1010 dddd 0101 imm16", "sinb rbd,imm16", 0},
     431  {"------", 0, 8, "0011 1011 dddd 0101 imm16", "sin rd,imm16", 0},
     432  {"------", 0, 16, "0011 1011 ssN0 1000 0001 aaaa ddN0 1000", "sind @rd,@rs,ra", 0},
     433  {"------", 0, 8, "0011 1010 ssN0 1000 0001 aaaa ddN0 1000", "sindb @rd,@rs,rba", 0},
     434  {"------", 0, 8, "0011 1010 ssN0 0001 0000 aaaa ddN0 1000", "sinib @rd,@rs,ra", 0},
     435  {"------", 0, 16, "0011 1010 ssN0 0001 0000 aaaa ddN0 0000", "sinibr @rd,@rs,ra", 0},
     436
     437  {"CZSV--", 13, 16, "1011 0011 dddd 1001 0000 0000 imm8", "sla rd,imm8", 0},
     438  {"CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 0000 imm4", "slab rbd,imm4", 0},
     439  {"CZSV--", 13, 32, "1011 0011 dddd 1101 0000 0000 imm8", "slal rrd,imm8", 0},
     440
     441  {"CZS---", 13, 16, "1011 0011 dddd 0001 0000 0000 imm8", "sll rd,imm8", 0},
     442  {"CZS---", 13, 8, "1011 0010 dddd 0001 iiii iiii 0000 imm4", "sllb rbd,imm4", 0},
     443  {"CZS---", 13, 32, "1011 0011 dddd 0101 0000 0000 imm8", "slll rrd,imm8", 0},
     444
     445  {"------", 0, 16, "0011 1011 ssss 0111 imm16", "sout imm16,rs", 0},
     446  {"------", 0, 8, "0011 1010 ssss 0111 imm16", "soutb imm16,rbs", 0},
     447  {"------", 0, 16, "0011 1011 ssN0 1011 0000 aaaa ddN0 1000", "soutd @rd,@rs,ra", 0},
     448  {"------", 0, 8, "0011 1010 ssN0 1011 0000 aaaa ddN0 1000", "soutdb @rd,@rs,rba", 0},
     449  {"------", 0, 8, "0011 1010 ssN0 0011 0000 aaaa ddN0 1000", "soutib @rd,@rs,ra", 0},
     450  {"------", 0, 16, "0011 1010 ssN0 0011 0000 aaaa ddN0 0000", "soutibr @rd,@rs,ra", 0},
     451
     452  {"CZSV--", 13, 16, "1011 0011 dddd 1001 1111 1111 nim8", "sra rd,imm8", 0},
     453  {"CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 1111 nim4", "srab rbd,imm4", 0},
     454  {"CZSV--", 13, 32, "1011 0011 dddd 1101 1111 1111 nim8", "sral rrd,imm8", 0},
     455
     456  {"CZSV--", 13, 16, "1011 0011 dddd 0001 1111 1111 nim8", "srl rd,imm8", 0},
     457  {"CZSV--", 13, 8, "1011 0010 dddd 0001 iiii iiii 1111 nim4", "srlb rbd,imm4", 0},
     458  {"CZSV--", 13, 32, "1011 0011 dddd 0101 1111 1111 nim8", "srll rrd,imm8", 0},
     459
     460  {"CZSV--", 7, 16, "0000 0011 ssN0 dddd", "sub rd,@rs", 0},
     461  {"CZSV--", 9, 16, "0100 0011 0000 dddd address_src", "sub rd,address_src", 0},
     462  {"CZSV--", 10, 16, "0100 0011 ssN0 dddd address_src", "sub rd,address_src(rs)", 0},
     463  {"CZSV--", 7, 16, "0000 0011 0000 dddd imm16", "sub rd,imm16", 0},
     464  {"CZSV--", 4, 16, "1000 0011 ssss dddd", "sub rd,rs", 0},
     465
     466  {"CZSVDH", 7, 8, "0000 0010 ssN0 dddd", "subb rbd,@rs", 0},
     467  {"CZSVDH", 9, 8, "0100 0010 0000 dddd address_src", "subb rbd,address_src", 0},
     468  {"CZSVDH", 10, 8, "0100 0010 ssN0 dddd address_src", "subb rbd,address_src(rs)", 0},
     469  {"CZSVDH", 7, 8, "0000 0010 0000 dddd imm8 imm8", "subb rbd,imm8", 0},
     470  {"CZSVDH", 4, 8, "1000 0010 ssss dddd", "subb rbd,rbs", 0},
     471
     472  {"CZSV--", 14, 32, "0001 0010 ssN0 dddd", "subl rrd,@rs", 0},
     473  {"CZSV--", 15, 32, "0101 0010 0000 dddd address_src", "subl rrd,address_src", 0},
     474  {"CZSV--", 16, 32, "0101 0010 ssN0 dddd address_src", "subl rrd,address_src(rs)", 0},
     475  {"CZSV--", 14, 32, "0001 0010 0000 dddd imm32", "subl rrd,imm32", 0},
     476  {"CZSV--", 8, 32, "1001 0010 ssss dddd", "subl rrd,rrs", 0},
     477
     478  {"------", 5, 16, "1010 1111 dddd cccc", "tcc cc,rd", 0},
     479  {"------", 5, 8, "1010 1110 dddd cccc", "tccb cc,rbd", 0},
     480
     481  {"-ZS---", 8, 16, "0000 1101 ddN0 0100", "test @rd", 0},
     482  {"------", 11, 16, "0100 1101 0000 0100 address_dst", "test address_dst", 0},
     483  {"------", 12, 16, "0100 1101 ddN0 0100 address_dst", "test address_dst(rd)", 0},
     484  {"------", 7, 16, "1000 1101 dddd 0100", "test rd", 0},
     485
     486  {"-ZSP--", 8, 8, "0000 1100 ddN0 0100", "testb @rd", 0},
     487  {"-ZSP--", 11, 8, "0100 1100 0000 0100 address_dst", "testb address_dst", 0},
     488  {"-ZSP--", 12, 8, "0100 1100 ddN0 0100 address_dst", "testb address_dst(rd)", 0},
     489  {"-ZSP--", 7, 8, "1000 1100 dddd 0100", "testb rbd", 0},
     490
     491  {"-ZS---", 13, 32, "0001 1100 ddN0 1000", "testl @rd", 0},
     492  {"-ZS---", 16, 32, "0101 1100 0000 1000 address_dst", "testl address_dst", 0},
     493  {"-ZS---", 17, 32, "0101 1100 ddN0 1000 address_dst", "testl address_dst(rd)", 0},
     494  {"-ZS---", 13, 32, "1001 1100 dddd 1000", "testl rrd", 0},
     495
     496  {"-ZSV--", 25, 8, "1011 1000 ddN0 1000 0000 aaaa ssN0 0000", "trdb @rd,@rs,rba", 0},
     497  {"-ZSV--", 25, 8, "1011 1000 ddN0 1100 0000 aaaa ssN0 0000", "trdrb @rd,@rs,rba", 0},
     498  {"-ZSV--", 25, 8, "1011 1000 ddN0 0000 0000 rrrr ssN0 0000", "trib @rd,@rs,rbr", 0},
     499  {"-ZSV--", 25, 8, "1011 1000 ddN0 0100 0000 rrrr ssN0 0000", "trirb @rd,@rs,rbr", 0},
     500  {"-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtdb @ra,@rb,rbr", 0},
     501  {"-ZSV--", 25, 8, "1011 1000 aaN0 1110 0000 rrrr bbN0 1110", "trtdrb @ra,@rb,rbr", 0},
     502  {"-ZSV--", 25, 8, "1011 1000 aaN0 0010 0000 rrrr bbN0 0000", "trtib @ra,@rb,rbr", 0},
     503  {"-ZSV--", 25, 8, "1011 1000 aaN0 0110 0000 rrrr bbN0 1110", "trtirb @ra,@rb,rbr", 0},
     504  {"-ZSV--", 25, 8, "1011 1000 aaN0 1010 0000 rrrr bbN0 0000", "trtrb @ra,@rb,rbr", 0},
     505
     506  {"--S---", 11, 16, "0000 1101 ddN0 0110", "tset @rd", 0},
     507  {"--S---", 14, 16, "0100 1101 0000 0110 address_dst", "tset address_dst", 0},
     508  {"--S---", 15, 16, "0100 1101 ddN0 0110 address_dst", "tset address_dst(rd)", 0},
     509  {"--S---", 7, 16, "1000 1101 dddd 0110", "tset rd", 0},
     510
     511  {"--S---", 11, 8, "0000 1100 ddN0 0110", "tsetb @rd", 0},
     512  {"--S---", 14, 8, "0100 1100 0000 0110 address_dst", "tsetb address_dst", 0},
     513  {"--S---", 15, 8, "0100 1100 ddN0 0110 address_dst", "tsetb address_dst(rd)", 0},
     514  {"--S---", 7, 8, "1000 1100 dddd 0110", "tsetb rbd", 0},
     515
     516  {"-ZS---", 7, 16, "0000 1001 ssN0 dddd", "xor rd,@rs", 0},
     517  {"-ZS---", 9, 16, "0100 1001 0000 dddd address_src", "xor rd,address_src", 0},
     518  {"-ZS---", 10, 16, "0100 1001 ssN0 dddd address_src", "xor rd,address_src(rs)", 0},
     519  {"-ZS---", 7, 16, "0000 1001 0000 dddd imm16", "xor rd,imm16", 0},
     520  {"-ZS---", 4, 16, "1000 1001 ssss dddd", "xor rd,rs", 0},
     521
     522  {"-ZSP--", 7, 8, "0000 1000 ssN0 dddd", "xorb rbd,@rs", 0},
     523  {"-ZSP--", 9, 8, "0100 1000 0000 dddd address_src", "xorb rbd,address_src", 0},
     524  {"-ZSP--", 10, 8, "0100 1000 ssN0 dddd address_src", "xorb rbd,address_src(rs)", 0},
     525  {"-ZSP--", 7, 8, "0000 1000 0000 dddd imm8 imm8", "xorb rbd,imm8", 0},
     526  {"-ZSP--", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0},
     527
     528  {"------", 7, 32, "1000 1100 dddd 0001", "ldctlb rbd,ctrl", 0},
     529  {"CZSVDH", 7, 32, "1000 1100 ssss 1001", "ldctlb ctrl,rbs", 0},
     530
     531  {"*", 4, 8, "1000 1000 ssss dddd", "xorb rbd,rbs", 0},
     532  {"*", 0, 0, 0, 0, 0}
    525533};
    526534
     
    589597  {"imm4m1", "CLASS_IMM +(ARG_IMM4M1)",},
    590598  {"imm4", "CLASS_IMM +(ARG_IMM4)",},
    591   {"n", "CLASS_IMM + (ARG_IMMN)",},
     599  {"n", "CLASS_IMM + (ARG_IMM4M1)",},
    592600  {"ctrl", "CLASS_CTRL",},
    593601  {"rba", "CLASS_REG_BYTE+(ARG_RA)",},
     
    621629  {"2", "CLASS_IMM+(ARG_IMM_2)",},
    622630
    623   0, 0
     631  {0, 0}
    624632};
    625633
    626634struct tok_struct toks[] =
    627635{
    628   "0000", "CLASS_BIT+0", 1,
    629   "0001", "CLASS_BIT+1", 1,
    630   "0010", "CLASS_BIT+2", 1,
    631   "0011", "CLASS_BIT+3", 1,
    632   "0100", "CLASS_BIT+4", 1,
    633   "0101", "CLASS_BIT+5", 1,
    634   "0110", "CLASS_BIT+6", 1,
    635   "0111", "CLASS_BIT+7", 1,
    636   "1000", "CLASS_BIT+8", 1,
    637   "1001", "CLASS_BIT+9", 1,
    638   "1010", "CLASS_BIT+0xa", 1,
    639   "1011", "CLASS_BIT+0xb", 1,
    640   "1100", "CLASS_BIT+0xc", 1,
    641   "1101", "CLASS_BIT+0xd", 1,
    642   "1110", "CLASS_BIT+0xe", 1,
    643   "1111", "CLASS_BIT+0xf", 1,
    644 
    645   "00I0", "CLASS_BIT_1OR2+0", 1,
    646   "00I0", "CLASS_BIT_1OR2+1", 1,
    647   "00I0", "CLASS_BIT_1OR2+2", 1,
    648   "00I0", "CLASS_BIT_1OR2+3", 1,
    649   "01I0", "CLASS_BIT_1OR2+4", 1,
    650   "01I0", "CLASS_BIT_1OR2+5", 1,
    651   "01I0", "CLASS_BIT_1OR2+6", 1,
    652   "01I0", "CLASS_BIT_1OR2+7", 1,
    653   "10I0", "CLASS_BIT_1OR2+8", 1,
    654   "10I0", "CLASS_BIT_1OR2+9", 1,
    655   "10I0", "CLASS_BIT_1OR2+0xa", 1,
    656   "10I0", "CLASS_BIT_1OR2+0xb", 1,
    657   "11I0", "CLASS_BIT_1OR2+0xc", 1,
    658   "11I0", "CLASS_BIT_1OR2+0xd", 1,
    659   "11I0", "CLASS_BIT_1OR2+0xe", 1,
    660   "11I0", "CLASS_BIT_1OR2+0xf", 1,
    661 
    662   "ssss", "CLASS_REG+(ARG_RS)", 1,
    663   "dddd", "CLASS_REG+(ARG_RD)", 1,
    664   "aaaa", "CLASS_REG+(ARG_RA)", 1,
    665   "bbbb", "CLASS_REG+(ARG_RB)", 1,
    666   "rrrr", "CLASS_REG+(ARG_RR)", 1,
    667 
    668   "ssN0", "CLASS_REGN0+(ARG_RS)", 1,
    669   "ddN0", "CLASS_REGN0+(ARG_RD)", 1,
    670   "aaN0", "CLASS_REGN0+(ARG_RA)", 1,
    671   "bbN0", "CLASS_REGN0+(ARG_RB)", 1,
    672   "rrN0", "CLASS_REGN0+(ARG_RR)", 1,
    673 
    674   "cccc", "CLASS_CC", 1,
    675   "nnnn", "CLASS_IMM+(ARG_IMMN)", 1,
    676   "xxxx", "CLASS_REG+(ARG_RX)", 1,
    677   "xxN0", "CLASS_REGN0+(ARG_RX)", 1,
    678   "nminus1", "CLASS_IMM+(ARG_IMMNMINUS1)", 1,
    679 
    680   "disp16", "CLASS_DISP+(ARG_DISP16)", 4,
    681   "disp12", "CLASS_DISP+(ARG_DISP12)", 3,
    682   "flags", "CLASS_FLAGS", 1,
    683   "address_dst", "CLASS_ADDRESS+(ARG_DST)", 4,
    684   "address_src", "CLASS_ADDRESS+(ARG_SRC)", 4,
    685   "imm4m1", "CLASS_IMM+(ARG_IMM4M1)", 1,
    686   "imm4", "CLASS_IMM+(ARG_IMM4)", 1,
    687 
    688   "imm8", "CLASS_IMM+(ARG_IMM8)", 2,
    689   "imm16", "CLASS_IMM+(ARG_IMM16)", 4,
    690   "imm32", "CLASS_IMM+(ARG_IMM32)", 8,
    691   "nim8", "CLASS_IMM+(ARG_NIM8)", 2,
    692   "0ccc", "CLASS_0CCC", 1,
    693   "1ccc", "CLASS_1CCC", 1,
    694   "disp8", "CLASS_DISP8", 2,
    695   "0disp7", "CLASS_0DISP7", 2,
    696   "1disp7", "CLASS_1DISP7", 2,
    697   "01ii", "CLASS_01II", 1,
    698   "00ii", "CLASS_00II", 1,
    699   0, 0
    700 
     636  {"0000", "CLASS_BIT+0", 1},
     637  {"0001", "CLASS_BIT+1", 1},
     638  {"0010", "CLASS_BIT+2", 1},
     639  {"0011", "CLASS_BIT+3", 1},
     640  {"0100", "CLASS_BIT+4", 1},
     641  {"0101", "CLASS_BIT+5", 1},
     642  {"0110", "CLASS_BIT+6", 1},
     643  {"0111", "CLASS_BIT+7", 1},
     644  {"1000", "CLASS_BIT+8", 1},
     645  {"1001", "CLASS_BIT+9", 1},
     646  {"1010", "CLASS_BIT+0xa", 1},
     647  {"1011", "CLASS_BIT+0xb", 1},
     648  {"1100", "CLASS_BIT+0xc", 1},
     649  {"1101", "CLASS_BIT+0xd", 1},
     650  {"1110", "CLASS_BIT+0xe", 1},
     651  {"1111", "CLASS_BIT+0xf", 1},
     652
     653  {"00I0", "CLASS_BIT_1OR2+0", 1},
     654  {"00I0", "CLASS_BIT_1OR2+1", 1},
     655  {"00I0", "CLASS_BIT_1OR2+2", 1},
     656  {"00I0", "CLASS_BIT_1OR2+3", 1},
     657  {"01I0", "CLASS_BIT_1OR2+4", 1},
     658  {"01I0", "CLASS_BIT_1OR2+5", 1},
     659  {"01I0", "CLASS_BIT_1OR2+6", 1},
     660  {"01I0", "CLASS_BIT_1OR2+7", 1},
     661  {"10I0", "CLASS_BIT_1OR2+8", 1},
     662  {"10I0", "CLASS_BIT_1OR2+9", 1},
     663  {"10I0", "CLASS_BIT_1OR2+0xa", 1},
     664  {"10I0", "CLASS_BIT_1OR2+0xb", 1},
     665  {"11I0", "CLASS_BIT_1OR2+0xc", 1},
     666  {"11I0", "CLASS_BIT_1OR2+0xd", 1},
     667  {"11I0", "CLASS_BIT_1OR2+0xe", 1},
     668  {"11I0", "CLASS_BIT_1OR2+0xf", 1},
     669
     670  {"ssss", "CLASS_REG+(ARG_RS)", 1},
     671  {"dddd", "CLASS_REG+(ARG_RD)", 1},
     672  {"aaaa", "CLASS_REG+(ARG_RA)", 1},
     673  {"bbbb", "CLASS_REG+(ARG_RB)", 1},
     674  {"rrrr", "CLASS_REG+(ARG_RR)", 1},
     675
     676  {"ssN0", "CLASS_REGN0+(ARG_RS)", 1},
     677  {"ddN0", "CLASS_REGN0+(ARG_RD)", 1},
     678  {"aaN0", "CLASS_REGN0+(ARG_RA)", 1},
     679  {"bbN0", "CLASS_REGN0+(ARG_RB)", 1},
     680  {"rrN0", "CLASS_REGN0+(ARG_RR)", 1},
     681
     682  {"cccc", "CLASS_CC", 1},
     683  {"nnnn", "CLASS_IMM+(ARG_IMMN)", 1},
     684  {"xxxx", "CLASS_REG+(ARG_RX)", 1},
     685  {"xxN0", "CLASS_REGN0+(ARG_RX)", 1},
     686  {"nminus1", "CLASS_IMM+(ARG_IMMNMINUS1)", 1},
     687
     688  {"disp16", "CLASS_DISP+(ARG_DISP16)", 4},
     689  {"disp12", "CLASS_DISP+(ARG_DISP12)", 3},
     690  {"flags", "CLASS_FLAGS", 1},
     691  {"address_dst", "CLASS_ADDRESS+(ARG_DST)", 4},
     692  {"address_src", "CLASS_ADDRESS+(ARG_SRC)", 4},
     693  {"imm4m1", "CLASS_IMM+(ARG_IMM4M1)", 1},
     694  {"imm4", "CLASS_IMM+(ARG_IMM4)", 1},
     695
     696  {"imm8", "CLASS_IMM+(ARG_IMM8)", 2},
     697  {"imm16", "CLASS_IMM+(ARG_IMM16)", 4},
     698  {"imm32", "CLASS_IMM+(ARG_IMM32)", 8},
     699  {"nim4", "CLASS_IMM+(ARG_NIM4)", 2},
     700  {"nim8", "CLASS_IMM+(ARG_NIM8)", 2},
     701  {"0ccc", "CLASS_0CCC", 1},
     702  {"1ccc", "CLASS_1CCC", 1},
     703  {"disp8", "CLASS_DISP8", 2},
     704  {"0disp7", "CLASS_0DISP7", 2},
     705  {"1disp7", "CLASS_1DISP7", 2},
     706  {"01ii", "CLASS_01II", 1},
     707  {"00ii", "CLASS_00II", 1},
     708
     709  {"iiii", "CLASS_IGNORE", 1},
     710  {0, 0}
    701711};
    702712
     
    764774int
    765775chewname (name)
    766      char *name;
     776     char **name;
    767777{
    768778  char *n;
    769779  int nargs = 0;
    770780
    771   n = name;
    772   printf ("\"");
     781  n = *name;
    773782  while (*n && !iswhite (*n))
    774     {
    775       printf ("%c", *n);
    776       n++;
    777     }
    778   printf ("\",");               /* Scan the operands and make entires for
    779                                    them -remember indirect things */
    780 
    781   n = name;
    782   printf ("OPC_");
    783   while (*n && !iswhite (*n))
    784     {
    785       printf ("%c", *n);
    786       n++;
    787     }
    788   printf (",0,{");
    789 
     783    n++;
     784
     785  if (*n)
     786    {
     787      size_t len = n - *name;
     788      char *newname = xmalloc (len + 1);
     789      memcpy (newname, *name, len);
     790      newname[len] = 0;
     791      *name = newname;
     792    }
     793
     794  printf ("\"%s\",OPC_%s,0,{", *name, *name);
     795
     796  /* Scan the operands and make entries for them.
     797     Remember indirect things.  */
    790798  while (*n)
    791799    {
     
    806814}
    807815
    808 static 
     816static
    809817void
    810818sub (x, c)
     
    894902{
    895903  int c = count ();
    896   struct op *new = xmalloc (sizeof (struct op) * c);
     904  struct op *new = (struct op *) xmalloc (sizeof (struct op) * c);
    897905  struct op *p = opt;
    898906  memcpy (new, p, c * sizeof (struct op));
     
    945953}
    946954
    947 static 
     955static
    948956void
    949957gas ()
     
    951959  int c = count ();
    952960  struct op *p = opt;
    953   int idx = 0;
     961  int idx = -1;
    954962  char *oldname = "";
    955   struct op *new = xmalloc (sizeof (struct op) * c);
     963  struct op *new = (struct op *) xmalloc (sizeof (struct op) * c);
    956964
    957965  memcpy (new, p, c * sizeof (struct op));
     
    960968  qsort (new, c, sizeof (struct op), func);
    961969
    962   printf ("                     /* THIS FILE IS AUTOMAGICALLY GENERATED, DON'T EDIT IT */\n");
     970  printf ("/* DO NOT EDIT!  -*- buffer-read-only: t -*-\n");
     971  printf ("   This file is automatically generated by z8kgen.  */\n\n");
    963972
    964973  printf ("#define ARG_MASK 0x0f\n");
     
    987996
    988997  printf ("#define ARG_DISP12 0x0b\n");
     998  printf ("#define ARG_NIM4 0x0c\n");
    989999  printf ("#define ARG_DISP8 0x0c\n");
    9901000  printf ("#define ARG_IMM4M1 0x0d\n");
     
    9981008  printf ("#define CLASS_CC 0x70\n");
    9991009  printf ("#define CLASS_CTRL 0x80\n");
     1010  printf ("#define CLASS_IGNORE 0x90\n");
    10001011  printf ("#define CLASS_ADDRESS 0xd0\n");
    10011012  printf ("#define CLASS_0CCC 0xe0\n");
     
    12041215  printf ("#define OPC_rsvdb9 172\n");
    12051216  printf ("#define OPC_rsvdbf 172\n");
     1217  printf ("#define OPC_outi 173\n");
     1218  printf ("#define OPC_ldctlb 174\n");
     1219  printf ("#define OPC_sin 175\n");
     1220  printf ("#define OPC_trtdb 176\n");
    12061221#if 0
    12071222  for (i = 0; toks[i].token; i++)
    12081223    printf ("#define %s\t0x%x\n", toks[i].token, i * 16);
    12091224#endif
    1210   printf ("typedef struct {\n");
     1225  printf ("\ntypedef struct {\n");
    12111226
    12121227  printf ("#ifdef NICENAMES\n");
    1213   printf ("char *nicename;\n");
    1214   printf ("int type;\n");
    1215   printf ("int cycles;\n");
    1216   printf ("int flags;\n");
     1228  printf ("  const char *nicename;\n");
     1229  printf ("  int type;\n");
     1230  printf ("  int cycles;\n");
     1231  printf ("  int flags;\n");
    12171232  printf ("#endif\n");
    1218   printf ("char *name;\n");
    1219   printf ("unsigned char opcode;\n");
    1220   printf ("void (*func)();\n");
    1221   printf ("unsigned int arg_info[4];\n");
    1222   printf ("unsigned int byte_info[%d];\n", BYTE_INFO_LEN);
    1223   printf ("int noperands;\n");
    1224   printf ("int length;\n");
    1225   printf ("int idx;\n");
    1226   printf ("} opcode_entry_type;\n");
     1233  printf ("  const char *name;\n");
     1234  printf ("  unsigned char opcode;\n");
     1235  printf ("  void (*func) PARAMS ((void));\n");
     1236  printf ("  unsigned int arg_info[4];\n");
     1237  printf ("  unsigned int byte_info[%d];\n", BYTE_INFO_LEN);
     1238  printf ("  int noperands;\n");
     1239  printf ("  int length;\n");
     1240  printf ("  int idx;\n");
     1241  printf ("} opcode_entry_type;\n\n");
    12271242  printf ("#ifdef DEFINE_TABLE\n");
    1228   printf ("opcode_entry_type z8k_table[] = {\n");
     1243  printf ("const opcode_entry_type z8k_table[] = {\n");
    12291244
    12301245  while (new->flags && new->flags[0])
     
    12331248      int length;
    12341249
    1235       printf ("\n\n/* %s *** %s */\n", new->bits, new->name);
     1250      printf ("\n/* %s *** %s */\n", new->bits, new->name);
    12361251      printf ("{\n");
    12371252
    12381253      printf ("#ifdef NICENAMES\n");
    1239       printf ("\"%s\",%d,%d,\n", new->name, new->type, new->cycles);
     1254      printf ("\"%s\",%d,%d,", new->name, new->type, new->cycles);
    12401255      {
    12411256        int answer = 0;
     
    12551270      printf ("#endif\n");
    12561271
    1257       nargs = chewname (new->name);
     1272      nargs = chewname (&new->name);
    12581273
    12591274      printf ("\n\t");
     
    12631278        abort();
    12641279
     1280      if (strcmp (oldname, new->name) != 0)
     1281        idx++;
    12651282      printf (",%d,%d,%d", nargs, length, idx);
    1266       idx++;
    12671283      oldname = new->name;
    12681284      printf ("},\n");
    12691285      new++;
    12701286    }
    1271   printf ("0,0};\n");
     1287  printf ("\n/* end marker */\n");
     1288  printf ("{\n#ifdef NICENAMES\nNULL,0,0,\n0,\n#endif\n");
     1289  printf ("NULL,0,0,{0,0,0,0},{0,0,0,0,0,0,0,0,0,0},0,0,0}\n};\n");
    12721290  printf ("#endif\n");
    12731291}
     
    13101328      printf ("-h : generate new table for humans\n");
    13111329    }
    1312 return 0;
     1330  return 0;
    13131331}
Note: See TracChangeset for help on using the changeset viewer.