* z8k-dis.c (instr_data_s): Change tabl_index from long to int.
authorChristian Groessler <chris@groessler.org>
Thu, 19 Jun 2003 13:46:37 +0000 (13:46 +0000)
committerChristian Groessler <chris@groessler.org>
Thu, 19 Jun 2003 13:46:37 +0000 (13:46 +0000)
(print_insn_z8k): Correctly check return value from
z8k_lookup_instr call.
(unparse_instr): Handle CLASS_IRO case.
* z8kgen.c: Fix function definitions.  Fix formatting.
(opt): Add brk opcode alias for non-simulator breakpoint.  Add
missing and fix existing in/out and sin/sout opcode definitions.
(args): "@ri", "@ro" - add CLASS_IRO register usage for in/out
opcodes.
(internal): Check p->flags for non-zero before dereferencing it.
(gas): Add CLASS_IRO line.  Insert new OPC_xxx lines for the added
opcodes and renumber the remaining lines repectively.
(main): Remove "-d" command line switch.
* z8k-opc.h: Regenerate with new z8kgen.c.

opcodes/ChangeLog
opcodes/z8k-dis.c
opcodes/z8k-opc.h
opcodes/z8kgen.c

index c5e3fff933264dc688970437b70605c69046dace..b112aae223ba5c04756773914173a2ef4eed503d 100644 (file)
@@ -1,3 +1,20 @@
+2003-06-19  Christian Groessler  <chris@groessler.org>
+
+       * z8k-dis.c (instr_data_s): Change tabl_index from long to int.
+       (print_insn_z8k): Correctly check return value from
+       z8k_lookup_instr call.
+       (unparse_instr): Handle CLASS_IRO case.
+       * z8kgen.c: Fix function definitions.  Fix formatting.
+       (opt): Add brk opcode alias for non-simulator breakpoint.  Add
+       missing and fix existing in/out and sin/sout opcode definitions.
+       (args): "@ri", "@ro" - add CLASS_IRO register usage for in/out
+       opcodes.
+       (internal): Check p->flags for non-zero before dereferencing it.
+       (gas): Add CLASS_IRO line.  Insert new OPC_xxx lines for the added
+       opcodes and renumber the remaining lines repectively.
+       (main): Remove "-d" command line switch.
+       * z8k-opc.h: Regenerate with new z8kgen.c.
+
 2003-06-11  H.J. Lu <hongjiu.lu@intel.com>
 
        * po/Make-in (DESTDIR): New.
index 69d1792312acfd586848f98164c3c4bb0359b0c6..5d15ee83918ded96d34797c20003c432084ca447 100644 (file)
@@ -1,5 +1,5 @@
 /* Disassemble z8000 code.
-   Copyright 1992, 1993, 1998, 2000, 2001, 2002
+   Copyright 1992, 1993, 1998, 2000, 2001, 2002, 2003
    Free Software Foundation, Inc.
 
    This file is part of GNU Binutils.
@@ -40,7 +40,7 @@ typedef struct
   bfd_vma insn_start;
   jmp_buf bailout;
 
-  long tabl_index;
+  int tabl_index;
   char instr_asmsrc[80];
   unsigned long arg_reg[0x0f];
   unsigned long immediate;
@@ -169,7 +169,7 @@ print_insn_z8k (addr, info, is_segmented)
   info->display_endian = BFD_ENDIAN_BIG;
 
   instr_data.tabl_index = z8k_lookup_instr (instr_data.nibbles, info);
-  if (instr_data.tabl_index > 0)
+  if (instr_data.tabl_index >= 0)
     {
       unpack_instr (&instr_data, is_segmented, info);
       unparse_instr (&instr_data, is_segmented);
@@ -581,6 +581,10 @@ unparse_instr (instr_data, is_segmented)
            sprintf (tmp_str, "@r%ld", instr_data->arg_reg[datum_value]);
          strcat (out_str, tmp_str);
          break;
+       case CLASS_IRO:
+          sprintf (tmp_str, "@r%ld", instr_data->arg_reg[datum_value]);
+         strcat (out_str, tmp_str);
+         break;
        case CLASS_FLAGS:
          sprintf (tmp_str, "0x%0lx", instr_data->flags);
          strcat (out_str, tmp_str);
index 022f58132057d8e54732a0f33f508a1f54ac34cf..c714bdea6c264efc29990215802ef5149509bd60 100644 (file)
@@ -26,7 +26,6 @@
 #define ARG_NIM4 0x0c
 #define ARG_DISP8 0x0c
 #define ARG_IMM4M1 0x0d
-#define CLASS_MASK 0x1fff0
 #define CLASS_X 0x10
 #define CLASS_BA 0x20
 #define CLASS_DA 0x30
@@ -46,8 +45,9 @@
 #define CLASS_BIT 0x500
 #define CLASS_FLAGS 0x600
 #define CLASS_IR 0x700
-#define CLASS_DISP8 0x800
-#define CLASS_BIT_1OR2 0x900
+#define CLASS_IRO       0x800
+#define CLASS_DISP8     0x900
+#define CLASS_BIT_1OR2  0xa00
 #define CLASS_REG 0x7000
 #define CLASS_REG_BYTE 0x2000
 #define CLASS_REG_WORD 0x3000
@@ -55,6 +55,7 @@
 #define CLASS_REG_LONG 0x5000
 #define CLASS_REGN0 0x8000
 #define CLASS_PR 0x10000
+#define CLASS_MASK     0x1fff0
 #define OPC_adc 0
 #define OPC_adcb 1
 #define OPC_add 2
 #define OPC_incb 53
 #define OPC_ind 54
 #define OPC_indb 55
-#define OPC_inib 56
-#define OPC_inibr 57
-#define OPC_iret 58
-#define OPC_jp 59
-#define OPC_jr 60
-#define OPC_ld 61
-#define OPC_lda 62
-#define OPC_ldar 63
-#define OPC_ldb 64
-#define OPC_ldctl 65
-#define OPC_ldir 66
-#define OPC_ldirb 67
-#define OPC_ldk 68
-#define OPC_ldl 69
-#define OPC_ldm 70
-#define OPC_ldps 71
-#define OPC_ldr 72
-#define OPC_ldrb 73
-#define OPC_ldrl 74
-#define OPC_mbit 75
-#define OPC_mreq 76
-#define OPC_mres 77
-#define OPC_mset 78
-#define OPC_mult 79
-#define OPC_multl 80
-#define OPC_neg 81
-#define OPC_negb 82
-#define OPC_nop 83
-#define OPC_or 84
-#define OPC_orb 85
-#define OPC_out 86
-#define OPC_outb 87
-#define OPC_outd 88
-#define OPC_outdb 89
-#define OPC_outib 90
-#define OPC_outibr 91
-#define OPC_pop 92
-#define OPC_popl 93
-#define OPC_push 94
-#define OPC_pushl 95
-#define OPC_res 96
-#define OPC_resb 97
-#define OPC_resflg 98
-#define OPC_ret 99
-#define OPC_rl 100
-#define OPC_rlb 101
-#define OPC_rlc 102
-#define OPC_rlcb 103
-#define OPC_rldb 104
-#define OPC_rr 105
-#define OPC_rrb 106
-#define OPC_rrc 107
-#define OPC_rrcb 108
-#define OPC_rrdb 109
-#define OPC_sbc 110
-#define OPC_sbcb 111
-#define OPC_sda 112
-#define OPC_sdab 113
-#define OPC_sdal 114
-#define OPC_sdl 115
-#define OPC_sdlb 116
-#define OPC_sdll 117
-#define OPC_set 118
-#define OPC_setb 119
-#define OPC_setflg 120
-#define OPC_sinb 121
-#define OPC_sind 122
-#define OPC_sindb 123
-#define OPC_sinib 124
-#define OPC_sinibr 125
-#define OPC_sla 126
-#define OPC_slab 127
-#define OPC_slal 128
-#define OPC_sll 129
-#define OPC_sllb 130
-#define OPC_slll 131
-#define OPC_sout 132
-#define OPC_soutb 133
-#define OPC_soutd 134
-#define OPC_soutdb 135
-#define OPC_soutib 136
-#define OPC_soutibr 137
-#define OPC_sra 138
-#define OPC_srab 139
-#define OPC_sral 140
-#define OPC_srl 141
-#define OPC_srlb 142
-#define OPC_srll 143
-#define OPC_sub 144
-#define OPC_subb 145
-#define OPC_subl 146
-#define OPC_tcc 147
-#define OPC_tccb 148
-#define OPC_test 149
-#define OPC_testb 150
-#define OPC_testl 151
-#define OPC_trdb 152
-#define OPC_trdrb 153
-#define OPC_trib 154
-#define OPC_trirb 155
-#define OPC_trtdrb 156
-#define OPC_trtib 157
-#define OPC_trtirb 158
-#define OPC_trtrb 159
-#define OPC_tset 160
-#define OPC_tsetb 161
-#define OPC_xor 162
-#define OPC_xorb 163
-#define OPC_ldd  164 
-#define OPC_lddb  165 
-#define OPC_lddr  166 
-#define OPC_lddrb 167  
-#define OPC_ldi  168 
-#define OPC_ldib 169  
-#define OPC_sc   170
-#define OPC_bpt   171
-#define OPC_ext0e 172
-#define OPC_ext0f 172
-#define OPC_ext8e 172
-#define OPC_ext8f 172
-#define OPC_rsvd36 172
-#define OPC_rsvd38 172
-#define OPC_rsvd78 172
-#define OPC_rsvd7e 172
-#define OPC_rsvd9d 172
-#define OPC_rsvd9f 172
-#define OPC_rsvdb9 172
-#define OPC_rsvdbf 172
-#define OPC_outi 173
-#define OPC_ldctlb 174
-#define OPC_sin 175
-#define OPC_trtdb 176
+#define OPC_indr    56
+#define OPC_indrb   57
+#define OPC_ini     58
+#define OPC_inib    59
+#define OPC_inir    60
+#define OPC_inirb   61
+#define OPC_iret    62
+#define OPC_jp      63
+#define OPC_jr      64
+#define OPC_ld      65
+#define OPC_lda     66
+#define OPC_ldar    67
+#define OPC_ldb     68
+#define OPC_ldctl   69
+#define OPC_ldir    70
+#define OPC_ldirb   71
+#define OPC_ldk     72
+#define OPC_ldl     73
+#define OPC_ldm     74
+#define OPC_ldps    75
+#define OPC_ldr     76
+#define OPC_ldrb    77
+#define OPC_ldrl    78
+#define OPC_mbit    79
+#define OPC_mreq    80
+#define OPC_mres    81
+#define OPC_mset    82
+#define OPC_mult    83
+#define OPC_multl   84
+#define OPC_neg     85
+#define OPC_negb    86
+#define OPC_nop     87
+#define OPC_or      88
+#define OPC_orb     89
+#define OPC_otdr    90
+#define OPC_otdrb   91
+#define OPC_otir    92
+#define OPC_otirb   93
+#define OPC_out     94
+#define OPC_outb    95
+#define OPC_outd    96
+#define OPC_outdb   97
+#define OPC_outi    98
+#define OPC_outib   99
+#define OPC_pop    100
+#define OPC_popl   101
+#define OPC_push   102
+#define OPC_pushl  103
+#define OPC_res    104
+#define OPC_resb   105
+#define OPC_resflg 106
+#define OPC_ret    107
+#define OPC_rl     108
+#define OPC_rlb    109
+#define OPC_rlc    110
+#define OPC_rlcb   111
+#define OPC_rldb   112
+#define OPC_rr     113
+#define OPC_rrb    114
+#define OPC_rrc    115
+#define OPC_rrcb   116
+#define OPC_rrdb   117
+#define OPC_sbc    118
+#define OPC_sbcb   119
+#define OPC_sda    120
+#define OPC_sdab   121
+#define OPC_sdal   122
+#define OPC_sdl    123
+#define OPC_sdlb   124
+#define OPC_sdll   125
+#define OPC_set    126
+#define OPC_setb   127
+#define OPC_setflg 128
+#define OPC_sin    129
+#define OPC_sinb   130
+#define OPC_sind   131
+#define OPC_sindb  132
+#define OPC_sindr  133
+#define OPC_sindrb 134
+#define OPC_sini   135
+#define OPC_sinib  136
+#define OPC_sinir  137
+#define OPC_sinirb 138
+#define OPC_sla    139
+#define OPC_slab   140
+#define OPC_slal   141
+#define OPC_sll    142
+#define OPC_sllb   143
+#define OPC_slll   144
+#define OPC_sotdr  145
+#define OPC_sotdrb 146
+#define OPC_sotir  147
+#define OPC_sotirb 148
+#define OPC_sout   149
+#define OPC_soutb  150
+#define OPC_soutd  151
+#define OPC_soutdb 152
+#define OPC_souti  153
+#define OPC_soutib 154
+#define OPC_sra    155
+#define OPC_srab   156
+#define OPC_sral   157
+#define OPC_srl    158
+#define OPC_srlb   159
+#define OPC_srll   160
+#define OPC_sub    161
+#define OPC_subb   162
+#define OPC_subl   163
+#define OPC_tcc    164
+#define OPC_tccb   165
+#define OPC_test   166
+#define OPC_testb  167
+#define OPC_testl  168
+#define OPC_trdb   169
+#define OPC_trdrb  170
+#define OPC_trib   171
+#define OPC_trirb  172
+#define OPC_trtdrb 173
+#define OPC_trtib  174
+#define OPC_trtirb 175
+#define OPC_trtrb  176
+#define OPC_tset   177
+#define OPC_tsetb  178
+#define OPC_xor    179
+#define OPC_xorb   180
+#define OPC_ldd    181
+#define OPC_lddb   182
+#define OPC_lddr   183
+#define OPC_lddrb  184
+#define OPC_ldi    185
+#define OPC_ldib   186
+#define OPC_sc     187
+#define OPC_bpt    188
+#define OPC_ext0e  188
+#define OPC_ext0f  188
+#define OPC_ext8e  188
+#define OPC_ext8f  188
+#define OPC_rsvd36 188
+#define OPC_rsvd38 188
+#define OPC_rsvd78 188
+#define OPC_rsvd7e 188
+#define OPC_rsvd9d 188
+#define OPC_rsvd9f 188
+#define OPC_rsvdb9 188
+#define OPC_rsvdbf 188
+#define OPC_ldctlb 189
+#define OPC_trtdb  190
+#define OPC_brk    191
 
 typedef struct {
 #ifdef NICENAMES
@@ -568,13 +585,21 @@ const opcode_entry_type z8k_table[] = {
 "bpt",OPC_bpt,0,{0},
        {CLASS_BIT+3,CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,9},
 
+/* 0000 1111 0000 1100 *** brk */
+{
+#ifdef NICENAMES
+"brk",8,10,0x00,
+#endif
+"brk",OPC_brk,0,{0},
+       {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0xc,0,0,0,0,0,},0,2,10},
+
 /* 0001 1111 ddN0 0000 *** call @rd */
 {
 #ifdef NICENAMES
 "call @rd",32,10,0x00,
 #endif
 "call",OPC_call,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+1,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,10},
+       {CLASS_BIT+1,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,11},
 
 /* 0101 1111 0000 0000 address_dst *** call address_dst */
 {
@@ -582,7 +607,7 @@ const opcode_entry_type z8k_table[] = {
 "call address_dst",32,12,0x00,
 #endif
 "call",OPC_call,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,10},
+       {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,11},
 
 /* 0101 1111 ddN0 0000 address_dst *** call address_dst(rd) */
 {
@@ -590,7 +615,7 @@ const opcode_entry_type z8k_table[] = {
 "call address_dst(rd)",32,13,0x00,
 #endif
 "call",OPC_call,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,10},
+       {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,11},
 
 /* 1101 disp12 *** calr disp12 */
 {
@@ -598,7 +623,7 @@ const opcode_entry_type z8k_table[] = {
 "calr disp12",16,10,0x00,
 #endif
 "calr",OPC_calr,0,{CLASS_DISP,},
-       {CLASS_BIT+0xd,CLASS_DISP+(ARG_DISP12),0,0,0,0,0,0,0,},1,2,11},
+       {CLASS_BIT+0xd,CLASS_DISP+(ARG_DISP12),0,0,0,0,0,0,0,},1,2,12},
 
 /* 0000 1101 ddN0 1000 *** clr @rd */
 {
@@ -606,7 +631,7 @@ const opcode_entry_type z8k_table[] = {
 "clr @rd",16,8,0x00,
 #endif
 "clr",OPC_clr,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,12},
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13},
 
 /* 0100 1101 0000 1000 address_dst *** clr address_dst */
 {
@@ -614,7 +639,7 @@ const opcode_entry_type z8k_table[] = {
 "clr address_dst",16,11,0x00,
 #endif
 "clr",OPC_clr,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,12},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13},
 
 /* 0100 1101 ddN0 1000 address_dst *** clr address_dst(rd) */
 {
@@ -622,7 +647,7 @@ const opcode_entry_type z8k_table[] = {
 "clr address_dst(rd)",16,12,0x00,
 #endif
 "clr",OPC_clr,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,12},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13},
 
 /* 1000 1101 dddd 1000 *** clr rd */
 {
@@ -630,7 +655,7 @@ const opcode_entry_type z8k_table[] = {
 "clr rd",16,7,0x00,
 #endif
 "clr",OPC_clr,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,12},
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13},
 
 /* 0000 1100 ddN0 1000 *** clrb @rd */
 {
@@ -638,7 +663,7 @@ const opcode_entry_type z8k_table[] = {
 "clrb @rd",8,8,0x00,
 #endif
 "clrb",OPC_clrb,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13},
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,14},
 
 /* 0100 1100 0000 1000 address_dst *** clrb address_dst */
 {
@@ -646,7 +671,7 @@ const opcode_entry_type z8k_table[] = {
 "clrb address_dst",8,11,0x00,
 #endif
 "clrb",OPC_clrb,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14},
 
 /* 0100 1100 ddN0 1000 address_dst *** clrb address_dst(rd) */
 {
@@ -654,7 +679,7 @@ const opcode_entry_type z8k_table[] = {
 "clrb address_dst(rd)",8,12,0x00,
 #endif
 "clrb",OPC_clrb,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14},
 
 /* 1000 1100 dddd 1000 *** clrb rbd */
 {
@@ -662,7 +687,7 @@ const opcode_entry_type z8k_table[] = {
 "clrb rbd",8,7,0x00,
 #endif
 "clrb",OPC_clrb,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13},
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,14},
 
 /* 0000 1101 ddN0 0000 *** com @rd */
 {
@@ -670,7 +695,7 @@ const opcode_entry_type z8k_table[] = {
 "com @rd",16,12,0x18,
 #endif
 "com",OPC_com,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,14},
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15},
 
 /* 0100 1101 0000 0000 address_dst *** com address_dst */
 {
@@ -678,7 +703,7 @@ const opcode_entry_type z8k_table[] = {
 "com address_dst",16,15,0x18,
 #endif
 "com",OPC_com,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15},
 
 /* 0100 1101 ddN0 0000 address_dst *** com address_dst(rd) */
 {
@@ -686,7 +711,7 @@ const opcode_entry_type z8k_table[] = {
 "com address_dst(rd)",16,16,0x18,
 #endif
 "com",OPC_com,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15},
 
 /* 1000 1101 dddd 0000 *** com rd */
 {
@@ -694,7 +719,7 @@ const opcode_entry_type z8k_table[] = {
 "com rd",16,7,0x18,
 #endif
 "com",OPC_com,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,14},
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15},
 
 /* 0000 1100 ddN0 0000 *** comb @rd */
 {
@@ -702,7 +727,7 @@ const opcode_entry_type z8k_table[] = {
 "comb @rd",8,12,0x1c,
 #endif
 "comb",OPC_comb,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15},
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,16},
 
 /* 0100 1100 0000 0000 address_dst *** comb address_dst */
 {
@@ -710,7 +735,7 @@ const opcode_entry_type z8k_table[] = {
 "comb address_dst",8,15,0x1c,
 #endif
 "comb",OPC_comb,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,16},
 
 /* 0100 1100 ddN0 0000 address_dst *** comb address_dst(rd) */
 {
@@ -718,7 +743,7 @@ const opcode_entry_type z8k_table[] = {
 "comb address_dst(rd)",8,16,0x1c,
 #endif
 "comb",OPC_comb,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,16},
 
 /* 1000 1100 dddd 0000 *** comb rbd */
 {
@@ -726,7 +751,7 @@ const opcode_entry_type z8k_table[] = {
 "comb rbd",8,7,0x1c,
 #endif
 "comb",OPC_comb,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15},
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,16},
 
 /* 1000 1101 flags 0101 *** comflg flags */
 {
@@ -734,7 +759,7 @@ const opcode_entry_type z8k_table[] = {
 "comflg flags",16,7,0x3c,
 #endif
 "comflg",OPC_comflg,0,{CLASS_FLAGS,},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+5,0,0,0,0,0,},1,2,16},
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+5,0,0,0,0,0,},1,2,17},
 
 /* 0000 1101 ddN0 0001 imm16 *** cp @rd,imm16 */
 {
@@ -742,7 +767,7 @@ const opcode_entry_type z8k_table[] = {
 "cp @rd,imm16",16,11,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,17},
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,18},
 
 /* 0100 1101 ddN0 0001 address_dst imm16 *** cp address_dst(rd),imm16 */
 {
@@ -750,7 +775,7 @@ const opcode_entry_type z8k_table[] = {
 "cp address_dst(rd),imm16",16,15,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,17},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,18},
 
 /* 0100 1101 0000 0001 address_dst imm16 *** cp address_dst,imm16 */
 {
@@ -758,7 +783,7 @@ const opcode_entry_type z8k_table[] = {
 "cp address_dst,imm16",16,14,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,17},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,18},
 
 /* 0000 1011 ssN0 dddd *** cp rd,@rs */
 {
@@ -766,7 +791,7 @@ const opcode_entry_type z8k_table[] = {
 "cp rd,@rs",16,7,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,17},
+       {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18},
 
 /* 0100 1011 0000 dddd address_src *** cp rd,address_src */
 {
@@ -774,7 +799,7 @@ const opcode_entry_type z8k_table[] = {
 "cp rd,address_src",16,9,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,17},
+       {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18},
 
 /* 0100 1011 ssN0 dddd address_src *** cp rd,address_src(rs) */
 {
@@ -782,7 +807,7 @@ const opcode_entry_type z8k_table[] = {
 "cp rd,address_src(rs)",16,10,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,17},
+       {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18},
 
 /* 0000 1011 0000 dddd imm16 *** cp rd,imm16 */
 {
@@ -790,7 +815,7 @@ const opcode_entry_type z8k_table[] = {
 "cp rd,imm16",16,7,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,17},
+       {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,18},
 
 /* 1000 1011 ssss dddd *** cp rd,rs */
 {
@@ -798,7 +823,7 @@ const opcode_entry_type z8k_table[] = {
 "cp rd,rs",16,4,0x3c,
 #endif
 "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,17},
+       {CLASS_BIT+8,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18},
 
 /* 0000 1100 ddN0 0001 imm8 imm8 *** cpb @rd,imm8 */
 {
@@ -806,7 +831,7 @@ const opcode_entry_type z8k_table[] = {
 "cpb @rd,imm8",8,11,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,18},
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,19},
 
 /* 0100 1100 ddN0 0001 address_dst imm8 imm8 *** cpb address_dst(rd),imm8 */
 {
@@ -814,7 +839,7 @@ const opcode_entry_type z8k_table[] = {
 "cpb address_dst(rd),imm8",8,15,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,18},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,19},
 
 /* 0100 1100 0000 0001 address_dst imm8 imm8 *** cpb address_dst,imm8 */
 {
@@ -822,7 +847,7 @@ const opcode_entry_type z8k_table[] = {
 "cpb address_dst,imm8",8,14,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,18},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,19},
 
 /* 0000 1010 ssN0 dddd *** cpb rbd,@rs */
 {
@@ -830,7 +855,7 @@ const opcode_entry_type z8k_table[] = {
 "cpb rbd,@rs",8,7,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18},
+       {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,19},
 
 /* 0100 1010 0000 dddd address_src *** cpb rbd,address_src */
 {
@@ -838,7 +863,7 @@ const opcode_entry_type z8k_table[] = {
 "cpb rbd,address_src",8,9,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18},
+       {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,19},
 
 /* 0100 1010 ssN0 dddd address_src *** cpb rbd,address_src(rs) */
 {
@@ -846,7 +871,7 @@ const opcode_entry_type z8k_table[] = {
 "cpb rbd,address_src(rs)",8,10,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18},
+       {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,19},
 
 /* 0000 1010 0000 dddd imm8 imm8 *** cpb rbd,imm8 */
 {
@@ -854,7 +879,7 @@ const opcode_entry_type z8k_table[] = {
 "cpb rbd,imm8",8,7,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,18},
+       {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,19},
 
 /* 1000 1010 ssss dddd *** cpb rbd,rbs */
 {
@@ -862,7 +887,7 @@ const opcode_entry_type z8k_table[] = {
 "cpb rbd,rbs",8,4,0x3c,
 #endif
 "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18},
+       {CLASS_BIT+8,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,19},
 
 /* 1011 1011 ssN0 1000 0000 rrrr dddd cccc *** cpd rd,@rs,rr,cc */
 {
@@ -870,7 +895,7 @@ const opcode_entry_type z8k_table[] = {
 "cpd rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpd",OPC_cpd,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,19},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,20},
 
 /* 1011 1010 ssN0 1000 0000 rrrr dddd cccc *** cpdb rbd,@rs,rr,cc */
 {
@@ -878,7 +903,7 @@ const opcode_entry_type z8k_table[] = {
 "cpdb rbd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpdb",OPC_cpdb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,20},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,21},
 
 /* 1011 1011 ssN0 1100 0000 rrrr dddd cccc *** cpdr rd,@rs,rr,cc */
 {
@@ -886,7 +911,7 @@ const opcode_entry_type z8k_table[] = {
 "cpdr rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpdr",OPC_cpdr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,21},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,22},
 
 /* 1011 1010 ssN0 1100 0000 rrrr dddd cccc *** cpdrb rbd,@rs,rr,cc */
 {
@@ -894,7 +919,7 @@ const opcode_entry_type z8k_table[] = {
 "cpdrb rbd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpdrb",OPC_cpdrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,22},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,23},
 
 /* 1011 1011 ssN0 0000 0000 rrrr dddd cccc *** cpi rd,@rs,rr,cc */
 {
@@ -902,7 +927,7 @@ const opcode_entry_type z8k_table[] = {
 "cpi rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpi",OPC_cpi,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,23},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,24},
 
 /* 1011 1010 ssN0 0000 0000 rrrr dddd cccc *** cpib rbd,@rs,rr,cc */
 {
@@ -910,7 +935,7 @@ const opcode_entry_type z8k_table[] = {
 "cpib rbd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpib",OPC_cpib,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,24},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,25},
 
 /* 1011 1011 ssN0 0100 0000 rrrr dddd cccc *** cpir rd,@rs,rr,cc */
 {
@@ -918,7 +943,7 @@ const opcode_entry_type z8k_table[] = {
 "cpir rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpir",OPC_cpir,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,25},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,26},
 
 /* 1011 1010 ssN0 0100 0000 rrrr dddd cccc *** cpirb rbd,@rs,rr,cc */
 {
@@ -926,7 +951,7 @@ const opcode_entry_type z8k_table[] = {
 "cpirb rbd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpirb",OPC_cpirb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,26},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REG+(ARG_RD),CLASS_CC,0,},4,4,27},
 
 /* 0001 0000 ssN0 dddd *** cpl rrd,@rs */
 {
@@ -934,7 +959,7 @@ const opcode_entry_type z8k_table[] = {
 "cpl rrd,@rs",32,14,0x3c,
 #endif
 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,27},
+       {CLASS_BIT+1,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,28},
 
 /* 0101 0000 0000 dddd address_src *** cpl rrd,address_src */
 {
@@ -942,7 +967,7 @@ const opcode_entry_type z8k_table[] = {
 "cpl rrd,address_src",32,15,0x3c,
 #endif
 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,27},
+       {CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,28},
 
 /* 0101 0000 ssN0 dddd address_src *** cpl rrd,address_src(rs) */
 {
@@ -950,7 +975,7 @@ const opcode_entry_type z8k_table[] = {
 "cpl rrd,address_src(rs)",32,16,0x3c,
 #endif
 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,27},
+       {CLASS_BIT+5,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,28},
 
 /* 0001 0000 0000 dddd imm32 *** cpl rrd,imm32 */
 {
@@ -958,7 +983,7 @@ const opcode_entry_type z8k_table[] = {
 "cpl rrd,imm32",32,14,0x3c,
 #endif
 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,27},
+       {CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,28},
 
 /* 1001 0000 ssss dddd *** cpl rrd,rrs */
 {
@@ -966,7 +991,7 @@ const opcode_entry_type z8k_table[] = {
 "cpl rrd,rrs",32,8,0x3c,
 #endif
 "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,27},
+       {CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,28},
 
 /* 1011 1011 ssN0 1010 0000 rrrr ddN0 cccc *** cpsd @rd,@rs,rr,cc */
 {
@@ -974,7 +999,7 @@ const opcode_entry_type z8k_table[] = {
 "cpsd @rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpsd",OPC_cpsd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,28},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,29},
 
 /* 1011 1010 ssN0 1010 0000 rrrr ddN0 cccc *** cpsdb @rd,@rs,rr,cc */
 {
@@ -982,7 +1007,7 @@ const opcode_entry_type z8k_table[] = {
 "cpsdb @rd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpsdb",OPC_cpsdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,29},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,30},
 
 /* 1011 1011 ssN0 1110 0000 rrrr ddN0 cccc *** cpsdr @rd,@rs,rr,cc */
 {
@@ -990,7 +1015,7 @@ const opcode_entry_type z8k_table[] = {
 "cpsdr @rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpsdr",OPC_cpsdr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,30},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,31},
 
 /* 1011 1010 ssN0 1110 0000 rrrr ddN0 cccc *** cpsdrb @rd,@rs,rr,cc */
 {
@@ -998,7 +1023,7 @@ const opcode_entry_type z8k_table[] = {
 "cpsdrb @rd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpsdrb",OPC_cpsdrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,31},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,32},
 
 /* 1011 1011 ssN0 0010 0000 rrrr ddN0 cccc *** cpsi @rd,@rs,rr,cc */
 {
@@ -1006,7 +1031,7 @@ const opcode_entry_type z8k_table[] = {
 "cpsi @rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpsi",OPC_cpsi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,32},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,33},
 
 /* 1011 1010 ssN0 0010 0000 rrrr ddN0 cccc *** cpsib @rd,@rs,rr,cc */
 {
@@ -1014,7 +1039,7 @@ const opcode_entry_type z8k_table[] = {
 "cpsib @rd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpsib",OPC_cpsib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,33},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,34},
 
 /* 1011 1011 ssN0 0110 0000 rrrr ddN0 cccc *** cpsir @rd,@rs,rr,cc */
 {
@@ -1022,7 +1047,7 @@ const opcode_entry_type z8k_table[] = {
 "cpsir @rd,@rs,rr,cc",16,11,0x3c,
 #endif
 "cpsir",OPC_cpsir,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,34},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,35},
 
 /* 1011 1010 ssN0 0110 0000 rrrr ddN0 cccc *** cpsirb @rd,@rs,rr,cc */
 {
@@ -1030,7 +1055,7 @@ const opcode_entry_type z8k_table[] = {
 "cpsirb @rd,@rs,rr,cc",8,11,0x3c,
 #endif
 "cpsirb",OPC_cpsirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,35},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_CC,0,},4,4,36},
 
 /* 1011 0000 dddd 0000 *** dab rbd */
 {
@@ -1038,7 +1063,7 @@ const opcode_entry_type z8k_table[] = {
 "dab rbd",8,5,0x38,
 #endif
 "dab",OPC_dab,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,36},
+       {CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,37},
 
 /* 1111 dddd 0disp7 *** dbjnz rbd,disp7 */
 {
@@ -1046,7 +1071,7 @@ const opcode_entry_type z8k_table[] = {
 "dbjnz rbd,disp7",16,11,0x00,
 #endif
 "dbjnz",OPC_dbjnz,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_0DISP7,0,0,0,0,0,0,},2,2,37},
+       {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_0DISP7,0,0,0,0,0,0,},2,2,38},
 
 /* 0010 1011 ddN0 imm4m1 *** dec @rd,imm4m1 */
 {
@@ -1054,7 +1079,7 @@ const opcode_entry_type z8k_table[] = {
 "dec @rd,imm4m1",16,11,0x1c,
 #endif
 "dec",OPC_dec,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+2,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,38},
+       {CLASS_BIT+2,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39},
 
 /* 0110 1011 ddN0 imm4m1 address_dst *** dec address_dst(rd),imm4m1 */
 {
@@ -1062,7 +1087,7 @@ const opcode_entry_type z8k_table[] = {
 "dec address_dst(rd),imm4m1",16,14,0x1c,
 #endif
 "dec",OPC_dec,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,38},
+       {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39},
 
 /* 0110 1011 0000 imm4m1 address_dst *** dec address_dst,imm4m1 */
 {
@@ -1070,7 +1095,7 @@ const opcode_entry_type z8k_table[] = {
 "dec address_dst,imm4m1",16,13,0x1c,
 #endif
 "dec",OPC_dec,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,38},
+       {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39},
 
 /* 1010 1011 dddd imm4m1 *** dec rd,imm4m1 */
 {
@@ -1078,7 +1103,7 @@ const opcode_entry_type z8k_table[] = {
 "dec rd,imm4m1",16,4,0x1c,
 #endif
 "dec",OPC_dec,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,38},
+       {CLASS_BIT+0xa,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39},
 
 /* 0010 1010 ddN0 imm4m1 *** decb @rd,imm4m1 */
 {
@@ -1086,7 +1111,7 @@ const opcode_entry_type z8k_table[] = {
 "decb @rd,imm4m1",8,11,0x1c,
 #endif
 "decb",OPC_decb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+2,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39},
+       {CLASS_BIT+2,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,40},
 
 /* 0110 1010 ddN0 imm4m1 address_dst *** decb address_dst(rd),imm4m1 */
 {
@@ -1094,7 +1119,7 @@ const opcode_entry_type z8k_table[] = {
 "decb address_dst(rd),imm4m1",8,14,0x1c,
 #endif
 "decb",OPC_decb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39},
+       {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,40},
 
 /* 0110 1010 0000 imm4m1 address_dst *** decb address_dst,imm4m1 */
 {
@@ -1102,7 +1127,7 @@ const opcode_entry_type z8k_table[] = {
 "decb address_dst,imm4m1",8,13,0x1c,
 #endif
 "decb",OPC_decb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39},
+       {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,40},
 
 /* 1010 1010 dddd imm4m1 *** decb rbd,imm4m1 */
 {
@@ -1110,7 +1135,7 @@ const opcode_entry_type z8k_table[] = {
 "decb rbd,imm4m1",8,4,0x1c,
 #endif
 "decb",OPC_decb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39},
+       {CLASS_BIT+0xa,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,40},
 
 /* 0111 1100 0000 00ii *** di i2 */
 {
@@ -1118,7 +1143,7 @@ const opcode_entry_type z8k_table[] = {
 "di i2",16,7,0x00,
 #endif
 "di",OPC_di,0,{CLASS_IMM+(ARG_IMM2),},
-       {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_00II,0,0,0,0,0,},1,2,40},
+       {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_00II,0,0,0,0,0,},1,2,41},
 
 /* 0001 1011 ssN0 dddd *** div rrd,@rs */
 {
@@ -1126,7 +1151,7 @@ const opcode_entry_type z8k_table[] = {
 "div rrd,@rs",16,107,0x3c,
 #endif
 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,41},
+       {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42},
 
 /* 0101 1011 0000 dddd address_src *** div rrd,address_src */
 {
@@ -1134,7 +1159,7 @@ const opcode_entry_type z8k_table[] = {
 "div rrd,address_src",16,107,0x3c,
 #endif
 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,41},
+       {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42},
 
 /* 0101 1011 ssN0 dddd address_src *** div rrd,address_src(rs) */
 {
@@ -1142,7 +1167,7 @@ const opcode_entry_type z8k_table[] = {
 "div rrd,address_src(rs)",16,107,0x3c,
 #endif
 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,41},
+       {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42},
 
 /* 0001 1011 0000 dddd imm16 *** div rrd,imm16 */
 {
@@ -1150,7 +1175,7 @@ const opcode_entry_type z8k_table[] = {
 "div rrd,imm16",16,107,0x3c,
 #endif
 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,41},
+       {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,42},
 
 /* 1001 1011 ssss dddd *** div rrd,rs */
 {
@@ -1158,7 +1183,7 @@ const opcode_entry_type z8k_table[] = {
 "div rrd,rs",16,107,0x3c,
 #endif
 "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,41},
+       {CLASS_BIT+9,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42},
 
 /* 0001 1010 ssN0 dddd *** divl rqd,@rs */
 {
@@ -1166,7 +1191,7 @@ const opcode_entry_type z8k_table[] = {
 "divl rqd,@rs",32,744,0x3c,
 #endif
 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42},
+       {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,43},
 
 /* 0101 1010 0000 dddd address_src *** divl rqd,address_src */
 {
@@ -1174,7 +1199,7 @@ const opcode_entry_type z8k_table[] = {
 "divl rqd,address_src",32,745,0x3c,
 #endif
 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42},
+       {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,43},
 
 /* 0101 1010 ssN0 dddd address_src *** divl rqd,address_src(rs) */
 {
@@ -1182,7 +1207,7 @@ const opcode_entry_type z8k_table[] = {
 "divl rqd,address_src(rs)",32,746,0x3c,
 #endif
 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42},
+       {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,43},
 
 /* 0001 1010 0000 dddd imm32 *** divl rqd,imm32 */
 {
@@ -1190,7 +1215,7 @@ const opcode_entry_type z8k_table[] = {
 "divl rqd,imm32",32,744,0x3c,
 #endif
 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,42},
+       {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,43},
 
 /* 1001 1010 ssss dddd *** divl rqd,rrs */
 {
@@ -1198,7 +1223,7 @@ const opcode_entry_type z8k_table[] = {
 "divl rqd,rrs",32,744,0x3c,
 #endif
 "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42},
+       {CLASS_BIT+9,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,43},
 
 /* 1111 dddd 1disp7 *** djnz rd,disp7 */
 {
@@ -1206,7 +1231,7 @@ const opcode_entry_type z8k_table[] = {
 "djnz rd,disp7",16,11,0x00,
 #endif
 "djnz",OPC_djnz,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_1DISP7,0,0,0,0,0,0,},2,2,43},
+       {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_1DISP7,0,0,0,0,0,0,},2,2,44},
 
 /* 0111 1100 0000 01ii *** ei i2 */
 {
@@ -1214,7 +1239,7 @@ const opcode_entry_type z8k_table[] = {
 "ei i2",16,7,0x00,
 #endif
 "ei",OPC_ei,0,{CLASS_IMM+(ARG_IMM2),},
-       {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_01II,0,0,0,0,0,},1,2,44},
+       {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_01II,0,0,0,0,0,},1,2,45},
 
 /* 0010 1101 ssN0 dddd *** ex rd,@rs */
 {
@@ -1222,7 +1247,7 @@ const opcode_entry_type z8k_table[] = {
 "ex rd,@rs",16,12,0x00,
 #endif
 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,45},
+       {CLASS_BIT+2,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46},
 
 /* 0110 1101 0000 dddd address_src *** ex rd,address_src */
 {
@@ -1230,7 +1255,7 @@ const opcode_entry_type z8k_table[] = {
 "ex rd,address_src",16,15,0x00,
 #endif
 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,45},
+       {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46},
 
 /* 0110 1101 ssN0 dddd address_src *** ex rd,address_src(rs) */
 {
@@ -1238,7 +1263,7 @@ const opcode_entry_type z8k_table[] = {
 "ex rd,address_src(rs)",16,16,0x00,
 #endif
 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,45},
+       {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46},
 
 /* 1010 1101 ssss dddd *** ex rd,rs */
 {
@@ -1246,7 +1271,7 @@ const opcode_entry_type z8k_table[] = {
 "ex rd,rs",16,6,0x00,
 #endif
 "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,45},
+       {CLASS_BIT+0xa,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46},
 
 /* 0010 1100 ssN0 dddd *** exb rbd,@rs */
 {
@@ -1254,7 +1279,7 @@ const opcode_entry_type z8k_table[] = {
 "exb rbd,@rs",8,12,0x00,
 #endif
 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46},
+       {CLASS_BIT+2,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,47},
 
 /* 0110 1100 0000 dddd address_src *** exb rbd,address_src */
 {
@@ -1262,7 +1287,7 @@ const opcode_entry_type z8k_table[] = {
 "exb rbd,address_src",8,15,0x00,
 #endif
 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46},
+       {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,47},
 
 /* 0110 1100 ssN0 dddd address_src *** exb rbd,address_src(rs) */
 {
@@ -1270,7 +1295,7 @@ const opcode_entry_type z8k_table[] = {
 "exb rbd,address_src(rs)",8,16,0x00,
 #endif
 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46},
+       {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,47},
 
 /* 1010 1100 ssss dddd *** exb rbd,rbs */
 {
@@ -1278,7 +1303,7 @@ const opcode_entry_type z8k_table[] = {
 "exb rbd,rbs",8,6,0x00,
 #endif
 "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46},
+       {CLASS_BIT+0xa,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,47},
 
 /* 0000 1110 imm8 *** ext0e imm8 */
 {
@@ -1286,7 +1311,7 @@ const opcode_entry_type z8k_table[] = {
 "ext0e imm8",8,10,0x00,
 #endif
 "ext0e",OPC_ext0e,0,{CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,47},
+       {CLASS_BIT+0,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,48},
 
 /* 0000 1111 imm8 *** ext0f imm8 */
 {
@@ -1294,7 +1319,7 @@ const opcode_entry_type z8k_table[] = {
 "ext0f imm8",8,10,0x00,
 #endif
 "ext0f",OPC_ext0f,0,{CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,48},
+       {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,49},
 
 /* 1000 1110 imm8 *** ext8e imm8 */
 {
@@ -1302,7 +1327,7 @@ const opcode_entry_type z8k_table[] = {
 "ext8e imm8",8,10,0x00,
 #endif
 "ext8e",OPC_ext8e,0,{CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+8,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,49},
+       {CLASS_BIT+8,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,50},
 
 /* 1000 1111 imm8 *** ext8f imm8 */
 {
@@ -1310,7 +1335,7 @@ const opcode_entry_type z8k_table[] = {
 "ext8f imm8",8,10,0x00,
 #endif
 "ext8f",OPC_ext8f,0,{CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+8,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,50},
+       {CLASS_BIT+8,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,51},
 
 /* 1011 0001 dddd 1010 *** exts rrd */
 {
@@ -1318,7 +1343,7 @@ const opcode_entry_type z8k_table[] = {
 "exts rrd",16,11,0x00,
 #endif
 "exts",OPC_exts,0,{CLASS_REG_LONG+(ARG_RD),},
-       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0xa,0,0,0,0,0,},1,2,51},
+       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0xa,0,0,0,0,0,},1,2,52},
 
 /* 1011 0001 dddd 0000 *** extsb rd */
 {
@@ -1326,7 +1351,7 @@ const opcode_entry_type z8k_table[] = {
 "extsb rd",8,11,0x00,
 #endif
 "extsb",OPC_extsb,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,52},
+       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,53},
 
 /* 1011 0001 dddd 0111 *** extsl rqd */
 {
@@ -1334,7 +1359,7 @@ const opcode_entry_type z8k_table[] = {
 "extsl rqd",32,11,0x00,
 #endif
 "extsl",OPC_extsl,0,{CLASS_REG_QUAD+(ARG_RD),},
-       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+7,0,0,0,0,0,},1,2,53},
+       {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+7,0,0,0,0,0,},1,2,54},
 
 /* 0111 1010 0000 0000 *** halt */
 {
@@ -1342,15 +1367,15 @@ const opcode_entry_type z8k_table[] = {
 "halt",16,8,0x00,
 #endif
 "halt",OPC_halt,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,54},
+       {CLASS_BIT+7,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,55},
 
-/* 0011 1101 ssN0 dddd *** in rd,@rs */
+/* 0011 1101 ssss dddd *** in rd,@ri */
 {
 #ifdef NICENAMES
-"in rd,@rs",16,10,0x00,
+"in rd,@ri",16,10,0x00,
 #endif
-"in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,55},
+"in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IRO+(ARG_RS),},
+       {CLASS_BIT+3,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,56},
 
 /* 0011 1011 dddd 0100 imm16 *** in rd,imm16 */
 {
@@ -1358,15 +1383,15 @@ const opcode_entry_type z8k_table[] = {
 "in rd,imm16",16,12,0x00,
 #endif
 "in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,55},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,56},
 
-/* 0011 1100 ssN0 dddd *** inb rbd,@rs */
+/* 0011 1100 ssss dddd *** inb rbd,@ri */
 {
 #ifdef NICENAMES
-"inb rbd,@rs",8,12,0x00,
+"inb rbd,@ri",8,12,0x00,
 #endif
-"inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,56},
+"inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IRO+(ARG_RS),},
+       {CLASS_BIT+3,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,57},
 
 /* 0011 1010 dddd 0100 imm16 *** inb rbd,imm16 */
 {
@@ -1374,7 +1399,7 @@ const opcode_entry_type z8k_table[] = {
 "inb rbd,imm16",8,10,0x00,
 #endif
 "inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,56},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,57},
 
 /* 0010 1001 ddN0 imm4m1 *** inc @rd,imm4m1 */
 {
@@ -1382,7 +1407,7 @@ const opcode_entry_type z8k_table[] = {
 "inc @rd,imm4m1",16,11,0x1c,
 #endif
 "inc",OPC_inc,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+2,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,57},
+       {CLASS_BIT+2,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58},
 
 /* 0110 1001 ddN0 imm4m1 address_dst *** inc address_dst(rd),imm4m1 */
 {
@@ -1390,7 +1415,7 @@ const opcode_entry_type z8k_table[] = {
 "inc address_dst(rd),imm4m1",16,14,0x1c,
 #endif
 "inc",OPC_inc,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,57},
+       {CLASS_BIT+6,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58},
 
 /* 0110 1001 0000 imm4m1 address_dst *** inc address_dst,imm4m1 */
 {
@@ -1398,7 +1423,7 @@ const opcode_entry_type z8k_table[] = {
 "inc address_dst,imm4m1",16,13,0x1c,
 #endif
 "inc",OPC_inc,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+9,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,57},
+       {CLASS_BIT+6,CLASS_BIT+9,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58},
 
 /* 1010 1001 dddd imm4m1 *** inc rd,imm4m1 */
 {
@@ -1406,7 +1431,7 @@ const opcode_entry_type z8k_table[] = {
 "inc rd,imm4m1",16,4,0x1c,
 #endif
 "inc",OPC_inc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+0xa,CLASS_BIT+9,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,57},
+       {CLASS_BIT+0xa,CLASS_BIT+9,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58},
 
 /* 0010 1000 ddN0 imm4m1 *** incb @rd,imm4m1 */
 {
@@ -1414,7 +1439,7 @@ const opcode_entry_type z8k_table[] = {
 "incb @rd,imm4m1",8,11,0x1c,
 #endif
 "incb",OPC_incb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+2,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58},
+       {CLASS_BIT+2,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,59},
 
 /* 0110 1000 ddN0 imm4m1 address_dst *** incb address_dst(rd),imm4m1 */
 {
@@ -1422,7 +1447,7 @@ const opcode_entry_type z8k_table[] = {
 "incb address_dst(rd),imm4m1",8,14,0x1c,
 #endif
 "incb",OPC_incb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58},
+       {CLASS_BIT+6,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,59},
 
 /* 0110 1000 0000 imm4m1 address_dst *** incb address_dst,imm4m1 */
 {
@@ -1430,7 +1455,7 @@ const opcode_entry_type z8k_table[] = {
 "incb address_dst,imm4m1",8,13,0x1c,
 #endif
 "incb",OPC_incb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+6,CLASS_BIT+8,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58},
+       {CLASS_BIT+6,CLASS_BIT+8,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,59},
 
 /* 1010 1000 dddd imm4m1 *** incb rbd,imm4m1 */
 {
@@ -1438,39 +1463,71 @@ const opcode_entry_type z8k_table[] = {
 "incb rbd,imm4m1",8,4,0x1c,
 #endif
 "incb",OPC_incb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
-       {CLASS_BIT+0xa,CLASS_BIT+8,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58},
+       {CLASS_BIT+0xa,CLASS_BIT+8,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,59},
+
+/* 0011 1011 ssss 1000 0000 aaaa ddN0 1000 *** ind @rd,@ri,ra */
+{
+#ifdef NICENAMES
+"ind @rd,@ri,ra",16,21,0x04,
+#endif
+"ind",OPC_ind,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,60},
+
+/* 0011 1010 ssss 1000 0000 aaaa ddN0 1000 *** indb @rd,@ri,ra */
+{
+#ifdef NICENAMES
+"indb @rd,@ri,ra",8,21,0x04,
+#endif
+"indb",OPC_indb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,61},
+
+/* 0011 1011 ssss 1000 0000 aaaa ddN0 0000 *** indr @rd,@ri,ra */
+{
+#ifdef NICENAMES
+"indr @rd,@ri,ra",16,11,0x04,
+#endif
+"indr",OPC_indr,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,62},
+
+/* 0011 1010 ssss 1000 0000 aaaa ddN0 0000 *** indrb @rd,@ri,ra */
+{
+#ifdef NICENAMES
+"indrb @rd,@ri,ra",8,11,0x04,
+#endif
+"indrb",OPC_indrb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,63},
 
-/* 0011 1011 ssN0 1000 0000 aaaa ddN0 1000 *** ind @rd,@rs,ra */
+/* 0011 1011 ssss 0000 0000 aaaa ddN0 1000 *** ini @rd,@ri,ra */
 {
 #ifdef NICENAMES
-"ind @rd,@rs,ra",16,21,0x04,
+"ini @rd,@ri,ra",16,21,0x04,
 #endif
-"ind",OPC_ind,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,59},
+"ini",OPC_ini,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,64},
 
-/* 0011 1010 ssN0 1000 0000 aaaa ddN0 1000 *** indb @rd,@rs,rba */
+/* 0011 1010 ssss 0000 0000 aaaa ddN0 1000 *** inib @rd,@ri,ra */
 {
 #ifdef NICENAMES
-"indb @rd,@rs,rba",8,21,0x04,
+"inib @rd,@ri,ra",8,21,0x04,
 #endif
-"indb",OPC_indb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,60},
+"inib",OPC_inib,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,65},
 
-/* 0011 1010 ssN0 0000 0000 aaaa ddN0 1000 *** inib @rd,@rs,ra */
+/* 0011 1011 ssss 0000 0000 aaaa ddN0 0000 *** inir @rd,@ri,ra */
 {
 #ifdef NICENAMES
-"inib @rd,@rs,ra",8,21,0x04,
+"inir @rd,@ri,ra",16,11,0x04,
 #endif
-"inib",OPC_inib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,61},
+"inir",OPC_inir,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,66},
 
-/* 0011 1010 ssN0 0000 0000 aaaa ddN0 0000 *** inibr @rd,@rs,ra */
+/* 0011 1010 ssss 0000 0000 aaaa ddN0 0000 *** inirb @rd,@ri,ra */
 {
 #ifdef NICENAMES
-"inibr @rd,@rs,ra",16,21,0x04,
+"inirb @rd,@ri,ra",8,11,0x04,
 #endif
-"inibr",OPC_inibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,62},
+"inirb",OPC_inirb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,67},
 
 /* 0111 1011 0000 0000 *** iret */
 {
@@ -1478,7 +1535,7 @@ const opcode_entry_type z8k_table[] = {
 "iret",16,13,0x3f,
 #endif
 "iret",OPC_iret,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,63},
+       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,68},
 
 /* 0001 1110 ddN0 cccc *** jp cc,@rd */
 {
@@ -1486,7 +1543,7 @@ const opcode_entry_type z8k_table[] = {
 "jp cc,@rd",16,10,0x00,
 #endif
 "jp",OPC_jp,0,{CLASS_CC,CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+1,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,64},
+       {CLASS_BIT+1,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,69},
 
 /* 0101 1110 0000 cccc address_dst *** jp cc,address_dst */
 {
@@ -1494,7 +1551,7 @@ const opcode_entry_type z8k_table[] = {
 "jp cc,address_dst",16,7,0x00,
 #endif
 "jp",OPC_jp,0,{CLASS_CC,CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,64},
+       {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69},
 
 /* 0101 1110 ddN0 cccc address_dst *** jp cc,address_dst(rd) */
 {
@@ -1502,7 +1559,7 @@ const opcode_entry_type z8k_table[] = {
 "jp cc,address_dst(rd)",16,8,0x00,
 #endif
 "jp",OPC_jp,0,{CLASS_CC,CLASS_X+(ARG_RD),},
-       {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,64},
+       {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69},
 
 /* 1110 cccc disp8 *** jr cc,disp8 */
 {
@@ -1510,7 +1567,7 @@ const opcode_entry_type z8k_table[] = {
 "jr cc,disp8",16,6,0x00,
 #endif
 "jr",OPC_jr,0,{CLASS_CC,CLASS_DISP,},
-       {CLASS_BIT+0xe,CLASS_CC,CLASS_DISP8,0,0,0,0,0,0,},2,2,65},
+       {CLASS_BIT+0xe,CLASS_CC,CLASS_DISP8,0,0,0,0,0,0,},2,2,70},
 
 /* 0000 1101 ddN0 0101 imm16 *** ld @rd,imm16 */
 {
@@ -1518,7 +1575,7 @@ const opcode_entry_type z8k_table[] = {
 "ld @rd,imm16",16,7,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66},
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,71},
 
 /* 0010 1111 ddN0 ssss *** ld @rd,rs */
 {
@@ -1526,7 +1583,7 @@ const opcode_entry_type z8k_table[] = {
 "ld @rd,rs",16,8,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,66},
+       {CLASS_BIT+2,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,71},
 
 /* 0100 1101 ddN0 0101 address_dst imm16 *** ld address_dst(rd),imm16 */
 {
@@ -1534,7 +1591,7 @@ const opcode_entry_type z8k_table[] = {
 "ld address_dst(rd),imm16",16,15,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,66},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,71},
 
 /* 0110 1111 ddN0 ssss address_dst *** ld address_dst(rd),rs */
 {
@@ -1542,7 +1599,7 @@ const opcode_entry_type z8k_table[] = {
 "ld address_dst(rd),rs",16,12,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_X+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,66},
+       {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,71},
 
 /* 0100 1101 0000 0101 address_dst imm16 *** ld address_dst,imm16 */
 {
@@ -1550,7 +1607,7 @@ const opcode_entry_type z8k_table[] = {
 "ld address_dst,imm16",16,14,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,66},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM16),0,0,0,},2,6,71},
 
 /* 0110 1111 0000 ssss address_dst *** ld address_dst,rs */
 {
@@ -1558,7 +1615,7 @@ const opcode_entry_type z8k_table[] = {
 "ld address_dst,rs",16,11,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_DA+(ARG_DST),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,66},
+       {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,71},
 
 /* 0011 0011 ddN0 ssss imm16 *** ld rd(imm16),rs */
 {
@@ -1566,7 +1623,7 @@ const opcode_entry_type z8k_table[] = {
 "ld rd(imm16),rs",16,14,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_BA+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66},
+       {CLASS_BIT+3,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,71},
 
 /* 0111 0011 ddN0 ssss 0000 xxxx 0000 0000 *** ld rd(rx),rs */
 {
@@ -1574,7 +1631,7 @@ const opcode_entry_type z8k_table[] = {
 "ld rd(rx),rs",16,14,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_BX+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,66},
+       {CLASS_BIT+7,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,71},
 
 /* 0010 0001 ssN0 dddd *** ld rd,@rs */
 {
@@ -1582,7 +1639,7 @@ const opcode_entry_type z8k_table[] = {
 "ld rd,@rs",16,7,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,66},
+       {CLASS_BIT+2,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,71},
 
 /* 0110 0001 0000 dddd address_src *** ld rd,address_src */
 {
@@ -1590,7 +1647,7 @@ const opcode_entry_type z8k_table[] = {
 "ld rd,address_src",16,9,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+6,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,66},
+       {CLASS_BIT+6,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,71},
 
 /* 0110 0001 ssN0 dddd address_src *** ld rd,address_src(rs) */
 {
@@ -1598,7 +1655,7 @@ const opcode_entry_type z8k_table[] = {
 "ld rd,address_src(rs)",16,10,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,66},
+       {CLASS_BIT+6,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,71},
 
 /* 0010 0001 0000 dddd imm16 *** ld rd,imm16 */
 {
@@ -1606,7 +1663,7 @@ const opcode_entry_type z8k_table[] = {
 "ld rd,imm16",16,7,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+2,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66},
+       {CLASS_BIT+2,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,71},
 
 /* 1010 0001 ssss dddd *** ld rd,rs */
 {
@@ -1614,7 +1671,7 @@ const opcode_entry_type z8k_table[] = {
 "ld rd,rs",16,3,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xa,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,66},
+       {CLASS_BIT+0xa,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,71},
 
 /* 0011 0001 ssN0 dddd imm16 *** ld rd,rs(imm16) */
 {
@@ -1622,7 +1679,7 @@ const opcode_entry_type z8k_table[] = {
 "ld rd,rs(imm16)",16,14,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_BA+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,66},
+       {CLASS_BIT+3,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,71},
 
 /* 0111 0001 ssN0 dddd 0000 xxxx 0000 0000 *** ld rd,rs(rx) */
 {
@@ -1630,7 +1687,7 @@ const opcode_entry_type z8k_table[] = {
 "ld rd,rs(rx)",16,14,0x00,
 #endif
 "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_BX+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,66},
+       {CLASS_BIT+7,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,71},
 
 /* 0111 0110 0000 dddd address_src *** lda prd,address_src */
 {
@@ -1638,7 +1695,7 @@ const opcode_entry_type z8k_table[] = {
 "lda prd,address_src",16,12,0x00,
 #endif
 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+7,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,67},
+       {CLASS_BIT+7,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,72},
 
 /* 0111 0110 ssN0 dddd address_src *** lda prd,address_src(rs) */
 {
@@ -1646,7 +1703,7 @@ const opcode_entry_type z8k_table[] = {
 "lda prd,address_src(rs)",16,13,0x00,
 #endif
 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,67},
+       {CLASS_BIT+7,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,72},
 
 /* 0011 0100 ssN0 dddd imm16 *** lda prd,rs(imm16) */
 {
@@ -1654,7 +1711,7 @@ const opcode_entry_type z8k_table[] = {
 "lda prd,rs(imm16)",16,15,0x00,
 #endif
 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_BA+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,67},
+       {CLASS_BIT+3,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,72},
 
 /* 0111 0100 ssN0 dddd 0000 xxxx 0000 0000 *** lda prd,rs(rx) */
 {
@@ -1662,7 +1719,7 @@ const opcode_entry_type z8k_table[] = {
 "lda prd,rs(rx)",16,15,0x00,
 #endif
 "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_BX+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,67},
+       {CLASS_BIT+7,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,72},
 
 /* 0011 0100 0000 dddd disp16 *** ldar prd,disp16 */
 {
@@ -1670,7 +1727,7 @@ const opcode_entry_type z8k_table[] = {
 "ldar prd,disp16",16,15,0x00,
 #endif
 "ldar",OPC_ldar,0,{CLASS_PR+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+3,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,68},
+       {CLASS_BIT+3,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,73},
 
 /* 0000 1100 ddN0 0101 imm8 imm8 *** ldb @rd,imm8 */
 {
@@ -1678,7 +1735,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb @rd,imm8",8,7,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,69},
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,74},
 
 /* 0010 1110 ddN0 ssss *** ldb @rd,rbs */
 {
@@ -1686,7 +1743,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb @rd,rbs",8,8,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_IR+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,69},
+       {CLASS_BIT+2,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,74},
 
 /* 0100 1100 ddN0 0101 address_dst imm8 imm8 *** ldb address_dst(rd),imm8 */
 {
@@ -1694,7 +1751,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb address_dst(rd),imm8",8,15,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,69},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,74},
 
 /* 0110 1110 ddN0 ssss address_dst *** ldb address_dst(rd),rbs */
 {
@@ -1702,7 +1759,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb address_dst(rd),rbs",8,12,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_X+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69},
+       {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,74},
 
 /* 0100 1100 0000 0101 address_dst imm8 imm8 *** ldb address_dst,imm8 */
 {
@@ -1710,7 +1767,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb address_dst,imm8",8,14,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,69},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+5,CLASS_ADDRESS+(ARG_DST),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,},2,6,74},
 
 /* 0110 1110 0000 ssss address_dst *** ldb address_dst,rbs */
 {
@@ -1718,7 +1775,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb address_dst,rbs",8,11,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_DA+(ARG_DST),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69},
+       {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,74},
 
 /* 0010 0000 ssN0 dddd *** ldb rbd,@rs */
 {
@@ -1726,7 +1783,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb rbd,@rs",8,7,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,69},
+       {CLASS_BIT+2,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,74},
 
 /* 0110 0000 0000 dddd address_src *** ldb rbd,address_src */
 {
@@ -1734,7 +1791,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb rbd,address_src",8,9,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,69},
+       {CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,74},
 
 /* 0110 0000 ssN0 dddd address_src *** ldb rbd,address_src(rs) */
 {
@@ -1742,7 +1799,15 @@ const opcode_entry_type z8k_table[] = {
 "ldb rbd,address_src(rs)",8,10,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+6,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,69},
+       {CLASS_BIT+6,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,74},
+
+/* 0010 0000 0000 dddd imm8 imm8 *** ldb rbd,imm8 */
+{
+#ifdef NICENAMES
+"ldb rbd,imm8",8,7,0x00,
+#endif
+"ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
+       {CLASS_BIT+2,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,74},
 
 /* 1100 dddd imm8 *** ldb rbd,imm8 */
 {
@@ -1750,7 +1815,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb rbd,imm8",8,5,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},2,2,69},
+       {CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},2,2,74},
 
 /* 1010 0000 ssss dddd *** ldb rbd,rbs */
 {
@@ -1758,7 +1823,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb rbd,rbs",8,3,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,69},
+       {CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,74},
 
 /* 0011 0000 ssN0 dddd imm16 *** ldb rbd,rs(imm16) */
 {
@@ -1766,7 +1831,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb rbd,rs(imm16)",8,14,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_BA+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,69},
+       {CLASS_BIT+3,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,74},
 
 /* 0111 0000 ssN0 dddd 0000 xxxx 0000 0000 *** ldb rbd,rs(rx) */
 {
@@ -1774,7 +1839,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb rbd,rs(rx)",8,14,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_BX+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,69},
+       {CLASS_BIT+7,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,74},
 
 /* 0011 0010 ddN0 ssss imm16 *** ldb rd(imm16),rbs */
 {
@@ -1782,7 +1847,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb rd(imm16),rbs",8,14,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_BA+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,69},
+       {CLASS_BIT+3,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,74},
 
 /* 0111 0010 ddN0 ssss 0000 xxxx 0000 0000 *** ldb rd(rx),rbs */
 {
@@ -1790,7 +1855,7 @@ const opcode_entry_type z8k_table[] = {
 "ldb rd(rx),rbs",8,14,0x00,
 #endif
 "ldb",OPC_ldb,0,{CLASS_BX+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,69},
+       {CLASS_BIT+7,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,74},
 
 /* 0111 1101 ssss 1ccc *** ldctl ctrl,rs */
 {
@@ -1798,7 +1863,7 @@ const opcode_entry_type z8k_table[] = {
 "ldctl ctrl,rs",32,7,0x00,
 #endif
 "ldctl",OPC_ldctl,0,{CLASS_CTRL,CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_1CCC,0,0,0,0,0,},2,2,70},
+       {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_1CCC,0,0,0,0,0,},2,2,75},
 
 /* 0111 1101 dddd 0ccc *** ldctl rd,ctrl */
 {
@@ -1806,7 +1871,7 @@ const opcode_entry_type z8k_table[] = {
 "ldctl rd,ctrl",32,7,0x00,
 #endif
 "ldctl",OPC_ldctl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_CTRL,},
-       {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_0CCC,0,0,0,0,0,},2,2,70},
+       {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_0CCC,0,0,0,0,0,},2,2,75},
 
 /* 1000 1100 ssss 1001 *** ldctlb ctrl,rbs */
 {
@@ -1814,7 +1879,7 @@ const opcode_entry_type z8k_table[] = {
 "ldctlb ctrl,rbs",32,7,0x3f,
 #endif
 "ldctlb",OPC_ldctlb,0,{CLASS_CTRL,CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_BIT+9,0,0,0,0,0,},2,2,71},
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_BIT+9,0,0,0,0,0,},2,2,76},
 
 /* 1000 1100 dddd 0001 *** ldctlb rbd,ctrl */
 {
@@ -1822,7 +1887,7 @@ const opcode_entry_type z8k_table[] = {
 "ldctlb rbd,ctrl",32,7,0x00,
 #endif
 "ldctlb",OPC_ldctlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_CTRL,},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+1,0,0,0,0,0,},2,2,71},
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+1,0,0,0,0,0,},2,2,76},
 
 /* 1011 1011 ssN0 1001 0000 rrrr ddN0 1000 *** ldd @rd,@rs,rr */
 {
@@ -1830,7 +1895,7 @@ const opcode_entry_type z8k_table[] = {
 "ldd @rd,@rs,rr",16,11,0x04,
 #endif
 "ldd",OPC_ldd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,72},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,77},
 
 /* 1011 1010 ssN0 1001 0000 rrrr ddN0 1000 *** lddb @rd,@rs,rr */
 {
@@ -1838,7 +1903,7 @@ const opcode_entry_type z8k_table[] = {
 "lddb @rd,@rs,rr",8,11,0x04,
 #endif
 "lddb",OPC_lddb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,73},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,78},
 
 /* 1011 1011 ssN0 1001 0000 rrrr ddN0 0000 *** lddr @rd,@rs,rr */
 {
@@ -1846,7 +1911,7 @@ const opcode_entry_type z8k_table[] = {
 "lddr @rd,@rs,rr",16,11,0x04,
 #endif
 "lddr",OPC_lddr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,74},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,79},
 
 /* 1011 1010 ssN0 1001 0000 rrrr ddN0 0000 *** lddrb @rd,@rs,rr */
 {
@@ -1854,7 +1919,7 @@ const opcode_entry_type z8k_table[] = {
 "lddrb @rd,@rs,rr",8,11,0x04,
 #endif
 "lddrb",OPC_lddrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,75},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,80},
 
 /* 1011 1011 ssN0 0001 0000 rrrr ddN0 1000 *** ldi @rd,@rs,rr */
 {
@@ -1862,7 +1927,7 @@ const opcode_entry_type z8k_table[] = {
 "ldi @rd,@rs,rr",16,11,0x04,
 #endif
 "ldi",OPC_ldi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,76},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,81},
 
 /* 1011 1010 ssN0 0001 0000 rrrr ddN0 1000 *** ldib @rd,@rs,rr */
 {
@@ -1870,7 +1935,7 @@ const opcode_entry_type z8k_table[] = {
 "ldib @rd,@rs,rr",8,11,0x04,
 #endif
 "ldib",OPC_ldib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,77},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,82},
 
 /* 1011 1011 ssN0 0001 0000 rrrr ddN0 0000 *** ldir @rd,@rs,rr */
 {
@@ -1878,7 +1943,7 @@ const opcode_entry_type z8k_table[] = {
 "ldir @rd,@rs,rr",16,11,0x04,
 #endif
 "ldir",OPC_ldir,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,78},
+       {CLASS_BIT+0xb,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,83},
 
 /* 1011 1010 ssN0 0001 0000 rrrr ddN0 0000 *** ldirb @rd,@rs,rr */
 {
@@ -1886,7 +1951,7 @@ const opcode_entry_type z8k_table[] = {
 "ldirb @rd,@rs,rr",8,11,0x04,
 #endif
 "ldirb",OPC_ldirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,79},
+       {CLASS_BIT+0xb,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,84},
 
 /* 1011 1101 dddd imm4 *** ldk rd,imm4 */
 {
@@ -1894,7 +1959,7 @@ const opcode_entry_type z8k_table[] = {
 "ldk rd,imm4",16,5,0x00,
 #endif
 "ldk",OPC_ldk,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,80},
+       {CLASS_BIT+0xb,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,85},
 
 /* 0001 1101 ddN0 ssss *** ldl @rd,rrs */
 {
@@ -1902,7 +1967,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl @rd,rrs",32,11,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_IR+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,81},
+       {CLASS_BIT+1,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,86},
 
 /* 0101 1101 ddN0 ssss address_dst *** ldl address_dst(rd),rrs */
 {
@@ -1910,7 +1975,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl address_dst(rd),rrs",32,14,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_X+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,81},
+       {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,86},
 
 /* 0101 1101 0000 ssss address_dst *** ldl address_dst,rrs */
 {
@@ -1918,7 +1983,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl address_dst,rrs",32,15,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_DA+(ARG_DST),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,81},
+       {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,86},
 
 /* 0011 0111 ddN0 ssss imm16 *** ldl rd(imm16),rrs */
 {
@@ -1926,7 +1991,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl rd(imm16),rrs",32,17,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_BA+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,81},
+       {CLASS_BIT+3,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,86},
 
 /* 0111 0111 ddN0 ssss 0000 xxxx 0000 0000 *** ldl rd(rx),rrs */
 {
@@ -1934,7 +1999,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl rd(rx),rrs",32,17,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_BX+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,81},
+       {CLASS_BIT+7,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,86},
 
 /* 0001 0100 ssN0 dddd *** ldl rrd,@rs */
 {
@@ -1942,7 +2007,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl rrd,@rs",32,11,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,81},
+       {CLASS_BIT+1,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,86},
 
 /* 0101 0100 0000 dddd address_src *** ldl rrd,address_src */
 {
@@ -1950,7 +2015,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl rrd,address_src",32,12,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,81},
+       {CLASS_BIT+5,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,86},
 
 /* 0101 0100 ssN0 dddd address_src *** ldl rrd,address_src(rs) */
 {
@@ -1958,7 +2023,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl rrd,address_src(rs)",32,13,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,81},
+       {CLASS_BIT+5,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,86},
 
 /* 0001 0100 0000 dddd imm32 *** ldl rrd,imm32 */
 {
@@ -1966,7 +2031,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl rrd,imm32",32,11,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,81},
+       {CLASS_BIT+1,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,86},
 
 /* 1001 0100 ssss dddd *** ldl rrd,rrs */
 {
@@ -1974,7 +2039,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl rrd,rrs",32,5,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,81},
+       {CLASS_BIT+9,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,86},
 
 /* 0011 0101 ssN0 dddd imm16 *** ldl rrd,rs(imm16) */
 {
@@ -1982,7 +2047,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl rrd,rs(imm16)",32,17,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_BA+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,81},
+       {CLASS_BIT+3,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,86},
 
 /* 0111 0101 ssN0 dddd 0000 xxxx 0000 0000 *** ldl rrd,rs(rx) */
 {
@@ -1990,7 +2055,7 @@ const opcode_entry_type z8k_table[] = {
 "ldl rrd,rs(rx)",32,17,0x00,
 #endif
 "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_BX+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,81},
+       {CLASS_BIT+7,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_REG+(ARG_RX),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,86},
 
 /* 0001 1100 ddN0 1001 0000 ssss 0000 imm4m1 *** ldm @rd,rs,n */
 {
@@ -1998,7 +2063,7 @@ const opcode_entry_type z8k_table[] = {
 "ldm @rd,rs,n",16,11,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,82},
+       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,87},
 
 /* 0101 1100 ddN0 1001 0000 ssss 0000 imm4m1 address_dst *** ldm address_dst(rd),rs,n */
 {
@@ -2006,7 +2071,7 @@ const opcode_entry_type z8k_table[] = {
 "ldm address_dst(rd),rs,n",16,15,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_X+(ARG_RD),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,82},
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,87},
 
 /* 0101 1100 0000 1001 0000 ssss 0000 imm4m1 address_dst *** ldm address_dst,rs,n */
 {
@@ -2014,7 +2079,7 @@ const opcode_entry_type z8k_table[] = {
 "ldm address_dst,rs,n",16,14,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_DA+(ARG_DST),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,82},
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),},3,6,87},
 
 /* 0001 1100 ssN0 0001 0000 dddd 0000 imm4m1 *** ldm rd,@rs,n */
 {
@@ -2022,7 +2087,7 @@ const opcode_entry_type z8k_table[] = {
 "ldm rd,@rs,n",16,11,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,82},
+       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),0,},3,4,87},
 
 /* 0101 1100 ssN0 0001 0000 dddd 0000 imm4m1 address_src *** ldm rd,address_src(rs),n */
 {
@@ -2030,7 +2095,7 @@ const opcode_entry_type z8k_table[] = {
 "ldm rd,address_src(rs),n",16,15,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,82},
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,87},
 
 /* 0101 1100 0000 0001 0000 dddd 0000 imm4m1 address_src *** ldm rd,address_src,n */
 {
@@ -2038,7 +2103,7 @@ const opcode_entry_type z8k_table[] = {
 "ldm rd,address_src,n",16,14,0x00,
 #endif
 "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),CLASS_IMM + (ARG_IMM4M1),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,82},
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_SRC),},3,6,87},
 
 /* 0011 1001 ssN0 0000 *** ldps @rs */
 {
@@ -2046,7 +2111,7 @@ const opcode_entry_type z8k_table[] = {
 "ldps @rs",16,12,0x3f,
 #endif
 "ldps",OPC_ldps,0,{CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,0,0,0,0,},1,2,83},
+       {CLASS_BIT+3,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,0,0,0,0,},1,2,88},
 
 /* 0111 1001 0000 0000 address_src *** ldps address_src */
 {
@@ -2054,7 +2119,7 @@ const opcode_entry_type z8k_table[] = {
 "ldps address_src",16,16,0x3f,
 #endif
 "ldps",OPC_ldps,0,{CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+7,CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,83},
+       {CLASS_BIT+7,CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,88},
 
 /* 0111 1001 ssN0 0000 address_src *** ldps address_src(rs) */
 {
@@ -2062,7 +2127,7 @@ const opcode_entry_type z8k_table[] = {
 "ldps address_src(rs)",16,17,0x3f,
 #endif
 "ldps",OPC_ldps,0,{CLASS_X+(ARG_RS),},
-       {CLASS_BIT+7,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,83},
+       {CLASS_BIT+7,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,88},
 
 /* 0011 0011 0000 ssss disp16 *** ldr disp16,rs */
 {
@@ -2070,7 +2135,7 @@ const opcode_entry_type z8k_table[] = {
 "ldr disp16,rs",16,14,0x00,
 #endif
 "ldr",OPC_ldr,0,{CLASS_DISP,CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,84},
+       {CLASS_BIT+3,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,89},
 
 /* 0011 0001 0000 dddd disp16 *** ldr rd,disp16 */
 {
@@ -2078,7 +2143,7 @@ const opcode_entry_type z8k_table[] = {
 "ldr rd,disp16",16,14,0x00,
 #endif
 "ldr",OPC_ldr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+3,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,84},
+       {CLASS_BIT+3,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,89},
 
 /* 0011 0010 0000 ssss disp16 *** ldrb disp16,rbs */
 {
@@ -2086,7 +2151,7 @@ const opcode_entry_type z8k_table[] = {
 "ldrb disp16,rbs",8,14,0x00,
 #endif
 "ldrb",OPC_ldrb,0,{CLASS_DISP,CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,85},
+       {CLASS_BIT+3,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,90},
 
 /* 0011 0000 0000 dddd disp16 *** ldrb rbd,disp16 */
 {
@@ -2094,7 +2159,7 @@ const opcode_entry_type z8k_table[] = {
 "ldrb rbd,disp16",8,14,0x00,
 #endif
 "ldrb",OPC_ldrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+3,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,85},
+       {CLASS_BIT+3,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,90},
 
 /* 0011 0111 0000 ssss disp16 *** ldrl disp16,rrs */
 {
@@ -2102,7 +2167,7 @@ const opcode_entry_type z8k_table[] = {
 "ldrl disp16,rrs",32,17,0x00,
 #endif
 "ldrl",OPC_ldrl,0,{CLASS_DISP,CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,86},
+       {CLASS_BIT+3,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,91},
 
 /* 0011 0101 0000 dddd disp16 *** ldrl rrd,disp16 */
 {
@@ -2110,7 +2175,7 @@ const opcode_entry_type z8k_table[] = {
 "ldrl rrd,disp16",32,17,0x00,
 #endif
 "ldrl",OPC_ldrl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DISP,},
-       {CLASS_BIT+3,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,86},
+       {CLASS_BIT+3,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,91},
 
 /* 0111 1011 0000 1010 *** mbit */
 {
@@ -2118,7 +2183,7 @@ const opcode_entry_type z8k_table[] = {
 "mbit",16,7,0x38,
 #endif
 "mbit",OPC_mbit,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0xa,0,0,0,0,0,},0,2,87},
+       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0xa,0,0,0,0,0,},0,2,92},
 
 /* 0111 1011 dddd 1101 *** mreq rd */
 {
@@ -2126,7 +2191,7 @@ const opcode_entry_type z8k_table[] = {
 "mreq rd",16,12,0x18,
 #endif
 "mreq",OPC_mreq,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,0,0,0,0,0,},1,2,88},
+       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,0,0,0,0,0,},1,2,93},
 
 /* 0111 1011 0000 1001 *** mres */
 {
@@ -2134,7 +2199,7 @@ const opcode_entry_type z8k_table[] = {
 "mres",16,5,0x00,
 #endif
 "mres",OPC_mres,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+9,0,0,0,0,0,},0,2,89},
+       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+9,0,0,0,0,0,},0,2,94},
 
 /* 0111 1011 0000 1000 *** mset */
 {
@@ -2142,7 +2207,7 @@ const opcode_entry_type z8k_table[] = {
 "mset",16,5,0x00,
 #endif
 "mset",OPC_mset,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+8,0,0,0,0,0,},0,2,90},
+       {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+8,0,0,0,0,0,},0,2,95},
 
 /* 0001 1001 ssN0 dddd *** mult rrd,@rs */
 {
@@ -2150,7 +2215,7 @@ const opcode_entry_type z8k_table[] = {
 "mult rrd,@rs",16,70,0x3c,
 #endif
 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,91},
+       {CLASS_BIT+1,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96},
 
 /* 0101 1001 0000 dddd address_src *** mult rrd,address_src */
 {
@@ -2158,7 +2223,7 @@ const opcode_entry_type z8k_table[] = {
 "mult rrd,address_src",16,70,0x3c,
 #endif
 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,91},
+       {CLASS_BIT+5,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96},
 
 /* 0101 1001 ssN0 dddd address_src *** mult rrd,address_src(rs) */
 {
@@ -2166,7 +2231,7 @@ const opcode_entry_type z8k_table[] = {
 "mult rrd,address_src(rs)",16,70,0x3c,
 #endif
 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,91},
+       {CLASS_BIT+5,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96},
 
 /* 0001 1001 0000 dddd imm16 *** mult rrd,imm16 */
 {
@@ -2174,7 +2239,7 @@ const opcode_entry_type z8k_table[] = {
 "mult rrd,imm16",16,70,0x3c,
 #endif
 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+1,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,91},
+       {CLASS_BIT+1,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,96},
 
 /* 1001 1001 ssss dddd *** mult rrd,rs */
 {
@@ -2182,7 +2247,7 @@ const opcode_entry_type z8k_table[] = {
 "mult rrd,rs",16,70,0x3c,
 #endif
 "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,91},
+       {CLASS_BIT+9,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96},
 
 /* 0001 1000 ssN0 dddd *** multl rqd,@rs */
 {
@@ -2190,7 +2255,7 @@ const opcode_entry_type z8k_table[] = {
 "multl rqd,@rs",32,282,0x3c,
 #endif
 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,92},
+       {CLASS_BIT+1,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97},
 
 /* 0101 1000 0000 dddd address_src *** multl rqd,address_src */
 {
@@ -2198,7 +2263,7 @@ const opcode_entry_type z8k_table[] = {
 "multl rqd,address_src",32,282,0x3c,
 #endif
 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,92},
+       {CLASS_BIT+5,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97},
 
 /* 0101 1000 ssN0 dddd address_src *** multl rqd,address_src(rs) */
 {
@@ -2206,7 +2271,7 @@ const opcode_entry_type z8k_table[] = {
 "multl rqd,address_src(rs)",32,282,0x3c,
 #endif
 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,92},
+       {CLASS_BIT+5,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97},
 
 /* 0001 1000 0000 dddd imm32 *** multl rqd,imm32 */
 {
@@ -2214,7 +2279,7 @@ const opcode_entry_type z8k_table[] = {
 "multl rqd,imm32",32,282,0x3c,
 #endif
 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,92},
+       {CLASS_BIT+1,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,97},
 
 /* 1001 1000 ssss dddd *** multl rqd,rrs */
 {
@@ -2222,7 +2287,7 @@ const opcode_entry_type z8k_table[] = {
 "multl rqd,rrs",32,282,0x3c,
 #endif
 "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,92},
+       {CLASS_BIT+9,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97},
 
 /* 0000 1101 ddN0 0010 *** neg @rd */
 {
@@ -2230,7 +2295,7 @@ const opcode_entry_type z8k_table[] = {
 "neg @rd",16,12,0x3c,
 #endif
 "neg",OPC_neg,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,93},
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,98},
 
 /* 0100 1101 0000 0010 address_dst *** neg address_dst */
 {
@@ -2238,7 +2303,7 @@ const opcode_entry_type z8k_table[] = {
 "neg address_dst",16,15,0x3c,
 #endif
 "neg",OPC_neg,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,93},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,98},
 
 /* 0100 1101 ddN0 0010 address_dst *** neg address_dst(rd) */
 {
@@ -2246,7 +2311,7 @@ const opcode_entry_type z8k_table[] = {
 "neg address_dst(rd)",16,16,0x3c,
 #endif
 "neg",OPC_neg,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,93},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,98},
 
 /* 1000 1101 dddd 0010 *** neg rd */
 {
@@ -2254,7 +2319,7 @@ const opcode_entry_type z8k_table[] = {
 "neg rd",16,7,0x3c,
 #endif
 "neg",OPC_neg,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,93},
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,98},
 
 /* 0000 1100 ddN0 0010 *** negb @rd */
 {
@@ -2262,7 +2327,7 @@ const opcode_entry_type z8k_table[] = {
 "negb @rd",8,12,0x3c,
 #endif
 "negb",OPC_negb,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,94},
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,99},
 
 /* 0100 1100 0000 0010 address_dst *** negb address_dst */
 {
@@ -2270,7 +2335,7 @@ const opcode_entry_type z8k_table[] = {
 "negb address_dst",8,15,0x3c,
 #endif
 "negb",OPC_negb,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,94},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,99},
 
 /* 0100 1100 ddN0 0010 address_dst *** negb address_dst(rd) */
 {
@@ -2278,7 +2343,7 @@ const opcode_entry_type z8k_table[] = {
 "negb address_dst(rd)",8,16,0x3c,
 #endif
 "negb",OPC_negb,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,94},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,99},
 
 /* 1000 1100 dddd 0010 *** negb rbd */
 {
@@ -2286,7 +2351,7 @@ const opcode_entry_type z8k_table[] = {
 "negb rbd",8,7,0x3c,
 #endif
 "negb",OPC_negb,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,94},
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,99},
 
 /* 1000 1101 0000 0111 *** nop */
 {
@@ -2294,7 +2359,7 @@ const opcode_entry_type z8k_table[] = {
 "nop",16,7,0x00,
 #endif
 "nop",OPC_nop,0,{0},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+7,0,0,0,0,0,},0,2,95},
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+7,0,0,0,0,0,},0,2,100},
 
 /* 0000 0101 ssN0 dddd *** or rd,@rs */
 {
@@ -2302,7 +2367,7 @@ const opcode_entry_type z8k_table[] = {
 "or rd,@rs",16,7,0x38,
 #endif
 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96},
+       {CLASS_BIT+0,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,101},
 
 /* 0100 0101 0000 dddd address_src *** or rd,address_src */
 {
@@ -2310,7 +2375,7 @@ const opcode_entry_type z8k_table[] = {
 "or rd,address_src",16,9,0x38,
 #endif
 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96},
+       {CLASS_BIT+4,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,101},
 
 /* 0100 0101 ssN0 dddd address_src *** or rd,address_src(rs) */
 {
@@ -2318,7 +2383,7 @@ const opcode_entry_type z8k_table[] = {
 "or rd,address_src(rs)",16,10,0x38,
 #endif
 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96},
+       {CLASS_BIT+4,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,101},
 
 /* 0000 0101 0000 dddd imm16 *** or rd,imm16 */
 {
@@ -2326,7 +2391,7 @@ const opcode_entry_type z8k_table[] = {
 "or rd,imm16",16,7,0x38,
 #endif
 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,96},
+       {CLASS_BIT+0,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,101},
 
 /* 1000 0101 ssss dddd *** or rd,rs */
 {
@@ -2334,7 +2399,7 @@ const opcode_entry_type z8k_table[] = {
 "or rd,rs",16,4,0x38,
 #endif
 "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96},
+       {CLASS_BIT+8,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,101},
 
 /* 0000 0100 ssN0 dddd *** orb rbd,@rs */
 {
@@ -2342,7 +2407,7 @@ const opcode_entry_type z8k_table[] = {
 "orb rbd,@rs",8,7,0x3c,
 #endif
 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97},
+       {CLASS_BIT+0,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,102},
 
 /* 0100 0100 0000 dddd address_src *** orb rbd,address_src */
 {
@@ -2350,7 +2415,7 @@ const opcode_entry_type z8k_table[] = {
 "orb rbd,address_src",8,9,0x3c,
 #endif
 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97},
+       {CLASS_BIT+4,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,102},
 
 /* 0100 0100 ssN0 dddd address_src *** orb rbd,address_src(rs) */
 {
@@ -2358,7 +2423,7 @@ const opcode_entry_type z8k_table[] = {
 "orb rbd,address_src(rs)",8,10,0x3c,
 #endif
 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97},
+       {CLASS_BIT+4,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,102},
 
 /* 0000 0100 0000 dddd imm8 imm8 *** orb rbd,imm8 */
 {
@@ -2366,7 +2431,7 @@ const opcode_entry_type z8k_table[] = {
 "orb rbd,imm8",8,7,0x3c,
 #endif
 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,97},
+       {CLASS_BIT+0,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,102},
 
 /* 1000 0100 ssss dddd *** orb rbd,rbs */
 {
@@ -2374,79 +2439,103 @@ const opcode_entry_type z8k_table[] = {
 "orb rbd,rbs",8,4,0x3c,
 #endif
 "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97},
+       {CLASS_BIT+8,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,102},
 
-/* 0011 1111 ddN0 ssss *** out @rd,rs */
+/* 0011 1011 ssN0 1010 0000 aaaa dddd 0000 *** otdr @ro,@rs,ra */
 {
 #ifdef NICENAMES
-"out @rd,rs",16,0,0x04,
+"otdr @ro,@rs,ra",16,11,0x04,
 #endif
-"out",OPC_out,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,98},
+"otdr",OPC_otdr,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,103},
 
-/* 0011 1011 ssss 0110 imm16 *** out imm16,rs */
+/* 0011 1010 ssN0 1010 0000 aaaa dddd 0000 *** otdrb @ro,@rs,ra */
 {
 #ifdef NICENAMES
-"out imm16,rs",16,0,0x04,
+"otdrb @ro,@rs,ra",8,11,0x04,
 #endif
-"out",OPC_out,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,98},
+"otdrb",OPC_otdrb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,104},
 
-/* 0011 1110 ddN0 ssss *** outb @rd,rbs */
+/* 0011 1011 ssN0 0010 0000 aaaa dddd 0000 *** otir @ro,@rs,ra */
 {
 #ifdef NICENAMES
-"outb @rd,rbs",8,0,0x04,
+"otir @ro,@rs,ra",16,11,0x04,
 #endif
-"outb",OPC_outb,0,{CLASS_IR+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,99},
+"otir",OPC_otir,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,105},
 
-/* 0011 1010 ssss 0110 imm16 *** outb imm16,rbs */
+/* 0011 1010 ssN0 0010 0000 aaaa dddd 0000 *** otirb @ro,@rs,ra */
 {
 #ifdef NICENAMES
-"outb imm16,rbs",8,0,0x04,
+"otirb @ro,@rs,ra",8,11,0x04,
 #endif
-"outb",OPC_outb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,99},
+"otirb",OPC_otirb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,106},
 
-/* 0011 1011 ssN0 1010 0000 aaaa ddN0 1000 *** outd @rd,@rs,ra */
+/* 0011 1111 dddd ssss *** out @ro,rs */
 {
 #ifdef NICENAMES
-"outd @rd,@rs,ra",16,0,0x04,
+"out @ro,rs",16,10,0x00,
 #endif
-"outd",OPC_outd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,100},
+"out",OPC_out,0,{CLASS_IRO+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
+       {CLASS_BIT+3,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,107},
 
-/* 0011 1010 ssN0 1010 0000 aaaa ddN0 1000 *** outdb @rd,@rs,rba */
+/* 0011 1011 ssss 0110 imm16 *** out imm16,rs */
 {
 #ifdef NICENAMES
-"outdb @rd,@rs,rba",16,0,0x04,
+"out imm16,rs",16,12,0x00,
 #endif
-"outdb",OPC_outdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,101},
+"out",OPC_out,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,107},
 
-/* 0011 1011 ssN0 0010 0000 aaaa ddN0 1000 *** outi @rd,@rs,ra */
+/* 0011 1110 dddd ssss *** outb @ro,rbs */
 {
 #ifdef NICENAMES
-"outi @rd,@rs,ra",16,0,0x04,
+"outb @ro,rbs",8,10,0x00,
 #endif
-"outi",OPC_outi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,102},
+"outb",OPC_outb,0,{CLASS_IRO+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
+       {CLASS_BIT+3,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,108},
 
-/* 0011 1010 ssN0 0010 0000 aaaa ddN0 1000 *** outib @rd,@rs,ra */
+/* 0011 1010 ssss 0110 imm16 *** outb imm16,rbs */
 {
 #ifdef NICENAMES
-"outib @rd,@rs,ra",16,0,0x04,
+"outb imm16,rbs",8,12,0x00,
 #endif
-"outib",OPC_outib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,103},
+"outb",OPC_outb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,108},
 
-/* 0011 1010 ssN0 0010 0000 aaaa ddN0 0000 *** outibr @rd,@rs,ra */
+/* 0011 1011 ssN0 1010 0000 aaaa dddd 1000 *** outd @ro,@rs,ra */
 {
 #ifdef NICENAMES
-"outibr @rd,@rs,ra",16,0,0x04,
+"outd @ro,@rs,ra",16,21,0x04,
 #endif
-"outibr",OPC_outibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,104},
+"outd",OPC_outd,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,109},
+
+/* 0011 1010 ssN0 1010 0000 aaaa dddd 1000 *** outdb @ro,@rs,ra */
+{
+#ifdef NICENAMES
+"outdb @ro,@rs,ra",8,21,0x04,
+#endif
+"outdb",OPC_outdb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,110},
+
+/* 0011 1011 ssN0 0010 0000 aaaa dddd 1000 *** outi @ro,@rs,ra */
+{
+#ifdef NICENAMES
+"outi @ro,@rs,ra",16,21,0x04,
+#endif
+"outi",OPC_outi,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,111},
+
+/* 0011 1010 ssN0 0010 0000 aaaa dddd 1000 *** outib @ro,@rs,ra */
+{
+#ifdef NICENAMES
+"outib @ro,@rs,ra",8,21,0x04,
+#endif
+"outib",OPC_outib,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,112},
 
 /* 0001 0111 ssN0 ddN0 *** pop @rd,@rs */
 {
@@ -2454,7 +2543,7 @@ const opcode_entry_type z8k_table[] = {
 "pop @rd,@rs",16,12,0x00,
 #endif
 "pop",OPC_pop,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,105},
+       {CLASS_BIT+1,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,113},
 
 /* 0101 0111 ssN0 ddN0 address_dst *** pop address_dst(rd),@rs */
 {
@@ -2462,7 +2551,7 @@ const opcode_entry_type z8k_table[] = {
 "pop address_dst(rd),@rs",16,16,0x00,
 #endif
 "pop",OPC_pop,0,{CLASS_X+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,105},
+       {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,113},
 
 /* 0101 0111 ssN0 0000 address_dst *** pop address_dst,@rs */
 {
@@ -2470,7 +2559,7 @@ const opcode_entry_type z8k_table[] = {
 "pop address_dst,@rs",16,16,0x00,
 #endif
 "pop",OPC_pop,0,{CLASS_DA+(ARG_DST),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,105},
+       {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,113},
 
 /* 1001 0111 ssN0 dddd *** pop rd,@rs */
 {
@@ -2478,7 +2567,7 @@ const opcode_entry_type z8k_table[] = {
 "pop rd,@rs",16,8,0x00,
 #endif
 "pop",OPC_pop,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,105},
+       {CLASS_BIT+9,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,113},
 
 /* 0001 0101 ssN0 ddN0 *** popl @rd,@rs */
 {
@@ -2486,7 +2575,7 @@ const opcode_entry_type z8k_table[] = {
 "popl @rd,@rs",32,19,0x00,
 #endif
 "popl",OPC_popl,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,106},
+       {CLASS_BIT+1,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,114},
 
 /* 0101 0101 ssN0 ddN0 address_dst *** popl address_dst(rd),@rs */
 {
@@ -2494,7 +2583,7 @@ const opcode_entry_type z8k_table[] = {
 "popl address_dst(rd),@rs",32,23,0x00,
 #endif
 "popl",OPC_popl,0,{CLASS_X+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,106},
+       {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,114},
 
 /* 0101 0101 ssN0 0000 address_dst *** popl address_dst,@rs */
 {
@@ -2502,7 +2591,7 @@ const opcode_entry_type z8k_table[] = {
 "popl address_dst,@rs",32,23,0x00,
 #endif
 "popl",OPC_popl,0,{CLASS_DA+(ARG_DST),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,106},
+       {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,114},
 
 /* 1001 0101 ssN0 dddd *** popl rrd,@rs */
 {
@@ -2510,7 +2599,7 @@ const opcode_entry_type z8k_table[] = {
 "popl rrd,@rs",32,12,0x00,
 #endif
 "popl",OPC_popl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,106},
+       {CLASS_BIT+9,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,114},
 
 /* 0001 0011 ddN0 ssN0 *** push @rd,@rs */
 {
@@ -2518,7 +2607,7 @@ const opcode_entry_type z8k_table[] = {
 "push @rd,@rs",16,13,0x00,
 #endif
 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,107},
+       {CLASS_BIT+1,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,115},
 
 /* 0101 0011 ddN0 0000 address_src *** push @rd,address_src */
 {
@@ -2526,7 +2615,7 @@ const opcode_entry_type z8k_table[] = {
 "push @rd,address_src",16,14,0x00,
 #endif
 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,107},
+       {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,115},
 
 /* 0101 0011 ddN0 ssN0 address_src *** push @rd,address_src(rs) */
 {
@@ -2534,7 +2623,7 @@ const opcode_entry_type z8k_table[] = {
 "push @rd,address_src(rs)",16,14,0x00,
 #endif
 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,107},
+       {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,115},
 
 /* 0000 1101 ddN0 1001 imm16 *** push @rd,imm16 */
 {
@@ -2542,7 +2631,7 @@ const opcode_entry_type z8k_table[] = {
 "push @rd,imm16",16,12,0x00,
 #endif
 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,107},
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,115},
 
 /* 1001 0011 ddN0 ssss *** push @rd,rs */
 {
@@ -2550,7 +2639,7 @@ const opcode_entry_type z8k_table[] = {
 "push @rd,rs",16,9,0x00,
 #endif
 "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,107},
+       {CLASS_BIT+9,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,115},
 
 /* 0001 0001 ddN0 ssN0 *** pushl @rd,@rs */
 {
@@ -2558,7 +2647,7 @@ const opcode_entry_type z8k_table[] = {
 "pushl @rd,@rs",32,20,0x00,
 #endif
 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,108},
+       {CLASS_BIT+1,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,116},
 
 /* 0101 0001 ddN0 0000 address_src *** pushl @rd,address_src */
 {
@@ -2566,7 +2655,7 @@ const opcode_entry_type z8k_table[] = {
 "pushl @rd,address_src",32,21,0x00,
 #endif
 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,108},
+       {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,116},
 
 /* 0101 0001 ddN0 ssN0 address_src *** pushl @rd,address_src(rs) */
 {
@@ -2574,7 +2663,7 @@ const opcode_entry_type z8k_table[] = {
 "pushl @rd,address_src(rs)",32,21,0x00,
 #endif
 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,108},
+       {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,116},
 
 /* 1001 0001 ddN0 ssss *** pushl @rd,rrs */
 {
@@ -2582,7 +2671,7 @@ const opcode_entry_type z8k_table[] = {
 "pushl @rd,rrs",32,12,0x00,
 #endif
 "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,108},
+       {CLASS_BIT+9,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,116},
 
 /* 0010 0011 ddN0 imm4 *** res @rd,imm4 */
 {
@@ -2590,7 +2679,7 @@ const opcode_entry_type z8k_table[] = {
 "res @rd,imm4",16,11,0x00,
 #endif
 "res",OPC_res,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+2,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,109},
+       {CLASS_BIT+2,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,117},
 
 /* 0110 0011 ddN0 imm4 address_dst *** res address_dst(rd),imm4 */
 {
@@ -2598,7 +2687,7 @@ const opcode_entry_type z8k_table[] = {
 "res address_dst(rd),imm4",16,14,0x00,
 #endif
 "res",OPC_res,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,109},
+       {CLASS_BIT+6,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,117},
 
 /* 0110 0011 0000 imm4 address_dst *** res address_dst,imm4 */
 {
@@ -2606,7 +2695,7 @@ const opcode_entry_type z8k_table[] = {
 "res address_dst,imm4",16,13,0x00,
 #endif
 "res",OPC_res,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+3,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,109},
+       {CLASS_BIT+6,CLASS_BIT+3,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,117},
 
 /* 1010 0011 dddd imm4 *** res rd,imm4 */
 {
@@ -2614,7 +2703,7 @@ const opcode_entry_type z8k_table[] = {
 "res rd,imm4",16,4,0x00,
 #endif
 "res",OPC_res,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xa,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,109},
+       {CLASS_BIT+0xa,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,117},
 
 /* 0010 0011 0000 ssss 0000 dddd 0000 0000 *** res rd,rs */
 {
@@ -2622,7 +2711,7 @@ const opcode_entry_type z8k_table[] = {
 "res rd,rs",16,10,0x00,
 #endif
 "res",OPC_res,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,109},
+       {CLASS_BIT+2,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,117},
 
 /* 0010 0010 ddN0 imm4 *** resb @rd,imm4 */
 {
@@ -2630,7 +2719,7 @@ const opcode_entry_type z8k_table[] = {
 "resb @rd,imm4",8,11,0x00,
 #endif
 "resb",OPC_resb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+2,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,110},
+       {CLASS_BIT+2,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,118},
 
 /* 0110 0010 ddN0 imm4 address_dst *** resb address_dst(rd),imm4 */
 {
@@ -2638,7 +2727,7 @@ const opcode_entry_type z8k_table[] = {
 "resb address_dst(rd),imm4",8,14,0x00,
 #endif
 "resb",OPC_resb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,110},
+       {CLASS_BIT+6,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,118},
 
 /* 0110 0010 0000 imm4 address_dst *** resb address_dst,imm4 */
 {
@@ -2646,7 +2735,7 @@ const opcode_entry_type z8k_table[] = {
 "resb address_dst,imm4",8,13,0x00,
 #endif
 "resb",OPC_resb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+2,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,110},
+       {CLASS_BIT+6,CLASS_BIT+2,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,118},
 
 /* 1010 0010 dddd imm4 *** resb rbd,imm4 */
 {
@@ -2654,7 +2743,7 @@ const opcode_entry_type z8k_table[] = {
 "resb rbd,imm4",8,4,0x00,
 #endif
 "resb",OPC_resb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xa,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,110},
+       {CLASS_BIT+0xa,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,118},
 
 /* 0010 0010 0000 ssss 0000 dddd 0000 0000 *** resb rbd,rs */
 {
@@ -2662,7 +2751,7 @@ const opcode_entry_type z8k_table[] = {
 "resb rbd,rs",8,10,0x00,
 #endif
 "resb",OPC_resb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,110},
+       {CLASS_BIT+2,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,118},
 
 /* 1000 1101 flags 0011 *** resflg flags */
 {
@@ -2670,7 +2759,7 @@ const opcode_entry_type z8k_table[] = {
 "resflg flags",16,7,0x3c,
 #endif
 "resflg",OPC_resflg,0,{CLASS_FLAGS,},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+3,0,0,0,0,0,},1,2,111},
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+3,0,0,0,0,0,},1,2,119},
 
 /* 1001 1110 0000 cccc *** ret cc */
 {
@@ -2678,7 +2767,7 @@ const opcode_entry_type z8k_table[] = {
 "ret cc",16,10,0x00,
 #endif
 "ret",OPC_ret,0,{CLASS_CC,},
-       {CLASS_BIT+9,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,0,0,0,0,0,},1,2,112},
+       {CLASS_BIT+9,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,0,0,0,0,0,},1,2,120},
 
 /* 1011 0011 dddd 00I0 *** rl rd,imm1or2 */
 {
@@ -2686,7 +2775,7 @@ const opcode_entry_type z8k_table[] = {
 "rl rd,imm1or2",16,6,0x3c,
 #endif
 "rl",OPC_rl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,113},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,121},
 
 /* 1011 0010 dddd 00I0 *** rlb rbd,imm1or2 */
 {
@@ -2694,7 +2783,7 @@ const opcode_entry_type z8k_table[] = {
 "rlb rbd,imm1or2",8,6,0x3c,
 #endif
 "rlb",OPC_rlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,114},
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,122},
 
 /* 1011 0011 dddd 10I0 *** rlc rd,imm1or2 */
 {
@@ -2702,7 +2791,7 @@ const opcode_entry_type z8k_table[] = {
 "rlc rd,imm1or2",16,6,0x3c,
 #endif
 "rlc",OPC_rlc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,115},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,123},
 
 /* 1011 0010 dddd 10I0 *** rlcb rbd,imm1or2 */
 {
@@ -2710,7 +2799,7 @@ const opcode_entry_type z8k_table[] = {
 "rlcb rbd,imm1or2",8,9,0x10,
 #endif
 "rlcb",OPC_rlcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,116},
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,124},
 
 /* 1011 1110 aaaa bbbb *** rldb rbb,rba */
 {
@@ -2718,7 +2807,7 @@ const opcode_entry_type z8k_table[] = {
 "rldb rbb,rba",8,9,0x10,
 #endif
 "rldb",OPC_rldb,0,{CLASS_REG_BYTE+(ARG_RB),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xe,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,117},
+       {CLASS_BIT+0xb,CLASS_BIT+0xe,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,125},
 
 /* 1011 0011 dddd 01I0 *** rr rd,imm1or2 */
 {
@@ -2726,7 +2815,7 @@ const opcode_entry_type z8k_table[] = {
 "rr rd,imm1or2",16,6,0x3c,
 #endif
 "rr",OPC_rr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,118},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,126},
 
 /* 1011 0010 dddd 01I0 *** rrb rbd,imm1or2 */
 {
@@ -2734,7 +2823,7 @@ const opcode_entry_type z8k_table[] = {
 "rrb rbd,imm1or2",8,6,0x3c,
 #endif
 "rrb",OPC_rrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,119},
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,127},
 
 /* 1011 0011 dddd 11I0 *** rrc rd,imm1or2 */
 {
@@ -2742,7 +2831,7 @@ const opcode_entry_type z8k_table[] = {
 "rrc rd,imm1or2",16,6,0x3c,
 #endif
 "rrc",OPC_rrc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,120},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,128},
 
 /* 1011 0010 dddd 11I0 *** rrcb rbd,imm1or2 */
 {
@@ -2750,7 +2839,7 @@ const opcode_entry_type z8k_table[] = {
 "rrcb rbd,imm1or2",8,9,0x10,
 #endif
 "rrcb",OPC_rrcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,121},
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,129},
 
 /* 1011 1100 aaaa bbbb *** rrdb rbb,rba */
 {
@@ -2758,7 +2847,7 @@ const opcode_entry_type z8k_table[] = {
 "rrdb rbb,rba",8,9,0x10,
 #endif
 "rrdb",OPC_rrdb,0,{CLASS_REG_BYTE+(ARG_RB),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+0xb,CLASS_BIT+0xc,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,122},
+       {CLASS_BIT+0xb,CLASS_BIT+0xc,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,130},
 
 /* 0011 0110 imm8 *** rsvd36 */
 {
@@ -2766,7 +2855,7 @@ const opcode_entry_type z8k_table[] = {
 "rsvd36",8,10,0x00,
 #endif
 "rsvd36",OPC_rsvd36,0,{0},
-       {CLASS_BIT+3,CLASS_BIT+6,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,123},
+       {CLASS_BIT+3,CLASS_BIT+6,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,131},
 
 /* 0011 1000 imm8 *** rsvd38 */
 {
@@ -2774,7 +2863,7 @@ const opcode_entry_type z8k_table[] = {
 "rsvd38",8,10,0x00,
 #endif
 "rsvd38",OPC_rsvd38,0,{0},
-       {CLASS_BIT+3,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,124},
+       {CLASS_BIT+3,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,132},
 
 /* 0111 1000 imm8 *** rsvd78 */
 {
@@ -2782,7 +2871,7 @@ const opcode_entry_type z8k_table[] = {
 "rsvd78",8,10,0x00,
 #endif
 "rsvd78",OPC_rsvd78,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,125},
+       {CLASS_BIT+7,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,133},
 
 /* 0111 1110 imm8 *** rsvd7e */
 {
@@ -2790,7 +2879,7 @@ const opcode_entry_type z8k_table[] = {
 "rsvd7e",8,10,0x00,
 #endif
 "rsvd7e",OPC_rsvd7e,0,{0},
-       {CLASS_BIT+7,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,126},
+       {CLASS_BIT+7,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,134},
 
 /* 1001 1101 imm8 *** rsvd9d */
 {
@@ -2798,7 +2887,7 @@ const opcode_entry_type z8k_table[] = {
 "rsvd9d",8,10,0x00,
 #endif
 "rsvd9d",OPC_rsvd9d,0,{0},
-       {CLASS_BIT+9,CLASS_BIT+0xd,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,127},
+       {CLASS_BIT+9,CLASS_BIT+0xd,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,135},
 
 /* 1001 1111 imm8 *** rsvd9f */
 {
@@ -2806,7 +2895,7 @@ const opcode_entry_type z8k_table[] = {
 "rsvd9f",8,10,0x00,
 #endif
 "rsvd9f",OPC_rsvd9f,0,{0},
-       {CLASS_BIT+9,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,128},
+       {CLASS_BIT+9,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,136},
 
 /* 1011 1001 imm8 *** rsvdb9 */
 {
@@ -2814,7 +2903,7 @@ const opcode_entry_type z8k_table[] = {
 "rsvdb9",8,10,0x00,
 #endif
 "rsvdb9",OPC_rsvdb9,0,{0},
-       {CLASS_BIT+0xb,CLASS_BIT+9,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,129},
+       {CLASS_BIT+0xb,CLASS_BIT+9,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,137},
 
 /* 1011 1111 imm8 *** rsvdbf */
 {
@@ -2822,7 +2911,7 @@ const opcode_entry_type z8k_table[] = {
 "rsvdbf",8,10,0x00,
 #endif
 "rsvdbf",OPC_rsvdbf,0,{0},
-       {CLASS_BIT+0xb,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,130},
+       {CLASS_BIT+0xb,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,138},
 
 /* 1011 0111 ssss dddd *** sbc rd,rs */
 {
@@ -2830,7 +2919,7 @@ const opcode_entry_type z8k_table[] = {
 "sbc rd,rs",16,5,0x3c,
 #endif
 "sbc",OPC_sbc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,131},
+       {CLASS_BIT+0xb,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,139},
 
 /* 1011 0110 ssss dddd *** sbcb rbd,rbs */
 {
@@ -2838,7 +2927,7 @@ const opcode_entry_type z8k_table[] = {
 "sbcb rbd,rbs",8,5,0x3f,
 #endif
 "sbcb",OPC_sbcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,132},
+       {CLASS_BIT+0xb,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,140},
 
 /* 0111 1111 imm8 *** sc imm8 */
 {
@@ -2846,7 +2935,7 @@ const opcode_entry_type z8k_table[] = {
 "sc imm8",8,33,0x3f,
 #endif
 "sc",OPC_sc,0,{CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+7,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,133},
+       {CLASS_BIT+7,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,141},
 
 /* 1011 0011 dddd 1011 0000 ssss 0000 0000 *** sda rd,rs */
 {
@@ -2854,7 +2943,7 @@ const opcode_entry_type z8k_table[] = {
 "sda rd,rs",16,15,0x3c,
 #endif
 "sda",OPC_sda,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,134},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,142},
 
 /* 1011 0010 dddd 1011 0000 ssss 0000 0000 *** sdab rbd,rs */
 {
@@ -2862,7 +2951,7 @@ const opcode_entry_type z8k_table[] = {
 "sdab rbd,rs",8,15,0x3c,
 #endif
 "sdab",OPC_sdab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,135},
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,143},
 
 /* 1011 0011 dddd 1111 0000 ssss 0000 0000 *** sdal rrd,rs */
 {
@@ -2870,7 +2959,7 @@ const opcode_entry_type z8k_table[] = {
 "sdal rrd,rs",32,15,0x3c,
 #endif
 "sdal",OPC_sdal,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,136},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,144},
 
 /* 1011 0011 dddd 0011 0000 ssss 0000 0000 *** sdl rd,rs */
 {
@@ -2878,7 +2967,7 @@ const opcode_entry_type z8k_table[] = {
 "sdl rd,rs",16,15,0x38,
 #endif
 "sdl",OPC_sdl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,137},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,145},
 
 /* 1011 0010 dddd 0011 0000 ssss 0000 0000 *** sdlb rbd,rs */
 {
@@ -2886,7 +2975,7 @@ const opcode_entry_type z8k_table[] = {
 "sdlb rbd,rs",8,15,0x38,
 #endif
 "sdlb",OPC_sdlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,138},
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,146},
 
 /* 1011 0011 dddd 0111 0000 ssss 0000 0000 *** sdll rrd,rs */
 {
@@ -2894,7 +2983,7 @@ const opcode_entry_type z8k_table[] = {
 "sdll rrd,rs",32,15,0x38,
 #endif
 "sdll",OPC_sdll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,139},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,147},
 
 /* 0010 0101 ddN0 imm4 *** set @rd,imm4 */
 {
@@ -2902,7 +2991,7 @@ const opcode_entry_type z8k_table[] = {
 "set @rd,imm4",16,11,0x00,
 #endif
 "set",OPC_set,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+2,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,140},
+       {CLASS_BIT+2,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,148},
 
 /* 0110 0101 ddN0 imm4 address_dst *** set address_dst(rd),imm4 */
 {
@@ -2910,7 +2999,7 @@ const opcode_entry_type z8k_table[] = {
 "set address_dst(rd),imm4",16,14,0x00,
 #endif
 "set",OPC_set,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,140},
+       {CLASS_BIT+6,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,148},
 
 /* 0110 0101 0000 imm4 address_dst *** set address_dst,imm4 */
 {
@@ -2918,7 +3007,7 @@ const opcode_entry_type z8k_table[] = {
 "set address_dst,imm4",16,13,0x00,
 #endif
 "set",OPC_set,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+5,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,140},
+       {CLASS_BIT+6,CLASS_BIT+5,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,148},
 
 /* 1010 0101 dddd imm4 *** set rd,imm4 */
 {
@@ -2926,7 +3015,7 @@ const opcode_entry_type z8k_table[] = {
 "set rd,imm4",16,4,0x00,
 #endif
 "set",OPC_set,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xa,CLASS_BIT+5,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,140},
+       {CLASS_BIT+0xa,CLASS_BIT+5,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,148},
 
 /* 0010 0101 0000 ssss 0000 dddd 0000 0000 *** set rd,rs */
 {
@@ -2934,7 +3023,7 @@ const opcode_entry_type z8k_table[] = {
 "set rd,rs",16,10,0x00,
 #endif
 "set",OPC_set,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,140},
+       {CLASS_BIT+2,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,148},
 
 /* 0010 0100 ddN0 imm4 *** setb @rd,imm4 */
 {
@@ -2942,7 +3031,7 @@ const opcode_entry_type z8k_table[] = {
 "setb @rd,imm4",8,11,0x00,
 #endif
 "setb",OPC_setb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+2,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,141},
+       {CLASS_BIT+2,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,149},
 
 /* 0110 0100 ddN0 imm4 address_dst *** setb address_dst(rd),imm4 */
 {
@@ -2950,7 +3039,7 @@ const opcode_entry_type z8k_table[] = {
 "setb address_dst(rd),imm4",8,14,0x00,
 #endif
 "setb",OPC_setb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,141},
+       {CLASS_BIT+6,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,149},
 
 /* 0110 0100 0000 imm4 address_dst *** setb address_dst,imm4 */
 {
@@ -2958,7 +3047,7 @@ const opcode_entry_type z8k_table[] = {
 "setb address_dst,imm4",8,13,0x00,
 #endif
 "setb",OPC_setb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+6,CLASS_BIT+4,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,141},
+       {CLASS_BIT+6,CLASS_BIT+4,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,149},
 
 /* 1010 0100 dddd imm4 *** setb rbd,imm4 */
 {
@@ -2966,7 +3055,7 @@ const opcode_entry_type z8k_table[] = {
 "setb rbd,imm4",8,4,0x00,
 #endif
 "setb",OPC_setb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xa,CLASS_BIT+4,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,141},
+       {CLASS_BIT+0xa,CLASS_BIT+4,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,149},
 
 /* 0010 0100 0000 ssss 0000 dddd 0000 0000 *** setb rbd,rs */
 {
@@ -2974,7 +3063,7 @@ const opcode_entry_type z8k_table[] = {
 "setb rbd,rs",8,10,0x00,
 #endif
 "setb",OPC_setb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+2,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,141},
+       {CLASS_BIT+2,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,149},
 
 /* 1000 1101 flags 0001 *** setflg flags */
 {
@@ -2982,55 +3071,87 @@ const opcode_entry_type z8k_table[] = {
 "setflg flags",16,7,0x3c,
 #endif
 "setflg",OPC_setflg,0,{CLASS_FLAGS,},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+1,0,0,0,0,0,},1,2,142},
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+1,0,0,0,0,0,},1,2,150},
 
 /* 0011 1011 dddd 0101 imm16 *** sin rd,imm16 */
 {
 #ifdef NICENAMES
-"sin rd,imm16",8,0,0x00,
+"sin rd,imm16",16,12,0x00,
 #endif
 "sin",OPC_sin,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,143},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,151},
 
 /* 0011 1010 dddd 0101 imm16 *** sinb rbd,imm16 */
 {
 #ifdef NICENAMES
-"sinb rbd,imm16",8,0,0x00,
+"sinb rbd,imm16",8,10,0x00,
 #endif
 "sinb",OPC_sinb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,144},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,152},
+
+/* 0011 1011 ssss 1001 0000 aaaa ddN0 1000 *** sind @rd,@ri,ra */
+{
+#ifdef NICENAMES
+"sind @rd,@ri,ra",16,21,0x04,
+#endif
+"sind",OPC_sind,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,153},
+
+/* 0011 1010 ssss 1001 0000 aaaa ddN0 1000 *** sindb @rd,@ri,ra */
+{
+#ifdef NICENAMES
+"sindb @rd,@ri,ra",8,21,0x04,
+#endif
+"sindb",OPC_sindb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,154},
+
+/* 0011 1011 ssss 1001 0000 aaaa ddN0 0000 *** sindr @rd,@ri,ra */
+{
+#ifdef NICENAMES
+"sindr @rd,@ri,ra",16,11,0x04,
+#endif
+"sindr",OPC_sindr,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,155},
+
+/* 0011 1010 ssss 1001 0000 aaaa ddN0 0000 *** sindrb @rd,@ri,ra */
+{
+#ifdef NICENAMES
+"sindrb @rd,@ri,ra",8,11,0x04,
+#endif
+"sindrb",OPC_sindrb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,156},
 
-/* 0011 1011 ssN0 1000 0001 aaaa ddN0 1000 *** sind @rd,@rs,ra */
+/* 0011 1011 ssss 0001 0000 aaaa ddN0 1000 *** sini @rd,@ri,ra */
 {
 #ifdef NICENAMES
-"sind @rd,@rs,ra",16,0,0x00,
+"sini @rd,@ri,ra",16,21,0x04,
 #endif
-"sind",OPC_sind,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,145},
+"sini",OPC_sini,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,157},
 
-/* 0011 1010 ssN0 1000 0001 aaaa ddN0 1000 *** sindb @rd,@rs,rba */
+/* 0011 1010 ssss 0001 0000 aaaa ddN0 1000 *** sinib @rd,@ri,ra */
 {
 #ifdef NICENAMES
-"sindb @rd,@rs,rba",8,0,0x00,
+"sinib @rd,@ri,ra",8,21,0x04,
 #endif
-"sindb",OPC_sindb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,146},
+"sinib",OPC_sinib,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,158},
 
-/* 0011 1010 ssN0 0001 0000 aaaa ddN0 1000 *** sinib @rd,@rs,ra */
+/* 0011 1011 ssss 0001 0000 aaaa ddN0 0000 *** sinir @rd,@ri,ra */
 {
 #ifdef NICENAMES
-"sinib @rd,@rs,ra",8,0,0x00,
+"sinir @rd,@ri,ra",16,11,0x04,
 #endif
-"sinib",OPC_sinib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,147},
+"sinir",OPC_sinir,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,159},
 
-/* 0011 1010 ssN0 0001 0000 aaaa ddN0 0000 *** sinibr @rd,@rs,ra */
+/* 0011 1010 ssss 0001 0000 aaaa ddN0 0000 *** sinirb @rd,@ri,ra */
 {
 #ifdef NICENAMES
-"sinibr @rd,@rs,ra",16,0,0x00,
+"sinirb @rd,@ri,ra",8,11,0x04,
 #endif
-"sinibr",OPC_sinibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,148},
+"sinirb",OPC_sinirb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,160},
 
 /* 1011 0011 dddd 1001 0000 0000 imm8 *** sla rd,imm8 */
 {
@@ -3038,7 +3159,7 @@ const opcode_entry_type z8k_table[] = {
 "sla rd,imm8",16,13,0x3c,
 #endif
 "sla",OPC_sla,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,149},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,161},
 
 /* 1011 0010 dddd 1001 iiii iiii 0000 imm4 *** slab rbd,imm4 */
 {
@@ -3046,7 +3167,7 @@ const opcode_entry_type z8k_table[] = {
 "slab rbd,imm4",8,13,0x3c,
 #endif
 "slab",OPC_slab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,150},
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,162},
 
 /* 1011 0011 dddd 1101 0000 0000 imm8 *** slal rrd,imm8 */
 {
@@ -3054,7 +3175,7 @@ const opcode_entry_type z8k_table[] = {
 "slal rrd,imm8",32,13,0x3c,
 #endif
 "slal",OPC_slal,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,151},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,163},
 
 /* 1011 0011 dddd 0001 0000 0000 imm8 *** sll rd,imm8 */
 {
@@ -3062,7 +3183,7 @@ const opcode_entry_type z8k_table[] = {
 "sll rd,imm8",16,13,0x38,
 #endif
 "sll",OPC_sll,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,152},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,164},
 
 /* 1011 0010 dddd 0001 iiii iiii 0000 imm4 *** sllb rbd,imm4 */
 {
@@ -3070,7 +3191,7 @@ const opcode_entry_type z8k_table[] = {
 "sllb rbd,imm4",8,13,0x38,
 #endif
 "sllb",OPC_sllb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,153},
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),0,},2,4,165},
 
 /* 1011 0011 dddd 0101 0000 0000 imm8 *** slll rrd,imm8 */
 {
@@ -3078,55 +3199,87 @@ const opcode_entry_type z8k_table[] = {
 "slll rrd,imm8",32,13,0x38,
 #endif
 "slll",OPC_slll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,154},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_IMM+(ARG_IMM8),0,0,},2,4,166},
+
+/* 0011 1011 ssN0 1011 0000 aaaa dddd 0000 *** sotdr @ro,@rs,ra */
+{
+#ifdef NICENAMES
+"sotdr @ro,@rs,ra",16,11,0x04,
+#endif
+"sotdr",OPC_sotdr,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,167},
+
+/* 0011 1010 ssN0 1011 0000 aaaa dddd 0000 *** sotdrb @ro,@rs,ra */
+{
+#ifdef NICENAMES
+"sotdrb @ro,@rs,ra",8,11,0x04,
+#endif
+"sotdrb",OPC_sotdrb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,168},
+
+/* 0011 1011 ssN0 0011 0000 aaaa dddd 0000 *** sotir @ro,@rs,ra */
+{
+#ifdef NICENAMES
+"sotir @ro,@rs,ra",16,11,0x04,
+#endif
+"sotir",OPC_sotir,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,169},
+
+/* 0011 1010 ssN0 0011 0000 aaaa dddd 0000 *** sotirb @ro,@rs,ra */
+{
+#ifdef NICENAMES
+"sotirb @ro,@rs,ra",8,11,0x04,
+#endif
+"sotirb",OPC_sotirb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+0,0,},3,4,170},
 
-/* 0011 1011 ssss 0111 imm16 *** sout imm16,rs */
+/* 0011 1011 ssss 0110 imm16 *** sout imm16,rs */
 {
 #ifdef NICENAMES
-"sout imm16,rs",16,0,0x00,
+"sout imm16,rs",16,12,0x00,
 #endif
 "sout",OPC_sout,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,155},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,171},
 
-/* 0011 1010 ssss 0111 imm16 *** soutb imm16,rbs */
+/* 0011 1010 ssss 0110 imm16 *** soutb imm16,rbs */
 {
 #ifdef NICENAMES
-"soutb imm16,rbs",8,0,0x00,
+"soutb imm16,rbs",8,12,0x00,
 #endif
 "soutb",OPC_soutb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,156},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,172},
 
-/* 0011 1011 ssN0 1011 0000 aaaa ddN0 1000 *** soutd @rd,@rs,ra */
+/* 0011 1011 ssN0 1011 0000 aaaa dddd 1000 *** soutd @ro,@rs,ra */
 {
 #ifdef NICENAMES
-"soutd @rd,@rs,ra",16,0,0x00,
+"soutd @ro,@rs,ra",16,21,0x04,
 #endif
-"soutd",OPC_soutd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,157},
+"soutd",OPC_soutd,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,173},
 
-/* 0011 1010 ssN0 1011 0000 aaaa ddN0 1000 *** soutdb @rd,@rs,rba */
+/* 0011 1010 ssN0 1011 0000 aaaa dddd 1000 *** soutdb @ro,@rs,ra */
 {
 #ifdef NICENAMES
-"soutdb @rd,@rs,rba",8,0,0x00,
+"soutdb @ro,@rs,ra",8,21,0x04,
 #endif
-"soutdb",OPC_soutdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,158},
+"soutdb",OPC_soutdb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,174},
 
-/* 0011 1010 ssN0 0011 0000 aaaa ddN0 1000 *** soutib @rd,@rs,ra */
+/* 0011 1011 ssN0 0011 0000 aaaa dddd 1000 *** souti @ro,@rs,ra */
 {
 #ifdef NICENAMES
-"soutib @rd,@rs,ra",8,0,0x00,
+"souti @ro,@rs,ra",16,21,0x04,
 #endif
-"soutib",OPC_soutib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,},3,4,159},
+"souti",OPC_souti,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,175},
 
-/* 0011 1010 ssN0 0011 0000 aaaa ddN0 0000 *** soutibr @rd,@rs,ra */
+/* 0011 1010 ssN0 0011 0000 aaaa dddd 1000 *** soutib @ro,@rs,ra */
 {
 #ifdef NICENAMES
-"soutibr @rd,@rs,ra",16,0,0x00,
+"soutib @ro,@rs,ra",8,21,0x04,
 #endif
-"soutibr",OPC_soutibr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
-       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,},3,4,160},
+"soutib",OPC_soutib,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
+       {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RD),CLASS_BIT+8,0,},3,4,176},
 
 /* 1011 0011 dddd 1001 1111 1111 nim8 *** sra rd,imm8 */
 {
@@ -3134,7 +3287,7 @@ const opcode_entry_type z8k_table[] = {
 "sra rd,imm8",16,13,0x3c,
 #endif
 "sra",OPC_sra,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,161},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,177},
 
 /* 1011 0010 dddd 1001 iiii iiii 1111 nim4 *** srab rbd,imm4 */
 {
@@ -3142,7 +3295,7 @@ const opcode_entry_type z8k_table[] = {
 "srab rbd,imm4",8,13,0x3c,
 #endif
 "srab",OPC_srab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,162},
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+9,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,178},
 
 /* 1011 0011 dddd 1101 1111 1111 nim8 *** sral rrd,imm8 */
 {
@@ -3150,7 +3303,7 @@ const opcode_entry_type z8k_table[] = {
 "sral rrd,imm8",32,13,0x3c,
 #endif
 "sral",OPC_sral,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,163},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,179},
 
 /* 1011 0011 dddd 0001 1111 1111 nim8 *** srl rd,imm8 */
 {
@@ -3158,7 +3311,7 @@ const opcode_entry_type z8k_table[] = {
 "srl rd,imm8",16,13,0x3c,
 #endif
 "srl",OPC_srl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,164},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,180},
 
 /* 1011 0010 dddd 0001 iiii iiii 1111 nim4 *** srlb rbd,imm4 */
 {
@@ -3166,7 +3319,7 @@ const opcode_entry_type z8k_table[] = {
 "srlb rbd,imm4",8,13,0x3c,
 #endif
 "srlb",OPC_srlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
-       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,165},
+       {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT+1,CLASS_IGNORE,CLASS_IGNORE,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM4),0,},2,4,181},
 
 /* 1011 0011 dddd 0101 1111 1111 nim8 *** srll rrd,imm8 */
 {
@@ -3174,7 +3327,7 @@ const opcode_entry_type z8k_table[] = {
 "srll rrd,imm8",32,13,0x3c,
 #endif
 "srll",OPC_srll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,166},
+       {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0xf,CLASS_IMM+(ARG_NIM8),0,0,},2,4,182},
 
 /* 0000 0011 ssN0 dddd *** sub rd,@rs */
 {
@@ -3182,7 +3335,7 @@ const opcode_entry_type z8k_table[] = {
 "sub rd,@rs",16,7,0x3c,
 #endif
 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,167},
+       {CLASS_BIT+0,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,183},
 
 /* 0100 0011 0000 dddd address_src *** sub rd,address_src */
 {
@@ -3190,7 +3343,7 @@ const opcode_entry_type z8k_table[] = {
 "sub rd,address_src",16,9,0x3c,
 #endif
 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,167},
+       {CLASS_BIT+4,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,183},
 
 /* 0100 0011 ssN0 dddd address_src *** sub rd,address_src(rs) */
 {
@@ -3198,7 +3351,7 @@ const opcode_entry_type z8k_table[] = {
 "sub rd,address_src(rs)",16,10,0x3c,
 #endif
 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,167},
+       {CLASS_BIT+4,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,183},
 
 /* 0000 0011 0000 dddd imm16 *** sub rd,imm16 */
 {
@@ -3206,7 +3359,7 @@ const opcode_entry_type z8k_table[] = {
 "sub rd,imm16",16,7,0x3c,
 #endif
 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,167},
+       {CLASS_BIT+0,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,183},
 
 /* 1000 0011 ssss dddd *** sub rd,rs */
 {
@@ -3214,7 +3367,7 @@ const opcode_entry_type z8k_table[] = {
 "sub rd,rs",16,4,0x3c,
 #endif
 "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+3,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,167},
+       {CLASS_BIT+8,CLASS_BIT+3,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,183},
 
 /* 0000 0010 ssN0 dddd *** subb rbd,@rs */
 {
@@ -3222,7 +3375,7 @@ const opcode_entry_type z8k_table[] = {
 "subb rbd,@rs",8,7,0x3f,
 #endif
 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,168},
+       {CLASS_BIT+0,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,184},
 
 /* 0100 0010 0000 dddd address_src *** subb rbd,address_src */
 {
@@ -3230,7 +3383,7 @@ const opcode_entry_type z8k_table[] = {
 "subb rbd,address_src",8,9,0x3f,
 #endif
 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,168},
+       {CLASS_BIT+4,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,184},
 
 /* 0100 0010 ssN0 dddd address_src *** subb rbd,address_src(rs) */
 {
@@ -3238,7 +3391,7 @@ const opcode_entry_type z8k_table[] = {
 "subb rbd,address_src(rs)",8,10,0x3f,
 #endif
 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,168},
+       {CLASS_BIT+4,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,184},
 
 /* 0000 0010 0000 dddd imm8 imm8 *** subb rbd,imm8 */
 {
@@ -3246,7 +3399,7 @@ const opcode_entry_type z8k_table[] = {
 "subb rbd,imm8",8,7,0x3f,
 #endif
 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,168},
+       {CLASS_BIT+0,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,184},
 
 /* 1000 0010 ssss dddd *** subb rbd,rbs */
 {
@@ -3254,7 +3407,7 @@ const opcode_entry_type z8k_table[] = {
 "subb rbd,rbs",8,4,0x3f,
 #endif
 "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,168},
+       {CLASS_BIT+8,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,184},
 
 /* 0001 0010 ssN0 dddd *** subl rrd,@rs */
 {
@@ -3262,7 +3415,7 @@ const opcode_entry_type z8k_table[] = {
 "subl rrd,@rs",32,14,0x3c,
 #endif
 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+1,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,169},
+       {CLASS_BIT+1,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,185},
 
 /* 0101 0010 0000 dddd address_src *** subl rrd,address_src */
 {
@@ -3270,7 +3423,7 @@ const opcode_entry_type z8k_table[] = {
 "subl rrd,address_src",32,15,0x3c,
 #endif
 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+5,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,169},
+       {CLASS_BIT+5,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,185},
 
 /* 0101 0010 ssN0 dddd address_src *** subl rrd,address_src(rs) */
 {
@@ -3278,7 +3431,7 @@ const opcode_entry_type z8k_table[] = {
 "subl rrd,address_src(rs)",32,16,0x3c,
 #endif
 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+5,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,169},
+       {CLASS_BIT+5,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,185},
 
 /* 0001 0010 0000 dddd imm32 *** subl rrd,imm32 */
 {
@@ -3286,7 +3439,7 @@ const opcode_entry_type z8k_table[] = {
 "subl rrd,imm32",32,14,0x3c,
 #endif
 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
-       {CLASS_BIT+1,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,169},
+       {CLASS_BIT+1,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,185},
 
 /* 1001 0010 ssss dddd *** subl rrd,rrs */
 {
@@ -3294,7 +3447,7 @@ const opcode_entry_type z8k_table[] = {
 "subl rrd,rrs",32,8,0x3c,
 #endif
 "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
-       {CLASS_BIT+9,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,169},
+       {CLASS_BIT+9,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,185},
 
 /* 1010 1111 dddd cccc *** tcc cc,rd */
 {
@@ -3302,7 +3455,7 @@ const opcode_entry_type z8k_table[] = {
 "tcc cc,rd",16,5,0x00,
 #endif
 "tcc",OPC_tcc,0,{CLASS_CC,CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,170},
+       {CLASS_BIT+0xa,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,186},
 
 /* 1010 1110 dddd cccc *** tccb cc,rbd */
 {
@@ -3310,7 +3463,7 @@ const opcode_entry_type z8k_table[] = {
 "tccb cc,rbd",8,5,0x00,
 #endif
 "tccb",OPC_tccb,0,{CLASS_CC,CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+0xa,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,171},
+       {CLASS_BIT+0xa,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,187},
 
 /* 0000 1101 ddN0 0100 *** test @rd */
 {
@@ -3318,7 +3471,7 @@ const opcode_entry_type z8k_table[] = {
 "test @rd",16,8,0x18,
 #endif
 "test",OPC_test,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,172},
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,188},
 
 /* 0100 1101 0000 0100 address_dst *** test address_dst */
 {
@@ -3326,7 +3479,7 @@ const opcode_entry_type z8k_table[] = {
 "test address_dst",16,11,0x00,
 #endif
 "test",OPC_test,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,172},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,188},
 
 /* 0100 1101 ddN0 0100 address_dst *** test address_dst(rd) */
 {
@@ -3334,7 +3487,7 @@ const opcode_entry_type z8k_table[] = {
 "test address_dst(rd)",16,12,0x00,
 #endif
 "test",OPC_test,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,172},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,188},
 
 /* 1000 1101 dddd 0100 *** test rd */
 {
@@ -3342,7 +3495,7 @@ const opcode_entry_type z8k_table[] = {
 "test rd",16,7,0x00,
 #endif
 "test",OPC_test,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,172},
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,188},
 
 /* 0000 1100 ddN0 0100 *** testb @rd */
 {
@@ -3350,7 +3503,7 @@ const opcode_entry_type z8k_table[] = {
 "testb @rd",8,8,0x1c,
 #endif
 "testb",OPC_testb,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,173},
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,189},
 
 /* 0100 1100 0000 0100 address_dst *** testb address_dst */
 {
@@ -3358,7 +3511,7 @@ const opcode_entry_type z8k_table[] = {
 "testb address_dst",8,11,0x1c,
 #endif
 "testb",OPC_testb,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,173},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,189},
 
 /* 0100 1100 ddN0 0100 address_dst *** testb address_dst(rd) */
 {
@@ -3366,7 +3519,7 @@ const opcode_entry_type z8k_table[] = {
 "testb address_dst(rd)",8,12,0x1c,
 #endif
 "testb",OPC_testb,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,173},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,189},
 
 /* 1000 1100 dddd 0100 *** testb rbd */
 {
@@ -3374,7 +3527,7 @@ const opcode_entry_type z8k_table[] = {
 "testb rbd",8,7,0x1c,
 #endif
 "testb",OPC_testb,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,173},
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,189},
 
 /* 0001 1100 ddN0 1000 *** testl @rd */
 {
@@ -3382,7 +3535,7 @@ const opcode_entry_type z8k_table[] = {
 "testl @rd",32,13,0x18,
 #endif
 "testl",OPC_testl,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,174},
+       {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,190},
 
 /* 0101 1100 0000 1000 address_dst *** testl address_dst */
 {
@@ -3390,7 +3543,7 @@ const opcode_entry_type z8k_table[] = {
 "testl address_dst",32,16,0x18,
 #endif
 "testl",OPC_testl,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,174},
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,190},
 
 /* 0101 1100 ddN0 1000 address_dst *** testl address_dst(rd) */
 {
@@ -3398,7 +3551,7 @@ const opcode_entry_type z8k_table[] = {
 "testl address_dst(rd)",32,17,0x18,
 #endif
 "testl",OPC_testl,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,174},
+       {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,190},
 
 /* 1001 1100 dddd 1000 *** testl rrd */
 {
@@ -3406,7 +3559,7 @@ const opcode_entry_type z8k_table[] = {
 "testl rrd",32,13,0x18,
 #endif
 "testl",OPC_testl,0,{CLASS_REG_LONG+(ARG_RD),},
-       {CLASS_BIT+9,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,174},
+       {CLASS_BIT+9,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,190},
 
 /* 1011 1000 ddN0 1000 0000 aaaa ssN0 0000 *** trdb @rd,@rs,rba */
 {
@@ -3414,7 +3567,7 @@ const opcode_entry_type z8k_table[] = {
 "trdb @rd,@rs,rba",8,25,0x1c,
 #endif
 "trdb",OPC_trdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,175},
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,191},
 
 /* 1011 1000 ddN0 1100 0000 aaaa ssN0 0000 *** trdrb @rd,@rs,rba */
 {
@@ -3422,7 +3575,7 @@ const opcode_entry_type z8k_table[] = {
 "trdrb @rd,@rs,rba",8,25,0x1c,
 #endif
 "trdrb",OPC_trdrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RA),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,176},
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RA),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,192},
 
 /* 1011 1000 ddN0 0000 0000 rrrr ssN0 0000 *** trib @rd,@rs,rbr */
 {
@@ -3430,7 +3583,7 @@ const opcode_entry_type z8k_table[] = {
 "trib @rd,@rs,rbr",8,25,0x1c,
 #endif
 "trib",OPC_trib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,177},
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,193},
 
 /* 1011 1000 ddN0 0100 0000 rrrr ssN0 0000 *** trirb @rd,@rs,rbr */
 {
@@ -3438,7 +3591,7 @@ const opcode_entry_type z8k_table[] = {
 "trirb @rd,@rs,rbr",8,25,0x1c,
 #endif
 "trirb",OPC_trirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,178},
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,194},
 
 /* 1011 1000 aaN0 1010 0000 rrrr bbN0 0000 *** trtdb @ra,@rb,rbr */
 {
@@ -3446,7 +3599,7 @@ const opcode_entry_type z8k_table[] = {
 "trtdb @ra,@rb,rbr",8,25,0x1c,
 #endif
 "trtdb",OPC_trtdb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,179},
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,195},
 
 /* 1011 1000 aaN0 1110 0000 rrrr bbN0 1110 *** trtdrb @ra,@rb,rbr */
 {
@@ -3454,7 +3607,7 @@ const opcode_entry_type z8k_table[] = {
 "trtdrb @ra,@rb,rbr",8,25,0x1c,
 #endif
 "trtdrb",OPC_trtdrb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,180},
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,196},
 
 /* 1011 1000 aaN0 0010 0000 rrrr bbN0 0000 *** trtib @ra,@rb,rbr */
 {
@@ -3462,7 +3615,7 @@ const opcode_entry_type z8k_table[] = {
 "trtib @ra,@rb,rbr",8,25,0x1c,
 #endif
 "trtib",OPC_trtib,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,181},
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,197},
 
 /* 1011 1000 aaN0 0110 0000 rrrr bbN0 1110 *** trtirb @ra,@rb,rbr */
 {
@@ -3470,7 +3623,7 @@ const opcode_entry_type z8k_table[] = {
 "trtirb @ra,@rb,rbr",8,25,0x1c,
 #endif
 "trtirb",OPC_trtirb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,182},
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0xe,0,},3,4,198},
 
 /* 1011 1000 aaN0 1010 0000 rrrr bbN0 0000 *** trtrb @ra,@rb,rbr */
 {
@@ -3478,7 +3631,7 @@ const opcode_entry_type z8k_table[] = {
 "trtrb @ra,@rb,rbr",8,25,0x1c,
 #endif
 "trtrb",OPC_trtrb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_BYTE+(ARG_RR),},
-       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,183},
+       {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RA),CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RB),CLASS_BIT+0,0,},3,4,199},
 
 /* 0000 1101 ddN0 0110 *** tset @rd */
 {
@@ -3486,7 +3639,7 @@ const opcode_entry_type z8k_table[] = {
 "tset @rd",16,11,0x08,
 #endif
 "tset",OPC_tset,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,184},
+       {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,200},
 
 /* 0100 1101 0000 0110 address_dst *** tset address_dst */
 {
@@ -3494,7 +3647,7 @@ const opcode_entry_type z8k_table[] = {
 "tset address_dst",16,14,0x08,
 #endif
 "tset",OPC_tset,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,184},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,200},
 
 /* 0100 1101 ddN0 0110 address_dst *** tset address_dst(rd) */
 {
@@ -3502,7 +3655,7 @@ const opcode_entry_type z8k_table[] = {
 "tset address_dst(rd)",16,15,0x08,
 #endif
 "tset",OPC_tset,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,184},
+       {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,200},
 
 /* 1000 1101 dddd 0110 *** tset rd */
 {
@@ -3510,7 +3663,7 @@ const opcode_entry_type z8k_table[] = {
 "tset rd",16,7,0x08,
 #endif
 "tset",OPC_tset,0,{CLASS_REG_WORD+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,184},
+       {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,200},
 
 /* 0000 1100 ddN0 0110 *** tsetb @rd */
 {
@@ -3518,7 +3671,7 @@ const opcode_entry_type z8k_table[] = {
 "tsetb @rd",8,11,0x08,
 #endif
 "tsetb",OPC_tsetb,0,{CLASS_IR+(ARG_RD),},
-       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,185},
+       {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,201},
 
 /* 0100 1100 0000 0110 address_dst *** tsetb address_dst */
 {
@@ -3526,7 +3679,7 @@ const opcode_entry_type z8k_table[] = {
 "tsetb address_dst",8,14,0x08,
 #endif
 "tsetb",OPC_tsetb,0,{CLASS_DA+(ARG_DST),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,185},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,201},
 
 /* 0100 1100 ddN0 0110 address_dst *** tsetb address_dst(rd) */
 {
@@ -3534,7 +3687,7 @@ const opcode_entry_type z8k_table[] = {
 "tsetb address_dst(rd)",8,15,0x08,
 #endif
 "tsetb",OPC_tsetb,0,{CLASS_X+(ARG_RD),},
-       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,185},
+       {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,201},
 
 /* 1000 1100 dddd 0110 *** tsetb rbd */
 {
@@ -3542,7 +3695,7 @@ const opcode_entry_type z8k_table[] = {
 "tsetb rbd",8,7,0x08,
 #endif
 "tsetb",OPC_tsetb,0,{CLASS_REG_BYTE+(ARG_RD),},
-       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,185},
+       {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,201},
 
 /* 0000 1001 ssN0 dddd *** xor rd,@rs */
 {
@@ -3550,7 +3703,7 @@ const opcode_entry_type z8k_table[] = {
 "xor rd,@rs",16,7,0x18,
 #endif
 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,186},
+       {CLASS_BIT+0,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,202},
 
 /* 0100 1001 0000 dddd address_src *** xor rd,address_src */
 {
@@ -3558,7 +3711,7 @@ const opcode_entry_type z8k_table[] = {
 "xor rd,address_src",16,9,0x18,
 #endif
 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,186},
+       {CLASS_BIT+4,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,202},
 
 /* 0100 1001 ssN0 dddd address_src *** xor rd,address_src(rs) */
 {
@@ -3566,7 +3719,7 @@ const opcode_entry_type z8k_table[] = {
 "xor rd,address_src(rs)",16,10,0x18,
 #endif
 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,186},
+       {CLASS_BIT+4,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,202},
 
 /* 0000 1001 0000 dddd imm16 *** xor rd,imm16 */
 {
@@ -3574,7 +3727,7 @@ const opcode_entry_type z8k_table[] = {
 "xor rd,imm16",16,7,0x18,
 #endif
 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
-       {CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,186},
+       {CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,202},
 
 /* 1000 1001 ssss dddd *** xor rd,rs */
 {
@@ -3582,7 +3735,7 @@ const opcode_entry_type z8k_table[] = {
 "xor rd,rs",16,4,0x18,
 #endif
 "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,186},
+       {CLASS_BIT+8,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,202},
 
 /* 0000 1000 ssN0 dddd *** xorb rbd,@rs */
 {
@@ -3590,7 +3743,7 @@ const opcode_entry_type z8k_table[] = {
 "xorb rbd,@rs",8,7,0x1c,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
-       {CLASS_BIT+0,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,187},
+       {CLASS_BIT+0,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,203},
 
 /* 0100 1000 0000 dddd address_src *** xorb rbd,address_src */
 {
@@ -3598,7 +3751,7 @@ const opcode_entry_type z8k_table[] = {
 "xorb rbd,address_src",8,9,0x1c,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
-       {CLASS_BIT+4,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,187},
+       {CLASS_BIT+4,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,203},
 
 /* 0100 1000 ssN0 dddd address_src *** xorb rbd,address_src(rs) */
 {
@@ -3606,7 +3759,7 @@ const opcode_entry_type z8k_table[] = {
 "xorb rbd,address_src(rs)",8,10,0x1c,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
-       {CLASS_BIT+4,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,187},
+       {CLASS_BIT+4,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,203},
 
 /* 0000 1000 0000 dddd imm8 imm8 *** xorb rbd,imm8 */
 {
@@ -3614,7 +3767,7 @@ const opcode_entry_type z8k_table[] = {
 "xorb rbd,imm8",8,7,0x1c,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
-       {CLASS_BIT+0,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,187},
+       {CLASS_BIT+0,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,203},
 
 /* 1000 1000 ssss dddd *** xorb rbd,rbs */
 {
@@ -3622,7 +3775,7 @@ const opcode_entry_type z8k_table[] = {
 "xorb rbd,rbs",8,4,0x1c,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,187},
+       {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,203},
 
 /* 1000 1000 ssss dddd *** xorb rbd,rbs */
 {
@@ -3630,7 +3783,7 @@ const opcode_entry_type z8k_table[] = {
 "xorb rbd,rbs",8,4,0x01,
 #endif
 "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
-       {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,187},
+       {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,203},
 
 /* end marker */
 {
index efce2cf5948524aa0371c043c932d6eb2a61ed8d..df7279142556c6d3962d42b4800af96fc45bf244 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright 2001, 2002 Free Software Foundation, Inc.
+/* Copyright 2001, 2002, 2003 Free Software Foundation, Inc.
 
    This file is part of GNU Binutils.
 
@@ -17,7 +17,7 @@
    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
    USA.  */
 
-/* This program generates z8k-opc.h.  */
+/* This program generates z8k-opc.h.  Compile with -fwritable-strings.  */
 
 #include <stdio.h>
 #include "sysdep.h"
@@ -38,6 +38,10 @@ struct op
 #define iswhite(x) ((x) == ' ' || (x) == '\t')
 struct op opt[] =
 {
+  {"------", 2,  8, "0011 0110 0000 0000", "bpt", 0},   /* Breakpoint used by the simulator.  */
+  {"------", 10, 8, "0000 1111 0000 1100", "brk", 0},   /* Breakpoint used by real hardware.
+                                                           (ext0f #0x0c).  */
+
   {"------", 10, 8, "0000 1110 imm8", "ext0e imm8", 0},
   {"------", 10, 8, "0000 1111 imm8", "ext0f imm8", 0},
   {"------", 10, 8, "1000 1110 imm8", "ext8e imm8", 0},
@@ -79,7 +83,6 @@ struct op opt[] =
   {"CZSV--", 11, 16, "1011 1011 ssN0 0110 0000 rrrr ddN0 cccc", "cpsir @rd,@rs,rr,cc", 0},
   {"CZSV--", 11, 8, "1011 1010 ssN0 0110 0000 rrrr ddN0 cccc", "cpsirb @rd,@rs,rr,cc", 0},
 
-  {"------", 2, 8, "0011 0110 0000 0000", "bpt", 0},
   {"CZSV--", 5, 16, "1011 0101 ssss dddd", "adc rd,rs", 0},
   {"CZSVDH", 5, 8, "1011 0100 ssss dddd", "adcb rbd,rbs", 0},
   {"CZSV--", 7, 16, "0000 0001 ssN0 dddd", "add rd,@rs", 0},
@@ -209,8 +212,8 @@ struct op opt[] =
   {"------", 11, 32, "1011 0001 dddd 0111", "extsl rqd", 0},
 
   {"------", 8, 16, "0111 1010 0000 0000", "halt", 0},
-  {"------", 10, 16, "0011 1101 ssN0 dddd", "in rd,@rs", 0},
-  {"------", 12, 8, "0011 1100 ssN0 dddd", "inb rbd,@rs", 0},
+  {"------", 10, 16, "0011 1101 ssss dddd", "in rd,@ri", 0},
+  {"------", 12, 8, "0011 1100 ssss dddd", "inb rbd,@ri", 0},
   {"------", 12, 16, "0011 1011 dddd 0100 imm16", "in rd,imm16", 0},
   {"------", 10, 8, "0011 1010 dddd 0100 imm16", "inb rbd,imm16", 0},
   {"-ZSV--", 11, 16, "0010 1001 ddN0 imm4m1", "inc @rd,imm4m1", 0},
@@ -221,10 +224,14 @@ struct op opt[] =
   {"-ZSV--", 14, 8, "0110 1000 ddN0 imm4m1 address_dst", "incb address_dst(rd),imm4m1", 0},
   {"-ZSV--", 13, 8, "0110 1000 0000 imm4m1 address_dst", "incb address_dst,imm4m1", 0},
   {"-ZSV--", 4, 8, "1010 1000 dddd imm4m1", "incb rbd,imm4m1", 0},
-  {"---V--", 21, 16, "0011 1011 ssN0 1000 0000 aaaa ddN0 1000", "ind @rd,@rs,ra", 0},
-  {"---V--", 21, 8, "0011 1010 ssN0 1000 0000 aaaa ddN0 1000", "indb @rd,@rs,rba", 0},
-  {"---V--", 21, 8, "0011 1010 ssN0 0000 0000 aaaa ddN0 1000", "inib @rd,@rs,ra", 0},
-  {"---V--", 21, 16, "0011 1010 ssN0 0000 0000 aaaa ddN0 0000", "inibr @rd,@rs,ra", 0},
+  {"---V--", 21, 16, "0011 1011 ssss 1000 0000 aaaa ddN0 1000", "ind @rd,@ri,ra", 0},
+  {"---V--", 21, 8, "0011 1010 ssss 1000 0000 aaaa ddN0 1000", "indb @rd,@ri,ra", 0},
+  {"---V--", 11, 16, "0011 1011 ssss 1000 0000 aaaa ddN0 0000", "indr @rd,@ri,ra", 0},
+  {"---V--", 11, 8, "0011 1010 ssss 1000 0000 aaaa ddN0 0000", "indrb @rd,@ri,ra", 0},
+  {"---V--", 21, 16, "0011 1011 ssss 0000 0000 aaaa ddN0 1000", "ini @rd,@ri,ra", 0},
+  {"---V--", 21, 8, "0011 1010 ssss 0000 0000 aaaa ddN0 1000", "inib @rd,@ri,ra", 0},
+  {"---V--", 11, 16, "0011 1011 ssss 0000 0000 aaaa ddN0 0000", "inir @rd,@ri,ra", 0},
+  {"---V--", 11, 8, "0011 1010 ssss 0000 0000 aaaa ddN0 0000", "inirb @rd,@ri,ra", 0},
   {"CZSVDH", 13, 16, "0111 1011 0000 0000", "iret", 0},
   {"------", 10, 16, "0001 1110 ddN0 cccc", "jp cc,@rd", 0},
   {"------", 7, 16, "0101 1110 0000 cccc address_dst", "jp cc,address_dst", 0},
@@ -258,6 +265,7 @@ struct op opt[] =
   {"------", 7, 8, "0010 0000 ssN0 dddd", "ldb rbd,@rs", 0},
   {"------", 9, 8, "0110 0000 0000 dddd address_src", "ldb rbd,address_src", 0},
   {"------", 10, 8, "0110 0000 ssN0 dddd address_src", "ldb rbd,address_src(rs)", 0},
+  {"------", 7, 8, "0010 0000 0000 dddd imm8 imm8", "ldb rbd,imm8", 0},
   {"------", 5, 8, "1100 dddd imm8", "ldb rbd,imm8", 0},
   {"------", 3, 8, "1010 0000 ssss dddd", "ldb rbd,rbs", 0},
   {"------", 14, 8, "0011 0000 ssN0 dddd imm16", "ldb rbd,rs(imm16)", 0},
@@ -342,15 +350,18 @@ struct op opt[] =
   {"CZSP--", 7, 8, "0000 0100 0000 dddd imm8 imm8", "orb rbd,imm8", 0},
   {"CZSP--", 4, 8, "1000 0100 ssss dddd", "orb rbd,rbs", 0},
 
-  {"---V--", 0, 16, "0011 1111 ddN0 ssss", "out @rd,rs", 0},
-  {"---V--", 0, 16, "0011 1011 ssss 0110 imm16", "out imm16,rs", 0},
-  {"---V--", 0, 8, "0011 1110 ddN0 ssss", "outb @rd,rbs", 0},
-  {"---V--", 0, 8, "0011 1010 ssss 0110 imm16", "outb imm16,rbs", 0},
-  {"---V--", 0, 16, "0011 1011 ssN0 1010 0000 aaaa ddN0 1000", "outd @rd,@rs,ra", 0},
-  {"---V--", 0, 16, "0011 1010 ssN0 1010 0000 aaaa ddN0 1000", "outdb @rd,@rs,rba", 0},
-  {"---V--", 0, 16, "0011 1011 ssN0 0010 0000 aaaa ddN0 1000", "outi @rd,@rs,ra", 0},
-  {"---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 1000", "outib @rd,@rs,ra", 0},
-  {"---V--", 0, 16, "0011 1010 ssN0 0010 0000 aaaa ddN0 0000", "outibr @rd,@rs,ra", 0},
+  {"------", 10, 16, "0011 1111 dddd ssss", "out @ro,rs", 0},
+  {"------", 12, 16, "0011 1011 ssss 0110 imm16", "out imm16,rs", 0},
+  {"------", 10, 8, "0011 1110 dddd ssss", "outb @ro,rbs", 0},
+  {"------", 12, 8, "0011 1010 ssss 0110 imm16", "outb imm16,rbs", 0},
+  {"---V--", 21, 16, "0011 1011 ssN0 1010 0000 aaaa dddd 1000", "outd @ro,@rs,ra", 0},
+  {"---V--", 21, 8, "0011 1010 ssN0 1010 0000 aaaa dddd 1000", "outdb @ro,@rs,ra", 0},
+  {"---V--", 11, 16, "0011 1011 ssN0 1010 0000 aaaa dddd 0000", "otdr @ro,@rs,ra", 0},
+  {"---V--", 11, 8, "0011 1010 ssN0 1010 0000 aaaa dddd 0000", "otdrb @ro,@rs,ra", 0},
+  {"---V--", 21, 16, "0011 1011 ssN0 0010 0000 aaaa dddd 1000", "outi @ro,@rs,ra", 0},
+  {"---V--", 21, 8, "0011 1010 ssN0 0010 0000 aaaa dddd 1000", "outib @ro,@rs,ra", 0},
+  {"---V--", 11, 16, "0011 1011 ssN0 0010 0000 aaaa dddd 0000", "otir @ro,@rs,ra", 0},
+  {"---V--", 11, 8, "0011 1010 ssN0 0010 0000 aaaa dddd 0000", "otirb @ro,@rs,ra", 0},
 
   {"------", 12, 16, "0001 0111 ssN0 ddN0", "pop @rd,@rs", 0},
   {"------", 16, 16, "0101 0111 ssN0 ddN0 address_dst", "pop address_dst(rd),@rs", 0},
@@ -427,12 +438,16 @@ struct op opt[] =
 
   {"CZSV--", 7, 16, "1000 1101 flags 0001", "setflg flags", 0},
 
-  {"------", 0, 8, "0011 1010 dddd 0101 imm16", "sinb rbd,imm16", 0},
-  {"------", 0, 8, "0011 1011 dddd 0101 imm16", "sin rd,imm16", 0},
-  {"------", 0, 16, "0011 1011 ssN0 1000 0001 aaaa ddN0 1000", "sind @rd,@rs,ra", 0},
-  {"------", 0, 8, "0011 1010 ssN0 1000 0001 aaaa ddN0 1000", "sindb @rd,@rs,rba", 0},
-  {"------", 0, 8, "0011 1010 ssN0 0001 0000 aaaa ddN0 1000", "sinib @rd,@rs,ra", 0},
-  {"------", 0, 16, "0011 1010 ssN0 0001 0000 aaaa ddN0 0000", "sinibr @rd,@rs,ra", 0},
+  {"------", 12, 16, "0011 1011 dddd 0101 imm16", "sin rd,imm16", 0},
+  {"------", 10, 8, "0011 1010 dddd 0101 imm16", "sinb rbd,imm16", 0},
+  {"---V--", 21, 16, "0011 1011 ssss 1001 0000 aaaa ddN0 1000", "sind @rd,@ri,ra", 0},
+  {"---V--", 21, 8, "0011 1010 ssss 1001 0000 aaaa ddN0 1000", "sindb @rd,@ri,ra", 0},
+  {"---V--", 11, 16, "0011 1011 ssss 1001 0000 aaaa ddN0 0000", "sindr @rd,@ri,ra", 0},
+  {"---V--", 11, 8, "0011 1010 ssss 1001 0000 aaaa ddN0 0000", "sindrb @rd,@ri,ra", 0},
+  {"---V--", 21, 16, "0011 1011 ssss 0001 0000 aaaa ddN0 1000", "sini @rd,@ri,ra", 0},
+  {"---V--", 21, 8, "0011 1010 ssss 0001 0000 aaaa ddN0 1000", "sinib @rd,@ri,ra", 0},
+  {"---V--", 11, 16, "0011 1011 ssss 0001 0000 aaaa ddN0 0000", "sinir @rd,@ri,ra", 0},
+  {"---V--", 11, 8, "0011 1010 ssss 0001 0000 aaaa ddN0 0000", "sinirb @rd,@ri,ra", 0},
 
   {"CZSV--", 13, 16, "1011 0011 dddd 1001 0000 0000 imm8", "sla rd,imm8", 0},
   {"CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 0000 imm4", "slab rbd,imm4", 0},
@@ -442,12 +457,16 @@ struct op opt[] =
   {"CZS---", 13, 8, "1011 0010 dddd 0001 iiii iiii 0000 imm4", "sllb rbd,imm4", 0},
   {"CZS---", 13, 32, "1011 0011 dddd 0101 0000 0000 imm8", "slll rrd,imm8", 0},
 
-  {"------", 0, 16, "0011 1011 ssss 0111 imm16", "sout imm16,rs", 0},
-  {"------", 0, 8, "0011 1010 ssss 0111 imm16", "soutb imm16,rbs", 0},
-  {"------", 0, 16, "0011 1011 ssN0 1011 0000 aaaa ddN0 1000", "soutd @rd,@rs,ra", 0},
-  {"------", 0, 8, "0011 1010 ssN0 1011 0000 aaaa ddN0 1000", "soutdb @rd,@rs,rba", 0},
-  {"------", 0, 8, "0011 1010 ssN0 0011 0000 aaaa ddN0 1000", "soutib @rd,@rs,ra", 0},
-  {"------", 0, 16, "0011 1010 ssN0 0011 0000 aaaa ddN0 0000", "soutibr @rd,@rs,ra", 0},
+  {"------", 12, 16, "0011 1011 ssss 0110 imm16", "sout imm16,rs", 0},
+  {"------", 12, 8, "0011 1010 ssss 0110 imm16", "soutb imm16,rbs", 0},
+  {"---V--", 21, 16, "0011 1011 ssN0 1011 0000 aaaa dddd 1000", "soutd @ro,@rs,ra", 0},
+  {"---V--", 21, 8, "0011 1010 ssN0 1011 0000 aaaa dddd 1000", "soutdb @ro,@rs,ra", 0},
+  {"---V--", 11, 16, "0011 1011 ssN0 1011 0000 aaaa dddd 0000", "sotdr @ro,@rs,ra", 0},
+  {"---V--", 11, 8, "0011 1010 ssN0 1011 0000 aaaa dddd 0000", "sotdrb @ro,@rs,ra", 0},
+  {"---V--", 21, 16, "0011 1011 ssN0 0011 0000 aaaa dddd 1000", "souti @ro,@rs,ra", 0},
+  {"---V--", 21, 8, "0011 1010 ssN0 0011 0000 aaaa dddd 1000", "soutib @ro,@rs,ra", 0},
+  {"---V--", 11, 16, "0011 1011 ssN0 0011 0000 aaaa dddd 0000", "sotir @ro,@rs,ra", 0},
+  {"---V--", 11, 8, "0011 1010 ssN0 0011 0000 aaaa dddd 0000", "sotirb @ro,@rs,ra", 0},
 
   {"CZSV--", 13, 16, "1011 0011 dddd 1001 1111 1111 nim8", "sra rd,imm8", 0},
   {"CZSV--", 13, 8, "1011 0010 dddd 1001 iiii iiii 1111 nim4", "srab rbd,imm4", 0},
@@ -532,7 +551,7 @@ struct op opt[] =
   {"*", 0, 0, 0, 0, 0}
 };
 
-int
+static int
 count ()
 {
   struct op *p = opt;
@@ -547,8 +566,7 @@ count ()
 
 }
 
-static
-int
+static int
 func (a, b)
      struct op *a;
      struct op *b;
@@ -565,7 +583,6 @@ func (a, b)
 
 struct tok_struct
 {
-
   char *match;
   char *token;
   int length;
@@ -573,7 +590,6 @@ struct tok_struct
 
 struct tok_struct args[] =
 {
-
   {"address_src(rs)", "CLASS_X+(ARG_RS)",},
   {"address_dst(rd)", "CLASS_X+(ARG_RD)",},
 
@@ -616,6 +632,8 @@ struct tok_struct args[] =
   {"@ra", "CLASS_IR+(ARG_RA)",},
   {"@rb", "CLASS_IR+(ARG_RB)",},
   {"@rs", "CLASS_IR+(ARG_RS)",},
+  {"@ri", "CLASS_IRO+(ARG_RS)",},
+  {"@ro", "CLASS_IRO+(ARG_RD)",},
 
   {"imm8", "CLASS_IMM+(ARG_IMM8)",},
   {"i2", "CLASS_IMM+(ARG_IMM2)",},
@@ -741,7 +759,7 @@ translate (table, x, length)
   return x;
 }
 
-void
+static void
 chewbits (bits, length)
      char *bits;
      int *length;
@@ -769,9 +787,7 @@ chewbits (bits, length)
   printf ("}");
 }
 
-
-static
-int
+static int
 chewname (name)
      char **name;
 {
@@ -813,8 +829,7 @@ chewname (name)
   return nargs;
 }
 
-static
-void
+static void
 sub (x, c)
      char *x;
      char c;
@@ -835,6 +850,7 @@ sub (x, c)
 #if 0
 #define D(x) ((x) == '1' || (x) =='0')
 #define M(y) (strncmp(y,x,4)==0)
+static void
 printmangled (x)
      char *x;
 {
@@ -866,10 +882,10 @@ printmangled (x)
     }
 
 }
-
 #endif
+
 /*#define WORK_TYPE*/
-void
+static void
 print_type (n)
      struct op *n;
 {
@@ -896,8 +912,7 @@ print_type (n)
 #endif
 }
 
-
-void
+static void
 internal ()
 {
   int c = count ();
@@ -905,15 +920,13 @@ internal ()
   struct op *p = opt;
   memcpy (new, p, c * sizeof (struct op));
 
-  /* sort all names in table alphabetically */
+  /* Sort all names in table alphabetically.  */
   qsort (new, c, sizeof (struct op), func);
 
   p = new;
-  while (p->flags[0] != '*')
+  while (p->flags && p->flags[0] != '*')
   {
-    /* If there are any @rs, sub the ssss into a ssn0,
-       (rs), (ssn0)
-       */
+    /* If there are any @rs, sub the ssss into a ssn0, (rs), (ssn0).  */
     int loop = 1;
 
     printf ("\"%s\",%2d, ", p->flags, p->cycles);
@@ -928,7 +941,7 @@ internal ()
        {
          char c;
 
-         /* skip the r and sub the string */
+         /* Skip the r and sub the string.  */
          s++;
          c = s[1];
          sub (p->bits, c);
@@ -952,8 +965,7 @@ internal ()
   }
 }
 
-static
-void
+static void
 gas ()
 {
   int c = count ();
@@ -964,7 +976,7 @@ gas ()
 
   memcpy (new, p, c * sizeof (struct op));
 
-  /* sort all names in table alphabetically */
+  /* Sort all names in table alphabetically.  */
   qsort (new, c, sizeof (struct op), func);
 
   printf ("/* DO NOT EDIT!  -*- buffer-read-only: t -*-\n");
@@ -981,6 +993,7 @@ gas ()
   printf ("#define ARG_RB 0x04\n");
   printf ("#define ARG_RR 0x05\n");
   printf ("#define ARG_RX 0x06\n");
+
   printf ("#define ARG_IMM4 0x01\n");
   printf ("#define ARG_IMM8 0x02\n");
   printf ("#define ARG_IMM16 0x03\n");
@@ -998,7 +1011,7 @@ gas ()
   printf ("#define ARG_NIM4 0x0c\n");
   printf ("#define ARG_DISP8 0x0c\n");
   printf ("#define ARG_IMM4M1 0x0d\n");
-  printf ("#define CLASS_MASK 0x1fff0\n");
+
   printf ("#define CLASS_X 0x10\n");
   printf ("#define CLASS_BA 0x20\n");
   printf ("#define CLASS_DA 0x30\n");
@@ -1018,9 +1031,10 @@ gas ()
   printf ("#define CLASS_BIT 0x500\n");
   printf ("#define CLASS_FLAGS 0x600\n");
   printf ("#define CLASS_IR 0x700\n");
-  printf ("#define CLASS_DISP8 0x800\n");
+  printf ("#define CLASS_IRO       0x800\n");
+  printf ("#define CLASS_DISP8     0x900\n");
 
-  printf ("#define CLASS_BIT_1OR2 0x900\n");
+  printf ("#define CLASS_BIT_1OR2  0xa00\n");
   printf ("#define CLASS_REG 0x7000\n");
   printf ("#define CLASS_REG_BYTE 0x2000\n");
   printf ("#define CLASS_REG_WORD 0x3000\n");
@@ -1028,6 +1042,7 @@ gas ()
   printf ("#define CLASS_REG_LONG 0x5000\n");
   printf ("#define CLASS_REGN0 0x8000\n");
   printf ("#define CLASS_PR 0x10000\n");
+  printf ("#define CLASS_MASK     0x1fff0\n");
 
   printf ("#define OPC_adc 0\n");
   printf ("#define OPC_adcb 1\n");
@@ -1085,139 +1100,155 @@ gas ()
   printf ("#define OPC_incb 53\n");
   printf ("#define OPC_ind 54\n");
   printf ("#define OPC_indb 55\n");
-  printf ("#define OPC_inib 56\n");
-  printf ("#define OPC_inibr 57\n");
-  printf ("#define OPC_iret 58\n");
-  printf ("#define OPC_jp 59\n");
-  printf ("#define OPC_jr 60\n");
-  printf ("#define OPC_ld 61\n");
-  printf ("#define OPC_lda 62\n");
-  printf ("#define OPC_ldar 63\n");
-  printf ("#define OPC_ldb 64\n");
-  printf ("#define OPC_ldctl 65\n");
-  printf ("#define OPC_ldir 66\n");
-  printf ("#define OPC_ldirb 67\n");
-  printf ("#define OPC_ldk 68\n");
-  printf ("#define OPC_ldl 69\n");
-  printf ("#define OPC_ldm 70\n");
-  printf ("#define OPC_ldps 71\n");
-  printf ("#define OPC_ldr 72\n");
-  printf ("#define OPC_ldrb 73\n");
-  printf ("#define OPC_ldrl 74\n");
-  printf ("#define OPC_mbit 75\n");
-  printf ("#define OPC_mreq 76\n");
-  printf ("#define OPC_mres 77\n");
-  printf ("#define OPC_mset 78\n");
-  printf ("#define OPC_mult 79\n");
-  printf ("#define OPC_multl 80\n");
-  printf ("#define OPC_neg 81\n");
-  printf ("#define OPC_negb 82\n");
-  printf ("#define OPC_nop 83\n");
-  printf ("#define OPC_or 84\n");
-  printf ("#define OPC_orb 85\n");
-  printf ("#define OPC_out 86\n");
-  printf ("#define OPC_outb 87\n");
-  printf ("#define OPC_outd 88\n");
-  printf ("#define OPC_outdb 89\n");
-  printf ("#define OPC_outib 90\n");
-  printf ("#define OPC_outibr 91\n");
-  printf ("#define OPC_pop 92\n");
-  printf ("#define OPC_popl 93\n");
-  printf ("#define OPC_push 94\n");
-  printf ("#define OPC_pushl 95\n");
-  printf ("#define OPC_res 96\n");
-  printf ("#define OPC_resb 97\n");
-  printf ("#define OPC_resflg 98\n");
-  printf ("#define OPC_ret 99\n");
-  printf ("#define OPC_rl 100\n");
-  printf ("#define OPC_rlb 101\n");
-  printf ("#define OPC_rlc 102\n");
-  printf ("#define OPC_rlcb 103\n");
-  printf ("#define OPC_rldb 104\n");
-  printf ("#define OPC_rr 105\n");
-  printf ("#define OPC_rrb 106\n");
-  printf ("#define OPC_rrc 107\n");
-  printf ("#define OPC_rrcb 108\n");
-  printf ("#define OPC_rrdb 109\n");
-  printf ("#define OPC_sbc 110\n");
-  printf ("#define OPC_sbcb 111\n");
-  printf ("#define OPC_sda 112\n");
-  printf ("#define OPC_sdab 113\n");
-  printf ("#define OPC_sdal 114\n");
-  printf ("#define OPC_sdl 115\n");
-  printf ("#define OPC_sdlb 116\n");
-  printf ("#define OPC_sdll 117\n");
-  printf ("#define OPC_set 118\n");
-  printf ("#define OPC_setb 119\n");
-  printf ("#define OPC_setflg 120\n");
-  printf ("#define OPC_sinb 121\n");
-  printf ("#define OPC_sind 122\n");
-  printf ("#define OPC_sindb 123\n");
-  printf ("#define OPC_sinib 124\n");
-  printf ("#define OPC_sinibr 125\n");
-  printf ("#define OPC_sla 126\n");
-  printf ("#define OPC_slab 127\n");
-  printf ("#define OPC_slal 128\n");
-  printf ("#define OPC_sll 129\n");
-  printf ("#define OPC_sllb 130\n");
-  printf ("#define OPC_slll 131\n");
-  printf ("#define OPC_sout 132\n");
-  printf ("#define OPC_soutb 133\n");
-  printf ("#define OPC_soutd 134\n");
-  printf ("#define OPC_soutdb 135\n");
-  printf ("#define OPC_soutib 136\n");
-  printf ("#define OPC_soutibr 137\n");
-  printf ("#define OPC_sra 138\n");
-  printf ("#define OPC_srab 139\n");
-  printf ("#define OPC_sral 140\n");
-  printf ("#define OPC_srl 141\n");
-  printf ("#define OPC_srlb 142\n");
-  printf ("#define OPC_srll 143\n");
-  printf ("#define OPC_sub 144\n");
-  printf ("#define OPC_subb 145\n");
-  printf ("#define OPC_subl 146\n");
-  printf ("#define OPC_tcc 147\n");
-  printf ("#define OPC_tccb 148\n");
-  printf ("#define OPC_test 149\n");
-  printf ("#define OPC_testb 150\n");
-  printf ("#define OPC_testl 151\n");
-  printf ("#define OPC_trdb 152\n");
-  printf ("#define OPC_trdrb 153\n");
-  printf ("#define OPC_trib 154\n");
-  printf ("#define OPC_trirb 155\n");
-  printf ("#define OPC_trtdrb 156\n");
-  printf ("#define OPC_trtib 157\n");
-  printf ("#define OPC_trtirb 158\n");
-  printf ("#define OPC_trtrb 159\n");
-  printf ("#define OPC_tset 160\n");
-  printf ("#define OPC_tsetb 161\n");
-  printf ("#define OPC_xor 162\n");
-  printf ("#define OPC_xorb 163\n");
-
-  printf ("#define OPC_ldd  164 \n");
-  printf ("#define OPC_lddb  165 \n");
-  printf ("#define OPC_lddr  166 \n");
-  printf ("#define OPC_lddrb 167  \n");
-  printf ("#define OPC_ldi  168 \n");
-  printf ("#define OPC_ldib 169  \n");
-  printf ("#define OPC_sc   170\n");
-  printf ("#define OPC_bpt   171\n");
-  printf ("#define OPC_ext0e 172\n");
-  printf ("#define OPC_ext0f 172\n");
-  printf ("#define OPC_ext8e 172\n");
-  printf ("#define OPC_ext8f 172\n");
-  printf ("#define OPC_rsvd36 172\n");
-  printf ("#define OPC_rsvd38 172\n");
-  printf ("#define OPC_rsvd78 172\n");
-  printf ("#define OPC_rsvd7e 172\n");
-  printf ("#define OPC_rsvd9d 172\n");
-  printf ("#define OPC_rsvd9f 172\n");
-  printf ("#define OPC_rsvdb9 172\n");
-  printf ("#define OPC_rsvdbf 172\n");
-  printf ("#define OPC_outi 173\n");
-  printf ("#define OPC_ldctlb 174\n");
-  printf ("#define OPC_sin 175\n");
-  printf ("#define OPC_trtdb 176\n");
+  printf ("#define OPC_indr    56\n");
+  printf ("#define OPC_indrb   57\n");
+  printf ("#define OPC_ini     58\n");
+  printf ("#define OPC_inib    59\n");
+  printf ("#define OPC_inir    60\n");
+  printf ("#define OPC_inirb   61\n");
+  printf ("#define OPC_iret    62\n");
+  printf ("#define OPC_jp      63\n");
+  printf ("#define OPC_jr      64\n");
+  printf ("#define OPC_ld      65\n");
+  printf ("#define OPC_lda     66\n");
+  printf ("#define OPC_ldar    67\n");
+  printf ("#define OPC_ldb     68\n");
+  printf ("#define OPC_ldctl   69\n");
+  printf ("#define OPC_ldir    70\n");
+  printf ("#define OPC_ldirb   71\n");
+  printf ("#define OPC_ldk     72\n");
+  printf ("#define OPC_ldl     73\n");
+  printf ("#define OPC_ldm     74\n");
+  printf ("#define OPC_ldps    75\n");
+  printf ("#define OPC_ldr     76\n");
+  printf ("#define OPC_ldrb    77\n");
+  printf ("#define OPC_ldrl    78\n");
+  printf ("#define OPC_mbit    79\n");
+  printf ("#define OPC_mreq    80\n");
+  printf ("#define OPC_mres    81\n");
+  printf ("#define OPC_mset    82\n");
+  printf ("#define OPC_mult    83\n");
+  printf ("#define OPC_multl   84\n");
+  printf ("#define OPC_neg     85\n");
+  printf ("#define OPC_negb    86\n");
+  printf ("#define OPC_nop     87\n");
+  printf ("#define OPC_or      88\n");
+  printf ("#define OPC_orb     89\n");
+  printf ("#define OPC_otdr    90\n");
+  printf ("#define OPC_otdrb   91\n");
+  printf ("#define OPC_otir    92\n");
+  printf ("#define OPC_otirb   93\n");
+  printf ("#define OPC_out     94\n");
+  printf ("#define OPC_outb    95\n");
+  printf ("#define OPC_outd    96\n");
+  printf ("#define OPC_outdb   97\n");
+  printf ("#define OPC_outi    98\n");
+  printf ("#define OPC_outib   99\n");
+  printf ("#define OPC_pop    100\n");
+  printf ("#define OPC_popl   101\n");
+  printf ("#define OPC_push   102\n");
+  printf ("#define OPC_pushl  103\n");
+  printf ("#define OPC_res    104\n");
+  printf ("#define OPC_resb   105\n");
+  printf ("#define OPC_resflg 106\n");
+  printf ("#define OPC_ret    107\n");
+  printf ("#define OPC_rl     108\n");
+  printf ("#define OPC_rlb    109\n");
+  printf ("#define OPC_rlc    110\n");
+  printf ("#define OPC_rlcb   111\n");
+  printf ("#define OPC_rldb   112\n");
+  printf ("#define OPC_rr     113\n");
+  printf ("#define OPC_rrb    114\n");
+  printf ("#define OPC_rrc    115\n");
+  printf ("#define OPC_rrcb   116\n");
+  printf ("#define OPC_rrdb   117\n");
+  printf ("#define OPC_sbc    118\n");
+  printf ("#define OPC_sbcb   119\n");
+  printf ("#define OPC_sda    120\n");
+  printf ("#define OPC_sdab   121\n");
+  printf ("#define OPC_sdal   122\n");
+  printf ("#define OPC_sdl    123\n");
+  printf ("#define OPC_sdlb   124\n");
+  printf ("#define OPC_sdll   125\n");
+  printf ("#define OPC_set    126\n");
+  printf ("#define OPC_setb   127\n");
+  printf ("#define OPC_setflg 128\n");
+  printf ("#define OPC_sin    129\n");
+  printf ("#define OPC_sinb   130\n");
+  printf ("#define OPC_sind   131\n");
+  printf ("#define OPC_sindb  132\n");
+  printf ("#define OPC_sindr  133\n");
+  printf ("#define OPC_sindrb 134\n");
+  printf ("#define OPC_sini   135\n");
+  printf ("#define OPC_sinib  136\n");
+  printf ("#define OPC_sinir  137\n");
+  printf ("#define OPC_sinirb 138\n");
+  printf ("#define OPC_sla    139\n");
+  printf ("#define OPC_slab   140\n");
+  printf ("#define OPC_slal   141\n");
+  printf ("#define OPC_sll    142\n");
+  printf ("#define OPC_sllb   143\n");
+  printf ("#define OPC_slll   144\n");
+  printf ("#define OPC_sotdr  145\n");
+  printf ("#define OPC_sotdrb 146\n");
+  printf ("#define OPC_sotir  147\n");
+  printf ("#define OPC_sotirb 148\n");
+  printf ("#define OPC_sout   149\n");
+  printf ("#define OPC_soutb  150\n");
+  printf ("#define OPC_soutd  151\n");
+  printf ("#define OPC_soutdb 152\n");
+  printf ("#define OPC_souti  153\n");
+  printf ("#define OPC_soutib 154\n");
+  printf ("#define OPC_sra    155\n");
+  printf ("#define OPC_srab   156\n");
+  printf ("#define OPC_sral   157\n");
+  printf ("#define OPC_srl    158\n");
+  printf ("#define OPC_srlb   159\n");
+  printf ("#define OPC_srll   160\n");
+  printf ("#define OPC_sub    161\n");
+  printf ("#define OPC_subb   162\n");
+  printf ("#define OPC_subl   163\n");
+  printf ("#define OPC_tcc    164\n");
+  printf ("#define OPC_tccb   165\n");
+  printf ("#define OPC_test   166\n");
+  printf ("#define OPC_testb  167\n");
+  printf ("#define OPC_testl  168\n");
+  printf ("#define OPC_trdb   169\n");
+  printf ("#define OPC_trdrb  170\n");
+  printf ("#define OPC_trib   171\n");
+  printf ("#define OPC_trirb  172\n");
+  printf ("#define OPC_trtdrb 173\n");
+  printf ("#define OPC_trtib  174\n");
+  printf ("#define OPC_trtirb 175\n");
+  printf ("#define OPC_trtrb  176\n");
+  printf ("#define OPC_tset   177\n");
+  printf ("#define OPC_tsetb  178\n");
+  printf ("#define OPC_xor    179\n");
+  printf ("#define OPC_xorb   180\n");
+
+  printf ("#define OPC_ldd    181\n");
+  printf ("#define OPC_lddb   182\n");
+  printf ("#define OPC_lddr   183\n");
+  printf ("#define OPC_lddrb  184\n");
+  printf ("#define OPC_ldi    185\n");
+  printf ("#define OPC_ldib   186\n");
+  printf ("#define OPC_sc     187\n");
+  printf ("#define OPC_bpt    188\n");
+  printf ("#define OPC_ext0e  188\n");
+  printf ("#define OPC_ext0f  188\n");
+  printf ("#define OPC_ext8e  188\n");
+  printf ("#define OPC_ext8f  188\n");
+  printf ("#define OPC_rsvd36 188\n");
+  printf ("#define OPC_rsvd38 188\n");
+  printf ("#define OPC_rsvd78 188\n");
+  printf ("#define OPC_rsvd7e 188\n");
+  printf ("#define OPC_rsvd9d 188\n");
+  printf ("#define OPC_rsvd9f 188\n");
+  printf ("#define OPC_rsvdb9 188\n");
+  printf ("#define OPC_rsvdbf 188\n");
+  printf ("#define OPC_ldctlb 189\n");
+  printf ("#define OPC_trtdb  190\n");
+  printf ("#define OPC_brk    191\n");
 #if 0
   for (i = 0; toks[i].token; i++)
     printf ("#define %s\t0x%x\n", toks[i].token, i * 16);
@@ -1290,7 +1321,6 @@ gas ()
   printf ("#endif\n");
 }
 
-
 int
 main (ac, av)
      int ac;
@@ -1315,16 +1345,11 @@ main (ac, av)
     {
       gas ();
     }
-  else if (ac == 2 && strcmp (av[1], "-d") == 0)
-    {
-      /*dis();*/
-    }
   else
     {
       printf ("Usage: %s -t\n", av[0]);
-      printf ("-t : generate new z8.c internal table\n");
+      printf ("-t : generate new internal table\n");
       printf ("-a : generate new table for gas\n");
-      printf ("-d : generate new table for disassemble\n");
       printf ("-h : generate new table for humans\n");
     }
   return 0;