z8k-opc.h revision 1.1.1.9 1 1.1 christos /* DO NOT EDIT! -*- buffer-read-only: t -*-
2 1.1 christos This file is automatically generated by z8kgen. */
3 1.1 christos
4 1.1.1.9 christos /* Copyright (C) 2007-2024 Free Software Foundation, Inc.
5 1.1 christos
6 1.1 christos This file is part of the GNU opcodes library.
7 1.1 christos
8 1.1 christos This library is free software; you can redistribute it and/or modify
9 1.1 christos it under the terms of the GNU General Public License as published by
10 1.1 christos the Free Software Foundation; either version 3, or (at your option)
11 1.1 christos any later version.
12 1.1 christos
13 1.1 christos It is distributed in the hope that it will be useful, but WITHOUT
14 1.1 christos ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 1.1 christos or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
16 1.1 christos License for more details.
17 1.1 christos
18 1.1 christos You should have received a copy of the GNU General Public License
19 1.1 christos along with this file; see the file COPYING. If not, write to the
20 1.1 christos Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
21 1.1 christos MA 02110-1301, USA. */
22 1.1 christos
23 1.1 christos #define ARG_MASK 0x0f
24 1.1 christos #define ARG_SRC 0x01
25 1.1 christos #define ARG_DST 0x02
26 1.1 christos #define ARG_RS 0x01
27 1.1 christos #define ARG_RD 0x02
28 1.1 christos #define ARG_RA 0x03
29 1.1 christos #define ARG_RB 0x04
30 1.1 christos #define ARG_RR 0x05
31 1.1 christos #define ARG_RX 0x06
32 1.1 christos #define ARG_IMM4 0x01
33 1.1 christos #define ARG_IMM8 0x02
34 1.1 christos #define ARG_IMM16 0x03
35 1.1 christos #define ARG_IMM32 0x04
36 1.1 christos #define ARG_IMMN 0x05
37 1.1 christos #define ARG_IMMNMINUS1 0x05
38 1.1 christos #define ARG_IMM_1 0x06
39 1.1 christos #define ARG_IMM_2 0x07
40 1.1 christos #define ARG_DISP16 0x08
41 1.1 christos #define ARG_NIM8 0x09
42 1.1 christos #define ARG_IMM2 0x0a
43 1.1 christos #define ARG_IMM1OR2 0x0b
44 1.1 christos #define ARG_DISP12 0x0b
45 1.1 christos #define ARG_NIM4 0x0c
46 1.1 christos #define ARG_DISP8 0x0c
47 1.1 christos #define ARG_IMM4M1 0x0d
48 1.1 christos #define CLASS_X 0x10
49 1.1 christos #define CLASS_BA 0x20
50 1.1 christos #define CLASS_DA 0x30
51 1.1 christos #define CLASS_BX 0x40
52 1.1 christos #define CLASS_DISP 0x50
53 1.1 christos #define CLASS_IMM 0x60
54 1.1 christos #define CLASS_CC 0x70
55 1.1 christos #define CLASS_CTRL 0x80
56 1.1 christos #define CLASS_IGNORE 0x90
57 1.1 christos #define CLASS_ADDRESS 0xd0
58 1.1 christos #define CLASS_0CCC 0xe0
59 1.1 christos #define CLASS_1CCC 0xf0
60 1.1 christos #define CLASS_0DISP7 0x100
61 1.1 christos #define CLASS_1DISP7 0x200
62 1.1 christos #define CLASS_01II 0x300
63 1.1 christos #define CLASS_00II 0x400
64 1.1 christos #define CLASS_BIT 0x500
65 1.1 christos #define CLASS_FLAGS 0x600
66 1.1 christos #define CLASS_IR 0x700
67 1.1 christos #define CLASS_IRO 0x800
68 1.1 christos #define CLASS_DISP8 0x900
69 1.1 christos #define CLASS_BIT_1OR2 0xa00
70 1.1 christos #define CLASS_REG 0x7000
71 1.1 christos #define CLASS_REG_BYTE 0x2000
72 1.1 christos #define CLASS_REG_WORD 0x3000
73 1.1 christos #define CLASS_REG_QUAD 0x4000
74 1.1 christos #define CLASS_REG_LONG 0x5000
75 1.1 christos #define CLASS_REGN0 0x8000
76 1.1 christos #define CLASS_PR 0x10000
77 1.1 christos #define CLASS_MASK 0x1fff0
78 1.1 christos #define OPC_adc 0
79 1.1 christos #define OPC_adcb 1
80 1.1 christos #define OPC_add 2
81 1.1 christos #define OPC_addb 3
82 1.1 christos #define OPC_addl 4
83 1.1 christos #define OPC_and 5
84 1.1 christos #define OPC_andb 6
85 1.1 christos #define OPC_bit 7
86 1.1 christos #define OPC_bitb 8
87 1.1 christos #define OPC_call 9
88 1.1 christos #define OPC_calr 10
89 1.1 christos #define OPC_clr 11
90 1.1 christos #define OPC_clrb 12
91 1.1 christos #define OPC_com 13
92 1.1 christos #define OPC_comb 14
93 1.1 christos #define OPC_comflg 15
94 1.1 christos #define OPC_cp 16
95 1.1 christos #define OPC_cpb 17
96 1.1 christos #define OPC_cpd 18
97 1.1 christos #define OPC_cpdb 19
98 1.1 christos #define OPC_cpdr 20
99 1.1 christos #define OPC_cpdrb 21
100 1.1 christos #define OPC_cpi 22
101 1.1 christos #define OPC_cpib 23
102 1.1 christos #define OPC_cpir 24
103 1.1 christos #define OPC_cpirb 25
104 1.1 christos #define OPC_cpl 26
105 1.1 christos #define OPC_cpsd 27
106 1.1 christos #define OPC_cpsdb 28
107 1.1 christos #define OPC_cpsdr 29
108 1.1 christos #define OPC_cpsdrb 30
109 1.1 christos #define OPC_cpsi 31
110 1.1 christos #define OPC_cpsib 32
111 1.1 christos #define OPC_cpsir 33
112 1.1 christos #define OPC_cpsirb 34
113 1.1 christos #define OPC_dab 35
114 1.1 christos #define OPC_dbjnz 36
115 1.1 christos #define OPC_dec 37
116 1.1 christos #define OPC_decb 38
117 1.1 christos #define OPC_di 39
118 1.1 christos #define OPC_div 40
119 1.1 christos #define OPC_divl 41
120 1.1 christos #define OPC_djnz 42
121 1.1 christos #define OPC_ei 43
122 1.1 christos #define OPC_ex 44
123 1.1 christos #define OPC_exb 45
124 1.1 christos #define OPC_exts 46
125 1.1 christos #define OPC_extsb 47
126 1.1 christos #define OPC_extsl 48
127 1.1 christos #define OPC_halt 49
128 1.1 christos #define OPC_in 50
129 1.1 christos #define OPC_inb 51
130 1.1 christos #define OPC_inc 52
131 1.1 christos #define OPC_incb 53
132 1.1 christos #define OPC_ind 54
133 1.1 christos #define OPC_indb 55
134 1.1 christos #define OPC_indr 56
135 1.1 christos #define OPC_indrb 57
136 1.1 christos #define OPC_ini 58
137 1.1 christos #define OPC_inib 59
138 1.1 christos #define OPC_inir 60
139 1.1 christos #define OPC_inirb 61
140 1.1 christos #define OPC_iret 62
141 1.1 christos #define OPC_jp 63
142 1.1 christos #define OPC_jr 64
143 1.1 christos #define OPC_ld 65
144 1.1 christos #define OPC_lda 66
145 1.1 christos #define OPC_ldar 67
146 1.1 christos #define OPC_ldb 68
147 1.1 christos #define OPC_ldctl 69
148 1.1 christos #define OPC_ldir 70
149 1.1 christos #define OPC_ldirb 71
150 1.1 christos #define OPC_ldk 72
151 1.1 christos #define OPC_ldl 73
152 1.1 christos #define OPC_ldm 74
153 1.1 christos #define OPC_ldps 75
154 1.1 christos #define OPC_ldr 76
155 1.1 christos #define OPC_ldrb 77
156 1.1 christos #define OPC_ldrl 78
157 1.1 christos #define OPC_mbit 79
158 1.1 christos #define OPC_mreq 80
159 1.1 christos #define OPC_mres 81
160 1.1 christos #define OPC_mset 82
161 1.1 christos #define OPC_mult 83
162 1.1 christos #define OPC_multl 84
163 1.1 christos #define OPC_neg 85
164 1.1 christos #define OPC_negb 86
165 1.1 christos #define OPC_nop 87
166 1.1 christos #define OPC_or 88
167 1.1 christos #define OPC_orb 89
168 1.1 christos #define OPC_otdr 90
169 1.1 christos #define OPC_otdrb 91
170 1.1 christos #define OPC_otir 92
171 1.1 christos #define OPC_otirb 93
172 1.1 christos #define OPC_out 94
173 1.1 christos #define OPC_outb 95
174 1.1 christos #define OPC_outd 96
175 1.1 christos #define OPC_outdb 97
176 1.1 christos #define OPC_outi 98
177 1.1 christos #define OPC_outib 99
178 1.1 christos #define OPC_pop 100
179 1.1 christos #define OPC_popl 101
180 1.1 christos #define OPC_push 102
181 1.1 christos #define OPC_pushl 103
182 1.1 christos #define OPC_res 104
183 1.1 christos #define OPC_resb 105
184 1.1 christos #define OPC_resflg 106
185 1.1 christos #define OPC_ret 107
186 1.1 christos #define OPC_rl 108
187 1.1 christos #define OPC_rlb 109
188 1.1 christos #define OPC_rlc 110
189 1.1 christos #define OPC_rlcb 111
190 1.1 christos #define OPC_rldb 112
191 1.1 christos #define OPC_rr 113
192 1.1 christos #define OPC_rrb 114
193 1.1 christos #define OPC_rrc 115
194 1.1 christos #define OPC_rrcb 116
195 1.1 christos #define OPC_rrdb 117
196 1.1 christos #define OPC_sbc 118
197 1.1 christos #define OPC_sbcb 119
198 1.1 christos #define OPC_sda 120
199 1.1 christos #define OPC_sdab 121
200 1.1 christos #define OPC_sdal 122
201 1.1 christos #define OPC_sdl 123
202 1.1 christos #define OPC_sdlb 124
203 1.1 christos #define OPC_sdll 125
204 1.1 christos #define OPC_set 126
205 1.1 christos #define OPC_setb 127
206 1.1 christos #define OPC_setflg 128
207 1.1 christos #define OPC_sin 129
208 1.1 christos #define OPC_sinb 130
209 1.1 christos #define OPC_sind 131
210 1.1 christos #define OPC_sindb 132
211 1.1 christos #define OPC_sindr 133
212 1.1 christos #define OPC_sindrb 134
213 1.1 christos #define OPC_sini 135
214 1.1 christos #define OPC_sinib 136
215 1.1 christos #define OPC_sinir 137
216 1.1 christos #define OPC_sinirb 138
217 1.1 christos #define OPC_sla 139
218 1.1 christos #define OPC_slab 140
219 1.1 christos #define OPC_slal 141
220 1.1 christos #define OPC_sll 142
221 1.1 christos #define OPC_sllb 143
222 1.1 christos #define OPC_slll 144
223 1.1 christos #define OPC_sotdr 145
224 1.1 christos #define OPC_sotdrb 146
225 1.1 christos #define OPC_sotir 147
226 1.1 christos #define OPC_sotirb 148
227 1.1 christos #define OPC_sout 149
228 1.1 christos #define OPC_soutb 150
229 1.1 christos #define OPC_soutd 151
230 1.1 christos #define OPC_soutdb 152
231 1.1 christos #define OPC_souti 153
232 1.1 christos #define OPC_soutib 154
233 1.1 christos #define OPC_sra 155
234 1.1 christos #define OPC_srab 156
235 1.1 christos #define OPC_sral 157
236 1.1 christos #define OPC_srl 158
237 1.1 christos #define OPC_srlb 159
238 1.1 christos #define OPC_srll 160
239 1.1 christos #define OPC_sub 161
240 1.1 christos #define OPC_subb 162
241 1.1 christos #define OPC_subl 163
242 1.1 christos #define OPC_tcc 164
243 1.1 christos #define OPC_tccb 165
244 1.1 christos #define OPC_test 166
245 1.1 christos #define OPC_testb 167
246 1.1 christos #define OPC_testl 168
247 1.1 christos #define OPC_trdb 169
248 1.1 christos #define OPC_trdrb 170
249 1.1 christos #define OPC_trib 171
250 1.1 christos #define OPC_trirb 172
251 1.1 christos #define OPC_trtdrb 173
252 1.1 christos #define OPC_trtib 174
253 1.1 christos #define OPC_trtirb 175
254 1.1 christos #define OPC_trtrb 176
255 1.1 christos #define OPC_tset 177
256 1.1 christos #define OPC_tsetb 178
257 1.1 christos #define OPC_xor 179
258 1.1 christos #define OPC_xorb 180
259 1.1 christos #define OPC_ldd 181
260 1.1 christos #define OPC_lddb 182
261 1.1 christos #define OPC_lddr 183
262 1.1 christos #define OPC_lddrb 184
263 1.1 christos #define OPC_ldi 185
264 1.1 christos #define OPC_ldib 186
265 1.1 christos #define OPC_sc 187
266 1.1 christos #define OPC_bpt 188
267 1.1 christos #define OPC_ext0e 188
268 1.1 christos #define OPC_ext0f 188
269 1.1 christos #define OPC_ext8e 188
270 1.1 christos #define OPC_ext8f 188
271 1.1 christos #define OPC_rsvd36 188
272 1.1 christos #define OPC_rsvd38 188
273 1.1 christos #define OPC_rsvd78 188
274 1.1 christos #define OPC_rsvd7e 188
275 1.1 christos #define OPC_rsvd9d 188
276 1.1 christos #define OPC_rsvd9f 188
277 1.1 christos #define OPC_rsvdb9 188
278 1.1 christos #define OPC_rsvdbf 188
279 1.1 christos #define OPC_ldctlb 189
280 1.1 christos #define OPC_trtdb 190
281 1.1 christos #define OPC_brk 191
282 1.1 christos
283 1.1 christos typedef struct {
284 1.1 christos #ifdef NICENAMES
285 1.1 christos const char *nicename;
286 1.1 christos int type;
287 1.1 christos int cycles;
288 1.1 christos int flags;
289 1.1 christos #endif
290 1.1 christos const char *name;
291 1.1 christos unsigned char opcode;
292 1.1 christos void (*func) (void);
293 1.1 christos unsigned int arg_info[4];
294 1.1 christos unsigned int byte_info[10];
295 1.1.1.7 christos unsigned int noperands;
296 1.1.1.7 christos unsigned int length;
297 1.1.1.7 christos unsigned int idx;
298 1.1 christos } opcode_entry_type;
299 1.1 christos
300 1.1 christos #ifdef DEFINE_TABLE
301 1.1 christos const opcode_entry_type z8k_table[] = {
302 1.1 christos
303 1.1 christos /* 1011 0101 ssss dddd *** adc rd,rs */
304 1.1 christos {
305 1.1 christos #ifdef NICENAMES
306 1.1 christos "adc rd,rs",16,5,0x3c,
307 1.1 christos #endif
308 1.1 christos "adc",OPC_adc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
309 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,0},
310 1.1 christos
311 1.1 christos /* 1011 0100 ssss dddd *** adcb rbd,rbs */
312 1.1 christos {
313 1.1 christos #ifdef NICENAMES
314 1.1 christos "adcb rbd,rbs",8,5,0x3f,
315 1.1 christos #endif
316 1.1 christos "adcb",OPC_adcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
317 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,1},
318 1.1 christos
319 1.1 christos /* 0000 0001 ssN0 dddd *** add rd,@rs */
320 1.1 christos {
321 1.1 christos #ifdef NICENAMES
322 1.1 christos "add rd,@rs",16,7,0x3c,
323 1.1 christos #endif
324 1.1 christos "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
325 1.1 christos {CLASS_BIT+0,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,2},
326 1.1 christos
327 1.1 christos /* 0100 0001 0000 dddd address_src *** add rd,address_src */
328 1.1 christos {
329 1.1 christos #ifdef NICENAMES
330 1.1 christos "add rd,address_src",16,9,0x3c,
331 1.1 christos #endif
332 1.1 christos "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
333 1.1 christos {CLASS_BIT+4,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,2},
334 1.1 christos
335 1.1 christos /* 0100 0001 ssN0 dddd address_src *** add rd,address_src(rs) */
336 1.1 christos {
337 1.1 christos #ifdef NICENAMES
338 1.1 christos "add rd,address_src(rs)",16,10,0x3c,
339 1.1 christos #endif
340 1.1 christos "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
341 1.1 christos {CLASS_BIT+4,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,2},
342 1.1 christos
343 1.1 christos /* 0000 0001 0000 dddd imm16 *** add rd,imm16 */
344 1.1 christos {
345 1.1 christos #ifdef NICENAMES
346 1.1 christos "add rd,imm16",16,7,0x3c,
347 1.1 christos #endif
348 1.1 christos "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
349 1.1 christos {CLASS_BIT+0,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,2},
350 1.1 christos
351 1.1 christos /* 1000 0001 ssss dddd *** add rd,rs */
352 1.1 christos {
353 1.1 christos #ifdef NICENAMES
354 1.1 christos "add rd,rs",16,4,0x3c,
355 1.1 christos #endif
356 1.1 christos "add",OPC_add,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
357 1.1 christos {CLASS_BIT+8,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,2},
358 1.1 christos
359 1.1 christos /* 0000 0000 ssN0 dddd *** addb rbd,@rs */
360 1.1 christos {
361 1.1 christos #ifdef NICENAMES
362 1.1 christos "addb rbd,@rs",8,7,0x3f,
363 1.1 christos #endif
364 1.1 christos "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
365 1.1 christos {CLASS_BIT+0,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,3},
366 1.1 christos
367 1.1 christos /* 0100 0000 0000 dddd address_src *** addb rbd,address_src */
368 1.1 christos {
369 1.1 christos #ifdef NICENAMES
370 1.1 christos "addb rbd,address_src",8,9,0x3f,
371 1.1 christos #endif
372 1.1 christos "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
373 1.1 christos {CLASS_BIT+4,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,3},
374 1.1 christos
375 1.1 christos /* 0100 0000 ssN0 dddd address_src *** addb rbd,address_src(rs) */
376 1.1 christos {
377 1.1 christos #ifdef NICENAMES
378 1.1 christos "addb rbd,address_src(rs)",8,10,0x3f,
379 1.1 christos #endif
380 1.1 christos "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
381 1.1 christos {CLASS_BIT+4,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,3},
382 1.1 christos
383 1.1 christos /* 0000 0000 0000 dddd imm8 imm8 *** addb rbd,imm8 */
384 1.1 christos {
385 1.1 christos #ifdef NICENAMES
386 1.1 christos "addb rbd,imm8",8,7,0x3f,
387 1.1 christos #endif
388 1.1 christos "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
389 1.1 christos {CLASS_BIT+0,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,3},
390 1.1 christos
391 1.1 christos /* 1000 0000 ssss dddd *** addb rbd,rbs */
392 1.1 christos {
393 1.1 christos #ifdef NICENAMES
394 1.1 christos "addb rbd,rbs",8,4,0x3f,
395 1.1 christos #endif
396 1.1 christos "addb",OPC_addb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
397 1.1 christos {CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,3},
398 1.1 christos
399 1.1 christos /* 0001 0110 ssN0 dddd *** addl rrd,@rs */
400 1.1 christos {
401 1.1 christos #ifdef NICENAMES
402 1.1 christos "addl rrd,@rs",32,14,0x3c,
403 1.1 christos #endif
404 1.1 christos "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
405 1.1 christos {CLASS_BIT+1,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,4},
406 1.1 christos
407 1.1 christos /* 0101 0110 0000 dddd address_src *** addl rrd,address_src */
408 1.1 christos {
409 1.1 christos #ifdef NICENAMES
410 1.1 christos "addl rrd,address_src",32,15,0x3c,
411 1.1 christos #endif
412 1.1 christos "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
413 1.1 christos {CLASS_BIT+5,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,4},
414 1.1 christos
415 1.1 christos /* 0101 0110 ssN0 dddd address_src *** addl rrd,address_src(rs) */
416 1.1 christos {
417 1.1 christos #ifdef NICENAMES
418 1.1 christos "addl rrd,address_src(rs)",32,16,0x3c,
419 1.1 christos #endif
420 1.1 christos "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
421 1.1 christos {CLASS_BIT+5,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,4},
422 1.1 christos
423 1.1 christos /* 0001 0110 0000 dddd imm32 *** addl rrd,imm32 */
424 1.1 christos {
425 1.1 christos #ifdef NICENAMES
426 1.1 christos "addl rrd,imm32",32,14,0x3c,
427 1.1 christos #endif
428 1.1 christos "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
429 1.1 christos {CLASS_BIT+1,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,4},
430 1.1 christos
431 1.1 christos /* 1001 0110 ssss dddd *** addl rrd,rrs */
432 1.1 christos {
433 1.1 christos #ifdef NICENAMES
434 1.1 christos "addl rrd,rrs",32,8,0x3c,
435 1.1 christos #endif
436 1.1 christos "addl",OPC_addl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
437 1.1 christos {CLASS_BIT+9,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,4},
438 1.1 christos
439 1.1 christos /* 0000 0111 ssN0 dddd *** and rd,@rs */
440 1.1 christos {
441 1.1 christos #ifdef NICENAMES
442 1.1 christos "and rd,@rs",16,7,0x18,
443 1.1 christos #endif
444 1.1 christos "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
445 1.1 christos {CLASS_BIT+0,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,5},
446 1.1 christos
447 1.1 christos /* 0100 0111 0000 dddd address_src *** and rd,address_src */
448 1.1 christos {
449 1.1 christos #ifdef NICENAMES
450 1.1 christos "and rd,address_src",16,9,0x18,
451 1.1 christos #endif
452 1.1 christos "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
453 1.1 christos {CLASS_BIT+4,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,5},
454 1.1 christos
455 1.1 christos /* 0100 0111 ssN0 dddd address_src *** and rd,address_src(rs) */
456 1.1 christos {
457 1.1 christos #ifdef NICENAMES
458 1.1 christos "and rd,address_src(rs)",16,10,0x18,
459 1.1 christos #endif
460 1.1 christos "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
461 1.1 christos {CLASS_BIT+4,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,5},
462 1.1 christos
463 1.1 christos /* 0000 0111 0000 dddd imm16 *** and rd,imm16 */
464 1.1 christos {
465 1.1 christos #ifdef NICENAMES
466 1.1 christos "and rd,imm16",16,7,0x18,
467 1.1 christos #endif
468 1.1 christos "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
469 1.1 christos {CLASS_BIT+0,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,5},
470 1.1 christos
471 1.1 christos /* 1000 0111 ssss dddd *** and rd,rs */
472 1.1 christos {
473 1.1 christos #ifdef NICENAMES
474 1.1 christos "and rd,rs",16,4,0x18,
475 1.1 christos #endif
476 1.1 christos "and",OPC_and,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
477 1.1 christos {CLASS_BIT+8,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,5},
478 1.1 christos
479 1.1 christos /* 0000 0110 ssN0 dddd *** andb rbd,@rs */
480 1.1 christos {
481 1.1 christos #ifdef NICENAMES
482 1.1 christos "andb rbd,@rs",8,7,0x1c,
483 1.1 christos #endif
484 1.1 christos "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
485 1.1 christos {CLASS_BIT+0,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,6},
486 1.1 christos
487 1.1 christos /* 0100 0110 0000 dddd address_src *** andb rbd,address_src */
488 1.1 christos {
489 1.1 christos #ifdef NICENAMES
490 1.1 christos "andb rbd,address_src",8,9,0x1c,
491 1.1 christos #endif
492 1.1 christos "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
493 1.1 christos {CLASS_BIT+4,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,6},
494 1.1 christos
495 1.1 christos /* 0100 0110 ssN0 dddd address_src *** andb rbd,address_src(rs) */
496 1.1 christos {
497 1.1 christos #ifdef NICENAMES
498 1.1 christos "andb rbd,address_src(rs)",8,10,0x1c,
499 1.1 christos #endif
500 1.1 christos "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
501 1.1 christos {CLASS_BIT+4,CLASS_BIT+6,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,6},
502 1.1 christos
503 1.1 christos /* 0000 0110 0000 dddd imm8 imm8 *** andb rbd,imm8 */
504 1.1 christos {
505 1.1 christos #ifdef NICENAMES
506 1.1 christos "andb rbd,imm8",8,7,0x1c,
507 1.1 christos #endif
508 1.1 christos "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
509 1.1 christos {CLASS_BIT+0,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),CLASS_IMM+(ARG_IMM8),0,0,0,},2,4,6},
510 1.1 christos
511 1.1 christos /* 1000 0110 ssss dddd *** andb rbd,rbs */
512 1.1 christos {
513 1.1 christos #ifdef NICENAMES
514 1.1 christos "andb rbd,rbs",8,4,0x1c,
515 1.1 christos #endif
516 1.1 christos "andb",OPC_andb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
517 1.1 christos {CLASS_BIT+8,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,6},
518 1.1 christos
519 1.1 christos /* 0010 0111 ddN0 imm4 *** bit @rd,imm4 */
520 1.1 christos {
521 1.1 christos #ifdef NICENAMES
522 1.1 christos "bit @rd,imm4",16,8,0x10,
523 1.1 christos #endif
524 1.1 christos "bit",OPC_bit,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
525 1.1 christos {CLASS_BIT+2,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,7},
526 1.1 christos
527 1.1 christos /* 0110 0111 ddN0 imm4 address_dst *** bit address_dst(rd),imm4 */
528 1.1 christos {
529 1.1 christos #ifdef NICENAMES
530 1.1 christos "bit address_dst(rd),imm4",16,11,0x10,
531 1.1 christos #endif
532 1.1 christos "bit",OPC_bit,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
533 1.1 christos {CLASS_BIT+6,CLASS_BIT+7,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,7},
534 1.1 christos
535 1.1 christos /* 0110 0111 0000 imm4 address_dst *** bit address_dst,imm4 */
536 1.1 christos {
537 1.1 christos #ifdef NICENAMES
538 1.1 christos "bit address_dst,imm4",16,10,0x10,
539 1.1 christos #endif
540 1.1 christos "bit",OPC_bit,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
541 1.1 christos {CLASS_BIT+6,CLASS_BIT+7,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,7},
542 1.1 christos
543 1.1 christos /* 1010 0111 dddd imm4 *** bit rd,imm4 */
544 1.1 christos {
545 1.1 christos #ifdef NICENAMES
546 1.1 christos "bit rd,imm4",16,4,0x10,
547 1.1 christos #endif
548 1.1 christos "bit",OPC_bit,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
549 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+7,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,7},
550 1.1 christos
551 1.1 christos /* 0010 0111 0000 ssss 0000 dddd 0000 0000 *** bit rd,rs */
552 1.1 christos {
553 1.1 christos #ifdef NICENAMES
554 1.1 christos "bit rd,rs",16,10,0x10,
555 1.1 christos #endif
556 1.1 christos "bit",OPC_bit,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
557 1.1 christos {CLASS_BIT+2,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,7},
558 1.1 christos
559 1.1 christos /* 0010 0110 ddN0 imm4 *** bitb @rd,imm4 */
560 1.1 christos {
561 1.1 christos #ifdef NICENAMES
562 1.1 christos "bitb @rd,imm4",8,8,0x10,
563 1.1 christos #endif
564 1.1 christos "bitb",OPC_bitb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
565 1.1 christos {CLASS_BIT+2,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,8},
566 1.1 christos
567 1.1 christos /* 0110 0110 ddN0 imm4 address_dst *** bitb address_dst(rd),imm4 */
568 1.1 christos {
569 1.1 christos #ifdef NICENAMES
570 1.1 christos "bitb address_dst(rd),imm4",8,11,0x10,
571 1.1 christos #endif
572 1.1 christos "bitb",OPC_bitb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
573 1.1 christos {CLASS_BIT+6,CLASS_BIT+6,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,8},
574 1.1 christos
575 1.1 christos /* 0110 0110 0000 imm4 address_dst *** bitb address_dst,imm4 */
576 1.1 christos {
577 1.1 christos #ifdef NICENAMES
578 1.1 christos "bitb address_dst,imm4",8,10,0x10,
579 1.1 christos #endif
580 1.1 christos "bitb",OPC_bitb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
581 1.1 christos {CLASS_BIT+6,CLASS_BIT+6,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,8},
582 1.1 christos
583 1.1 christos /* 1010 0110 dddd imm4 *** bitb rbd,imm4 */
584 1.1 christos {
585 1.1 christos #ifdef NICENAMES
586 1.1 christos "bitb rbd,imm4",8,4,0x10,
587 1.1 christos #endif
588 1.1 christos "bitb",OPC_bitb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
589 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+6,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,8},
590 1.1 christos
591 1.1 christos /* 0010 0110 0000 ssss 0000 dddd 0000 0000 *** bitb rbd,rs */
592 1.1 christos {
593 1.1 christos #ifdef NICENAMES
594 1.1 christos "bitb rbd,rs",8,10,0x10,
595 1.1 christos #endif
596 1.1 christos "bitb",OPC_bitb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
597 1.1 christos {CLASS_BIT+2,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,CLASS_BIT+0,0,},2,4,8},
598 1.1 christos
599 1.1 christos /* 0011 0110 0000 0000 *** bpt */
600 1.1 christos {
601 1.1 christos #ifdef NICENAMES
602 1.1 christos "bpt",8,2,0x00,
603 1.1 christos #endif
604 1.1 christos "bpt",OPC_bpt,0,{0},
605 1.1 christos {CLASS_BIT+3,CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,9},
606 1.1 christos
607 1.1 christos /* 0000 1111 0000 1100 *** brk */
608 1.1 christos {
609 1.1 christos #ifdef NICENAMES
610 1.1 christos "brk",8,10,0x00,
611 1.1 christos #endif
612 1.1 christos "brk",OPC_brk,0,{0},
613 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0xc,0,0,0,0,0,},0,2,10},
614 1.1 christos
615 1.1 christos /* 0001 1111 ddN0 0000 *** call @rd */
616 1.1 christos {
617 1.1 christos #ifdef NICENAMES
618 1.1 christos "call @rd",32,10,0x00,
619 1.1 christos #endif
620 1.1 christos "call",OPC_call,0,{CLASS_IR+(ARG_RD),},
621 1.1 christos {CLASS_BIT+1,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,11},
622 1.1 christos
623 1.1 christos /* 0101 1111 0000 0000 address_dst *** call address_dst */
624 1.1 christos {
625 1.1 christos #ifdef NICENAMES
626 1.1 christos "call address_dst",32,12,0x00,
627 1.1 christos #endif
628 1.1 christos "call",OPC_call,0,{CLASS_DA+(ARG_DST),},
629 1.1 christos {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,11},
630 1.1 christos
631 1.1 christos /* 0101 1111 ddN0 0000 address_dst *** call address_dst(rd) */
632 1.1 christos {
633 1.1 christos #ifdef NICENAMES
634 1.1 christos "call address_dst(rd)",32,13,0x00,
635 1.1 christos #endif
636 1.1 christos "call",OPC_call,0,{CLASS_X+(ARG_RD),},
637 1.1 christos {CLASS_BIT+5,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,11},
638 1.1 christos
639 1.1 christos /* 1101 disp12 *** calr disp12 */
640 1.1 christos {
641 1.1 christos #ifdef NICENAMES
642 1.1 christos "calr disp12",16,10,0x00,
643 1.1 christos #endif
644 1.1 christos "calr",OPC_calr,0,{CLASS_DISP,},
645 1.1 christos {CLASS_BIT+0xd,CLASS_DISP+(ARG_DISP12),0,0,0,0,0,0,0,},1,2,12},
646 1.1 christos
647 1.1 christos /* 0000 1101 ddN0 1000 *** clr @rd */
648 1.1 christos {
649 1.1 christos #ifdef NICENAMES
650 1.1 christos "clr @rd",16,8,0x00,
651 1.1 christos #endif
652 1.1 christos "clr",OPC_clr,0,{CLASS_IR+(ARG_RD),},
653 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13},
654 1.1 christos
655 1.1 christos /* 0100 1101 0000 1000 address_dst *** clr address_dst */
656 1.1 christos {
657 1.1 christos #ifdef NICENAMES
658 1.1 christos "clr address_dst",16,11,0x00,
659 1.1 christos #endif
660 1.1 christos "clr",OPC_clr,0,{CLASS_DA+(ARG_DST),},
661 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13},
662 1.1 christos
663 1.1 christos /* 0100 1101 ddN0 1000 address_dst *** clr address_dst(rd) */
664 1.1 christos {
665 1.1 christos #ifdef NICENAMES
666 1.1 christos "clr address_dst(rd)",16,12,0x00,
667 1.1 christos #endif
668 1.1 christos "clr",OPC_clr,0,{CLASS_X+(ARG_RD),},
669 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,13},
670 1.1 christos
671 1.1 christos /* 1000 1101 dddd 1000 *** clr rd */
672 1.1 christos {
673 1.1 christos #ifdef NICENAMES
674 1.1 christos "clr rd",16,7,0x00,
675 1.1 christos #endif
676 1.1 christos "clr",OPC_clr,0,{CLASS_REG_WORD+(ARG_RD),},
677 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,13},
678 1.1 christos
679 1.1 christos /* 0000 1100 ddN0 1000 *** clrb @rd */
680 1.1 christos {
681 1.1 christos #ifdef NICENAMES
682 1.1 christos "clrb @rd",8,8,0x00,
683 1.1 christos #endif
684 1.1 christos "clrb",OPC_clrb,0,{CLASS_IR+(ARG_RD),},
685 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,14},
686 1.1 christos
687 1.1 christos /* 0100 1100 0000 1000 address_dst *** clrb address_dst */
688 1.1 christos {
689 1.1 christos #ifdef NICENAMES
690 1.1 christos "clrb address_dst",8,11,0x00,
691 1.1 christos #endif
692 1.1 christos "clrb",OPC_clrb,0,{CLASS_DA+(ARG_DST),},
693 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14},
694 1.1 christos
695 1.1 christos /* 0100 1100 ddN0 1000 address_dst *** clrb address_dst(rd) */
696 1.1 christos {
697 1.1 christos #ifdef NICENAMES
698 1.1 christos "clrb address_dst(rd)",8,12,0x00,
699 1.1 christos #endif
700 1.1 christos "clrb",OPC_clrb,0,{CLASS_X+(ARG_RD),},
701 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,14},
702 1.1 christos
703 1.1 christos /* 1000 1100 dddd 1000 *** clrb rbd */
704 1.1 christos {
705 1.1 christos #ifdef NICENAMES
706 1.1 christos "clrb rbd",8,7,0x00,
707 1.1 christos #endif
708 1.1 christos "clrb",OPC_clrb,0,{CLASS_REG_BYTE+(ARG_RD),},
709 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,14},
710 1.1 christos
711 1.1 christos /* 0000 1101 ddN0 0000 *** com @rd */
712 1.1 christos {
713 1.1 christos #ifdef NICENAMES
714 1.1 christos "com @rd",16,12,0x18,
715 1.1 christos #endif
716 1.1 christos "com",OPC_com,0,{CLASS_IR+(ARG_RD),},
717 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15},
718 1.1 christos
719 1.1 christos /* 0100 1101 0000 0000 address_dst *** com address_dst */
720 1.1 christos {
721 1.1 christos #ifdef NICENAMES
722 1.1 christos "com address_dst",16,15,0x18,
723 1.1 christos #endif
724 1.1 christos "com",OPC_com,0,{CLASS_DA+(ARG_DST),},
725 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15},
726 1.1 christos
727 1.1 christos /* 0100 1101 ddN0 0000 address_dst *** com address_dst(rd) */
728 1.1 christos {
729 1.1 christos #ifdef NICENAMES
730 1.1 christos "com address_dst(rd)",16,16,0x18,
731 1.1 christos #endif
732 1.1 christos "com",OPC_com,0,{CLASS_X+(ARG_RD),},
733 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,15},
734 1.1 christos
735 1.1 christos /* 1000 1101 dddd 0000 *** com rd */
736 1.1 christos {
737 1.1 christos #ifdef NICENAMES
738 1.1 christos "com rd",16,7,0x18,
739 1.1 christos #endif
740 1.1 christos "com",OPC_com,0,{CLASS_REG_WORD+(ARG_RD),},
741 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,15},
742 1.1 christos
743 1.1 christos /* 0000 1100 ddN0 0000 *** comb @rd */
744 1.1 christos {
745 1.1 christos #ifdef NICENAMES
746 1.1 christos "comb @rd",8,12,0x1c,
747 1.1 christos #endif
748 1.1 christos "comb",OPC_comb,0,{CLASS_IR+(ARG_RD),},
749 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,16},
750 1.1 christos
751 1.1 christos /* 0100 1100 0000 0000 address_dst *** comb address_dst */
752 1.1 christos {
753 1.1 christos #ifdef NICENAMES
754 1.1 christos "comb address_dst",8,15,0x1c,
755 1.1 christos #endif
756 1.1 christos "comb",OPC_comb,0,{CLASS_DA+(ARG_DST),},
757 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,16},
758 1.1 christos
759 1.1 christos /* 0100 1100 ddN0 0000 address_dst *** comb address_dst(rd) */
760 1.1 christos {
761 1.1 christos #ifdef NICENAMES
762 1.1 christos "comb address_dst(rd)",8,16,0x1c,
763 1.1 christos #endif
764 1.1 christos "comb",OPC_comb,0,{CLASS_X+(ARG_RD),},
765 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,16},
766 1.1 christos
767 1.1 christos /* 1000 1100 dddd 0000 *** comb rbd */
768 1.1 christos {
769 1.1 christos #ifdef NICENAMES
770 1.1 christos "comb rbd",8,7,0x1c,
771 1.1 christos #endif
772 1.1 christos "comb",OPC_comb,0,{CLASS_REG_BYTE+(ARG_RD),},
773 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,16},
774 1.1 christos
775 1.1 christos /* 1000 1101 flags 0101 *** comflg flags */
776 1.1 christos {
777 1.1 christos #ifdef NICENAMES
778 1.1 christos "comflg flags",16,7,0x3c,
779 1.1 christos #endif
780 1.1 christos "comflg",OPC_comflg,0,{CLASS_FLAGS,},
781 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+5,0,0,0,0,0,},1,2,17},
782 1.1 christos
783 1.1 christos /* 0000 1101 ddN0 0001 imm16 *** cp @rd,imm16 */
784 1.1 christos {
785 1.1 christos #ifdef NICENAMES
786 1.1 christos "cp @rd,imm16",16,11,0x3c,
787 1.1 christos #endif
788 1.1 christos "cp",OPC_cp,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
789 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+1,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,18},
790 1.1 christos
791 1.1 christos /* 0100 1101 ddN0 0001 address_dst imm16 *** cp address_dst(rd),imm16 */
792 1.1 christos {
793 1.1 christos #ifdef NICENAMES
794 1.1 christos "cp address_dst(rd),imm16",16,15,0x3c,
795 1.1 christos #endif
796 1.1 christos "cp",OPC_cp,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
797 1.1 christos {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},
798 1.1 christos
799 1.1 christos /* 0100 1101 0000 0001 address_dst imm16 *** cp address_dst,imm16 */
800 1.1 christos {
801 1.1 christos #ifdef NICENAMES
802 1.1 christos "cp address_dst,imm16",16,14,0x3c,
803 1.1 christos #endif
804 1.1 christos "cp",OPC_cp,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM16),},
805 1.1 christos {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},
806 1.1 christos
807 1.1 christos /* 0000 1011 ssN0 dddd *** cp rd,@rs */
808 1.1 christos {
809 1.1 christos #ifdef NICENAMES
810 1.1 christos "cp rd,@rs",16,7,0x3c,
811 1.1 christos #endif
812 1.1 christos "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
813 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18},
814 1.1 christos
815 1.1 christos /* 0100 1011 0000 dddd address_src *** cp rd,address_src */
816 1.1 christos {
817 1.1 christos #ifdef NICENAMES
818 1.1 christos "cp rd,address_src",16,9,0x3c,
819 1.1 christos #endif
820 1.1 christos "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
821 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,18},
822 1.1 christos
823 1.1 christos /* 0100 1011 ssN0 dddd address_src *** cp rd,address_src(rs) */
824 1.1 christos {
825 1.1 christos #ifdef NICENAMES
826 1.1 christos "cp rd,address_src(rs)",16,10,0x3c,
827 1.1 christos #endif
828 1.1 christos "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
829 1.1 christos {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},
830 1.1 christos
831 1.1 christos /* 0000 1011 0000 dddd imm16 *** cp rd,imm16 */
832 1.1 christos {
833 1.1 christos #ifdef NICENAMES
834 1.1 christos "cp rd,imm16",16,7,0x3c,
835 1.1 christos #endif
836 1.1 christos "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
837 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,18},
838 1.1 christos
839 1.1 christos /* 1000 1011 ssss dddd *** cp rd,rs */
840 1.1 christos {
841 1.1 christos #ifdef NICENAMES
842 1.1 christos "cp rd,rs",16,4,0x3c,
843 1.1 christos #endif
844 1.1 christos "cp",OPC_cp,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
845 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,18},
846 1.1 christos
847 1.1 christos /* 0000 1100 ddN0 0001 imm8 imm8 *** cpb @rd,imm8 */
848 1.1 christos {
849 1.1 christos #ifdef NICENAMES
850 1.1 christos "cpb @rd,imm8",8,11,0x3c,
851 1.1 christos #endif
852 1.1 christos "cpb",OPC_cpb,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
853 1.1 christos {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},
854 1.1 christos
855 1.1 christos /* 0100 1100 ddN0 0001 address_dst imm8 imm8 *** cpb address_dst(rd),imm8 */
856 1.1 christos {
857 1.1 christos #ifdef NICENAMES
858 1.1 christos "cpb address_dst(rd),imm8",8,15,0x3c,
859 1.1 christos #endif
860 1.1 christos "cpb",OPC_cpb,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
861 1.1 christos {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},
862 1.1 christos
863 1.1 christos /* 0100 1100 0000 0001 address_dst imm8 imm8 *** cpb address_dst,imm8 */
864 1.1 christos {
865 1.1 christos #ifdef NICENAMES
866 1.1 christos "cpb address_dst,imm8",8,14,0x3c,
867 1.1 christos #endif
868 1.1 christos "cpb",OPC_cpb,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM8),},
869 1.1 christos {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},
870 1.1 christos
871 1.1 christos /* 0000 1010 ssN0 dddd *** cpb rbd,@rs */
872 1.1 christos {
873 1.1 christos #ifdef NICENAMES
874 1.1 christos "cpb rbd,@rs",8,7,0x3c,
875 1.1 christos #endif
876 1.1 christos "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
877 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,19},
878 1.1 christos
879 1.1 christos /* 0100 1010 0000 dddd address_src *** cpb rbd,address_src */
880 1.1 christos {
881 1.1 christos #ifdef NICENAMES
882 1.1 christos "cpb rbd,address_src",8,9,0x3c,
883 1.1 christos #endif
884 1.1 christos "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
885 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,19},
886 1.1 christos
887 1.1 christos /* 0100 1010 ssN0 dddd address_src *** cpb rbd,address_src(rs) */
888 1.1 christos {
889 1.1 christos #ifdef NICENAMES
890 1.1 christos "cpb rbd,address_src(rs)",8,10,0x3c,
891 1.1 christos #endif
892 1.1 christos "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
893 1.1 christos {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},
894 1.1 christos
895 1.1 christos /* 0000 1010 0000 dddd imm8 imm8 *** cpb rbd,imm8 */
896 1.1 christos {
897 1.1 christos #ifdef NICENAMES
898 1.1 christos "cpb rbd,imm8",8,7,0x3c,
899 1.1 christos #endif
900 1.1 christos "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
901 1.1 christos {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},
902 1.1 christos
903 1.1 christos /* 1000 1010 ssss dddd *** cpb rbd,rbs */
904 1.1 christos {
905 1.1 christos #ifdef NICENAMES
906 1.1 christos "cpb rbd,rbs",8,4,0x3c,
907 1.1 christos #endif
908 1.1 christos "cpb",OPC_cpb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
909 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,19},
910 1.1 christos
911 1.1 christos /* 1011 1011 ssN0 1000 0000 rrrr dddd cccc *** cpd rd,@rs,rr,cc */
912 1.1 christos {
913 1.1 christos #ifdef NICENAMES
914 1.1 christos "cpd rd,@rs,rr,cc",16,11,0x3c,
915 1.1 christos #endif
916 1.1 christos "cpd",OPC_cpd,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
917 1.1 christos {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},
918 1.1 christos
919 1.1 christos /* 1011 1010 ssN0 1000 0000 rrrr dddd cccc *** cpdb rbd,@rs,rr,cc */
920 1.1 christos {
921 1.1 christos #ifdef NICENAMES
922 1.1 christos "cpdb rbd,@rs,rr,cc",8,11,0x3c,
923 1.1 christos #endif
924 1.1 christos "cpdb",OPC_cpdb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
925 1.1 christos {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},
926 1.1 christos
927 1.1 christos /* 1011 1011 ssN0 1100 0000 rrrr dddd cccc *** cpdr rd,@rs,rr,cc */
928 1.1 christos {
929 1.1 christos #ifdef NICENAMES
930 1.1 christos "cpdr rd,@rs,rr,cc",16,11,0x3c,
931 1.1 christos #endif
932 1.1 christos "cpdr",OPC_cpdr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
933 1.1 christos {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},
934 1.1 christos
935 1.1 christos /* 1011 1010 ssN0 1100 0000 rrrr dddd cccc *** cpdrb rbd,@rs,rr,cc */
936 1.1 christos {
937 1.1 christos #ifdef NICENAMES
938 1.1 christos "cpdrb rbd,@rs,rr,cc",8,11,0x3c,
939 1.1 christos #endif
940 1.1 christos "cpdrb",OPC_cpdrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
941 1.1 christos {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},
942 1.1 christos
943 1.1 christos /* 1011 1011 ssN0 0000 0000 rrrr dddd cccc *** cpi rd,@rs,rr,cc */
944 1.1 christos {
945 1.1 christos #ifdef NICENAMES
946 1.1 christos "cpi rd,@rs,rr,cc",16,11,0x3c,
947 1.1 christos #endif
948 1.1 christos "cpi",OPC_cpi,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
949 1.1 christos {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},
950 1.1 christos
951 1.1 christos /* 1011 1010 ssN0 0000 0000 rrrr dddd cccc *** cpib rbd,@rs,rr,cc */
952 1.1 christos {
953 1.1 christos #ifdef NICENAMES
954 1.1 christos "cpib rbd,@rs,rr,cc",8,11,0x3c,
955 1.1 christos #endif
956 1.1 christos "cpib",OPC_cpib,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
957 1.1 christos {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},
958 1.1 christos
959 1.1 christos /* 1011 1011 ssN0 0100 0000 rrrr dddd cccc *** cpir rd,@rs,rr,cc */
960 1.1 christos {
961 1.1 christos #ifdef NICENAMES
962 1.1 christos "cpir rd,@rs,rr,cc",16,11,0x3c,
963 1.1 christos #endif
964 1.1 christos "cpir",OPC_cpir,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
965 1.1 christos {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},
966 1.1 christos
967 1.1 christos /* 1011 1010 ssN0 0100 0000 rrrr dddd cccc *** cpirb rbd,@rs,rr,cc */
968 1.1 christos {
969 1.1 christos #ifdef NICENAMES
970 1.1 christos "cpirb rbd,@rs,rr,cc",8,11,0x3c,
971 1.1 christos #endif
972 1.1 christos "cpirb",OPC_cpirb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
973 1.1 christos {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},
974 1.1 christos
975 1.1 christos /* 0001 0000 ssN0 dddd *** cpl rrd,@rs */
976 1.1 christos {
977 1.1 christos #ifdef NICENAMES
978 1.1 christos "cpl rrd,@rs",32,14,0x3c,
979 1.1 christos #endif
980 1.1 christos "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
981 1.1 christos {CLASS_BIT+1,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,28},
982 1.1 christos
983 1.1 christos /* 0101 0000 0000 dddd address_src *** cpl rrd,address_src */
984 1.1 christos {
985 1.1 christos #ifdef NICENAMES
986 1.1 christos "cpl rrd,address_src",32,15,0x3c,
987 1.1 christos #endif
988 1.1 christos "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
989 1.1 christos {CLASS_BIT+5,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,28},
990 1.1 christos
991 1.1 christos /* 0101 0000 ssN0 dddd address_src *** cpl rrd,address_src(rs) */
992 1.1 christos {
993 1.1 christos #ifdef NICENAMES
994 1.1 christos "cpl rrd,address_src(rs)",32,16,0x3c,
995 1.1 christos #endif
996 1.1 christos "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
997 1.1 christos {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},
998 1.1 christos
999 1.1 christos /* 0001 0000 0000 dddd imm32 *** cpl rrd,imm32 */
1000 1.1 christos {
1001 1.1 christos #ifdef NICENAMES
1002 1.1 christos "cpl rrd,imm32",32,14,0x3c,
1003 1.1 christos #endif
1004 1.1 christos "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
1005 1.1 christos {CLASS_BIT+1,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,28},
1006 1.1 christos
1007 1.1 christos /* 1001 0000 ssss dddd *** cpl rrd,rrs */
1008 1.1 christos {
1009 1.1 christos #ifdef NICENAMES
1010 1.1 christos "cpl rrd,rrs",32,8,0x3c,
1011 1.1 christos #endif
1012 1.1 christos "cpl",OPC_cpl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
1013 1.1 christos {CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,28},
1014 1.1 christos
1015 1.1 christos /* 1011 1011 ssN0 1010 0000 rrrr ddN0 cccc *** cpsd @rd,@rs,rr,cc */
1016 1.1 christos {
1017 1.1 christos #ifdef NICENAMES
1018 1.1 christos "cpsd @rd,@rs,rr,cc",16,11,0x3c,
1019 1.1 christos #endif
1020 1.1 christos "cpsd",OPC_cpsd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1021 1.1 christos {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},
1022 1.1 christos
1023 1.1 christos /* 1011 1010 ssN0 1010 0000 rrrr ddN0 cccc *** cpsdb @rd,@rs,rr,cc */
1024 1.1 christos {
1025 1.1 christos #ifdef NICENAMES
1026 1.1 christos "cpsdb @rd,@rs,rr,cc",8,11,0x3c,
1027 1.1 christos #endif
1028 1.1 christos "cpsdb",OPC_cpsdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1029 1.1 christos {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},
1030 1.1 christos
1031 1.1 christos /* 1011 1011 ssN0 1110 0000 rrrr ddN0 cccc *** cpsdr @rd,@rs,rr,cc */
1032 1.1 christos {
1033 1.1 christos #ifdef NICENAMES
1034 1.1 christos "cpsdr @rd,@rs,rr,cc",16,11,0x3c,
1035 1.1 christos #endif
1036 1.1 christos "cpsdr",OPC_cpsdr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1037 1.1 christos {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},
1038 1.1 christos
1039 1.1 christos /* 1011 1010 ssN0 1110 0000 rrrr ddN0 cccc *** cpsdrb @rd,@rs,rr,cc */
1040 1.1 christos {
1041 1.1 christos #ifdef NICENAMES
1042 1.1 christos "cpsdrb @rd,@rs,rr,cc",8,11,0x3c,
1043 1.1 christos #endif
1044 1.1 christos "cpsdrb",OPC_cpsdrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1045 1.1 christos {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},
1046 1.1 christos
1047 1.1 christos /* 1011 1011 ssN0 0010 0000 rrrr ddN0 cccc *** cpsi @rd,@rs,rr,cc */
1048 1.1 christos {
1049 1.1 christos #ifdef NICENAMES
1050 1.1 christos "cpsi @rd,@rs,rr,cc",16,11,0x3c,
1051 1.1 christos #endif
1052 1.1 christos "cpsi",OPC_cpsi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1053 1.1 christos {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},
1054 1.1 christos
1055 1.1 christos /* 1011 1010 ssN0 0010 0000 rrrr ddN0 cccc *** cpsib @rd,@rs,rr,cc */
1056 1.1 christos {
1057 1.1 christos #ifdef NICENAMES
1058 1.1 christos "cpsib @rd,@rs,rr,cc",8,11,0x3c,
1059 1.1 christos #endif
1060 1.1 christos "cpsib",OPC_cpsib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1061 1.1 christos {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},
1062 1.1 christos
1063 1.1 christos /* 1011 1011 ssN0 0110 0000 rrrr ddN0 cccc *** cpsir @rd,@rs,rr,cc */
1064 1.1 christos {
1065 1.1 christos #ifdef NICENAMES
1066 1.1 christos "cpsir @rd,@rs,rr,cc",16,11,0x3c,
1067 1.1 christos #endif
1068 1.1 christos "cpsir",OPC_cpsir,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1069 1.1 christos {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},
1070 1.1 christos
1071 1.1 christos /* 1011 1010 ssN0 0110 0000 rrrr ddN0 cccc *** cpsirb @rd,@rs,rr,cc */
1072 1.1 christos {
1073 1.1 christos #ifdef NICENAMES
1074 1.1 christos "cpsirb @rd,@rs,rr,cc",8,11,0x3c,
1075 1.1 christos #endif
1076 1.1 christos "cpsirb",OPC_cpsirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),CLASS_CC,},
1077 1.1 christos {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},
1078 1.1 christos
1079 1.1 christos /* 1011 0000 dddd 0000 *** dab rbd */
1080 1.1 christos {
1081 1.1 christos #ifdef NICENAMES
1082 1.1 christos "dab rbd",8,5,0x38,
1083 1.1 christos #endif
1084 1.1 christos "dab",OPC_dab,0,{CLASS_REG_BYTE+(ARG_RD),},
1085 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,37},
1086 1.1 christos
1087 1.1 christos /* 1111 dddd 0disp7 *** dbjnz rbd,disp7 */
1088 1.1 christos {
1089 1.1 christos #ifdef NICENAMES
1090 1.1 christos "dbjnz rbd,disp7",16,11,0x00,
1091 1.1 christos #endif
1092 1.1 christos "dbjnz",OPC_dbjnz,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DISP,},
1093 1.1 christos {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_0DISP7,0,0,0,0,0,0,},2,2,38},
1094 1.1 christos
1095 1.1 christos /* 0010 1011 ddN0 imm4m1 *** dec @rd,imm4m1 */
1096 1.1 christos {
1097 1.1 christos #ifdef NICENAMES
1098 1.1 christos "dec @rd,imm4m1",16,11,0x1c,
1099 1.1 christos #endif
1100 1.1 christos "dec",OPC_dec,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1101 1.1 christos {CLASS_BIT+2,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39},
1102 1.1 christos
1103 1.1 christos /* 0110 1011 ddN0 imm4m1 address_dst *** dec address_dst(rd),imm4m1 */
1104 1.1 christos {
1105 1.1 christos #ifdef NICENAMES
1106 1.1 christos "dec address_dst(rd),imm4m1",16,14,0x1c,
1107 1.1 christos #endif
1108 1.1 christos "dec",OPC_dec,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1109 1.1 christos {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},
1110 1.1 christos
1111 1.1 christos /* 0110 1011 0000 imm4m1 address_dst *** dec address_dst,imm4m1 */
1112 1.1 christos {
1113 1.1 christos #ifdef NICENAMES
1114 1.1 christos "dec address_dst,imm4m1",16,13,0x1c,
1115 1.1 christos #endif
1116 1.1 christos "dec",OPC_dec,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
1117 1.1 christos {CLASS_BIT+6,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,39},
1118 1.1 christos
1119 1.1 christos /* 1010 1011 dddd imm4m1 *** dec rd,imm4m1 */
1120 1.1 christos {
1121 1.1 christos #ifdef NICENAMES
1122 1.1 christos "dec rd,imm4m1",16,4,0x1c,
1123 1.1 christos #endif
1124 1.1 christos "dec",OPC_dec,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1125 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,39},
1126 1.1 christos
1127 1.1 christos /* 0010 1010 ddN0 imm4m1 *** decb @rd,imm4m1 */
1128 1.1 christos {
1129 1.1 christos #ifdef NICENAMES
1130 1.1 christos "decb @rd,imm4m1",8,11,0x1c,
1131 1.1 christos #endif
1132 1.1 christos "decb",OPC_decb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1133 1.1 christos {CLASS_BIT+2,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,40},
1134 1.1 christos
1135 1.1 christos /* 0110 1010 ddN0 imm4m1 address_dst *** decb address_dst(rd),imm4m1 */
1136 1.1 christos {
1137 1.1 christos #ifdef NICENAMES
1138 1.1 christos "decb address_dst(rd),imm4m1",8,14,0x1c,
1139 1.1 christos #endif
1140 1.1 christos "decb",OPC_decb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1141 1.1 christos {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},
1142 1.1 christos
1143 1.1 christos /* 0110 1010 0000 imm4m1 address_dst *** decb address_dst,imm4m1 */
1144 1.1 christos {
1145 1.1 christos #ifdef NICENAMES
1146 1.1 christos "decb address_dst,imm4m1",8,13,0x1c,
1147 1.1 christos #endif
1148 1.1 christos "decb",OPC_decb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
1149 1.1 christos {CLASS_BIT+6,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,40},
1150 1.1 christos
1151 1.1 christos /* 1010 1010 dddd imm4m1 *** decb rbd,imm4m1 */
1152 1.1 christos {
1153 1.1 christos #ifdef NICENAMES
1154 1.1 christos "decb rbd,imm4m1",8,4,0x1c,
1155 1.1 christos #endif
1156 1.1 christos "decb",OPC_decb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1157 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,40},
1158 1.1 christos
1159 1.1 christos /* 0111 1100 0000 00ii *** di i2 */
1160 1.1 christos {
1161 1.1 christos #ifdef NICENAMES
1162 1.1 christos "di i2",16,7,0x00,
1163 1.1 christos #endif
1164 1.1 christos "di",OPC_di,0,{CLASS_IMM+(ARG_IMM2),},
1165 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_00II,0,0,0,0,0,},1,2,41},
1166 1.1 christos
1167 1.1 christos /* 0001 1011 ssN0 dddd *** div rrd,@rs */
1168 1.1 christos {
1169 1.1 christos #ifdef NICENAMES
1170 1.1 christos "div rrd,@rs",16,107,0x3c,
1171 1.1 christos #endif
1172 1.1 christos "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
1173 1.1 christos {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42},
1174 1.1 christos
1175 1.1 christos /* 0101 1011 0000 dddd address_src *** div rrd,address_src */
1176 1.1 christos {
1177 1.1 christos #ifdef NICENAMES
1178 1.1 christos "div rrd,address_src",16,107,0x3c,
1179 1.1 christos #endif
1180 1.1 christos "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
1181 1.1 christos {CLASS_BIT+5,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,42},
1182 1.1 christos
1183 1.1 christos /* 0101 1011 ssN0 dddd address_src *** div rrd,address_src(rs) */
1184 1.1 christos {
1185 1.1 christos #ifdef NICENAMES
1186 1.1 christos "div rrd,address_src(rs)",16,107,0x3c,
1187 1.1 christos #endif
1188 1.1 christos "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
1189 1.1 christos {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},
1190 1.1 christos
1191 1.1 christos /* 0001 1011 0000 dddd imm16 *** div rrd,imm16 */
1192 1.1 christos {
1193 1.1 christos #ifdef NICENAMES
1194 1.1 christos "div rrd,imm16",16,107,0x3c,
1195 1.1 christos #endif
1196 1.1 christos "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1197 1.1 christos {CLASS_BIT+1,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,42},
1198 1.1 christos
1199 1.1 christos /* 1001 1011 ssss dddd *** div rrd,rs */
1200 1.1 christos {
1201 1.1 christos #ifdef NICENAMES
1202 1.1 christos "div rrd,rs",16,107,0x3c,
1203 1.1 christos #endif
1204 1.1 christos "div",OPC_div,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1205 1.1 christos {CLASS_BIT+9,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,42},
1206 1.1 christos
1207 1.1 christos /* 0001 1010 ssN0 dddd *** divl rqd,@rs */
1208 1.1 christos {
1209 1.1 christos #ifdef NICENAMES
1210 1.1 christos "divl rqd,@rs",32,744,0x3c,
1211 1.1 christos #endif
1212 1.1 christos "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IR+(ARG_RS),},
1213 1.1 christos {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,43},
1214 1.1 christos
1215 1.1 christos /* 0101 1010 0000 dddd address_src *** divl rqd,address_src */
1216 1.1 christos {
1217 1.1 christos #ifdef NICENAMES
1218 1.1 christos "divl rqd,address_src",32,745,0x3c,
1219 1.1 christos #endif
1220 1.1 christos "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_DA+(ARG_SRC),},
1221 1.1 christos {CLASS_BIT+5,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,43},
1222 1.1 christos
1223 1.1 christos /* 0101 1010 ssN0 dddd address_src *** divl rqd,address_src(rs) */
1224 1.1 christos {
1225 1.1 christos #ifdef NICENAMES
1226 1.1 christos "divl rqd,address_src(rs)",32,746,0x3c,
1227 1.1 christos #endif
1228 1.1 christos "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_X+(ARG_RS),},
1229 1.1 christos {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},
1230 1.1 christos
1231 1.1 christos /* 0001 1010 0000 dddd imm32 *** divl rqd,imm32 */
1232 1.1 christos {
1233 1.1 christos #ifdef NICENAMES
1234 1.1 christos "divl rqd,imm32",32,744,0x3c,
1235 1.1 christos #endif
1236 1.1 christos "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
1237 1.1 christos {CLASS_BIT+1,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,43},
1238 1.1 christos
1239 1.1 christos /* 1001 1010 ssss dddd *** divl rqd,rrs */
1240 1.1 christos {
1241 1.1 christos #ifdef NICENAMES
1242 1.1 christos "divl rqd,rrs",32,744,0x3c,
1243 1.1 christos #endif
1244 1.1 christos "divl",OPC_divl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
1245 1.1 christos {CLASS_BIT+9,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,43},
1246 1.1 christos
1247 1.1 christos /* 1111 dddd 1disp7 *** djnz rd,disp7 */
1248 1.1 christos {
1249 1.1 christos #ifdef NICENAMES
1250 1.1 christos "djnz rd,disp7",16,11,0x00,
1251 1.1 christos #endif
1252 1.1 christos "djnz",OPC_djnz,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DISP,},
1253 1.1 christos {CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_1DISP7,0,0,0,0,0,0,},2,2,44},
1254 1.1 christos
1255 1.1 christos /* 0111 1100 0000 01ii *** ei i2 */
1256 1.1 christos {
1257 1.1 christos #ifdef NICENAMES
1258 1.1 christos "ei i2",16,7,0x00,
1259 1.1 christos #endif
1260 1.1 christos "ei",OPC_ei,0,{CLASS_IMM+(ARG_IMM2),},
1261 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_01II,0,0,0,0,0,},1,2,45},
1262 1.1 christos
1263 1.1 christos /* 0010 1101 ssN0 dddd *** ex rd,@rs */
1264 1.1 christos {
1265 1.1 christos #ifdef NICENAMES
1266 1.1 christos "ex rd,@rs",16,12,0x00,
1267 1.1 christos #endif
1268 1.1 christos "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
1269 1.1 christos {CLASS_BIT+2,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46},
1270 1.1 christos
1271 1.1 christos /* 0110 1101 0000 dddd address_src *** ex rd,address_src */
1272 1.1 christos {
1273 1.1 christos #ifdef NICENAMES
1274 1.1 christos "ex rd,address_src",16,15,0x00,
1275 1.1 christos #endif
1276 1.1 christos "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
1277 1.1 christos {CLASS_BIT+6,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,46},
1278 1.1 christos
1279 1.1 christos /* 0110 1101 ssN0 dddd address_src *** ex rd,address_src(rs) */
1280 1.1 christos {
1281 1.1 christos #ifdef NICENAMES
1282 1.1 christos "ex rd,address_src(rs)",16,16,0x00,
1283 1.1 christos #endif
1284 1.1 christos "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
1285 1.1 christos {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},
1286 1.1 christos
1287 1.1 christos /* 1010 1101 ssss dddd *** ex rd,rs */
1288 1.1 christos {
1289 1.1 christos #ifdef NICENAMES
1290 1.1 christos "ex rd,rs",16,6,0x00,
1291 1.1 christos #endif
1292 1.1 christos "ex",OPC_ex,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1293 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,46},
1294 1.1 christos
1295 1.1 christos /* 0010 1100 ssN0 dddd *** exb rbd,@rs */
1296 1.1 christos {
1297 1.1 christos #ifdef NICENAMES
1298 1.1 christos "exb rbd,@rs",8,12,0x00,
1299 1.1 christos #endif
1300 1.1 christos "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
1301 1.1 christos {CLASS_BIT+2,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,47},
1302 1.1 christos
1303 1.1 christos /* 0110 1100 0000 dddd address_src *** exb rbd,address_src */
1304 1.1 christos {
1305 1.1 christos #ifdef NICENAMES
1306 1.1 christos "exb rbd,address_src",8,15,0x00,
1307 1.1 christos #endif
1308 1.1 christos "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
1309 1.1 christos {CLASS_BIT+6,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,47},
1310 1.1 christos
1311 1.1 christos /* 0110 1100 ssN0 dddd address_src *** exb rbd,address_src(rs) */
1312 1.1 christos {
1313 1.1 christos #ifdef NICENAMES
1314 1.1 christos "exb rbd,address_src(rs)",8,16,0x00,
1315 1.1 christos #endif
1316 1.1 christos "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
1317 1.1 christos {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},
1318 1.1 christos
1319 1.1 christos /* 1010 1100 ssss dddd *** exb rbd,rbs */
1320 1.1 christos {
1321 1.1 christos #ifdef NICENAMES
1322 1.1 christos "exb rbd,rbs",8,6,0x00,
1323 1.1 christos #endif
1324 1.1 christos "exb",OPC_exb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1325 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,47},
1326 1.1 christos
1327 1.1 christos /* 0000 1110 imm8 *** ext0e imm8 */
1328 1.1 christos {
1329 1.1 christos #ifdef NICENAMES
1330 1.1 christos "ext0e imm8",8,10,0x00,
1331 1.1 christos #endif
1332 1.1 christos "ext0e",OPC_ext0e,0,{CLASS_IMM+(ARG_IMM8),},
1333 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,48},
1334 1.1 christos
1335 1.1 christos /* 0000 1111 imm8 *** ext0f imm8 */
1336 1.1 christos {
1337 1.1 christos #ifdef NICENAMES
1338 1.1 christos "ext0f imm8",8,10,0x00,
1339 1.1 christos #endif
1340 1.1 christos "ext0f",OPC_ext0f,0,{CLASS_IMM+(ARG_IMM8),},
1341 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,49},
1342 1.1 christos
1343 1.1 christos /* 1000 1110 imm8 *** ext8e imm8 */
1344 1.1 christos {
1345 1.1 christos #ifdef NICENAMES
1346 1.1 christos "ext8e imm8",8,10,0x00,
1347 1.1 christos #endif
1348 1.1 christos "ext8e",OPC_ext8e,0,{CLASS_IMM+(ARG_IMM8),},
1349 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,50},
1350 1.1 christos
1351 1.1 christos /* 1000 1111 imm8 *** ext8f imm8 */
1352 1.1 christos {
1353 1.1 christos #ifdef NICENAMES
1354 1.1 christos "ext8f imm8",8,10,0x00,
1355 1.1 christos #endif
1356 1.1 christos "ext8f",OPC_ext8f,0,{CLASS_IMM+(ARG_IMM8),},
1357 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,51},
1358 1.1 christos
1359 1.1 christos /* 1011 0001 dddd 1010 *** exts rrd */
1360 1.1 christos {
1361 1.1 christos #ifdef NICENAMES
1362 1.1 christos "exts rrd",16,11,0x00,
1363 1.1 christos #endif
1364 1.1 christos "exts",OPC_exts,0,{CLASS_REG_LONG+(ARG_RD),},
1365 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0xa,0,0,0,0,0,},1,2,52},
1366 1.1 christos
1367 1.1 christos /* 1011 0001 dddd 0000 *** extsb rd */
1368 1.1 christos {
1369 1.1 christos #ifdef NICENAMES
1370 1.1 christos "extsb rd",8,11,0x00,
1371 1.1 christos #endif
1372 1.1 christos "extsb",OPC_extsb,0,{CLASS_REG_WORD+(ARG_RD),},
1373 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+0,0,0,0,0,0,},1,2,53},
1374 1.1 christos
1375 1.1 christos /* 1011 0001 dddd 0111 *** extsl rqd */
1376 1.1 christos {
1377 1.1 christos #ifdef NICENAMES
1378 1.1 christos "extsl rqd",32,11,0x00,
1379 1.1 christos #endif
1380 1.1 christos "extsl",OPC_extsl,0,{CLASS_REG_QUAD+(ARG_RD),},
1381 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+1,CLASS_REG+(ARG_RD),CLASS_BIT+7,0,0,0,0,0,},1,2,54},
1382 1.1 christos
1383 1.1 christos /* 0111 1010 0000 0000 *** halt */
1384 1.1 christos {
1385 1.1 christos #ifdef NICENAMES
1386 1.1 christos "halt",16,8,0x00,
1387 1.1 christos #endif
1388 1.1 christos "halt",OPC_halt,0,{0},
1389 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xa,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,55},
1390 1.1 christos
1391 1.1 christos /* 0011 1101 ssss dddd *** in rd,@ri */
1392 1.1 christos {
1393 1.1 christos #ifdef NICENAMES
1394 1.1 christos "in rd,@ri",16,10,0x00,
1395 1.1 christos #endif
1396 1.1 christos "in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IRO+(ARG_RS),},
1397 1.1 christos {CLASS_BIT+3,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,56},
1398 1.1 christos
1399 1.1 christos /* 0011 1011 dddd 0100 imm16 *** in rd,imm16 */
1400 1.1 christos {
1401 1.1 christos #ifdef NICENAMES
1402 1.1 christos "in rd,imm16",16,12,0x00,
1403 1.1 christos #endif
1404 1.1 christos "in",OPC_in,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1405 1.1 christos {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,56},
1406 1.1 christos
1407 1.1 christos /* 0011 1100 ssss dddd *** inb rbd,@ri */
1408 1.1 christos {
1409 1.1 christos #ifdef NICENAMES
1410 1.1 christos "inb rbd,@ri",8,12,0x00,
1411 1.1 christos #endif
1412 1.1 christos "inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IRO+(ARG_RS),},
1413 1.1 christos {CLASS_BIT+3,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,57},
1414 1.1 christos
1415 1.1 christos /* 0011 1010 dddd 0100 imm16 *** inb rbd,imm16 */
1416 1.1 christos {
1417 1.1 christos #ifdef NICENAMES
1418 1.1 christos "inb rbd,imm16",8,10,0x00,
1419 1.1 christos #endif
1420 1.1 christos "inb",OPC_inb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1421 1.1 christos {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+4,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,57},
1422 1.1 christos
1423 1.1 christos /* 0010 1001 ddN0 imm4m1 *** inc @rd,imm4m1 */
1424 1.1 christos {
1425 1.1 christos #ifdef NICENAMES
1426 1.1 christos "inc @rd,imm4m1",16,11,0x1c,
1427 1.1 christos #endif
1428 1.1 christos "inc",OPC_inc,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1429 1.1 christos {CLASS_BIT+2,CLASS_BIT+9,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58},
1430 1.1 christos
1431 1.1 christos /* 0110 1001 ddN0 imm4m1 address_dst *** inc address_dst(rd),imm4m1 */
1432 1.1 christos {
1433 1.1 christos #ifdef NICENAMES
1434 1.1 christos "inc address_dst(rd),imm4m1",16,14,0x1c,
1435 1.1 christos #endif
1436 1.1 christos "inc",OPC_inc,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1437 1.1 christos {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},
1438 1.1 christos
1439 1.1 christos /* 0110 1001 0000 imm4m1 address_dst *** inc address_dst,imm4m1 */
1440 1.1 christos {
1441 1.1 christos #ifdef NICENAMES
1442 1.1 christos "inc address_dst,imm4m1",16,13,0x1c,
1443 1.1 christos #endif
1444 1.1 christos "inc",OPC_inc,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
1445 1.1 christos {CLASS_BIT+6,CLASS_BIT+9,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,58},
1446 1.1 christos
1447 1.1 christos /* 1010 1001 dddd imm4m1 *** inc rd,imm4m1 */
1448 1.1 christos {
1449 1.1 christos #ifdef NICENAMES
1450 1.1 christos "inc rd,imm4m1",16,4,0x1c,
1451 1.1 christos #endif
1452 1.1 christos "inc",OPC_inc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1453 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+9,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,58},
1454 1.1 christos
1455 1.1 christos /* 0010 1000 ddN0 imm4m1 *** incb @rd,imm4m1 */
1456 1.1 christos {
1457 1.1 christos #ifdef NICENAMES
1458 1.1 christos "incb @rd,imm4m1",8,11,0x1c,
1459 1.1 christos #endif
1460 1.1 christos "incb",OPC_incb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1461 1.1 christos {CLASS_BIT+2,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,59},
1462 1.1 christos
1463 1.1 christos /* 0110 1000 ddN0 imm4m1 address_dst *** incb address_dst(rd),imm4m1 */
1464 1.1 christos {
1465 1.1 christos #ifdef NICENAMES
1466 1.1 christos "incb address_dst(rd),imm4m1",8,14,0x1c,
1467 1.1 christos #endif
1468 1.1 christos "incb",OPC_incb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1469 1.1 christos {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},
1470 1.1 christos
1471 1.1 christos /* 0110 1000 0000 imm4m1 address_dst *** incb address_dst,imm4m1 */
1472 1.1 christos {
1473 1.1 christos #ifdef NICENAMES
1474 1.1 christos "incb address_dst,imm4m1",8,13,0x1c,
1475 1.1 christos #endif
1476 1.1 christos "incb",OPC_incb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4M1),},
1477 1.1 christos {CLASS_BIT+6,CLASS_BIT+8,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4M1),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,59},
1478 1.1 christos
1479 1.1 christos /* 1010 1000 dddd imm4m1 *** incb rbd,imm4m1 */
1480 1.1 christos {
1481 1.1 christos #ifdef NICENAMES
1482 1.1 christos "incb rbd,imm4m1",8,4,0x1c,
1483 1.1 christos #endif
1484 1.1 christos "incb",OPC_incb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4M1),},
1485 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+8,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4M1),0,0,0,0,0,},2,2,59},
1486 1.1 christos
1487 1.1 christos /* 0011 1011 ssss 1000 0000 aaaa ddN0 1000 *** ind @rd,@ri,ra */
1488 1.1 christos {
1489 1.1 christos #ifdef NICENAMES
1490 1.1 christos "ind @rd,@ri,ra",16,21,0x04,
1491 1.1 christos #endif
1492 1.1 christos "ind",OPC_ind,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1493 1.1 christos {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},
1494 1.1 christos
1495 1.1 christos /* 0011 1010 ssss 1000 0000 aaaa ddN0 1000 *** indb @rd,@ri,ra */
1496 1.1 christos {
1497 1.1 christos #ifdef NICENAMES
1498 1.1 christos "indb @rd,@ri,ra",8,21,0x04,
1499 1.1 christos #endif
1500 1.1 christos "indb",OPC_indb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1501 1.1 christos {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},
1502 1.1 christos
1503 1.1 christos /* 0011 1011 ssss 1000 0000 aaaa ddN0 0000 *** indr @rd,@ri,ra */
1504 1.1 christos {
1505 1.1 christos #ifdef NICENAMES
1506 1.1 christos "indr @rd,@ri,ra",16,11,0x04,
1507 1.1 christos #endif
1508 1.1 christos "indr",OPC_indr,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1509 1.1 christos {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},
1510 1.1 christos
1511 1.1 christos /* 0011 1010 ssss 1000 0000 aaaa ddN0 0000 *** indrb @rd,@ri,ra */
1512 1.1 christos {
1513 1.1 christos #ifdef NICENAMES
1514 1.1 christos "indrb @rd,@ri,ra",8,11,0x04,
1515 1.1 christos #endif
1516 1.1 christos "indrb",OPC_indrb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1517 1.1 christos {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},
1518 1.1 christos
1519 1.1 christos /* 0011 1011 ssss 0000 0000 aaaa ddN0 1000 *** ini @rd,@ri,ra */
1520 1.1 christos {
1521 1.1 christos #ifdef NICENAMES
1522 1.1 christos "ini @rd,@ri,ra",16,21,0x04,
1523 1.1 christos #endif
1524 1.1 christos "ini",OPC_ini,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1525 1.1 christos {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},
1526 1.1 christos
1527 1.1 christos /* 0011 1010 ssss 0000 0000 aaaa ddN0 1000 *** inib @rd,@ri,ra */
1528 1.1 christos {
1529 1.1 christos #ifdef NICENAMES
1530 1.1 christos "inib @rd,@ri,ra",8,21,0x04,
1531 1.1 christos #endif
1532 1.1 christos "inib",OPC_inib,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1533 1.1 christos {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},
1534 1.1 christos
1535 1.1 christos /* 0011 1011 ssss 0000 0000 aaaa ddN0 0000 *** inir @rd,@ri,ra */
1536 1.1 christos {
1537 1.1 christos #ifdef NICENAMES
1538 1.1 christos "inir @rd,@ri,ra",16,11,0x04,
1539 1.1 christos #endif
1540 1.1 christos "inir",OPC_inir,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1541 1.1 christos {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},
1542 1.1 christos
1543 1.1 christos /* 0011 1010 ssss 0000 0000 aaaa ddN0 0000 *** inirb @rd,@ri,ra */
1544 1.1 christos {
1545 1.1 christos #ifdef NICENAMES
1546 1.1 christos "inirb @rd,@ri,ra",8,11,0x04,
1547 1.1 christos #endif
1548 1.1 christos "inirb",OPC_inirb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
1549 1.1 christos {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},
1550 1.1 christos
1551 1.1 christos /* 0111 1011 0000 0000 *** iret */
1552 1.1 christos {
1553 1.1 christos #ifdef NICENAMES
1554 1.1 christos "iret",16,13,0x3f,
1555 1.1 christos #endif
1556 1.1 christos "iret",OPC_iret,0,{0},
1557 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0,0,0,0,0,0,},0,2,68},
1558 1.1 christos
1559 1.1 christos /* 0001 1110 ddN0 cccc *** jp cc,@rd */
1560 1.1 christos {
1561 1.1 christos #ifdef NICENAMES
1562 1.1 christos "jp cc,@rd",16,10,0x00,
1563 1.1 christos #endif
1564 1.1 christos "jp",OPC_jp,0,{CLASS_CC,CLASS_IR+(ARG_RD),},
1565 1.1 christos {CLASS_BIT+1,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,69},
1566 1.1 christos
1567 1.1 christos /* 0101 1110 0000 cccc address_dst *** jp cc,address_dst */
1568 1.1 christos {
1569 1.1 christos #ifdef NICENAMES
1570 1.1 christos "jp cc,address_dst",16,7,0x00,
1571 1.1 christos #endif
1572 1.1 christos "jp",OPC_jp,0,{CLASS_CC,CLASS_DA+(ARG_DST),},
1573 1.1 christos {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69},
1574 1.1 christos
1575 1.1 christos /* 0101 1110 ddN0 cccc address_dst *** jp cc,address_dst(rd) */
1576 1.1 christos {
1577 1.1 christos #ifdef NICENAMES
1578 1.1 christos "jp cc,address_dst(rd)",16,8,0x00,
1579 1.1 christos #endif
1580 1.1 christos "jp",OPC_jp,0,{CLASS_CC,CLASS_X+(ARG_RD),},
1581 1.1 christos {CLASS_BIT+5,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_CC,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,69},
1582 1.1 christos
1583 1.1 christos /* 1110 cccc disp8 *** jr cc,disp8 */
1584 1.1 christos {
1585 1.1 christos #ifdef NICENAMES
1586 1.1 christos "jr cc,disp8",16,6,0x00,
1587 1.1 christos #endif
1588 1.1 christos "jr",OPC_jr,0,{CLASS_CC,CLASS_DISP,},
1589 1.1 christos {CLASS_BIT+0xe,CLASS_CC,CLASS_DISP8,0,0,0,0,0,0,},2,2,70},
1590 1.1 christos
1591 1.1 christos /* 0000 1101 ddN0 0101 imm16 *** ld @rd,imm16 */
1592 1.1 christos {
1593 1.1 christos #ifdef NICENAMES
1594 1.1 christos "ld @rd,imm16",16,7,0x00,
1595 1.1 christos #endif
1596 1.1 christos "ld",OPC_ld,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1597 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,71},
1598 1.1 christos
1599 1.1 christos /* 0010 1111 ddN0 ssss *** ld @rd,rs */
1600 1.1 christos {
1601 1.1 christos #ifdef NICENAMES
1602 1.1 christos "ld @rd,rs",16,8,0x00,
1603 1.1 christos #endif
1604 1.1 christos "ld",OPC_ld,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1605 1.1 christos {CLASS_BIT+2,CLASS_BIT+0xf,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,71},
1606 1.1 christos
1607 1.1 christos /* 0100 1101 ddN0 0101 address_dst imm16 *** ld address_dst(rd),imm16 */
1608 1.1 christos {
1609 1.1 christos #ifdef NICENAMES
1610 1.1 christos "ld address_dst(rd),imm16",16,15,0x00,
1611 1.1 christos #endif
1612 1.1 christos "ld",OPC_ld,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1613 1.1 christos {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},
1614 1.1 christos
1615 1.1 christos /* 0110 1111 ddN0 ssss address_dst *** ld address_dst(rd),rs */
1616 1.1 christos {
1617 1.1 christos #ifdef NICENAMES
1618 1.1 christos "ld address_dst(rd),rs",16,12,0x00,
1619 1.1 christos #endif
1620 1.1 christos "ld",OPC_ld,0,{CLASS_X+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1621 1.1 christos {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},
1622 1.1 christos
1623 1.1 christos /* 0100 1101 0000 0101 address_dst imm16 *** ld address_dst,imm16 */
1624 1.1 christos {
1625 1.1 christos #ifdef NICENAMES
1626 1.1 christos "ld address_dst,imm16",16,14,0x00,
1627 1.1 christos #endif
1628 1.1 christos "ld",OPC_ld,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM16),},
1629 1.1 christos {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},
1630 1.1 christos
1631 1.1 christos /* 0110 1111 0000 ssss address_dst *** ld address_dst,rs */
1632 1.1 christos {
1633 1.1 christos #ifdef NICENAMES
1634 1.1 christos "ld address_dst,rs",16,11,0x00,
1635 1.1 christos #endif
1636 1.1 christos "ld",OPC_ld,0,{CLASS_DA+(ARG_DST),CLASS_REG_WORD+(ARG_RS),},
1637 1.1 christos {CLASS_BIT+6,CLASS_BIT+0xf,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,71},
1638 1.1 christos
1639 1.1 christos /* 0011 0011 ddN0 ssss imm16 *** ld rd(imm16),rs */
1640 1.1 christos {
1641 1.1 christos #ifdef NICENAMES
1642 1.1 christos "ld rd(imm16),rs",16,14,0x00,
1643 1.1 christos #endif
1644 1.1 christos "ld",OPC_ld,0,{CLASS_BA+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1645 1.1 christos {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},
1646 1.1 christos
1647 1.1 christos /* 0111 0011 ddN0 ssss 0000 xxxx 0000 0000 *** ld rd(rx),rs */
1648 1.1 christos {
1649 1.1 christos #ifdef NICENAMES
1650 1.1 christos "ld rd(rx),rs",16,14,0x00,
1651 1.1 christos #endif
1652 1.1 christos "ld",OPC_ld,0,{CLASS_BX+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1653 1.1 christos {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},
1654 1.1 christos
1655 1.1 christos /* 0010 0001 ssN0 dddd *** ld rd,@rs */
1656 1.1 christos {
1657 1.1 christos #ifdef NICENAMES
1658 1.1 christos "ld rd,@rs",16,7,0x00,
1659 1.1 christos #endif
1660 1.1 christos "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
1661 1.1 christos {CLASS_BIT+2,CLASS_BIT+1,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,71},
1662 1.1 christos
1663 1.1 christos /* 0110 0001 0000 dddd address_src *** ld rd,address_src */
1664 1.1 christos {
1665 1.1 christos #ifdef NICENAMES
1666 1.1 christos "ld rd,address_src",16,9,0x00,
1667 1.1 christos #endif
1668 1.1 christos "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
1669 1.1 christos {CLASS_BIT+6,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,71},
1670 1.1 christos
1671 1.1 christos /* 0110 0001 ssN0 dddd address_src *** ld rd,address_src(rs) */
1672 1.1 christos {
1673 1.1 christos #ifdef NICENAMES
1674 1.1 christos "ld rd,address_src(rs)",16,10,0x00,
1675 1.1 christos #endif
1676 1.1 christos "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
1677 1.1 christos {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},
1678 1.1 christos
1679 1.1 christos /* 0010 0001 0000 dddd imm16 *** ld rd,imm16 */
1680 1.1 christos {
1681 1.1 christos #ifdef NICENAMES
1682 1.1 christos "ld rd,imm16",16,7,0x00,
1683 1.1 christos #endif
1684 1.1 christos "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
1685 1.1 christos {CLASS_BIT+2,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,71},
1686 1.1 christos
1687 1.1 christos /* 1010 0001 ssss dddd *** ld rd,rs */
1688 1.1 christos {
1689 1.1 christos #ifdef NICENAMES
1690 1.1 christos "ld rd,rs",16,3,0x00,
1691 1.1 christos #endif
1692 1.1 christos "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
1693 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+1,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,71},
1694 1.1 christos
1695 1.1 christos /* 0011 0001 ssN0 dddd imm16 *** ld rd,rs(imm16) */
1696 1.1 christos {
1697 1.1 christos #ifdef NICENAMES
1698 1.1 christos "ld rd,rs(imm16)",16,14,0x00,
1699 1.1 christos #endif
1700 1.1 christos "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_BA+(ARG_RS),},
1701 1.1 christos {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},
1702 1.1 christos
1703 1.1 christos /* 0111 0001 ssN0 dddd 0000 xxxx 0000 0000 *** ld rd,rs(rx) */
1704 1.1 christos {
1705 1.1 christos #ifdef NICENAMES
1706 1.1 christos "ld rd,rs(rx)",16,14,0x00,
1707 1.1 christos #endif
1708 1.1 christos "ld",OPC_ld,0,{CLASS_REG_WORD+(ARG_RD),CLASS_BX+(ARG_RS),},
1709 1.1 christos {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},
1710 1.1 christos
1711 1.1 christos /* 0111 0110 0000 dddd address_src *** lda prd,address_src */
1712 1.1 christos {
1713 1.1 christos #ifdef NICENAMES
1714 1.1 christos "lda prd,address_src",16,12,0x00,
1715 1.1 christos #endif
1716 1.1 christos "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_DA+(ARG_SRC),},
1717 1.1 christos {CLASS_BIT+7,CLASS_BIT+6,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,72},
1718 1.1 christos
1719 1.1 christos /* 0111 0110 ssN0 dddd address_src *** lda prd,address_src(rs) */
1720 1.1 christos {
1721 1.1 christos #ifdef NICENAMES
1722 1.1 christos "lda prd,address_src(rs)",16,13,0x00,
1723 1.1 christos #endif
1724 1.1 christos "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_X+(ARG_RS),},
1725 1.1 christos {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},
1726 1.1 christos
1727 1.1 christos /* 0011 0100 ssN0 dddd imm16 *** lda prd,rs(imm16) */
1728 1.1 christos {
1729 1.1 christos #ifdef NICENAMES
1730 1.1 christos "lda prd,rs(imm16)",16,15,0x00,
1731 1.1 christos #endif
1732 1.1 christos "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_BA+(ARG_RS),},
1733 1.1 christos {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},
1734 1.1 christos
1735 1.1 christos /* 0111 0100 ssN0 dddd 0000 xxxx 0000 0000 *** lda prd,rs(rx) */
1736 1.1 christos {
1737 1.1 christos #ifdef NICENAMES
1738 1.1 christos "lda prd,rs(rx)",16,15,0x00,
1739 1.1 christos #endif
1740 1.1 christos "lda",OPC_lda,0,{CLASS_PR+(ARG_RD),CLASS_BX+(ARG_RS),},
1741 1.1 christos {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},
1742 1.1 christos
1743 1.1 christos /* 0011 0100 0000 dddd disp16 *** ldar prd,disp16 */
1744 1.1 christos {
1745 1.1 christos #ifdef NICENAMES
1746 1.1 christos "ldar prd,disp16",16,15,0x00,
1747 1.1 christos #endif
1748 1.1 christos "ldar",OPC_ldar,0,{CLASS_PR+(ARG_RD),CLASS_DISP,},
1749 1.1 christos {CLASS_BIT+3,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,73},
1750 1.1 christos
1751 1.1 christos /* 0000 1100 ddN0 0101 imm8 imm8 *** ldb @rd,imm8 */
1752 1.1 christos {
1753 1.1 christos #ifdef NICENAMES
1754 1.1 christos "ldb @rd,imm8",8,7,0x00,
1755 1.1 christos #endif
1756 1.1 christos "ldb",OPC_ldb,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
1757 1.1 christos {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},
1758 1.1 christos
1759 1.1 christos /* 0010 1110 ddN0 ssss *** ldb @rd,rbs */
1760 1.1 christos {
1761 1.1 christos #ifdef NICENAMES
1762 1.1 christos "ldb @rd,rbs",8,8,0x00,
1763 1.1 christos #endif
1764 1.1 christos "ldb",OPC_ldb,0,{CLASS_IR+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1765 1.1 christos {CLASS_BIT+2,CLASS_BIT+0xe,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,74},
1766 1.1 christos
1767 1.1 christos /* 0100 1100 ddN0 0101 address_dst imm8 imm8 *** ldb address_dst(rd),imm8 */
1768 1.1 christos {
1769 1.1 christos #ifdef NICENAMES
1770 1.1 christos "ldb address_dst(rd),imm8",8,15,0x00,
1771 1.1 christos #endif
1772 1.1 christos "ldb",OPC_ldb,0,{CLASS_X+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
1773 1.1 christos {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},
1774 1.1 christos
1775 1.1 christos /* 0110 1110 ddN0 ssss address_dst *** ldb address_dst(rd),rbs */
1776 1.1 christos {
1777 1.1 christos #ifdef NICENAMES
1778 1.1 christos "ldb address_dst(rd),rbs",8,12,0x00,
1779 1.1 christos #endif
1780 1.1 christos "ldb",OPC_ldb,0,{CLASS_X+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1781 1.1 christos {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},
1782 1.1 christos
1783 1.1 christos /* 0100 1100 0000 0101 address_dst imm8 imm8 *** ldb address_dst,imm8 */
1784 1.1 christos {
1785 1.1 christos #ifdef NICENAMES
1786 1.1 christos "ldb address_dst,imm8",8,14,0x00,
1787 1.1 christos #endif
1788 1.1 christos "ldb",OPC_ldb,0,{CLASS_DA+(ARG_DST),CLASS_IMM+(ARG_IMM8),},
1789 1.1 christos {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},
1790 1.1 christos
1791 1.1 christos /* 0110 1110 0000 ssss address_dst *** ldb address_dst,rbs */
1792 1.1 christos {
1793 1.1 christos #ifdef NICENAMES
1794 1.1 christos "ldb address_dst,rbs",8,11,0x00,
1795 1.1 christos #endif
1796 1.1 christos "ldb",OPC_ldb,0,{CLASS_DA+(ARG_DST),CLASS_REG_BYTE+(ARG_RS),},
1797 1.1 christos {CLASS_BIT+6,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,74},
1798 1.1 christos
1799 1.1 christos /* 0010 0000 ssN0 dddd *** ldb rbd,@rs */
1800 1.1 christos {
1801 1.1 christos #ifdef NICENAMES
1802 1.1 christos "ldb rbd,@rs",8,7,0x00,
1803 1.1 christos #endif
1804 1.1 christos "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
1805 1.1 christos {CLASS_BIT+2,CLASS_BIT+0,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,74},
1806 1.1 christos
1807 1.1 christos /* 0110 0000 0000 dddd address_src *** ldb rbd,address_src */
1808 1.1 christos {
1809 1.1 christos #ifdef NICENAMES
1810 1.1 christos "ldb rbd,address_src",8,9,0x00,
1811 1.1 christos #endif
1812 1.1 christos "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
1813 1.1 christos {CLASS_BIT+6,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,74},
1814 1.1 christos
1815 1.1 christos /* 0110 0000 ssN0 dddd address_src *** ldb rbd,address_src(rs) */
1816 1.1 christos {
1817 1.1 christos #ifdef NICENAMES
1818 1.1 christos "ldb rbd,address_src(rs)",8,10,0x00,
1819 1.1 christos #endif
1820 1.1 christos "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
1821 1.1 christos {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},
1822 1.1 christos
1823 1.1 christos /* 1100 dddd imm8 *** ldb rbd,imm8 */
1824 1.1 christos {
1825 1.1 christos #ifdef NICENAMES
1826 1.1 christos "ldb rbd,imm8",8,5,0x00,
1827 1.1 christos #endif
1828 1.1 christos "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
1829 1.1 christos {CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},2,2,74},
1830 1.1 christos
1831 1.1 christos /* 0010 0000 0000 dddd imm8 imm8 *** ldb rbd,imm8 */
1832 1.1 christos {
1833 1.1 christos #ifdef NICENAMES
1834 1.1 christos "ldb rbd,imm8",8,7,0x00,
1835 1.1 christos #endif
1836 1.1 christos "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
1837 1.1 christos {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},
1838 1.1 christos
1839 1.1 christos /* 1010 0000 ssss dddd *** ldb rbd,rbs */
1840 1.1 christos {
1841 1.1 christos #ifdef NICENAMES
1842 1.1 christos "ldb rbd,rbs",8,3,0x00,
1843 1.1 christos #endif
1844 1.1 christos "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1845 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,74},
1846 1.1 christos
1847 1.1 christos /* 0011 0000 ssN0 dddd imm16 *** ldb rbd,rs(imm16) */
1848 1.1 christos {
1849 1.1 christos #ifdef NICENAMES
1850 1.1 christos "ldb rbd,rs(imm16)",8,14,0x00,
1851 1.1 christos #endif
1852 1.1 christos "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_BA+(ARG_RS),},
1853 1.1 christos {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},
1854 1.1 christos
1855 1.1 christos /* 0111 0000 ssN0 dddd 0000 xxxx 0000 0000 *** ldb rbd,rs(rx) */
1856 1.1 christos {
1857 1.1 christos #ifdef NICENAMES
1858 1.1 christos "ldb rbd,rs(rx)",8,14,0x00,
1859 1.1 christos #endif
1860 1.1 christos "ldb",OPC_ldb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_BX+(ARG_RS),},
1861 1.1 christos {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},
1862 1.1 christos
1863 1.1 christos /* 0011 0010 ddN0 ssss imm16 *** ldb rd(imm16),rbs */
1864 1.1 christos {
1865 1.1 christos #ifdef NICENAMES
1866 1.1 christos "ldb rd(imm16),rbs",8,14,0x00,
1867 1.1 christos #endif
1868 1.1 christos "ldb",OPC_ldb,0,{CLASS_BA+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1869 1.1 christos {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},
1870 1.1 christos
1871 1.1 christos /* 0111 0010 ddN0 ssss 0000 xxxx 0000 0000 *** ldb rd(rx),rbs */
1872 1.1 christos {
1873 1.1 christos #ifdef NICENAMES
1874 1.1 christos "ldb rd(rx),rbs",8,14,0x00,
1875 1.1 christos #endif
1876 1.1 christos "ldb",OPC_ldb,0,{CLASS_BX+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
1877 1.1 christos {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},
1878 1.1 christos
1879 1.1 christos /* 0111 1101 ssss 1ccc *** ldctl ctrl,rs */
1880 1.1 christos {
1881 1.1 christos #ifdef NICENAMES
1882 1.1 christos "ldctl ctrl,rs",32,7,0x00,
1883 1.1 christos #endif
1884 1.1 christos "ldctl",OPC_ldctl,0,{CLASS_CTRL,CLASS_REG_WORD+(ARG_RS),},
1885 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RS),CLASS_1CCC,0,0,0,0,0,},2,2,75},
1886 1.1 christos
1887 1.1 christos /* 0111 1101 dddd 0ccc *** ldctl rd,ctrl */
1888 1.1 christos {
1889 1.1 christos #ifdef NICENAMES
1890 1.1 christos "ldctl rd,ctrl",32,7,0x00,
1891 1.1 christos #endif
1892 1.1 christos "ldctl",OPC_ldctl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_CTRL,},
1893 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_0CCC,0,0,0,0,0,},2,2,75},
1894 1.1 christos
1895 1.1 christos /* 1000 1100 ssss 1001 *** ldctlb ctrl,rbs */
1896 1.1 christos {
1897 1.1 christos #ifdef NICENAMES
1898 1.1 christos "ldctlb ctrl,rbs",32,7,0x3f,
1899 1.1 christos #endif
1900 1.1 christos "ldctlb",OPC_ldctlb,0,{CLASS_CTRL,CLASS_REG_BYTE+(ARG_RS),},
1901 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RS),CLASS_BIT+9,0,0,0,0,0,},2,2,76},
1902 1.1 christos
1903 1.1 christos /* 1000 1100 dddd 0001 *** ldctlb rbd,ctrl */
1904 1.1 christos {
1905 1.1 christos #ifdef NICENAMES
1906 1.1 christos "ldctlb rbd,ctrl",32,7,0x00,
1907 1.1 christos #endif
1908 1.1 christos "ldctlb",OPC_ldctlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_CTRL,},
1909 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+1,0,0,0,0,0,},2,2,76},
1910 1.1 christos
1911 1.1 christos /* 1011 1011 ssN0 1001 0000 rrrr ddN0 1000 *** ldd @rd,@rs,rr */
1912 1.1 christos {
1913 1.1 christos #ifdef NICENAMES
1914 1.1 christos "ldd @rd,@rs,rr",16,11,0x04,
1915 1.1 christos #endif
1916 1.1 christos "ldd",OPC_ldd,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1917 1.1 christos {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},
1918 1.1 christos
1919 1.1 christos /* 1011 1010 ssN0 1001 0000 rrrr ddN0 1000 *** lddb @rd,@rs,rr */
1920 1.1 christos {
1921 1.1 christos #ifdef NICENAMES
1922 1.1 christos "lddb @rd,@rs,rr",8,11,0x04,
1923 1.1 christos #endif
1924 1.1 christos "lddb",OPC_lddb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1925 1.1 christos {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},
1926 1.1 christos
1927 1.1 christos /* 1011 1011 ssN0 1001 0000 rrrr ddN0 0000 *** lddr @rd,@rs,rr */
1928 1.1 christos {
1929 1.1 christos #ifdef NICENAMES
1930 1.1 christos "lddr @rd,@rs,rr",16,11,0x04,
1931 1.1 christos #endif
1932 1.1 christos "lddr",OPC_lddr,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1933 1.1 christos {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},
1934 1.1 christos
1935 1.1 christos /* 1011 1010 ssN0 1001 0000 rrrr ddN0 0000 *** lddrb @rd,@rs,rr */
1936 1.1 christos {
1937 1.1 christos #ifdef NICENAMES
1938 1.1 christos "lddrb @rd,@rs,rr",8,11,0x04,
1939 1.1 christos #endif
1940 1.1 christos "lddrb",OPC_lddrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1941 1.1 christos {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},
1942 1.1 christos
1943 1.1 christos /* 1011 1011 ssN0 0001 0000 rrrr ddN0 1000 *** ldi @rd,@rs,rr */
1944 1.1 christos {
1945 1.1 christos #ifdef NICENAMES
1946 1.1 christos "ldi @rd,@rs,rr",16,11,0x04,
1947 1.1 christos #endif
1948 1.1 christos "ldi",OPC_ldi,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1949 1.1 christos {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},
1950 1.1 christos
1951 1.1 christos /* 1011 1010 ssN0 0001 0000 rrrr ddN0 1000 *** ldib @rd,@rs,rr */
1952 1.1 christos {
1953 1.1 christos #ifdef NICENAMES
1954 1.1 christos "ldib @rd,@rs,rr",8,11,0x04,
1955 1.1 christos #endif
1956 1.1 christos "ldib",OPC_ldib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1957 1.1 christos {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},
1958 1.1 christos
1959 1.1 christos /* 1011 1011 ssN0 0001 0000 rrrr ddN0 0000 *** ldir @rd,@rs,rr */
1960 1.1 christos {
1961 1.1 christos #ifdef NICENAMES
1962 1.1 christos "ldir @rd,@rs,rr",16,11,0x04,
1963 1.1 christos #endif
1964 1.1 christos "ldir",OPC_ldir,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1965 1.1 christos {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},
1966 1.1 christos
1967 1.1 christos /* 1011 1010 ssN0 0001 0000 rrrr ddN0 0000 *** ldirb @rd,@rs,rr */
1968 1.1 christos {
1969 1.1 christos #ifdef NICENAMES
1970 1.1 christos "ldirb @rd,@rs,rr",8,11,0x04,
1971 1.1 christos #endif
1972 1.1 christos "ldirb",OPC_ldirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
1973 1.1 christos {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},
1974 1.1 christos
1975 1.1 christos /* 1011 1101 dddd imm4 *** ldk rd,imm4 */
1976 1.1 christos {
1977 1.1 christos #ifdef NICENAMES
1978 1.1 christos "ldk rd,imm4",16,5,0x00,
1979 1.1 christos #endif
1980 1.1 christos "ldk",OPC_ldk,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
1981 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,85},
1982 1.1 christos
1983 1.1 christos /* 0001 1101 ddN0 ssss *** ldl @rd,rrs */
1984 1.1 christos {
1985 1.1 christos #ifdef NICENAMES
1986 1.1 christos "ldl @rd,rrs",32,11,0x00,
1987 1.1 christos #endif
1988 1.1 christos "ldl",OPC_ldl,0,{CLASS_IR+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
1989 1.1 christos {CLASS_BIT+1,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,86},
1990 1.1 christos
1991 1.1 christos /* 0101 1101 ddN0 ssss address_dst *** ldl address_dst(rd),rrs */
1992 1.1 christos {
1993 1.1 christos #ifdef NICENAMES
1994 1.1 christos "ldl address_dst(rd),rrs",32,14,0x00,
1995 1.1 christos #endif
1996 1.1 christos "ldl",OPC_ldl,0,{CLASS_X+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
1997 1.1 christos {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},
1998 1.1 christos
1999 1.1 christos /* 0101 1101 0000 ssss address_dst *** ldl address_dst,rrs */
2000 1.1 christos {
2001 1.1 christos #ifdef NICENAMES
2002 1.1 christos "ldl address_dst,rrs",32,15,0x00,
2003 1.1 christos #endif
2004 1.1 christos "ldl",OPC_ldl,0,{CLASS_DA+(ARG_DST),CLASS_REG_LONG+(ARG_RS),},
2005 1.1 christos {CLASS_BIT+5,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,86},
2006 1.1 christos
2007 1.1 christos /* 0011 0111 ddN0 ssss imm16 *** ldl rd(imm16),rrs */
2008 1.1 christos {
2009 1.1 christos #ifdef NICENAMES
2010 1.1 christos "ldl rd(imm16),rrs",32,17,0x00,
2011 1.1 christos #endif
2012 1.1 christos "ldl",OPC_ldl,0,{CLASS_BA+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
2013 1.1 christos {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},
2014 1.1 christos
2015 1.1 christos /* 0111 0111 ddN0 ssss 0000 xxxx 0000 0000 *** ldl rd(rx),rrs */
2016 1.1 christos {
2017 1.1 christos #ifdef NICENAMES
2018 1.1 christos "ldl rd(rx),rrs",32,17,0x00,
2019 1.1 christos #endif
2020 1.1 christos "ldl",OPC_ldl,0,{CLASS_BX+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
2021 1.1 christos {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},
2022 1.1 christos
2023 1.1 christos /* 0001 0100 ssN0 dddd *** ldl rrd,@rs */
2024 1.1 christos {
2025 1.1 christos #ifdef NICENAMES
2026 1.1 christos "ldl rrd,@rs",32,11,0x00,
2027 1.1 christos #endif
2028 1.1 christos "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
2029 1.1 christos {CLASS_BIT+1,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,86},
2030 1.1 christos
2031 1.1 christos /* 0101 0100 0000 dddd address_src *** ldl rrd,address_src */
2032 1.1 christos {
2033 1.1 christos #ifdef NICENAMES
2034 1.1 christos "ldl rrd,address_src",32,12,0x00,
2035 1.1 christos #endif
2036 1.1 christos "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
2037 1.1 christos {CLASS_BIT+5,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,86},
2038 1.1 christos
2039 1.1 christos /* 0101 0100 ssN0 dddd address_src *** ldl rrd,address_src(rs) */
2040 1.1 christos {
2041 1.1 christos #ifdef NICENAMES
2042 1.1 christos "ldl rrd,address_src(rs)",32,13,0x00,
2043 1.1 christos #endif
2044 1.1 christos "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
2045 1.1 christos {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},
2046 1.1 christos
2047 1.1 christos /* 0001 0100 0000 dddd imm32 *** ldl rrd,imm32 */
2048 1.1 christos {
2049 1.1 christos #ifdef NICENAMES
2050 1.1 christos "ldl rrd,imm32",32,11,0x00,
2051 1.1 christos #endif
2052 1.1 christos "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
2053 1.1 christos {CLASS_BIT+1,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,86},
2054 1.1 christos
2055 1.1 christos /* 1001 0100 ssss dddd *** ldl rrd,rrs */
2056 1.1 christos {
2057 1.1 christos #ifdef NICENAMES
2058 1.1 christos "ldl rrd,rrs",32,5,0x00,
2059 1.1 christos #endif
2060 1.1 christos "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
2061 1.1 christos {CLASS_BIT+9,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,86},
2062 1.1 christos
2063 1.1 christos /* 0011 0101 ssN0 dddd imm16 *** ldl rrd,rs(imm16) */
2064 1.1 christos {
2065 1.1 christos #ifdef NICENAMES
2066 1.1 christos "ldl rrd,rs(imm16)",32,17,0x00,
2067 1.1 christos #endif
2068 1.1 christos "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_BA+(ARG_RS),},
2069 1.1 christos {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},
2070 1.1 christos
2071 1.1 christos /* 0111 0101 ssN0 dddd 0000 xxxx 0000 0000 *** ldl rrd,rs(rx) */
2072 1.1 christos {
2073 1.1 christos #ifdef NICENAMES
2074 1.1 christos "ldl rrd,rs(rx)",32,17,0x00,
2075 1.1 christos #endif
2076 1.1 christos "ldl",OPC_ldl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_BX+(ARG_RS),},
2077 1.1 christos {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},
2078 1.1 christos
2079 1.1 christos /* 0001 1100 ddN0 1001 0000 ssss 0000 imm4m1 *** ldm @rd,rs,n */
2080 1.1 christos {
2081 1.1 christos #ifdef NICENAMES
2082 1.1 christos "ldm @rd,rs,n",16,11,0x00,
2083 1.1 christos #endif
2084 1.1 christos "ldm",OPC_ldm,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
2085 1.1 christos {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},
2086 1.1 christos
2087 1.1 christos /* 0101 1100 ddN0 1001 0000 ssss 0000 imm4m1 address_dst *** ldm address_dst(rd),rs,n */
2088 1.1 christos {
2089 1.1 christos #ifdef NICENAMES
2090 1.1 christos "ldm address_dst(rd),rs,n",16,15,0x00,
2091 1.1 christos #endif
2092 1.1 christos "ldm",OPC_ldm,0,{CLASS_X+(ARG_RD),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
2093 1.1 christos {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},
2094 1.1 christos
2095 1.1 christos /* 0101 1100 0000 1001 0000 ssss 0000 imm4m1 address_dst *** ldm address_dst,rs,n */
2096 1.1 christos {
2097 1.1 christos #ifdef NICENAMES
2098 1.1 christos "ldm address_dst,rs,n",16,14,0x00,
2099 1.1 christos #endif
2100 1.1 christos "ldm",OPC_ldm,0,{CLASS_DA+(ARG_DST),CLASS_REG_WORD+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
2101 1.1 christos {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},
2102 1.1 christos
2103 1.1 christos /* 0001 1100 ssN0 0001 0000 dddd 0000 imm4m1 *** ldm rd,@rs,n */
2104 1.1 christos {
2105 1.1 christos #ifdef NICENAMES
2106 1.1 christos "ldm rd,@rs,n",16,11,0x00,
2107 1.1 christos #endif
2108 1.1 christos "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
2109 1.1 christos {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},
2110 1.1 christos
2111 1.1 christos /* 0101 1100 ssN0 0001 0000 dddd 0000 imm4m1 address_src *** ldm rd,address_src(rs),n */
2112 1.1 christos {
2113 1.1 christos #ifdef NICENAMES
2114 1.1 christos "ldm rd,address_src(rs),n",16,15,0x00,
2115 1.1 christos #endif
2116 1.1 christos "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),CLASS_IMM + (ARG_IMM4M1),},
2117 1.1 christos {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},
2118 1.1 christos
2119 1.1 christos /* 0101 1100 0000 0001 0000 dddd 0000 imm4m1 address_src *** ldm rd,address_src,n */
2120 1.1 christos {
2121 1.1 christos #ifdef NICENAMES
2122 1.1 christos "ldm rd,address_src,n",16,14,0x00,
2123 1.1 christos #endif
2124 1.1 christos "ldm",OPC_ldm,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),CLASS_IMM + (ARG_IMM4M1),},
2125 1.1 christos {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},
2126 1.1 christos
2127 1.1 christos /* 0011 1001 ssN0 0000 *** ldps @rs */
2128 1.1 christos {
2129 1.1 christos #ifdef NICENAMES
2130 1.1 christos "ldps @rs",16,12,0x3f,
2131 1.1 christos #endif
2132 1.1 christos "ldps",OPC_ldps,0,{CLASS_IR+(ARG_RS),},
2133 1.1 christos {CLASS_BIT+3,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,0,0,0,0,},1,2,88},
2134 1.1 christos
2135 1.1 christos /* 0111 1001 0000 0000 address_src *** ldps address_src */
2136 1.1 christos {
2137 1.1 christos #ifdef NICENAMES
2138 1.1 christos "ldps address_src",16,16,0x3f,
2139 1.1 christos #endif
2140 1.1 christos "ldps",OPC_ldps,0,{CLASS_DA+(ARG_SRC),},
2141 1.1 christos {CLASS_BIT+7,CLASS_BIT+9,CLASS_BIT+0,CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,88},
2142 1.1 christos
2143 1.1 christos /* 0111 1001 ssN0 0000 address_src *** ldps address_src(rs) */
2144 1.1 christos {
2145 1.1 christos #ifdef NICENAMES
2146 1.1 christos "ldps address_src(rs)",16,17,0x3f,
2147 1.1 christos #endif
2148 1.1 christos "ldps",OPC_ldps,0,{CLASS_X+(ARG_RS),},
2149 1.1 christos {CLASS_BIT+7,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},1,4,88},
2150 1.1 christos
2151 1.1 christos /* 0011 0011 0000 ssss disp16 *** ldr disp16,rs */
2152 1.1 christos {
2153 1.1 christos #ifdef NICENAMES
2154 1.1 christos "ldr disp16,rs",16,14,0x00,
2155 1.1 christos #endif
2156 1.1 christos "ldr",OPC_ldr,0,{CLASS_DISP,CLASS_REG_WORD+(ARG_RS),},
2157 1.1 christos {CLASS_BIT+3,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,89},
2158 1.1 christos
2159 1.1 christos /* 0011 0001 0000 dddd disp16 *** ldr rd,disp16 */
2160 1.1 christos {
2161 1.1 christos #ifdef NICENAMES
2162 1.1 christos "ldr rd,disp16",16,14,0x00,
2163 1.1 christos #endif
2164 1.1 christos "ldr",OPC_ldr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DISP,},
2165 1.1 christos {CLASS_BIT+3,CLASS_BIT+1,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,89},
2166 1.1 christos
2167 1.1 christos /* 0011 0010 0000 ssss disp16 *** ldrb disp16,rbs */
2168 1.1 christos {
2169 1.1 christos #ifdef NICENAMES
2170 1.1 christos "ldrb disp16,rbs",8,14,0x00,
2171 1.1 christos #endif
2172 1.1 christos "ldrb",OPC_ldrb,0,{CLASS_DISP,CLASS_REG_BYTE+(ARG_RS),},
2173 1.1 christos {CLASS_BIT+3,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,90},
2174 1.1 christos
2175 1.1 christos /* 0011 0000 0000 dddd disp16 *** ldrb rbd,disp16 */
2176 1.1 christos {
2177 1.1 christos #ifdef NICENAMES
2178 1.1 christos "ldrb rbd,disp16",8,14,0x00,
2179 1.1 christos #endif
2180 1.1 christos "ldrb",OPC_ldrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DISP,},
2181 1.1 christos {CLASS_BIT+3,CLASS_BIT+0,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,90},
2182 1.1 christos
2183 1.1 christos /* 0011 0111 0000 ssss disp16 *** ldrl disp16,rrs */
2184 1.1 christos {
2185 1.1 christos #ifdef NICENAMES
2186 1.1 christos "ldrl disp16,rrs",32,17,0x00,
2187 1.1 christos #endif
2188 1.1 christos "ldrl",OPC_ldrl,0,{CLASS_DISP,CLASS_REG_LONG+(ARG_RS),},
2189 1.1 christos {CLASS_BIT+3,CLASS_BIT+7,CLASS_BIT+0,CLASS_REG+(ARG_RS),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,91},
2190 1.1 christos
2191 1.1 christos /* 0011 0101 0000 dddd disp16 *** ldrl rrd,disp16 */
2192 1.1 christos {
2193 1.1 christos #ifdef NICENAMES
2194 1.1 christos "ldrl rrd,disp16",32,17,0x00,
2195 1.1 christos #endif
2196 1.1 christos "ldrl",OPC_ldrl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DISP,},
2197 1.1 christos {CLASS_BIT+3,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_DISP+(ARG_DISP16),0,0,0,0,},2,4,91},
2198 1.1 christos
2199 1.1 christos /* 0111 1011 0000 1010 *** mbit */
2200 1.1 christos {
2201 1.1 christos #ifdef NICENAMES
2202 1.1 christos "mbit",16,7,0x38,
2203 1.1 christos #endif
2204 1.1 christos "mbit",OPC_mbit,0,{0},
2205 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+0xa,0,0,0,0,0,},0,2,92},
2206 1.1 christos
2207 1.1 christos /* 0111 1011 dddd 1101 *** mreq rd */
2208 1.1 christos {
2209 1.1 christos #ifdef NICENAMES
2210 1.1 christos "mreq rd",16,12,0x18,
2211 1.1 christos #endif
2212 1.1 christos "mreq",OPC_mreq,0,{CLASS_REG_WORD+(ARG_RD),},
2213 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+0xd,0,0,0,0,0,},1,2,93},
2214 1.1 christos
2215 1.1 christos /* 0111 1011 0000 1001 *** mres */
2216 1.1 christos {
2217 1.1 christos #ifdef NICENAMES
2218 1.1 christos "mres",16,5,0x00,
2219 1.1 christos #endif
2220 1.1 christos "mres",OPC_mres,0,{0},
2221 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+9,0,0,0,0,0,},0,2,94},
2222 1.1 christos
2223 1.1 christos /* 0111 1011 0000 1000 *** mset */
2224 1.1 christos {
2225 1.1 christos #ifdef NICENAMES
2226 1.1 christos "mset",16,5,0x00,
2227 1.1 christos #endif
2228 1.1 christos "mset",OPC_mset,0,{0},
2229 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xb,CLASS_BIT+0,CLASS_BIT+8,0,0,0,0,0,},0,2,95},
2230 1.1 christos
2231 1.1 christos /* 0001 1001 ssN0 dddd *** mult rrd,@rs */
2232 1.1 christos {
2233 1.1 christos #ifdef NICENAMES
2234 1.1 christos "mult rrd,@rs",16,70,0x3c,
2235 1.1 christos #endif
2236 1.1 christos "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
2237 1.1 christos {CLASS_BIT+1,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96},
2238 1.1 christos
2239 1.1 christos /* 0101 1001 0000 dddd address_src *** mult rrd,address_src */
2240 1.1 christos {
2241 1.1 christos #ifdef NICENAMES
2242 1.1 christos "mult rrd,address_src",16,70,0x3c,
2243 1.1 christos #endif
2244 1.1 christos "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
2245 1.1 christos {CLASS_BIT+5,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,96},
2246 1.1 christos
2247 1.1 christos /* 0101 1001 ssN0 dddd address_src *** mult rrd,address_src(rs) */
2248 1.1 christos {
2249 1.1 christos #ifdef NICENAMES
2250 1.1 christos "mult rrd,address_src(rs)",16,70,0x3c,
2251 1.1 christos #endif
2252 1.1 christos "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
2253 1.1 christos {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},
2254 1.1 christos
2255 1.1 christos /* 0001 1001 0000 dddd imm16 *** mult rrd,imm16 */
2256 1.1 christos {
2257 1.1 christos #ifdef NICENAMES
2258 1.1 christos "mult rrd,imm16",16,70,0x3c,
2259 1.1 christos #endif
2260 1.1 christos "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
2261 1.1 christos {CLASS_BIT+1,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,96},
2262 1.1 christos
2263 1.1 christos /* 1001 1001 ssss dddd *** mult rrd,rs */
2264 1.1 christos {
2265 1.1 christos #ifdef NICENAMES
2266 1.1 christos "mult rrd,rs",16,70,0x3c,
2267 1.1 christos #endif
2268 1.1 christos "mult",OPC_mult,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2269 1.1 christos {CLASS_BIT+9,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,96},
2270 1.1 christos
2271 1.1 christos /* 0001 1000 ssN0 dddd *** multl rqd,@rs */
2272 1.1 christos {
2273 1.1 christos #ifdef NICENAMES
2274 1.1 christos "multl rqd,@rs",32,282,0x3c,
2275 1.1 christos #endif
2276 1.1 christos "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IR+(ARG_RS),},
2277 1.1 christos {CLASS_BIT+1,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97},
2278 1.1 christos
2279 1.1 christos /* 0101 1000 0000 dddd address_src *** multl rqd,address_src */
2280 1.1 christos {
2281 1.1 christos #ifdef NICENAMES
2282 1.1 christos "multl rqd,address_src",32,282,0x3c,
2283 1.1 christos #endif
2284 1.1 christos "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_DA+(ARG_SRC),},
2285 1.1 christos {CLASS_BIT+5,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,97},
2286 1.1 christos
2287 1.1 christos /* 0101 1000 ssN0 dddd address_src *** multl rqd,address_src(rs) */
2288 1.1 christos {
2289 1.1 christos #ifdef NICENAMES
2290 1.1 christos "multl rqd,address_src(rs)",32,282,0x3c,
2291 1.1 christos #endif
2292 1.1 christos "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_X+(ARG_RS),},
2293 1.1 christos {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},
2294 1.1 christos
2295 1.1 christos /* 0001 1000 0000 dddd imm32 *** multl rqd,imm32 */
2296 1.1 christos {
2297 1.1 christos #ifdef NICENAMES
2298 1.1 christos "multl rqd,imm32",32,282,0x3c,
2299 1.1 christos #endif
2300 1.1 christos "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
2301 1.1 christos {CLASS_BIT+1,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,97},
2302 1.1 christos
2303 1.1 christos /* 1001 1000 ssss dddd *** multl rqd,rrs */
2304 1.1 christos {
2305 1.1 christos #ifdef NICENAMES
2306 1.1 christos "multl rqd,rrs",32,282,0x3c,
2307 1.1 christos #endif
2308 1.1 christos "multl",OPC_multl,0,{CLASS_REG_QUAD+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
2309 1.1 christos {CLASS_BIT+9,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,97},
2310 1.1 christos
2311 1.1 christos /* 0000 1101 ddN0 0010 *** neg @rd */
2312 1.1 christos {
2313 1.1 christos #ifdef NICENAMES
2314 1.1 christos "neg @rd",16,12,0x3c,
2315 1.1 christos #endif
2316 1.1 christos "neg",OPC_neg,0,{CLASS_IR+(ARG_RD),},
2317 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,98},
2318 1.1 christos
2319 1.1 christos /* 0100 1101 0000 0010 address_dst *** neg address_dst */
2320 1.1 christos {
2321 1.1 christos #ifdef NICENAMES
2322 1.1 christos "neg address_dst",16,15,0x3c,
2323 1.1 christos #endif
2324 1.1 christos "neg",OPC_neg,0,{CLASS_DA+(ARG_DST),},
2325 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,98},
2326 1.1 christos
2327 1.1 christos /* 0100 1101 ddN0 0010 address_dst *** neg address_dst(rd) */
2328 1.1 christos {
2329 1.1 christos #ifdef NICENAMES
2330 1.1 christos "neg address_dst(rd)",16,16,0x3c,
2331 1.1 christos #endif
2332 1.1 christos "neg",OPC_neg,0,{CLASS_X+(ARG_RD),},
2333 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,98},
2334 1.1 christos
2335 1.1 christos /* 1000 1101 dddd 0010 *** neg rd */
2336 1.1 christos {
2337 1.1 christos #ifdef NICENAMES
2338 1.1 christos "neg rd",16,7,0x3c,
2339 1.1 christos #endif
2340 1.1 christos "neg",OPC_neg,0,{CLASS_REG_WORD+(ARG_RD),},
2341 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,98},
2342 1.1 christos
2343 1.1 christos /* 0000 1100 ddN0 0010 *** negb @rd */
2344 1.1 christos {
2345 1.1 christos #ifdef NICENAMES
2346 1.1 christos "negb @rd",8,12,0x3c,
2347 1.1 christos #endif
2348 1.1 christos "negb",OPC_negb,0,{CLASS_IR+(ARG_RD),},
2349 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,99},
2350 1.1 christos
2351 1.1 christos /* 0100 1100 0000 0010 address_dst *** negb address_dst */
2352 1.1 christos {
2353 1.1 christos #ifdef NICENAMES
2354 1.1 christos "negb address_dst",8,15,0x3c,
2355 1.1 christos #endif
2356 1.1 christos "negb",OPC_negb,0,{CLASS_DA+(ARG_DST),},
2357 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,99},
2358 1.1 christos
2359 1.1 christos /* 0100 1100 ddN0 0010 address_dst *** negb address_dst(rd) */
2360 1.1 christos {
2361 1.1 christos #ifdef NICENAMES
2362 1.1 christos "negb address_dst(rd)",8,16,0x3c,
2363 1.1 christos #endif
2364 1.1 christos "negb",OPC_negb,0,{CLASS_X+(ARG_RD),},
2365 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+2,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,99},
2366 1.1 christos
2367 1.1 christos /* 1000 1100 dddd 0010 *** negb rbd */
2368 1.1 christos {
2369 1.1 christos #ifdef NICENAMES
2370 1.1 christos "negb rbd",8,7,0x3c,
2371 1.1 christos #endif
2372 1.1 christos "negb",OPC_negb,0,{CLASS_REG_BYTE+(ARG_RD),},
2373 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+2,0,0,0,0,0,},1,2,99},
2374 1.1 christos
2375 1.1 christos /* 1000 1101 0000 0111 *** nop */
2376 1.1 christos {
2377 1.1 christos #ifdef NICENAMES
2378 1.1 christos "nop",16,7,0x00,
2379 1.1 christos #endif
2380 1.1 christos "nop",OPC_nop,0,{0},
2381 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+7,0,0,0,0,0,},0,2,100},
2382 1.1 christos
2383 1.1 christos /* 0000 0101 ssN0 dddd *** or rd,@rs */
2384 1.1 christos {
2385 1.1 christos #ifdef NICENAMES
2386 1.1 christos "or rd,@rs",16,7,0x38,
2387 1.1 christos #endif
2388 1.1 christos "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
2389 1.1 christos {CLASS_BIT+0,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,101},
2390 1.1 christos
2391 1.1 christos /* 0100 0101 0000 dddd address_src *** or rd,address_src */
2392 1.1 christos {
2393 1.1 christos #ifdef NICENAMES
2394 1.1 christos "or rd,address_src",16,9,0x38,
2395 1.1 christos #endif
2396 1.1 christos "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
2397 1.1 christos {CLASS_BIT+4,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,101},
2398 1.1 christos
2399 1.1 christos /* 0100 0101 ssN0 dddd address_src *** or rd,address_src(rs) */
2400 1.1 christos {
2401 1.1 christos #ifdef NICENAMES
2402 1.1 christos "or rd,address_src(rs)",16,10,0x38,
2403 1.1 christos #endif
2404 1.1 christos "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
2405 1.1 christos {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},
2406 1.1 christos
2407 1.1 christos /* 0000 0101 0000 dddd imm16 *** or rd,imm16 */
2408 1.1 christos {
2409 1.1 christos #ifdef NICENAMES
2410 1.1 christos "or rd,imm16",16,7,0x38,
2411 1.1 christos #endif
2412 1.1 christos "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
2413 1.1 christos {CLASS_BIT+0,CLASS_BIT+5,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,101},
2414 1.1 christos
2415 1.1 christos /* 1000 0101 ssss dddd *** or rd,rs */
2416 1.1 christos {
2417 1.1 christos #ifdef NICENAMES
2418 1.1 christos "or rd,rs",16,4,0x38,
2419 1.1 christos #endif
2420 1.1 christos "or",OPC_or,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2421 1.1 christos {CLASS_BIT+8,CLASS_BIT+5,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,101},
2422 1.1 christos
2423 1.1 christos /* 0000 0100 ssN0 dddd *** orb rbd,@rs */
2424 1.1 christos {
2425 1.1 christos #ifdef NICENAMES
2426 1.1 christos "orb rbd,@rs",8,7,0x3c,
2427 1.1 christos #endif
2428 1.1 christos "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
2429 1.1 christos {CLASS_BIT+0,CLASS_BIT+4,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,102},
2430 1.1 christos
2431 1.1 christos /* 0100 0100 0000 dddd address_src *** orb rbd,address_src */
2432 1.1 christos {
2433 1.1 christos #ifdef NICENAMES
2434 1.1 christos "orb rbd,address_src",8,9,0x3c,
2435 1.1 christos #endif
2436 1.1 christos "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
2437 1.1 christos {CLASS_BIT+4,CLASS_BIT+4,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,102},
2438 1.1 christos
2439 1.1 christos /* 0100 0100 ssN0 dddd address_src *** orb rbd,address_src(rs) */
2440 1.1 christos {
2441 1.1 christos #ifdef NICENAMES
2442 1.1 christos "orb rbd,address_src(rs)",8,10,0x3c,
2443 1.1 christos #endif
2444 1.1 christos "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
2445 1.1 christos {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},
2446 1.1 christos
2447 1.1 christos /* 0000 0100 0000 dddd imm8 imm8 *** orb rbd,imm8 */
2448 1.1 christos {
2449 1.1 christos #ifdef NICENAMES
2450 1.1 christos "orb rbd,imm8",8,7,0x3c,
2451 1.1 christos #endif
2452 1.1 christos "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
2453 1.1 christos {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},
2454 1.1 christos
2455 1.1 christos /* 1000 0100 ssss dddd *** orb rbd,rbs */
2456 1.1 christos {
2457 1.1 christos #ifdef NICENAMES
2458 1.1 christos "orb rbd,rbs",8,4,0x3c,
2459 1.1 christos #endif
2460 1.1 christos "orb",OPC_orb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
2461 1.1 christos {CLASS_BIT+8,CLASS_BIT+4,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,102},
2462 1.1 christos
2463 1.1 christos /* 0011 1011 ssN0 1010 0000 aaaa dddd 0000 *** otdr @ro,@rs,ra */
2464 1.1 christos {
2465 1.1 christos #ifdef NICENAMES
2466 1.1 christos "otdr @ro,@rs,ra",16,11,0x04,
2467 1.1 christos #endif
2468 1.1 christos "otdr",OPC_otdr,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2469 1.1 christos {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},
2470 1.1 christos
2471 1.1 christos /* 0011 1010 ssN0 1010 0000 aaaa dddd 0000 *** otdrb @ro,@rs,ra */
2472 1.1 christos {
2473 1.1 christos #ifdef NICENAMES
2474 1.1 christos "otdrb @ro,@rs,ra",8,11,0x04,
2475 1.1 christos #endif
2476 1.1 christos "otdrb",OPC_otdrb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2477 1.1 christos {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},
2478 1.1 christos
2479 1.1 christos /* 0011 1011 ssN0 0010 0000 aaaa dddd 0000 *** otir @ro,@rs,ra */
2480 1.1 christos {
2481 1.1 christos #ifdef NICENAMES
2482 1.1 christos "otir @ro,@rs,ra",16,11,0x04,
2483 1.1 christos #endif
2484 1.1 christos "otir",OPC_otir,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2485 1.1 christos {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},
2486 1.1 christos
2487 1.1 christos /* 0011 1010 ssN0 0010 0000 aaaa dddd 0000 *** otirb @ro,@rs,ra */
2488 1.1 christos {
2489 1.1 christos #ifdef NICENAMES
2490 1.1 christos "otirb @ro,@rs,ra",8,11,0x04,
2491 1.1 christos #endif
2492 1.1 christos "otirb",OPC_otirb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2493 1.1 christos {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},
2494 1.1 christos
2495 1.1 christos /* 0011 1111 dddd ssss *** out @ro,rs */
2496 1.1 christos {
2497 1.1 christos #ifdef NICENAMES
2498 1.1 christos "out @ro,rs",16,10,0x00,
2499 1.1 christos #endif
2500 1.1 christos "out",OPC_out,0,{CLASS_IRO+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2501 1.1 christos {CLASS_BIT+3,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,107},
2502 1.1 christos
2503 1.1 christos /* 0011 1011 ssss 0110 imm16 *** out imm16,rs */
2504 1.1 christos {
2505 1.1 christos #ifdef NICENAMES
2506 1.1 christos "out imm16,rs",16,12,0x00,
2507 1.1 christos #endif
2508 1.1 christos "out",OPC_out,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),},
2509 1.1 christos {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,107},
2510 1.1 christos
2511 1.1 christos /* 0011 1110 dddd ssss *** outb @ro,rbs */
2512 1.1 christos {
2513 1.1 christos #ifdef NICENAMES
2514 1.1 christos "outb @ro,rbs",8,10,0x00,
2515 1.1 christos #endif
2516 1.1 christos "outb",OPC_outb,0,{CLASS_IRO+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
2517 1.1 christos {CLASS_BIT+3,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,108},
2518 1.1 christos
2519 1.1 christos /* 0011 1010 ssss 0110 imm16 *** outb imm16,rbs */
2520 1.1 christos {
2521 1.1 christos #ifdef NICENAMES
2522 1.1 christos "outb imm16,rbs",8,12,0x00,
2523 1.1 christos #endif
2524 1.1 christos "outb",OPC_outb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),},
2525 1.1 christos {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+6,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,108},
2526 1.1 christos
2527 1.1 christos /* 0011 1011 ssN0 1010 0000 aaaa dddd 1000 *** outd @ro,@rs,ra */
2528 1.1 christos {
2529 1.1 christos #ifdef NICENAMES
2530 1.1 christos "outd @ro,@rs,ra",16,21,0x04,
2531 1.1 christos #endif
2532 1.1 christos "outd",OPC_outd,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2533 1.1 christos {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},
2534 1.1 christos
2535 1.1 christos /* 0011 1010 ssN0 1010 0000 aaaa dddd 1000 *** outdb @ro,@rs,ra */
2536 1.1 christos {
2537 1.1 christos #ifdef NICENAMES
2538 1.1 christos "outdb @ro,@rs,ra",8,21,0x04,
2539 1.1 christos #endif
2540 1.1 christos "outdb",OPC_outdb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2541 1.1 christos {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},
2542 1.1 christos
2543 1.1 christos /* 0011 1011 ssN0 0010 0000 aaaa dddd 1000 *** outi @ro,@rs,ra */
2544 1.1 christos {
2545 1.1 christos #ifdef NICENAMES
2546 1.1 christos "outi @ro,@rs,ra",16,21,0x04,
2547 1.1 christos #endif
2548 1.1 christos "outi",OPC_outi,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2549 1.1 christos {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},
2550 1.1 christos
2551 1.1 christos /* 0011 1010 ssN0 0010 0000 aaaa dddd 1000 *** outib @ro,@rs,ra */
2552 1.1 christos {
2553 1.1 christos #ifdef NICENAMES
2554 1.1 christos "outib @ro,@rs,ra",8,21,0x04,
2555 1.1 christos #endif
2556 1.1 christos "outib",OPC_outib,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
2557 1.1 christos {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},
2558 1.1 christos
2559 1.1 christos /* 0001 0111 ssN0 ddN0 *** pop @rd,@rs */
2560 1.1 christos {
2561 1.1 christos #ifdef NICENAMES
2562 1.1 christos "pop @rd,@rs",16,12,0x00,
2563 1.1 christos #endif
2564 1.1 christos "pop",OPC_pop,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
2565 1.1 christos {CLASS_BIT+1,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,113},
2566 1.1 christos
2567 1.1 christos /* 0101 0111 ssN0 ddN0 address_dst *** pop address_dst(rd),@rs */
2568 1.1 christos {
2569 1.1 christos #ifdef NICENAMES
2570 1.1 christos "pop address_dst(rd),@rs",16,16,0x00,
2571 1.1 christos #endif
2572 1.1 christos "pop",OPC_pop,0,{CLASS_X+(ARG_RD),CLASS_IR+(ARG_RS),},
2573 1.1 christos {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},
2574 1.1 christos
2575 1.1 christos /* 0101 0111 ssN0 0000 address_dst *** pop address_dst,@rs */
2576 1.1 christos {
2577 1.1 christos #ifdef NICENAMES
2578 1.1 christos "pop address_dst,@rs",16,16,0x00,
2579 1.1 christos #endif
2580 1.1 christos "pop",OPC_pop,0,{CLASS_DA+(ARG_DST),CLASS_IR+(ARG_RS),},
2581 1.1 christos {CLASS_BIT+5,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,113},
2582 1.1 christos
2583 1.1 christos /* 1001 0111 ssN0 dddd *** pop rd,@rs */
2584 1.1 christos {
2585 1.1 christos #ifdef NICENAMES
2586 1.1 christos "pop rd,@rs",16,8,0x00,
2587 1.1 christos #endif
2588 1.1 christos "pop",OPC_pop,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
2589 1.1 christos {CLASS_BIT+9,CLASS_BIT+7,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,113},
2590 1.1 christos
2591 1.1 christos /* 0001 0101 ssN0 ddN0 *** popl @rd,@rs */
2592 1.1 christos {
2593 1.1 christos #ifdef NICENAMES
2594 1.1 christos "popl @rd,@rs",32,19,0x00,
2595 1.1 christos #endif
2596 1.1 christos "popl",OPC_popl,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
2597 1.1 christos {CLASS_BIT+1,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REGN0+(ARG_RD),0,0,0,0,0,},2,2,114},
2598 1.1 christos
2599 1.1 christos /* 0101 0101 ssN0 ddN0 address_dst *** popl address_dst(rd),@rs */
2600 1.1 christos {
2601 1.1 christos #ifdef NICENAMES
2602 1.1 christos "popl address_dst(rd),@rs",32,23,0x00,
2603 1.1 christos #endif
2604 1.1 christos "popl",OPC_popl,0,{CLASS_X+(ARG_RD),CLASS_IR+(ARG_RS),},
2605 1.1 christos {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},
2606 1.1 christos
2607 1.1 christos /* 0101 0101 ssN0 0000 address_dst *** popl address_dst,@rs */
2608 1.1 christos {
2609 1.1 christos #ifdef NICENAMES
2610 1.1 christos "popl address_dst,@rs",32,23,0x00,
2611 1.1 christos #endif
2612 1.1 christos "popl",OPC_popl,0,{CLASS_DA+(ARG_DST),CLASS_IR+(ARG_RS),},
2613 1.1 christos {CLASS_BIT+5,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_BIT+0,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,114},
2614 1.1 christos
2615 1.1 christos /* 1001 0101 ssN0 dddd *** popl rrd,@rs */
2616 1.1 christos {
2617 1.1 christos #ifdef NICENAMES
2618 1.1 christos "popl rrd,@rs",32,12,0x00,
2619 1.1 christos #endif
2620 1.1 christos "popl",OPC_popl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
2621 1.1 christos {CLASS_BIT+9,CLASS_BIT+5,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,114},
2622 1.1 christos
2623 1.1 christos /* 0001 0011 ddN0 ssN0 *** push @rd,@rs */
2624 1.1 christos {
2625 1.1 christos #ifdef NICENAMES
2626 1.1 christos "push @rd,@rs",16,13,0x00,
2627 1.1 christos #endif
2628 1.1 christos "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
2629 1.1 christos {CLASS_BIT+1,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,115},
2630 1.1 christos
2631 1.1 christos /* 0101 0011 ddN0 0000 address_src *** push @rd,address_src */
2632 1.1 christos {
2633 1.1 christos #ifdef NICENAMES
2634 1.1 christos "push @rd,address_src",16,14,0x00,
2635 1.1 christos #endif
2636 1.1 christos "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_DA+(ARG_SRC),},
2637 1.1 christos {CLASS_BIT+5,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,115},
2638 1.1 christos
2639 1.1 christos /* 0101 0011 ddN0 ssN0 address_src *** push @rd,address_src(rs) */
2640 1.1 christos {
2641 1.1 christos #ifdef NICENAMES
2642 1.1 christos "push @rd,address_src(rs)",16,14,0x00,
2643 1.1 christos #endif
2644 1.1 christos "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_X+(ARG_RS),},
2645 1.1 christos {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},
2646 1.1 christos
2647 1.1 christos /* 0000 1101 ddN0 1001 imm16 *** push @rd,imm16 */
2648 1.1 christos {
2649 1.1 christos #ifdef NICENAMES
2650 1.1 christos "push @rd,imm16",16,12,0x00,
2651 1.1 christos #endif
2652 1.1 christos "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
2653 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+9,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,115},
2654 1.1 christos
2655 1.1 christos /* 1001 0011 ddN0 ssss *** push @rd,rs */
2656 1.1 christos {
2657 1.1 christos #ifdef NICENAMES
2658 1.1 christos "push @rd,rs",16,9,0x00,
2659 1.1 christos #endif
2660 1.1 christos "push",OPC_push,0,{CLASS_IR+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2661 1.1 christos {CLASS_BIT+9,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,115},
2662 1.1 christos
2663 1.1 christos /* 0001 0001 ddN0 ssN0 *** pushl @rd,@rs */
2664 1.1 christos {
2665 1.1 christos #ifdef NICENAMES
2666 1.1 christos "pushl @rd,@rs",32,20,0x00,
2667 1.1 christos #endif
2668 1.1 christos "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),},
2669 1.1 christos {CLASS_BIT+1,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REGN0+(ARG_RS),0,0,0,0,0,},2,2,116},
2670 1.1 christos
2671 1.1 christos /* 0101 0001 ddN0 0000 address_src *** pushl @rd,address_src */
2672 1.1 christos {
2673 1.1 christos #ifdef NICENAMES
2674 1.1 christos "pushl @rd,address_src",32,21,0x00,
2675 1.1 christos #endif
2676 1.1 christos "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_DA+(ARG_SRC),},
2677 1.1 christos {CLASS_BIT+5,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_BIT+0,CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,116},
2678 1.1 christos
2679 1.1 christos /* 0101 0001 ddN0 ssN0 address_src *** pushl @rd,address_src(rs) */
2680 1.1 christos {
2681 1.1 christos #ifdef NICENAMES
2682 1.1 christos "pushl @rd,address_src(rs)",32,21,0x00,
2683 1.1 christos #endif
2684 1.1 christos "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_X+(ARG_RS),},
2685 1.1 christos {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},
2686 1.1 christos
2687 1.1 christos /* 1001 0001 ddN0 ssss *** pushl @rd,rrs */
2688 1.1 christos {
2689 1.1 christos #ifdef NICENAMES
2690 1.1 christos "pushl @rd,rrs",32,12,0x00,
2691 1.1 christos #endif
2692 1.1 christos "pushl",OPC_pushl,0,{CLASS_IR+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
2693 1.1 christos {CLASS_BIT+9,CLASS_BIT+1,CLASS_REGN0+(ARG_RD),CLASS_REG+(ARG_RS),0,0,0,0,0,},2,2,116},
2694 1.1 christos
2695 1.1 christos /* 0010 0011 ddN0 imm4 *** res @rd,imm4 */
2696 1.1 christos {
2697 1.1 christos #ifdef NICENAMES
2698 1.1 christos "res @rd,imm4",16,11,0x00,
2699 1.1 christos #endif
2700 1.1 christos "res",OPC_res,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2701 1.1 christos {CLASS_BIT+2,CLASS_BIT+3,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,117},
2702 1.1 christos
2703 1.1 christos /* 0110 0011 ddN0 imm4 address_dst *** res address_dst(rd),imm4 */
2704 1.1 christos {
2705 1.1 christos #ifdef NICENAMES
2706 1.1 christos "res address_dst(rd),imm4",16,14,0x00,
2707 1.1 christos #endif
2708 1.1 christos "res",OPC_res,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2709 1.1 christos {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},
2710 1.1 christos
2711 1.1 christos /* 0110 0011 0000 imm4 address_dst *** res address_dst,imm4 */
2712 1.1 christos {
2713 1.1 christos #ifdef NICENAMES
2714 1.1 christos "res address_dst,imm4",16,13,0x00,
2715 1.1 christos #endif
2716 1.1 christos "res",OPC_res,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
2717 1.1 christos {CLASS_BIT+6,CLASS_BIT+3,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,117},
2718 1.1 christos
2719 1.1 christos /* 1010 0011 dddd imm4 *** res rd,imm4 */
2720 1.1 christos {
2721 1.1 christos #ifdef NICENAMES
2722 1.1 christos "res rd,imm4",16,4,0x00,
2723 1.1 christos #endif
2724 1.1 christos "res",OPC_res,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2725 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,117},
2726 1.1 christos
2727 1.1 christos /* 0010 0011 0000 ssss 0000 dddd 0000 0000 *** res rd,rs */
2728 1.1 christos {
2729 1.1 christos #ifdef NICENAMES
2730 1.1 christos "res rd,rs",16,10,0x00,
2731 1.1 christos #endif
2732 1.1 christos "res",OPC_res,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2733 1.1 christos {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},
2734 1.1 christos
2735 1.1 christos /* 0010 0010 ddN0 imm4 *** resb @rd,imm4 */
2736 1.1 christos {
2737 1.1 christos #ifdef NICENAMES
2738 1.1 christos "resb @rd,imm4",8,11,0x00,
2739 1.1 christos #endif
2740 1.1 christos "resb",OPC_resb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2741 1.1 christos {CLASS_BIT+2,CLASS_BIT+2,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,118},
2742 1.1 christos
2743 1.1 christos /* 0110 0010 ddN0 imm4 address_dst *** resb address_dst(rd),imm4 */
2744 1.1 christos {
2745 1.1 christos #ifdef NICENAMES
2746 1.1 christos "resb address_dst(rd),imm4",8,14,0x00,
2747 1.1 christos #endif
2748 1.1 christos "resb",OPC_resb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2749 1.1 christos {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},
2750 1.1 christos
2751 1.1 christos /* 0110 0010 0000 imm4 address_dst *** resb address_dst,imm4 */
2752 1.1 christos {
2753 1.1 christos #ifdef NICENAMES
2754 1.1 christos "resb address_dst,imm4",8,13,0x00,
2755 1.1 christos #endif
2756 1.1 christos "resb",OPC_resb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
2757 1.1 christos {CLASS_BIT+6,CLASS_BIT+2,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,118},
2758 1.1 christos
2759 1.1 christos /* 1010 0010 dddd imm4 *** resb rbd,imm4 */
2760 1.1 christos {
2761 1.1 christos #ifdef NICENAMES
2762 1.1 christos "resb rbd,imm4",8,4,0x00,
2763 1.1 christos #endif
2764 1.1 christos "resb",OPC_resb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
2765 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,118},
2766 1.1 christos
2767 1.1 christos /* 0010 0010 0000 ssss 0000 dddd 0000 0000 *** resb rbd,rs */
2768 1.1 christos {
2769 1.1 christos #ifdef NICENAMES
2770 1.1 christos "resb rbd,rs",8,10,0x00,
2771 1.1 christos #endif
2772 1.1 christos "resb",OPC_resb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2773 1.1 christos {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},
2774 1.1 christos
2775 1.1 christos /* 1000 1101 flags 0011 *** resflg flags */
2776 1.1 christos {
2777 1.1 christos #ifdef NICENAMES
2778 1.1 christos "resflg flags",16,7,0x3c,
2779 1.1 christos #endif
2780 1.1 christos "resflg",OPC_resflg,0,{CLASS_FLAGS,},
2781 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+3,0,0,0,0,0,},1,2,119},
2782 1.1 christos
2783 1.1 christos /* 1001 1110 0000 cccc *** ret cc */
2784 1.1 christos {
2785 1.1 christos #ifdef NICENAMES
2786 1.1 christos "ret cc",16,10,0x00,
2787 1.1 christos #endif
2788 1.1 christos "ret",OPC_ret,0,{CLASS_CC,},
2789 1.1 christos {CLASS_BIT+9,CLASS_BIT+0xe,CLASS_BIT+0,CLASS_CC,0,0,0,0,0,},1,2,120},
2790 1.1 christos
2791 1.1 christos /* 1011 0011 dddd 00I0 *** rl rd,imm1or2 */
2792 1.1 christos {
2793 1.1 christos #ifdef NICENAMES
2794 1.1 christos "rl rd,imm1or2",16,6,0x3c,
2795 1.1 christos #endif
2796 1.1 christos "rl",OPC_rl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2797 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,121},
2798 1.1 christos
2799 1.1 christos /* 1011 0010 dddd 00I0 *** rlb rbd,imm1or2 */
2800 1.1 christos {
2801 1.1 christos #ifdef NICENAMES
2802 1.1 christos "rlb rbd,imm1or2",8,6,0x3c,
2803 1.1 christos #endif
2804 1.1 christos "rlb",OPC_rlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2805 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0,0,0,0,0,0,},2,2,122},
2806 1.1 christos
2807 1.1 christos /* 1011 0011 dddd 10I0 *** rlc rd,imm1or2 */
2808 1.1 christos {
2809 1.1 christos #ifdef NICENAMES
2810 1.1 christos "rlc rd,imm1or2",16,6,0x3c,
2811 1.1 christos #endif
2812 1.1 christos "rlc",OPC_rlc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2813 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,123},
2814 1.1 christos
2815 1.1 christos /* 1011 0010 dddd 10I0 *** rlcb rbd,imm1or2 */
2816 1.1 christos {
2817 1.1 christos #ifdef NICENAMES
2818 1.1 christos "rlcb rbd,imm1or2",8,9,0x10,
2819 1.1 christos #endif
2820 1.1 christos "rlcb",OPC_rlcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2821 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+8,0,0,0,0,0,},2,2,124},
2822 1.1 christos
2823 1.1 christos /* 1011 1110 aaaa bbbb *** rldb rbb,rba */
2824 1.1 christos {
2825 1.1 christos #ifdef NICENAMES
2826 1.1 christos "rldb rbb,rba",8,9,0x10,
2827 1.1 christos #endif
2828 1.1 christos "rldb",OPC_rldb,0,{CLASS_REG_BYTE+(ARG_RB),CLASS_REG_BYTE+(ARG_RA),},
2829 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+0xe,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,125},
2830 1.1 christos
2831 1.1 christos /* 1011 0011 dddd 01I0 *** rr rd,imm1or2 */
2832 1.1 christos {
2833 1.1 christos #ifdef NICENAMES
2834 1.1 christos "rr rd,imm1or2",16,6,0x3c,
2835 1.1 christos #endif
2836 1.1 christos "rr",OPC_rr,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2837 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,126},
2838 1.1 christos
2839 1.1 christos /* 1011 0010 dddd 01I0 *** rrb rbd,imm1or2 */
2840 1.1 christos {
2841 1.1 christos #ifdef NICENAMES
2842 1.1 christos "rrb rbd,imm1or2",8,6,0x3c,
2843 1.1 christos #endif
2844 1.1 christos "rrb",OPC_rrb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2845 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+4,0,0,0,0,0,},2,2,127},
2846 1.1 christos
2847 1.1 christos /* 1011 0011 dddd 11I0 *** rrc rd,imm1or2 */
2848 1.1 christos {
2849 1.1 christos #ifdef NICENAMES
2850 1.1 christos "rrc rd,imm1or2",16,6,0x3c,
2851 1.1 christos #endif
2852 1.1 christos "rrc",OPC_rrc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2853 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+3,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,128},
2854 1.1 christos
2855 1.1 christos /* 1011 0010 dddd 11I0 *** rrcb rbd,imm1or2 */
2856 1.1 christos {
2857 1.1 christos #ifdef NICENAMES
2858 1.1 christos "rrcb rbd,imm1or2",8,9,0x10,
2859 1.1 christos #endif
2860 1.1 christos "rrcb",OPC_rrcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM1OR2),},
2861 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+2,CLASS_REG+(ARG_RD),CLASS_BIT_1OR2+0xc,0,0,0,0,0,},2,2,129},
2862 1.1 christos
2863 1.1 christos /* 1011 1100 aaaa bbbb *** rrdb rbb,rba */
2864 1.1 christos {
2865 1.1 christos #ifdef NICENAMES
2866 1.1 christos "rrdb rbb,rba",8,9,0x10,
2867 1.1 christos #endif
2868 1.1 christos "rrdb",OPC_rrdb,0,{CLASS_REG_BYTE+(ARG_RB),CLASS_REG_BYTE+(ARG_RA),},
2869 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+0xc,CLASS_REG+(ARG_RA),CLASS_REG+(ARG_RB),0,0,0,0,0,},2,2,130},
2870 1.1 christos
2871 1.1 christos /* 0011 0110 imm8 *** rsvd36 */
2872 1.1 christos {
2873 1.1 christos #ifdef NICENAMES
2874 1.1 christos "rsvd36",8,10,0x00,
2875 1.1 christos #endif
2876 1.1 christos "rsvd36",OPC_rsvd36,0,{0},
2877 1.1 christos {CLASS_BIT+3,CLASS_BIT+6,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,131},
2878 1.1 christos
2879 1.1 christos /* 0011 1000 imm8 *** rsvd38 */
2880 1.1 christos {
2881 1.1 christos #ifdef NICENAMES
2882 1.1 christos "rsvd38",8,10,0x00,
2883 1.1 christos #endif
2884 1.1 christos "rsvd38",OPC_rsvd38,0,{0},
2885 1.1 christos {CLASS_BIT+3,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,132},
2886 1.1 christos
2887 1.1 christos /* 0111 1000 imm8 *** rsvd78 */
2888 1.1 christos {
2889 1.1 christos #ifdef NICENAMES
2890 1.1 christos "rsvd78",8,10,0x00,
2891 1.1 christos #endif
2892 1.1 christos "rsvd78",OPC_rsvd78,0,{0},
2893 1.1 christos {CLASS_BIT+7,CLASS_BIT+8,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,133},
2894 1.1 christos
2895 1.1 christos /* 0111 1110 imm8 *** rsvd7e */
2896 1.1 christos {
2897 1.1 christos #ifdef NICENAMES
2898 1.1 christos "rsvd7e",8,10,0x00,
2899 1.1 christos #endif
2900 1.1 christos "rsvd7e",OPC_rsvd7e,0,{0},
2901 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xe,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,134},
2902 1.1 christos
2903 1.1 christos /* 1001 1101 imm8 *** rsvd9d */
2904 1.1 christos {
2905 1.1 christos #ifdef NICENAMES
2906 1.1 christos "rsvd9d",8,10,0x00,
2907 1.1 christos #endif
2908 1.1 christos "rsvd9d",OPC_rsvd9d,0,{0},
2909 1.1 christos {CLASS_BIT+9,CLASS_BIT+0xd,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,135},
2910 1.1 christos
2911 1.1 christos /* 1001 1111 imm8 *** rsvd9f */
2912 1.1 christos {
2913 1.1 christos #ifdef NICENAMES
2914 1.1 christos "rsvd9f",8,10,0x00,
2915 1.1 christos #endif
2916 1.1 christos "rsvd9f",OPC_rsvd9f,0,{0},
2917 1.1 christos {CLASS_BIT+9,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,136},
2918 1.1 christos
2919 1.1 christos /* 1011 1001 imm8 *** rsvdb9 */
2920 1.1 christos {
2921 1.1 christos #ifdef NICENAMES
2922 1.1 christos "rsvdb9",8,10,0x00,
2923 1.1 christos #endif
2924 1.1 christos "rsvdb9",OPC_rsvdb9,0,{0},
2925 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+9,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,137},
2926 1.1 christos
2927 1.1 christos /* 1011 1111 imm8 *** rsvdbf */
2928 1.1 christos {
2929 1.1 christos #ifdef NICENAMES
2930 1.1 christos "rsvdbf",8,10,0x00,
2931 1.1 christos #endif
2932 1.1 christos "rsvdbf",OPC_rsvdbf,0,{0},
2933 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},0,2,138},
2934 1.1 christos
2935 1.1 christos /* 1011 0111 ssss dddd *** sbc rd,rs */
2936 1.1 christos {
2937 1.1 christos #ifdef NICENAMES
2938 1.1 christos "sbc rd,rs",16,5,0x3c,
2939 1.1 christos #endif
2940 1.1 christos "sbc",OPC_sbc,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2941 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+7,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,139},
2942 1.1 christos
2943 1.1 christos /* 1011 0110 ssss dddd *** sbcb rbd,rbs */
2944 1.1 christos {
2945 1.1 christos #ifdef NICENAMES
2946 1.1 christos "sbcb rbd,rbs",8,5,0x3f,
2947 1.1 christos #endif
2948 1.1 christos "sbcb",OPC_sbcb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
2949 1.1 christos {CLASS_BIT+0xb,CLASS_BIT+6,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,140},
2950 1.1 christos
2951 1.1 christos /* 0111 1111 imm8 *** sc imm8 */
2952 1.1 christos {
2953 1.1 christos #ifdef NICENAMES
2954 1.1 christos "sc imm8",8,33,0x3f,
2955 1.1 christos #endif
2956 1.1 christos "sc",OPC_sc,0,{CLASS_IMM+(ARG_IMM8),},
2957 1.1 christos {CLASS_BIT+7,CLASS_BIT+0xf,CLASS_IMM+(ARG_IMM8),0,0,0,0,0,0,},1,2,141},
2958 1.1 christos
2959 1.1 christos /* 1011 0011 dddd 1011 0000 ssss 0000 0000 *** sda rd,rs */
2960 1.1 christos {
2961 1.1 christos #ifdef NICENAMES
2962 1.1 christos "sda rd,rs",16,15,0x3c,
2963 1.1 christos #endif
2964 1.1 christos "sda",OPC_sda,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2965 1.1 christos {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},
2966 1.1 christos
2967 1.1 christos /* 1011 0010 dddd 1011 0000 ssss 0000 0000 *** sdab rbd,rs */
2968 1.1 christos {
2969 1.1 christos #ifdef NICENAMES
2970 1.1 christos "sdab rbd,rs",8,15,0x3c,
2971 1.1 christos #endif
2972 1.1 christos "sdab",OPC_sdab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2973 1.1 christos {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},
2974 1.1 christos
2975 1.1 christos /* 1011 0011 dddd 1111 0000 ssss 0000 0000 *** sdal rrd,rs */
2976 1.1 christos {
2977 1.1 christos #ifdef NICENAMES
2978 1.1 christos "sdal rrd,rs",32,15,0x3c,
2979 1.1 christos #endif
2980 1.1 christos "sdal",OPC_sdal,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2981 1.1 christos {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},
2982 1.1 christos
2983 1.1 christos /* 1011 0011 dddd 0011 0000 ssss 0000 0000 *** sdl rd,rs */
2984 1.1 christos {
2985 1.1 christos #ifdef NICENAMES
2986 1.1 christos "sdl rd,rs",16,15,0x38,
2987 1.1 christos #endif
2988 1.1 christos "sdl",OPC_sdl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2989 1.1 christos {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},
2990 1.1 christos
2991 1.1 christos /* 1011 0010 dddd 0011 0000 ssss 0000 0000 *** sdlb rbd,rs */
2992 1.1 christos {
2993 1.1 christos #ifdef NICENAMES
2994 1.1 christos "sdlb rbd,rs",8,15,0x38,
2995 1.1 christos #endif
2996 1.1 christos "sdlb",OPC_sdlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
2997 1.1 christos {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},
2998 1.1 christos
2999 1.1 christos /* 1011 0011 dddd 0111 0000 ssss 0000 0000 *** sdll rrd,rs */
3000 1.1 christos {
3001 1.1 christos #ifdef NICENAMES
3002 1.1 christos "sdll rrd,rs",32,15,0x38,
3003 1.1 christos #endif
3004 1.1 christos "sdll",OPC_sdll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
3005 1.1 christos {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},
3006 1.1 christos
3007 1.1 christos /* 0010 0101 ddN0 imm4 *** set @rd,imm4 */
3008 1.1 christos {
3009 1.1 christos #ifdef NICENAMES
3010 1.1 christos "set @rd,imm4",16,11,0x00,
3011 1.1 christos #endif
3012 1.1 christos "set",OPC_set,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3013 1.1 christos {CLASS_BIT+2,CLASS_BIT+5,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,148},
3014 1.1 christos
3015 1.1 christos /* 0110 0101 ddN0 imm4 address_dst *** set address_dst(rd),imm4 */
3016 1.1 christos {
3017 1.1 christos #ifdef NICENAMES
3018 1.1 christos "set address_dst(rd),imm4",16,14,0x00,
3019 1.1 christos #endif
3020 1.1 christos "set",OPC_set,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3021 1.1 christos {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},
3022 1.1 christos
3023 1.1 christos /* 0110 0101 0000 imm4 address_dst *** set address_dst,imm4 */
3024 1.1 christos {
3025 1.1 christos #ifdef NICENAMES
3026 1.1 christos "set address_dst,imm4",16,13,0x00,
3027 1.1 christos #endif
3028 1.1 christos "set",OPC_set,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
3029 1.1 christos {CLASS_BIT+6,CLASS_BIT+5,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,148},
3030 1.1 christos
3031 1.1 christos /* 1010 0101 dddd imm4 *** set rd,imm4 */
3032 1.1 christos {
3033 1.1 christos #ifdef NICENAMES
3034 1.1 christos "set rd,imm4",16,4,0x00,
3035 1.1 christos #endif
3036 1.1 christos "set",OPC_set,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3037 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+5,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,148},
3038 1.1 christos
3039 1.1 christos /* 0010 0101 0000 ssss 0000 dddd 0000 0000 *** set rd,rs */
3040 1.1 christos {
3041 1.1 christos #ifdef NICENAMES
3042 1.1 christos "set rd,rs",16,10,0x00,
3043 1.1 christos #endif
3044 1.1 christos "set",OPC_set,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
3045 1.1 christos {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},
3046 1.1 christos
3047 1.1 christos /* 0010 0100 ddN0 imm4 *** setb @rd,imm4 */
3048 1.1 christos {
3049 1.1 christos #ifdef NICENAMES
3050 1.1 christos "setb @rd,imm4",8,11,0x00,
3051 1.1 christos #endif
3052 1.1 christos "setb",OPC_setb,0,{CLASS_IR+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3053 1.1 christos {CLASS_BIT+2,CLASS_BIT+4,CLASS_REGN0+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,149},
3054 1.1 christos
3055 1.1 christos /* 0110 0100 ddN0 imm4 address_dst *** setb address_dst(rd),imm4 */
3056 1.1 christos {
3057 1.1 christos #ifdef NICENAMES
3058 1.1 christos "setb address_dst(rd),imm4",8,14,0x00,
3059 1.1 christos #endif
3060 1.1 christos "setb",OPC_setb,0,{CLASS_X+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3061 1.1 christos {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},
3062 1.1 christos
3063 1.1 christos /* 0110 0100 0000 imm4 address_dst *** setb address_dst,imm4 */
3064 1.1 christos {
3065 1.1 christos #ifdef NICENAMES
3066 1.1 christos "setb address_dst,imm4",8,13,0x00,
3067 1.1 christos #endif
3068 1.1 christos "setb",OPC_setb,0,{CLASS_DA+(ARG_DST),CLASS_IMM +(ARG_IMM4),},
3069 1.1 christos {CLASS_BIT+6,CLASS_BIT+4,CLASS_BIT+0,CLASS_IMM+(ARG_IMM4),CLASS_ADDRESS+(ARG_DST),0,0,0,0,},2,4,149},
3070 1.1 christos
3071 1.1 christos /* 1010 0100 dddd imm4 *** setb rbd,imm4 */
3072 1.1 christos {
3073 1.1 christos #ifdef NICENAMES
3074 1.1 christos "setb rbd,imm4",8,4,0x00,
3075 1.1 christos #endif
3076 1.1 christos "setb",OPC_setb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3077 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+4,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM4),0,0,0,0,0,},2,2,149},
3078 1.1 christos
3079 1.1 christos /* 0010 0100 0000 ssss 0000 dddd 0000 0000 *** setb rbd,rs */
3080 1.1 christos {
3081 1.1 christos #ifdef NICENAMES
3082 1.1 christos "setb rbd,rs",8,10,0x00,
3083 1.1 christos #endif
3084 1.1 christos "setb",OPC_setb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
3085 1.1 christos {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},
3086 1.1 christos
3087 1.1 christos /* 1000 1101 flags 0001 *** setflg flags */
3088 1.1 christos {
3089 1.1 christos #ifdef NICENAMES
3090 1.1 christos "setflg flags",16,7,0x3c,
3091 1.1 christos #endif
3092 1.1 christos "setflg",OPC_setflg,0,{CLASS_FLAGS,},
3093 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_FLAGS,CLASS_BIT+1,0,0,0,0,0,},1,2,150},
3094 1.1 christos
3095 1.1 christos /* 0011 1011 dddd 0101 imm16 *** sin rd,imm16 */
3096 1.1 christos {
3097 1.1 christos #ifdef NICENAMES
3098 1.1 christos "sin rd,imm16",16,12,0x00,
3099 1.1 christos #endif
3100 1.1 christos "sin",OPC_sin,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
3101 1.1 christos {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,151},
3102 1.1 christos
3103 1.1 christos /* 0011 1010 dddd 0101 imm16 *** sinb rbd,imm16 */
3104 1.1 christos {
3105 1.1 christos #ifdef NICENAMES
3106 1.1 christos "sinb rbd,imm16",8,10,0x00,
3107 1.1 christos #endif
3108 1.1 christos "sinb",OPC_sinb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
3109 1.1 christos {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RD),CLASS_BIT+5,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,152},
3110 1.1 christos
3111 1.1 christos /* 0011 1011 ssss 1001 0000 aaaa ddN0 1000 *** sind @rd,@ri,ra */
3112 1.1 christos {
3113 1.1 christos #ifdef NICENAMES
3114 1.1 christos "sind @rd,@ri,ra",16,21,0x04,
3115 1.1 christos #endif
3116 1.1 christos "sind",OPC_sind,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3117 1.1 christos {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},
3118 1.1 christos
3119 1.1 christos /* 0011 1010 ssss 1001 0000 aaaa ddN0 1000 *** sindb @rd,@ri,ra */
3120 1.1 christos {
3121 1.1 christos #ifdef NICENAMES
3122 1.1 christos "sindb @rd,@ri,ra",8,21,0x04,
3123 1.1 christos #endif
3124 1.1 christos "sindb",OPC_sindb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3125 1.1 christos {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},
3126 1.1 christos
3127 1.1 christos /* 0011 1011 ssss 1001 0000 aaaa ddN0 0000 *** sindr @rd,@ri,ra */
3128 1.1 christos {
3129 1.1 christos #ifdef NICENAMES
3130 1.1 christos "sindr @rd,@ri,ra",16,11,0x04,
3131 1.1 christos #endif
3132 1.1 christos "sindr",OPC_sindr,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3133 1.1 christos {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},
3134 1.1 christos
3135 1.1 christos /* 0011 1010 ssss 1001 0000 aaaa ddN0 0000 *** sindrb @rd,@ri,ra */
3136 1.1 christos {
3137 1.1 christos #ifdef NICENAMES
3138 1.1 christos "sindrb @rd,@ri,ra",8,11,0x04,
3139 1.1 christos #endif
3140 1.1 christos "sindrb",OPC_sindrb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3141 1.1 christos {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},
3142 1.1 christos
3143 1.1 christos /* 0011 1011 ssss 0001 0000 aaaa ddN0 1000 *** sini @rd,@ri,ra */
3144 1.1 christos {
3145 1.1 christos #ifdef NICENAMES
3146 1.1 christos "sini @rd,@ri,ra",16,21,0x04,
3147 1.1 christos #endif
3148 1.1 christos "sini",OPC_sini,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3149 1.1 christos {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},
3150 1.1 christos
3151 1.1 christos /* 0011 1010 ssss 0001 0000 aaaa ddN0 1000 *** sinib @rd,@ri,ra */
3152 1.1 christos {
3153 1.1 christos #ifdef NICENAMES
3154 1.1 christos "sinib @rd,@ri,ra",8,21,0x04,
3155 1.1 christos #endif
3156 1.1 christos "sinib",OPC_sinib,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3157 1.1 christos {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},
3158 1.1 christos
3159 1.1 christos /* 0011 1011 ssss 0001 0000 aaaa ddN0 0000 *** sinir @rd,@ri,ra */
3160 1.1 christos {
3161 1.1 christos #ifdef NICENAMES
3162 1.1 christos "sinir @rd,@ri,ra",16,11,0x04,
3163 1.1 christos #endif
3164 1.1 christos "sinir",OPC_sinir,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3165 1.1 christos {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},
3166 1.1 christos
3167 1.1 christos /* 0011 1010 ssss 0001 0000 aaaa ddN0 0000 *** sinirb @rd,@ri,ra */
3168 1.1 christos {
3169 1.1 christos #ifdef NICENAMES
3170 1.1 christos "sinirb @rd,@ri,ra",8,11,0x04,
3171 1.1 christos #endif
3172 1.1 christos "sinirb",OPC_sinirb,0,{CLASS_IR+(ARG_RD),CLASS_IRO+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3173 1.1 christos {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},
3174 1.1 christos
3175 1.1 christos /* 1011 0011 dddd 1001 0000 0000 imm8 *** sla rd,imm8 */
3176 1.1 christos {
3177 1.1 christos #ifdef NICENAMES
3178 1.1 christos "sla rd,imm8",16,13,0x3c,
3179 1.1 christos #endif
3180 1.1 christos "sla",OPC_sla,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3181 1.1 christos {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},
3182 1.1 christos
3183 1.1 christos /* 1011 0010 dddd 1001 iiii iiii 0000 imm4 *** slab rbd,imm4 */
3184 1.1 christos {
3185 1.1 christos #ifdef NICENAMES
3186 1.1 christos "slab rbd,imm4",8,13,0x3c,
3187 1.1 christos #endif
3188 1.1 christos "slab",OPC_slab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3189 1.1 christos {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},
3190 1.1 christos
3191 1.1 christos /* 1011 0011 dddd 1101 0000 0000 imm8 *** slal rrd,imm8 */
3192 1.1 christos {
3193 1.1 christos #ifdef NICENAMES
3194 1.1 christos "slal rrd,imm8",32,13,0x3c,
3195 1.1 christos #endif
3196 1.1 christos "slal",OPC_slal,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3197 1.1 christos {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},
3198 1.1 christos
3199 1.1 christos /* 1011 0011 dddd 0001 0000 0000 imm8 *** sll rd,imm8 */
3200 1.1 christos {
3201 1.1 christos #ifdef NICENAMES
3202 1.1 christos "sll rd,imm8",16,13,0x38,
3203 1.1 christos #endif
3204 1.1 christos "sll",OPC_sll,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3205 1.1 christos {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},
3206 1.1 christos
3207 1.1 christos /* 1011 0010 dddd 0001 iiii iiii 0000 imm4 *** sllb rbd,imm4 */
3208 1.1 christos {
3209 1.1 christos #ifdef NICENAMES
3210 1.1 christos "sllb rbd,imm4",8,13,0x38,
3211 1.1 christos #endif
3212 1.1 christos "sllb",OPC_sllb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3213 1.1 christos {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},
3214 1.1 christos
3215 1.1 christos /* 1011 0011 dddd 0101 0000 0000 imm8 *** slll rrd,imm8 */
3216 1.1 christos {
3217 1.1 christos #ifdef NICENAMES
3218 1.1 christos "slll rrd,imm8",32,13,0x38,
3219 1.1 christos #endif
3220 1.1 christos "slll",OPC_slll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3221 1.1 christos {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},
3222 1.1 christos
3223 1.1 christos /* 0011 1011 ssN0 1011 0000 aaaa dddd 0000 *** sotdr @ro,@rs,ra */
3224 1.1 christos {
3225 1.1 christos #ifdef NICENAMES
3226 1.1 christos "sotdr @ro,@rs,ra",16,11,0x04,
3227 1.1 christos #endif
3228 1.1 christos "sotdr",OPC_sotdr,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3229 1.1 christos {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},
3230 1.1 christos
3231 1.1 christos /* 0011 1010 ssN0 1011 0000 aaaa dddd 0000 *** sotdrb @ro,@rs,ra */
3232 1.1 christos {
3233 1.1 christos #ifdef NICENAMES
3234 1.1 christos "sotdrb @ro,@rs,ra",8,11,0x04,
3235 1.1 christos #endif
3236 1.1 christos "sotdrb",OPC_sotdrb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3237 1.1 christos {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},
3238 1.1 christos
3239 1.1 christos /* 0011 1011 ssN0 0011 0000 aaaa dddd 0000 *** sotir @ro,@rs,ra */
3240 1.1 christos {
3241 1.1 christos #ifdef NICENAMES
3242 1.1 christos "sotir @ro,@rs,ra",16,11,0x04,
3243 1.1 christos #endif
3244 1.1 christos "sotir",OPC_sotir,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3245 1.1 christos {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},
3246 1.1 christos
3247 1.1 christos /* 0011 1010 ssN0 0011 0000 aaaa dddd 0000 *** sotirb @ro,@rs,ra */
3248 1.1 christos {
3249 1.1 christos #ifdef NICENAMES
3250 1.1 christos "sotirb @ro,@rs,ra",8,11,0x04,
3251 1.1 christos #endif
3252 1.1 christos "sotirb",OPC_sotirb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3253 1.1 christos {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},
3254 1.1 christos
3255 1.1.1.7 christos /* 0011 1011 ssss 0111 imm16 *** sout imm16,rs */
3256 1.1 christos {
3257 1.1 christos #ifdef NICENAMES
3258 1.1 christos "sout imm16,rs",16,12,0x00,
3259 1.1 christos #endif
3260 1.1 christos "sout",OPC_sout,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_WORD+(ARG_RS),},
3261 1.1.1.7 christos {CLASS_BIT+3,CLASS_BIT+0xb,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,171},
3262 1.1 christos
3263 1.1.1.7 christos /* 0011 1010 ssss 0111 imm16 *** soutb imm16,rbs */
3264 1.1 christos {
3265 1.1 christos #ifdef NICENAMES
3266 1.1 christos "soutb imm16,rbs",8,12,0x00,
3267 1.1 christos #endif
3268 1.1 christos "soutb",OPC_soutb,0,{CLASS_IMM+(ARG_IMM16),CLASS_REG_BYTE+(ARG_RS),},
3269 1.1.1.7 christos {CLASS_BIT+3,CLASS_BIT+0xa,CLASS_REG+(ARG_RS),CLASS_BIT+7,CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,172},
3270 1.1 christos
3271 1.1 christos /* 0011 1011 ssN0 1011 0000 aaaa dddd 1000 *** soutd @ro,@rs,ra */
3272 1.1 christos {
3273 1.1 christos #ifdef NICENAMES
3274 1.1 christos "soutd @ro,@rs,ra",16,21,0x04,
3275 1.1 christos #endif
3276 1.1 christos "soutd",OPC_soutd,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3277 1.1 christos {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},
3278 1.1 christos
3279 1.1 christos /* 0011 1010 ssN0 1011 0000 aaaa dddd 1000 *** soutdb @ro,@rs,ra */
3280 1.1 christos {
3281 1.1 christos #ifdef NICENAMES
3282 1.1 christos "soutdb @ro,@rs,ra",8,21,0x04,
3283 1.1 christos #endif
3284 1.1 christos "soutdb",OPC_soutdb,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3285 1.1 christos {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},
3286 1.1 christos
3287 1.1 christos /* 0011 1011 ssN0 0011 0000 aaaa dddd 1000 *** souti @ro,@rs,ra */
3288 1.1 christos {
3289 1.1 christos #ifdef NICENAMES
3290 1.1 christos "souti @ro,@rs,ra",16,21,0x04,
3291 1.1 christos #endif
3292 1.1 christos "souti",OPC_souti,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3293 1.1 christos {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},
3294 1.1 christos
3295 1.1 christos /* 0011 1010 ssN0 0011 0000 aaaa dddd 1000 *** soutib @ro,@rs,ra */
3296 1.1 christos {
3297 1.1 christos #ifdef NICENAMES
3298 1.1 christos "soutib @ro,@rs,ra",8,21,0x04,
3299 1.1 christos #endif
3300 1.1 christos "soutib",OPC_soutib,0,{CLASS_IRO+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RA),},
3301 1.1 christos {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},
3302 1.1 christos
3303 1.1 christos /* 1011 0011 dddd 1001 1111 1111 nim8 *** sra rd,imm8 */
3304 1.1 christos {
3305 1.1 christos #ifdef NICENAMES
3306 1.1 christos "sra rd,imm8",16,13,0x3c,
3307 1.1 christos #endif
3308 1.1 christos "sra",OPC_sra,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3309 1.1 christos {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},
3310 1.1 christos
3311 1.1 christos /* 1011 0010 dddd 1001 iiii iiii 1111 nim4 *** srab rbd,imm4 */
3312 1.1 christos {
3313 1.1 christos #ifdef NICENAMES
3314 1.1 christos "srab rbd,imm4",8,13,0x3c,
3315 1.1 christos #endif
3316 1.1 christos "srab",OPC_srab,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3317 1.1 christos {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},
3318 1.1 christos
3319 1.1 christos /* 1011 0011 dddd 1101 1111 1111 nim8 *** sral rrd,imm8 */
3320 1.1 christos {
3321 1.1 christos #ifdef NICENAMES
3322 1.1 christos "sral rrd,imm8",32,13,0x3c,
3323 1.1 christos #endif
3324 1.1 christos "sral",OPC_sral,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3325 1.1 christos {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},
3326 1.1 christos
3327 1.1 christos /* 1011 0011 dddd 0001 1111 1111 nim8 *** srl rd,imm8 */
3328 1.1 christos {
3329 1.1 christos #ifdef NICENAMES
3330 1.1 christos "srl rd,imm8",16,13,0x3c,
3331 1.1 christos #endif
3332 1.1 christos "srl",OPC_srl,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3333 1.1 christos {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},
3334 1.1 christos
3335 1.1 christos /* 1011 0010 dddd 0001 iiii iiii 1111 nim4 *** srlb rbd,imm4 */
3336 1.1 christos {
3337 1.1 christos #ifdef NICENAMES
3338 1.1 christos "srlb rbd,imm4",8,13,0x3c,
3339 1.1 christos #endif
3340 1.1 christos "srlb",OPC_srlb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM +(ARG_IMM4),},
3341 1.1 christos {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},
3342 1.1 christos
3343 1.1 christos /* 1011 0011 dddd 0101 1111 1111 nim8 *** srll rrd,imm8 */
3344 1.1 christos {
3345 1.1 christos #ifdef NICENAMES
3346 1.1 christos "srll rrd,imm8",32,13,0x3c,
3347 1.1 christos #endif
3348 1.1 christos "srll",OPC_srll,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3349 1.1 christos {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},
3350 1.1 christos
3351 1.1 christos /* 0000 0011 ssN0 dddd *** sub rd,@rs */
3352 1.1 christos {
3353 1.1 christos #ifdef NICENAMES
3354 1.1 christos "sub rd,@rs",16,7,0x3c,
3355 1.1 christos #endif
3356 1.1 christos "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
3357 1.1 christos {CLASS_BIT+0,CLASS_BIT+3,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,183},
3358 1.1 christos
3359 1.1 christos /* 0100 0011 0000 dddd address_src *** sub rd,address_src */
3360 1.1 christos {
3361 1.1 christos #ifdef NICENAMES
3362 1.1 christos "sub rd,address_src",16,9,0x3c,
3363 1.1 christos #endif
3364 1.1 christos "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
3365 1.1 christos {CLASS_BIT+4,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,183},
3366 1.1 christos
3367 1.1 christos /* 0100 0011 ssN0 dddd address_src *** sub rd,address_src(rs) */
3368 1.1 christos {
3369 1.1 christos #ifdef NICENAMES
3370 1.1 christos "sub rd,address_src(rs)",16,10,0x3c,
3371 1.1 christos #endif
3372 1.1 christos "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
3373 1.1 christos {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},
3374 1.1 christos
3375 1.1 christos /* 0000 0011 0000 dddd imm16 *** sub rd,imm16 */
3376 1.1 christos {
3377 1.1 christos #ifdef NICENAMES
3378 1.1 christos "sub rd,imm16",16,7,0x3c,
3379 1.1 christos #endif
3380 1.1 christos "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
3381 1.1 christos {CLASS_BIT+0,CLASS_BIT+3,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,183},
3382 1.1 christos
3383 1.1 christos /* 1000 0011 ssss dddd *** sub rd,rs */
3384 1.1 christos {
3385 1.1 christos #ifdef NICENAMES
3386 1.1 christos "sub rd,rs",16,4,0x3c,
3387 1.1 christos #endif
3388 1.1 christos "sub",OPC_sub,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
3389 1.1 christos {CLASS_BIT+8,CLASS_BIT+3,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,183},
3390 1.1 christos
3391 1.1 christos /* 0000 0010 ssN0 dddd *** subb rbd,@rs */
3392 1.1 christos {
3393 1.1 christos #ifdef NICENAMES
3394 1.1 christos "subb rbd,@rs",8,7,0x3f,
3395 1.1 christos #endif
3396 1.1 christos "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
3397 1.1 christos {CLASS_BIT+0,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,184},
3398 1.1 christos
3399 1.1 christos /* 0100 0010 0000 dddd address_src *** subb rbd,address_src */
3400 1.1 christos {
3401 1.1 christos #ifdef NICENAMES
3402 1.1 christos "subb rbd,address_src",8,9,0x3f,
3403 1.1 christos #endif
3404 1.1 christos "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
3405 1.1 christos {CLASS_BIT+4,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,184},
3406 1.1 christos
3407 1.1 christos /* 0100 0010 ssN0 dddd address_src *** subb rbd,address_src(rs) */
3408 1.1 christos {
3409 1.1 christos #ifdef NICENAMES
3410 1.1 christos "subb rbd,address_src(rs)",8,10,0x3f,
3411 1.1 christos #endif
3412 1.1 christos "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
3413 1.1 christos {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},
3414 1.1 christos
3415 1.1 christos /* 0000 0010 0000 dddd imm8 imm8 *** subb rbd,imm8 */
3416 1.1 christos {
3417 1.1 christos #ifdef NICENAMES
3418 1.1 christos "subb rbd,imm8",8,7,0x3f,
3419 1.1 christos #endif
3420 1.1 christos "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3421 1.1 christos {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},
3422 1.1 christos
3423 1.1 christos /* 1000 0010 ssss dddd *** subb rbd,rbs */
3424 1.1 christos {
3425 1.1 christos #ifdef NICENAMES
3426 1.1 christos "subb rbd,rbs",8,4,0x3f,
3427 1.1 christos #endif
3428 1.1 christos "subb",OPC_subb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
3429 1.1 christos {CLASS_BIT+8,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,184},
3430 1.1 christos
3431 1.1 christos /* 0001 0010 ssN0 dddd *** subl rrd,@rs */
3432 1.1 christos {
3433 1.1 christos #ifdef NICENAMES
3434 1.1 christos "subl rrd,@rs",32,14,0x3c,
3435 1.1 christos #endif
3436 1.1 christos "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IR+(ARG_RS),},
3437 1.1 christos {CLASS_BIT+1,CLASS_BIT+2,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,185},
3438 1.1 christos
3439 1.1 christos /* 0101 0010 0000 dddd address_src *** subl rrd,address_src */
3440 1.1 christos {
3441 1.1 christos #ifdef NICENAMES
3442 1.1 christos "subl rrd,address_src",32,15,0x3c,
3443 1.1 christos #endif
3444 1.1 christos "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_DA+(ARG_SRC),},
3445 1.1 christos {CLASS_BIT+5,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,185},
3446 1.1 christos
3447 1.1 christos /* 0101 0010 ssN0 dddd address_src *** subl rrd,address_src(rs) */
3448 1.1 christos {
3449 1.1 christos #ifdef NICENAMES
3450 1.1 christos "subl rrd,address_src(rs)",32,16,0x3c,
3451 1.1 christos #endif
3452 1.1 christos "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_X+(ARG_RS),},
3453 1.1 christos {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},
3454 1.1 christos
3455 1.1 christos /* 0001 0010 0000 dddd imm32 *** subl rrd,imm32 */
3456 1.1 christos {
3457 1.1 christos #ifdef NICENAMES
3458 1.1 christos "subl rrd,imm32",32,14,0x3c,
3459 1.1 christos #endif
3460 1.1 christos "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_IMM+(ARG_IMM32),},
3461 1.1 christos {CLASS_BIT+1,CLASS_BIT+2,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM32),0,0,0,0,},2,6,185},
3462 1.1 christos
3463 1.1 christos /* 1001 0010 ssss dddd *** subl rrd,rrs */
3464 1.1 christos {
3465 1.1 christos #ifdef NICENAMES
3466 1.1 christos "subl rrd,rrs",32,8,0x3c,
3467 1.1 christos #endif
3468 1.1 christos "subl",OPC_subl,0,{CLASS_REG_LONG+(ARG_RD),CLASS_REG_LONG+(ARG_RS),},
3469 1.1 christos {CLASS_BIT+9,CLASS_BIT+2,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,185},
3470 1.1 christos
3471 1.1 christos /* 1010 1111 dddd cccc *** tcc cc,rd */
3472 1.1 christos {
3473 1.1 christos #ifdef NICENAMES
3474 1.1 christos "tcc cc,rd",16,5,0x00,
3475 1.1 christos #endif
3476 1.1 christos "tcc",OPC_tcc,0,{CLASS_CC,CLASS_REG_WORD+(ARG_RD),},
3477 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+0xf,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,186},
3478 1.1 christos
3479 1.1 christos /* 1010 1110 dddd cccc *** tccb cc,rbd */
3480 1.1 christos {
3481 1.1 christos #ifdef NICENAMES
3482 1.1 christos "tccb cc,rbd",8,5,0x00,
3483 1.1 christos #endif
3484 1.1 christos "tccb",OPC_tccb,0,{CLASS_CC,CLASS_REG_BYTE+(ARG_RD),},
3485 1.1 christos {CLASS_BIT+0xa,CLASS_BIT+0xe,CLASS_REG+(ARG_RD),CLASS_CC,0,0,0,0,0,},2,2,187},
3486 1.1 christos
3487 1.1 christos /* 0000 1101 ddN0 0100 *** test @rd */
3488 1.1 christos {
3489 1.1 christos #ifdef NICENAMES
3490 1.1 christos "test @rd",16,8,0x18,
3491 1.1 christos #endif
3492 1.1 christos "test",OPC_test,0,{CLASS_IR+(ARG_RD),},
3493 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,188},
3494 1.1 christos
3495 1.1 christos /* 0100 1101 0000 0100 address_dst *** test address_dst */
3496 1.1 christos {
3497 1.1 christos #ifdef NICENAMES
3498 1.1 christos "test address_dst",16,11,0x00,
3499 1.1 christos #endif
3500 1.1 christos "test",OPC_test,0,{CLASS_DA+(ARG_DST),},
3501 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,188},
3502 1.1 christos
3503 1.1 christos /* 0100 1101 ddN0 0100 address_dst *** test address_dst(rd) */
3504 1.1 christos {
3505 1.1 christos #ifdef NICENAMES
3506 1.1 christos "test address_dst(rd)",16,12,0x00,
3507 1.1 christos #endif
3508 1.1 christos "test",OPC_test,0,{CLASS_X+(ARG_RD),},
3509 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,188},
3510 1.1 christos
3511 1.1 christos /* 1000 1101 dddd 0100 *** test rd */
3512 1.1 christos {
3513 1.1 christos #ifdef NICENAMES
3514 1.1 christos "test rd",16,7,0x00,
3515 1.1 christos #endif
3516 1.1 christos "test",OPC_test,0,{CLASS_REG_WORD+(ARG_RD),},
3517 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,188},
3518 1.1 christos
3519 1.1 christos /* 0000 1100 ddN0 0100 *** testb @rd */
3520 1.1 christos {
3521 1.1 christos #ifdef NICENAMES
3522 1.1 christos "testb @rd",8,8,0x1c,
3523 1.1 christos #endif
3524 1.1 christos "testb",OPC_testb,0,{CLASS_IR+(ARG_RD),},
3525 1.1 christos {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,189},
3526 1.1 christos
3527 1.1 christos /* 0100 1100 0000 0100 address_dst *** testb address_dst */
3528 1.1 christos {
3529 1.1 christos #ifdef NICENAMES
3530 1.1 christos "testb address_dst",8,11,0x1c,
3531 1.1 christos #endif
3532 1.1 christos "testb",OPC_testb,0,{CLASS_DA+(ARG_DST),},
3533 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,189},
3534 1.1 christos
3535 1.1 christos /* 0100 1100 ddN0 0100 address_dst *** testb address_dst(rd) */
3536 1.1 christos {
3537 1.1 christos #ifdef NICENAMES
3538 1.1 christos "testb address_dst(rd)",8,12,0x1c,
3539 1.1 christos #endif
3540 1.1 christos "testb",OPC_testb,0,{CLASS_X+(ARG_RD),},
3541 1.1 christos {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+4,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,189},
3542 1.1 christos
3543 1.1 christos /* 1000 1100 dddd 0100 *** testb rbd */
3544 1.1 christos {
3545 1.1 christos #ifdef NICENAMES
3546 1.1 christos "testb rbd",8,7,0x1c,
3547 1.1 christos #endif
3548 1.1 christos "testb",OPC_testb,0,{CLASS_REG_BYTE+(ARG_RD),},
3549 1.1 christos {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+4,0,0,0,0,0,},1,2,189},
3550 1.1 christos
3551 1.1 christos /* 0001 1100 ddN0 1000 *** testl @rd */
3552 1.1 christos {
3553 1.1 christos #ifdef NICENAMES
3554 1.1 christos "testl @rd",32,13,0x18,
3555 1.1 christos #endif
3556 1.1 christos "testl",OPC_testl,0,{CLASS_IR+(ARG_RD),},
3557 1.1 christos {CLASS_BIT+1,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,190},
3558 1.1 christos
3559 1.1 christos /* 0101 1100 0000 1000 address_dst *** testl address_dst */
3560 1.1 christos {
3561 1.1 christos #ifdef NICENAMES
3562 1.1 christos "testl address_dst",32,16,0x18,
3563 1.1 christos #endif
3564 1.1 christos "testl",OPC_testl,0,{CLASS_DA+(ARG_DST),},
3565 1.1 christos {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,190},
3566 1.1 christos
3567 1.1 christos /* 0101 1100 ddN0 1000 address_dst *** testl address_dst(rd) */
3568 1.1 christos {
3569 1.1 christos #ifdef NICENAMES
3570 1.1 christos "testl address_dst(rd)",32,17,0x18,
3571 1.1 christos #endif
3572 1.1 christos "testl",OPC_testl,0,{CLASS_X+(ARG_RD),},
3573 1.1 christos {CLASS_BIT+5,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,190},
3574 1.1 christos
3575 1.1 christos /* 1001 1100 dddd 1000 *** testl rrd */
3576 1.1 christos {
3577 1.1 christos #ifdef NICENAMES
3578 1.1 christos "testl rrd",32,13,0x18,
3579 1.1 christos #endif
3580 1.1 christos "testl",OPC_testl,0,{CLASS_REG_LONG+(ARG_RD),},
3581 1.1 christos {CLASS_BIT+9,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+8,0,0,0,0,0,},1,2,190},
3582 1.1 christos
3583 1.1.1.2 christos /* 1011 1000 ddN0 1000 0000 rrrr ssN0 0000 *** trdb @rd,@rs,rr */
3584 1.1 christos {
3585 1.1 christos #ifdef NICENAMES
3586 1.1.1.2 christos "trdb @rd,@rs,rr",8,25,0x04,
3587 1.1 christos #endif
3588 1.1.1.2 christos "trdb",OPC_trdb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
3589 1.1.1.2 christos {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,191},
3590 1.1 christos
3591 1.1.1.2 christos /* 1011 1000 ddN0 1100 0000 rrrr ssN0 0000 *** trdrb @rd,@rs,rr */
3592 1.1 christos {
3593 1.1 christos #ifdef NICENAMES
3594 1.1.1.2 christos "trdrb @rd,@rs,rr",8,25,0x04,
3595 1.1 christos #endif
3596 1.1.1.2 christos "trdrb",OPC_trdrb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
3597 1.1.1.2 christos {CLASS_BIT+0xb,CLASS_BIT+8,CLASS_REGN0+(ARG_RD),CLASS_BIT+0xc,CLASS_BIT+0,CLASS_REG+(ARG_RR),CLASS_REGN0+(ARG_RS),CLASS_BIT+0,0,},3,4,192},
3598 1.1 christos
3599 1.1.1.2 christos /* 1011 1000 ddN0 0000 0000 rrrr ssN0 0000 *** trib @rd,@rs,rr */
3600 1.1 christos {
3601 1.1 christos #ifdef NICENAMES
3602 1.1.1.2 christos "trib @rd,@rs,rr",8,25,0x04,
3603 1.1 christos #endif
3604 1.1.1.2 christos "trib",OPC_trib,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
3605 1.1 christos {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},
3606 1.1 christos
3607 1.1.1.2 christos /* 1011 1000 ddN0 0100 0000 rrrr ssN0 0000 *** trirb @rd,@rs,rr */
3608 1.1 christos {
3609 1.1 christos #ifdef NICENAMES
3610 1.1.1.2 christos "trirb @rd,@rs,rr",8,25,0x04,
3611 1.1 christos #endif
3612 1.1.1.2 christos "trirb",OPC_trirb,0,{CLASS_IR+(ARG_RD),CLASS_IR+(ARG_RS),CLASS_REG_WORD+(ARG_RR),},
3613 1.1 christos {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},
3614 1.1 christos
3615 1.1.1.2 christos /* 1011 1000 aaN0 1010 0000 rrrr bbN0 0000 *** trtdb @ra,@rb,rr */
3616 1.1 christos {
3617 1.1 christos #ifdef NICENAMES
3618 1.1.1.2 christos "trtdb @ra,@rb,rr",8,25,0x14,
3619 1.1 christos #endif
3620 1.1.1.2 christos "trtdb",OPC_trtdb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_WORD+(ARG_RR),},
3621 1.1 christos {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},
3622 1.1 christos
3623 1.1.1.2 christos /* 1011 1000 aaN0 1110 0000 rrrr bbN0 1110 *** trtdrb @ra,@rb,rr */
3624 1.1 christos {
3625 1.1 christos #ifdef NICENAMES
3626 1.1.1.2 christos "trtdrb @ra,@rb,rr",8,25,0x14,
3627 1.1 christos #endif
3628 1.1.1.2 christos "trtdrb",OPC_trtdrb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_WORD+(ARG_RR),},
3629 1.1 christos {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},
3630 1.1 christos
3631 1.1.1.2 christos /* 1011 1000 aaN0 0010 0000 rrrr bbN0 0000 *** trtib @ra,@rb,rr */
3632 1.1 christos {
3633 1.1 christos #ifdef NICENAMES
3634 1.1.1.2 christos "trtib @ra,@rb,rr",8,25,0x14,
3635 1.1 christos #endif
3636 1.1.1.2 christos "trtib",OPC_trtib,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_WORD+(ARG_RR),},
3637 1.1 christos {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},
3638 1.1 christos
3639 1.1.1.2 christos /* 1011 1000 aaN0 0110 0000 rrrr bbN0 1110 *** trtirb @ra,@rb,rr */
3640 1.1 christos {
3641 1.1 christos #ifdef NICENAMES
3642 1.1.1.2 christos "trtirb @ra,@rb,rr",8,25,0x14,
3643 1.1 christos #endif
3644 1.1.1.2 christos "trtirb",OPC_trtirb,0,{CLASS_IR+(ARG_RA),CLASS_IR+(ARG_RB),CLASS_REG_WORD+(ARG_RR),},
3645 1.1 christos {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},
3646 1.1 christos
3647 1.1 christos /* 0000 1101 ddN0 0110 *** tset @rd */
3648 1.1 christos {
3649 1.1 christos #ifdef NICENAMES
3650 1.1 christos "tset @rd",16,11,0x08,
3651 1.1 christos #endif
3652 1.1 christos "tset",OPC_tset,0,{CLASS_IR+(ARG_RD),},
3653 1.1.1.2 christos {CLASS_BIT+0,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,199},
3654 1.1 christos
3655 1.1 christos /* 0100 1101 0000 0110 address_dst *** tset address_dst */
3656 1.1 christos {
3657 1.1 christos #ifdef NICENAMES
3658 1.1 christos "tset address_dst",16,14,0x08,
3659 1.1 christos #endif
3660 1.1 christos "tset",OPC_tset,0,{CLASS_DA+(ARG_DST),},
3661 1.1.1.2 christos {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,199},
3662 1.1 christos
3663 1.1 christos /* 0100 1101 ddN0 0110 address_dst *** tset address_dst(rd) */
3664 1.1 christos {
3665 1.1 christos #ifdef NICENAMES
3666 1.1 christos "tset address_dst(rd)",16,15,0x08,
3667 1.1 christos #endif
3668 1.1 christos "tset",OPC_tset,0,{CLASS_X+(ARG_RD),},
3669 1.1.1.2 christos {CLASS_BIT+4,CLASS_BIT+0xd,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,199},
3670 1.1 christos
3671 1.1 christos /* 1000 1101 dddd 0110 *** tset rd */
3672 1.1 christos {
3673 1.1 christos #ifdef NICENAMES
3674 1.1 christos "tset rd",16,7,0x08,
3675 1.1 christos #endif
3676 1.1 christos "tset",OPC_tset,0,{CLASS_REG_WORD+(ARG_RD),},
3677 1.1.1.2 christos {CLASS_BIT+8,CLASS_BIT+0xd,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,199},
3678 1.1 christos
3679 1.1 christos /* 0000 1100 ddN0 0110 *** tsetb @rd */
3680 1.1 christos {
3681 1.1 christos #ifdef NICENAMES
3682 1.1 christos "tsetb @rd",8,11,0x08,
3683 1.1 christos #endif
3684 1.1 christos "tsetb",OPC_tsetb,0,{CLASS_IR+(ARG_RD),},
3685 1.1.1.2 christos {CLASS_BIT+0,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,200},
3686 1.1 christos
3687 1.1 christos /* 0100 1100 0000 0110 address_dst *** tsetb address_dst */
3688 1.1 christos {
3689 1.1 christos #ifdef NICENAMES
3690 1.1 christos "tsetb address_dst",8,14,0x08,
3691 1.1 christos #endif
3692 1.1 christos "tsetb",OPC_tsetb,0,{CLASS_DA+(ARG_DST),},
3693 1.1.1.2 christos {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_BIT+0,CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,200},
3694 1.1 christos
3695 1.1 christos /* 0100 1100 ddN0 0110 address_dst *** tsetb address_dst(rd) */
3696 1.1 christos {
3697 1.1 christos #ifdef NICENAMES
3698 1.1 christos "tsetb address_dst(rd)",8,15,0x08,
3699 1.1 christos #endif
3700 1.1 christos "tsetb",OPC_tsetb,0,{CLASS_X+(ARG_RD),},
3701 1.1.1.2 christos {CLASS_BIT+4,CLASS_BIT+0xc,CLASS_REGN0+(ARG_RD),CLASS_BIT+6,CLASS_ADDRESS+(ARG_DST),0,0,0,0,},1,4,200},
3702 1.1 christos
3703 1.1 christos /* 1000 1100 dddd 0110 *** tsetb rbd */
3704 1.1 christos {
3705 1.1 christos #ifdef NICENAMES
3706 1.1 christos "tsetb rbd",8,7,0x08,
3707 1.1 christos #endif
3708 1.1 christos "tsetb",OPC_tsetb,0,{CLASS_REG_BYTE+(ARG_RD),},
3709 1.1.1.2 christos {CLASS_BIT+8,CLASS_BIT+0xc,CLASS_REG+(ARG_RD),CLASS_BIT+6,0,0,0,0,0,},1,2,200},
3710 1.1 christos
3711 1.1 christos /* 0000 1001 ssN0 dddd *** xor rd,@rs */
3712 1.1 christos {
3713 1.1 christos #ifdef NICENAMES
3714 1.1 christos "xor rd,@rs",16,7,0x18,
3715 1.1 christos #endif
3716 1.1 christos "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IR+(ARG_RS),},
3717 1.1.1.2 christos {CLASS_BIT+0,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,201},
3718 1.1 christos
3719 1.1 christos /* 0100 1001 0000 dddd address_src *** xor rd,address_src */
3720 1.1 christos {
3721 1.1 christos #ifdef NICENAMES
3722 1.1 christos "xor rd,address_src",16,9,0x18,
3723 1.1 christos #endif
3724 1.1 christos "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_DA+(ARG_SRC),},
3725 1.1.1.2 christos {CLASS_BIT+4,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,201},
3726 1.1 christos
3727 1.1 christos /* 0100 1001 ssN0 dddd address_src *** xor rd,address_src(rs) */
3728 1.1 christos {
3729 1.1 christos #ifdef NICENAMES
3730 1.1 christos "xor rd,address_src(rs)",16,10,0x18,
3731 1.1 christos #endif
3732 1.1 christos "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_X+(ARG_RS),},
3733 1.1.1.2 christos {CLASS_BIT+4,CLASS_BIT+9,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,201},
3734 1.1 christos
3735 1.1 christos /* 0000 1001 0000 dddd imm16 *** xor rd,imm16 */
3736 1.1 christos {
3737 1.1 christos #ifdef NICENAMES
3738 1.1 christos "xor rd,imm16",16,7,0x18,
3739 1.1 christos #endif
3740 1.1 christos "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_IMM+(ARG_IMM16),},
3741 1.1.1.2 christos {CLASS_BIT+0,CLASS_BIT+9,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_IMM+(ARG_IMM16),0,0,0,0,},2,4,201},
3742 1.1 christos
3743 1.1 christos /* 1000 1001 ssss dddd *** xor rd,rs */
3744 1.1 christos {
3745 1.1 christos #ifdef NICENAMES
3746 1.1 christos "xor rd,rs",16,4,0x18,
3747 1.1 christos #endif
3748 1.1 christos "xor",OPC_xor,0,{CLASS_REG_WORD+(ARG_RD),CLASS_REG_WORD+(ARG_RS),},
3749 1.1.1.2 christos {CLASS_BIT+8,CLASS_BIT+9,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,201},
3750 1.1 christos
3751 1.1 christos /* 0000 1000 ssN0 dddd *** xorb rbd,@rs */
3752 1.1 christos {
3753 1.1 christos #ifdef NICENAMES
3754 1.1 christos "xorb rbd,@rs",8,7,0x1c,
3755 1.1 christos #endif
3756 1.1 christos "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IR+(ARG_RS),},
3757 1.1.1.2 christos {CLASS_BIT+0,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,202},
3758 1.1 christos
3759 1.1 christos /* 0100 1000 0000 dddd address_src *** xorb rbd,address_src */
3760 1.1 christos {
3761 1.1 christos #ifdef NICENAMES
3762 1.1 christos "xorb rbd,address_src",8,9,0x1c,
3763 1.1 christos #endif
3764 1.1 christos "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_DA+(ARG_SRC),},
3765 1.1.1.2 christos {CLASS_BIT+4,CLASS_BIT+8,CLASS_BIT+0,CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,202},
3766 1.1 christos
3767 1.1 christos /* 0100 1000 ssN0 dddd address_src *** xorb rbd,address_src(rs) */
3768 1.1 christos {
3769 1.1 christos #ifdef NICENAMES
3770 1.1 christos "xorb rbd,address_src(rs)",8,10,0x1c,
3771 1.1 christos #endif
3772 1.1 christos "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_X+(ARG_RS),},
3773 1.1.1.2 christos {CLASS_BIT+4,CLASS_BIT+8,CLASS_REGN0+(ARG_RS),CLASS_REG+(ARG_RD),CLASS_ADDRESS+(ARG_SRC),0,0,0,0,},2,4,202},
3774 1.1 christos
3775 1.1 christos /* 0000 1000 0000 dddd imm8 imm8 *** xorb rbd,imm8 */
3776 1.1 christos {
3777 1.1 christos #ifdef NICENAMES
3778 1.1 christos "xorb rbd,imm8",8,7,0x1c,
3779 1.1 christos #endif
3780 1.1 christos "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_IMM+(ARG_IMM8),},
3781 1.1.1.2 christos {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,202},
3782 1.1 christos
3783 1.1 christos /* 1000 1000 ssss dddd *** xorb rbd,rbs */
3784 1.1 christos {
3785 1.1 christos #ifdef NICENAMES
3786 1.1 christos "xorb rbd,rbs",8,4,0x1c,
3787 1.1 christos #endif
3788 1.1 christos "xorb",OPC_xorb,0,{CLASS_REG_BYTE+(ARG_RD),CLASS_REG_BYTE+(ARG_RS),},
3789 1.1.1.2 christos {CLASS_BIT+8,CLASS_BIT+8,CLASS_REG+(ARG_RS),CLASS_REG+(ARG_RD),0,0,0,0,0,},2,2,202},
3790 1.1 christos
3791 1.1 christos /* end marker */
3792 1.1 christos {
3793 1.1 christos #ifdef NICENAMES
3794 1.1 christos NULL,0,0,
3795 1.1 christos 0,
3796 1.1 christos #endif
3797 1.1 christos NULL,0,0,{0,0,0,0},{0,0,0,0,0,0,0,0,0,0},0,0,0}
3798 1.1 christos };
3799 1.1 christos #endif
3800