]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - opcodes/csky-opc.h
Automatic date update in version.in
[thirdparty/binutils-gdb.git] / opcodes / csky-opc.h
1 /* Declarations for C-SKY opcode table
2 Copyright (C) 2007-2020 Free Software Foundation, Inc.
3 Contributed by C-SKY Microsystems and Mentor Graphics.
4
5 This file is part of the GNU opcodes library.
6
7 This library is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 3, or (at your option)
10 any later version.
11
12 It is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15 License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GAS; see the file COPYING. If not, write to the Free
19 Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
20 02110-1301, USA. */
21
22 #include "opcode/csky.h"
23
24 #define OP_TABLE_NUM 2
25 #define MAX_OPRND_NUM 4
26
27 enum operand_type
28 {
29 OPRND_TYPE_NONE = 0,
30 /* Control register. */
31 OPRND_TYPE_CTRLREG,
32 /* r0 - r7. */
33 OPRND_TYPE_GREG0_7,
34 /* r0 - r15. */
35 OPRND_TYPE_GREG0_15,
36 /* r16 - r31. */
37 OPRND_TYPE_GREG16_31,
38 /* r0 - r31. */
39 OPRND_TYPE_AREG,
40 /* (rx). */
41 OPRND_TYPE_AREG_WITH_BRACKET,
42 OPRND_TYPE_AREG_WITH_LSHIFT,
43 OPRND_TYPE_AREG_WITH_LSHIFT_FPU,
44
45 OPRND_TYPE_FREG_WITH_INDEX,
46 /* r1 only, for xtrb0(1)(2)(3) in csky v1 ISA. */
47 OPRND_TYPE_REG_r1a,
48 /* r1 only, for divs/divu in csky v1 ISA. */
49 OPRND_TYPE_REG_r1b,
50 /* r28. */
51 OPRND_TYPE_REG_r28,
52 OPRND_TYPE_REGr4_r7,
53 /* sp register with bracket. */
54 OPRND_TYPE_REGbsp,
55 /* sp register. */
56 OPRND_TYPE_REGsp,
57 /* Register with bracket. */
58 OPRND_TYPE_REGnr4_r7,
59 /* Not sp register. */
60 OPRND_TYPE_REGnsp,
61 /* Not lr register. */
62 OPRND_TYPE_REGnlr,
63 /* Not sp/lr register. */
64 OPRND_TYPE_REGnsplr,
65 /* hi/lo register. */
66 OPRND_TYPE_REGhilo,
67 /* VDSP register. */
68 OPRND_TYPE_VREG,
69
70 /* cp index. */
71 OPRND_TYPE_CPIDX,
72 /* cp regs. */
73 OPRND_TYPE_CPREG,
74 /* cp cregs. */
75 OPRND_TYPE_CPCREG,
76 /* fpu regs. */
77 OPRND_TYPE_FREG,
78 /* fpu even regs. */
79 OPRND_TYPE_FEREG,
80 /* Float round mode. */
81 OPRND_TYPE_RM,
82 /* PSR bits. */
83 OPRND_TYPE_PSR_BITS_LIST,
84
85 /* Constant. */
86 OPRND_TYPE_CONSTANT,
87 /* Floating Constant. */
88 OPRND_TYPE_FCONSTANT,
89 /* Extern lrw constant. */
90 OPRND_TYPE_ELRW_CONSTANT,
91 /* [label]. */
92 OPRND_TYPE_LABEL_WITH_BRACKET,
93 /* The operand is the same as first reg. It is a dummy reg that doesn't
94 appear in the binary code of the instruction. It is also used by
95 the disassembler.
96 For example: bclri rz, rz, imm5 -> bclri rz, imm5. */
97 OPRND_TYPE_DUMMY_REG,
98 /* The type of the operand is same as the first operand. If the value
99 of the operand is same as the first operand, we can use a 16-bit
100 instruction to represent the opcode.
101 For example: addc r1, r1, r2 -> addc16 r1, r2. */
102 OPRND_TYPE_2IN1_DUMMY,
103 /* Output a reg same as the first reg.
104 For example: addc r17, r1 -> addc32 r17, r17, r1.
105 The old "addc" cannot be represented by a 16-bit instruction because
106 16-bit "addc" only supports regs from r0 to r15. So we use "addc32"
107 which has 3 operands, and duplicate the first operand to the second. */
108 OPRND_TYPE_DUP_GREG0_7,
109 OPRND_TYPE_DUP_GREG0_15,
110 OPRND_TYPE_DUP_AREG,
111 /* Immediate. */
112 OPRND_TYPE_IMM1b,
113 OPRND_TYPE_IMM2b,
114 OPRND_TYPE_IMM3b,
115 OPRND_TYPE_IMM4b,
116 OPRND_TYPE_IMM5b,
117 OPRND_TYPE_IMM7b,
118 OPRND_TYPE_IMM8b,
119 OPRND_TYPE_IMM12b,
120 OPRND_TYPE_IMM15b,
121 OPRND_TYPE_IMM16b,
122 OPRND_TYPE_IMM18b,
123 OPRND_TYPE_IMM32b,
124 /* Immediate left shift 2 bits. */
125 OPRND_TYPE_IMM7b_LS2,
126 OPRND_TYPE_IMM8b_LS2,
127 /* OPRND_TYPE_IMM5b_a_b means: Immediate in (a, b). */
128 OPRND_TYPE_IMM5b_1_31,
129 OPRND_TYPE_IMM5b_7_31,
130 /* Operand type for rori and rotri. */
131 OPRND_TYPE_IMM5b_RORI,
132 OPRND_TYPE_IMM5b_POWER,
133 OPRND_TYPE_IMM5b_7_31_POWER,
134 OPRND_TYPE_IMM5b_BMASKI,
135 OPRND_TYPE_IMM8b_BMASKI,
136 /* For v2 movih. */
137 OPRND_TYPE_IMM16b_MOVIH,
138 /* For v2 ori. */
139 OPRND_TYPE_IMM16b_ORI,
140 /* For v2 ld/st. */
141 OPRND_TYPE_IMM_LDST,
142 OPRND_TYPE_IMM_FLDST,
143 OPRND_TYPE_IMM2b_JMPIX,
144 /* Offset for bloop. */
145 OPRND_TYPE_BLOOP_OFF4b,
146 OPRND_TYPE_BLOOP_OFF12b,
147 /* Offset for jump. */
148 OPRND_TYPE_OFF8b,
149 OPRND_TYPE_OFF10b,
150 OPRND_TYPE_OFF11b,
151 OPRND_TYPE_OFF16b,
152 OPRND_TYPE_OFF16b_LSL1,
153 OPRND_TYPE_OFF26b,
154 /* An immediate or label. */
155 OPRND_TYPE_IMM_OFF18b,
156 /* Offset immediate. */
157 OPRND_TYPE_OIMM3b,
158 OPRND_TYPE_OIMM4b,
159 OPRND_TYPE_OIMM5b,
160 OPRND_TYPE_OIMM8b,
161 OPRND_TYPE_OIMM12b,
162 OPRND_TYPE_OIMM16b,
163 OPRND_TYPE_OIMM18b,
164 /* For csky v2 idly. */
165 OPRND_TYPE_OIMM5b_IDLY,
166 /* For v2 bmaski. */
167 OPRND_TYPE_OIMM5b_BMASKI,
168 /* Constants. */
169 OPRND_TYPE_CONST1,
170 /* PC relative offset. */
171 OPRND_TYPE_PCR_OFFSET_16K,
172 OPRND_TYPE_PCR_OFFSET_64K,
173 OPRND_TYPE_PCR_OFFSET_64M,
174 OPRND_TYPE_CPFUNC,
175 OPRND_TYPE_GOT_PLT,
176 OPRND_TYPE_REGLIST_LDM,
177 OPRND_TYPE_REGLIST_DASH,
178 OPRND_TYPE_FREGLIST_DASH,
179 OPRND_TYPE_REGLIST_COMMA,
180 OPRND_TYPE_REGLIST_DASH_COMMA,
181 OPRND_TYPE_BRACKET,
182 OPRND_TYPE_ABRACKET,
183 OPRND_TYPE_JBTF,
184 OPRND_TYPE_JBR,
185 OPRND_TYPE_JBSR,
186 OPRND_TYPE_UNCOND10b,
187 OPRND_TYPE_UNCOND16b,
188 OPRND_TYPE_COND10b,
189 OPRND_TYPE_COND16b,
190 OPRND_TYPE_JCOMPZ,
191 OPRND_TYPE_LSB2SIZE,
192 OPRND_TYPE_MSB2SIZE,
193 OPRND_TYPE_LSB,
194 OPRND_TYPE_MSB,
195 /* Single float and double float. */
196 OPRND_TYPE_SFLOAT,
197 OPRND_TYPE_DFLOAT,
198 };
199
200 /* Operand descriptors. */
201 struct operand
202 {
203 /* Mask for suboperand. */
204 unsigned int mask;
205 /* Suboperand type. */
206 enum operand_type type;
207 /* Operand shift. */
208 int shift;
209 };
210
211 struct soperand
212 {
213 /* Mask for operand. */
214 unsigned int mask;
215 /* Operand type. */
216 enum operand_type type;
217 /* Operand shift. */
218 int shift;
219 /* Suboperand. */
220 struct operand subs[3];
221 };
222
223 union csky_operand
224 {
225 struct operand oprnds[5];
226 struct suboperand1
227 {
228 struct operand oprnd;
229 struct soperand soprnd;
230 } soprnd1;
231 struct suboperand2
232 {
233 struct soperand soprnd;
234 struct operand oprnd;
235 } soprnd2;
236 };
237
238 /* Describe a single instruction encoding. */
239 struct csky_opcode_info
240 {
241 /* How many operands. */
242 long operand_num;
243 /* The instruction opcode. */
244 unsigned int opcode;
245 /* Operand information. */
246 union csky_operand oprnd;
247 };
248
249 /* C-SKY instruction description. Each mnemonic can have multiple
250 16-bit and 32-bit encodings. */
251 struct csky_opcode
252 {
253 /* The instruction name. */
254 const char *mnemonic;
255 /* Whether this is an unconditional control transfer instruction,
256 for the purposes of placing literal pools after it.
257 0 = no, 1 = within function, 2 = end of function.
258 See check_literals in gas/config/tc-csky.c. */
259 int transfer;
260 /* Encodings for 16-bit opcodes. */
261 struct csky_opcode_info op16[OP_TABLE_NUM];
262 /* Encodings for 32-bit opcodes. */
263 struct csky_opcode_info op32[OP_TABLE_NUM];
264 /* Instruction set flag. */
265 unsigned int isa_flag16;
266 unsigned int isa_flag32;
267 /* Whether this insn needs relocation, 0: no, !=0: yes. */
268 signed int reloc16;
269 signed int reloc32;
270 /* Whether this insn needs relaxation, 0: no, != 0: yes. */
271 signed int relax;
272 /* Worker function to call when this instruction needs special assembler
273 handling. */
274 bfd_boolean (*work)(void);
275 };
276
277 /* The following are the opcodes used in relax/fix process. */
278 #define CSKYV1_INST_JMPI 0x7000
279 #define CSKYV1_INST_ADDI 0x2000
280 #define CSKYV1_INST_SUBI 0x2400
281 #define CSKYV1_INST_LDW 0x8000
282 #define CSKYV1_INST_STW 0x9000
283 #define CSKYV1_INST_BSR 0xf800
284 #define CSKYV1_INST_LRW 0x7000
285 #define CSKYV1_INST_ADDU 0x1c00
286 #define CSKYV1_INST_JMP 0x00c0
287 #define CSKYV1_INST_MOV_R1_RX 0x1201
288 #define CSKYV1_INST_MOV_RX_R1 0x1210
289
290 #define CSKYV2_INST_BT16 0x0800
291 #define CSKYV2_INST_BF16 0x0c00
292 #define CSKYV2_INST_BT32 0xe8600000
293 #define CSKYV2_INST_BF32 0xe8400000
294 #define CSKYV2_INST_BR32 0xe8000000
295 #define CSKYV2_INST_NOP 0x6c03
296 #define CSKYV2_INST_MOVI16 0x3000
297 #define CSKYV2_INST_MOVI32 0xea000000
298 #define CSKYV2_INST_MOVIH 0xea200000
299 #define CSKYV2_INST_LRW16 0x1000
300 #define CSKYV2_INST_LRW32 0xea800000
301 #define CSKYV2_INST_BSR32 0xe0000000
302 #define CSKYV2_INST_BR32 0xe8000000
303 #define CSKYV2_INST_FLRW 0xf4003800
304 #define CSKYV2_INST_JMPI32 0xeac00000
305 #define CSKYV2_INST_JSRI32 0xeae00000
306 #define CSKYV2_INST_JSRI_TO_LRW 0xea9a0000
307 #define CSKYV2_INST_JSR_R26 0xe8fa0000
308 #define CSKYV2_INST_MOV_R0_R0 0xc4004820
309
310 #define OPRND_SHIFT_0_BIT 0
311 #define OPRND_SHIFT_1_BIT 1
312 #define OPRND_SHIFT_2_BIT 2
313 #define OPRND_SHIFT_3_BIT 3
314 #define OPRND_SHIFT_4_BIT 4
315
316 #define OPRND_MASK_NONE 0x0
317 #define OPRND_MASK_0_1 0x3
318 #define OPRND_MASK_0_2 0x7
319 #define OPRND_MASK_0_3 0xf
320 #define OPRND_MASK_0_4 0x1f
321 #define OPRND_MASK_0_7 0xff
322 #define OPRND_MASK_0_8 0x1ff
323 #define OPRND_MASK_0_9 0x3ff
324 #define OPRND_MASK_0_10 0x7ff
325 #define OPRND_MASK_0_11 0xfff
326 #define OPRND_MASK_0_14 0x7fff
327 #define OPRND_MASK_0_15 0xffff
328 #define OPRND_MASK_0_17 0x3ffff
329 #define OPRND_MASK_0_25 0x3ffffff
330 #define OPRND_MASK_2_4 0x1c
331 #define OPRND_MASK_2_5 0x3c
332 #define OPRND_MASK_3_7 0xf8
333 #define OPRND_MASK_4 0x10
334 #define OPRND_MASK_4_6 0x70
335 #define OPRND_MASK_4_7 0xf0
336 #define OPRND_MASK_4_8 0x1f0
337 #define OPRND_MASK_4_10 0x7f0
338 #define OPRND_MASK_5 0x20
339 #define OPRND_MASK_5_6 0x60
340 #define OPRND_MASK_5_7 0xe0
341 #define OPRND_MASK_5_8 0x1e0
342 #define OPRND_MASK_5_9 0x3e0
343 #define OPRND_MASK_6_9 0x3c0
344 #define OPRND_MASK_6_10 0x7c0
345 #define OPRND_MASK_8_9 0x300
346 #define OPRND_MASK_8_10 0x700
347 #define OPRND_MASK_8_11 0xf00
348 #define OPRND_MASK_9_10 0x600
349 #define OPRND_MASK_9_12 0x1e00
350 #define OPRND_MASK_10_11 0xc00
351 #define OPRND_MASK_10_14 0x7c00
352 #define OPRND_MASK_12_15 0xf000
353 #define OPRND_MASK_13_17 0x3e000
354 #define OPRND_MASK_16_19 0xf0000
355 #define OPRND_MASK_16_20 0x1f0000
356 #define OPRND_MASK_16_25 0x3ff0000
357 #define OPRND_MASK_21_24 0x1e00000
358 #define OPRND_MASK_21_25 0x3e00000
359 #define OPRND_MASK_25 0x2000000
360 #define OPRND_MASK_RSV 0xffffffff
361 #define OPRND_MASK_0_3or21_24 OPRND_MASK_0_3 | OPRND_MASK_21_24
362 #define OPRND_MASK_0_4or21_25 OPRND_MASK_0_4 | OPRND_MASK_21_25
363 #define OPRND_MASK_0_4or16_20 OPRND_MASK_0_4 | OPRND_MASK_16_20
364 #define OPRND_MASK_0_4or8_10 OPRND_MASK_0_4 | OPRND_MASK_8_10
365 #define OPRND_MASK_0_4or8_9 OPRND_MASK_0_4 | OPRND_MASK_8_9
366 #define OPRND_MASK_0_14or16_20 OPRND_MASK_0_14 | OPRND_MASK_16_20
367 #define OPRND_MASK_4or5_8 OPRND_MASK_4 | OPRND_MASK_5_8
368 #define OPRND_MASK_5or21_24 OPRND_MASK_5 | OPRND_MASK_21_24
369 #define OPRND_MASK_2_5or6_9 OPRND_MASK_2_5 | OPRND_MASK_6_9
370 #define OPRND_MASK_4_6or21_25 OPRND_MASK_4_6 | OPRND_MASK_21_25
371 #define OPRND_MASK_4_7or21_24 OPRND_MASK_4_7 | OPRND_MASK_21_24
372 #define OPRND_MASK_5_6or21_25 OPRND_MASK_5_6 | OPRND_MASK_21_25
373 #define OPRND_MASK_5_7or8_10 OPRND_MASK_5_7 | OPRND_MASK_8_10
374 #define OPRND_MASK_5_9or21_25 OPRND_MASK_5_9 | OPRND_MASK_21_25
375 #define OPRND_MASK_16_19or21_24 OPRND_MASK_16_19 | OPRND_MASK_21_24
376 #define OPRND_MASK_16_20or21_25 OPRND_MASK_16_20 | OPRND_MASK_21_25
377 #define OPRND_MASK_4or9_10or25 OPRND_MASK_4 | OPRND_MASK_9_10 | OPRND_MASK_25
378 #define OPRND_MASK_4_7or16_24 OPRND_MASK_4_7 | OPRND_MASK_16_20 | OPRND_MASK_21_24
379
380 #define OPERAND_INFO(mask, type, shift) \
381 {OPRND_MASK_##mask, OPRND_TYPE_##type, shift}
382
383 #define OPCODE_INFO_NONE() \
384 {-2, 0, \
385 {{OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
386 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
387 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
388 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
389 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
390
391 /* Here and in subsequent macros, the "oprnd" arguments are the
392 parenthesized arglist to the OPERAND_INFO macro above. */
393 #define OPCODE_INFO(num, op, oprnd1, oprnd2, oprnd3, oprnd4, oprnd5) \
394 {num, op, \
395 {OPERAND_INFO oprnd1, OPERAND_INFO oprnd2, OPERAND_INFO oprnd3, \
396 OPERAND_INFO oprnd4, OPERAND_INFO oprnd5}}
397
398 #define OPCODE_INFO0(op) \
399 {0, op, \
400 {{OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
401 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
402 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
403 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
404 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
405 #define OPCODE_INFO1(op, oprnd) \
406 {1, op, \
407 {{OPERAND_INFO oprnd, \
408 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
409 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
410 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
411 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
412 #define OPCODE_INFO2(op, oprnd1, oprnd2) \
413 {2, op, \
414 {{OPERAND_INFO oprnd1, \
415 OPERAND_INFO oprnd2, \
416 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
417 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
418 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
419 #define OPCODE_INFO3(op, oprnd1, oprnd2, oprnd3) \
420 {3, op, \
421 {{OPERAND_INFO oprnd1, \
422 OPERAND_INFO oprnd2, \
423 OPERAND_INFO oprnd3, \
424 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
425 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
426 #define OPCODE_INFO4(op, oprnd1, oprnd2, oprnd3, oprnd4) \
427 {4, op, \
428 {{OPERAND_INFO oprnd1, \
429 OPERAND_INFO oprnd2, \
430 OPERAND_INFO oprnd3, \
431 OPERAND_INFO oprnd4, \
432 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
433 #define OPCODE_INFO_LIST(op, oprnd) \
434 {-1, op, \
435 {{OPERAND_INFO oprnd, \
436 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
437 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT) , \
438 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
439 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
440 #define OPCODE_INFO5(op, oprnd1, oprnd2, oprnd3, oprnd4, oprnd5) \
441 {5, op, \
442 {{OPERAND_INFO oprnd1, \
443 OPERAND_INFO oprnd2, \
444 OPERAND_INFO oprnd3, \
445 OPERAND_INFO oprnd4, \
446 OPERAND_INFO oprnd5}}}
447
448 #define BRACKET_OPRND(oprnd1, oprnd2) \
449 OPERAND_INFO (RSV, BRACKET, OPRND_SHIFT_0_BIT), \
450 OPERAND_INFO oprnd1, \
451 OPERAND_INFO oprnd2, \
452 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)
453 #define ABRACKET_OPRND(oprnd1, oprnd2) \
454 OPERAND_INFO (RSV, ABRACKET, OPRND_SHIFT_0_BIT), \
455 OPERAND_INFO oprnd1, \
456 OPERAND_INFO oprnd2, \
457 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)
458
459 #define SOPCODE_INFO1(op, soprnd) \
460 {1, op, \
461 {{soprnd, \
462 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
463 #define SOPCODE_INFO2(op, oprnd, soprnd) \
464 {2, op, \
465 {{OPERAND_INFO oprnd, soprnd}}}
466
467
468 /* Before using the opcode-defining macros, there need to be
469 #defines for _TRANSFER, _RELOC16, _RELOC32, and _RELAX. See
470 below. */
471 /* FIXME: it is a wart that these parameters are not explicit. */
472
473 #define OP16(mnem, opcode16, isa) \
474 {mnem, _TRANSFER, \
475 {opcode16, OPCODE_INFO_NONE ()}, \
476 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
477 isa, 0, _RELOC16, 0, _RELAX, NULL}
478
479 #ifdef BUILD_AS
480
481 #define OP16_WITH_WORK(mnem, opcode16, isa, work) \
482 {mnem, _TRANSFER, \
483 {opcode16, OPCODE_INFO_NONE ()}, \
484 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
485 isa, 0, _RELOC16, 0, _RELAX, work}
486 #define OP32_WITH_WORK(mnem, opcode32, isa, work) \
487 {mnem, _TRANSFER, \
488 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
489 {opcode32, OPCODE_INFO_NONE ()}, \
490 0, isa, 0, _RELOC32, _RELAX, work}
491 #define OP16_OP32_WITH_WORK(mnem, opcode16, isa16, opcode32, isa32, work) \
492 {mnem, _TRANSFER, \
493 {opcode16, OPCODE_INFO_NONE ()}, \
494 {opcode32, OPCODE_INFO_NONE ()}, \
495 isa16, isa32, _RELOC16, _RELOC32, _RELAX, work}
496 #define DOP16_OP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32, isa32, work) \
497 {mnem, _TRANSFER, \
498 {opcode16a, opcode16b}, \
499 {opcode32, OPCODE_INFO_NONE ()}, \
500 isa16, isa32, _RELOC16, _RELOC32, _RELAX, work}
501 #define DOP16_DOP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32, work) \
502 {mnem, _TRANSFER, \
503 {opcode16a, opcode16b}, \
504 {opcode32a, opcode32b}, \
505 isa16, isa32, _RELOC16, _RELOC32, _RELAX, work}
506 #define DOP32_WITH_WORK(mnem, opcode32a, opcode32b, isa, work) \
507 {mnem, _TRANSFER, \
508 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
509 {opcode32a, opcode32b}, \
510 0, isa, 0, _RELOC32, _RELAX, work}
511
512 #else /* ifdef BUILD_AS */
513
514 #define OP16_WITH_WORK(mnem, opcode16, isa, work) \
515 {mnem, _TRANSFER, \
516 {opcode16, OPCODE_INFO_NONE ()}, \
517 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
518 isa, 0, _RELOC16, 0, _RELAX, NULL}
519 #define OP32_WITH_WORK(mnem, opcode32, isa, work) \
520 {mnem, _TRANSFER, \
521 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
522 {opcode32, OPCODE_INFO_NONE ()}, \
523 0, isa, 0, _RELOC32, _RELAX, NULL}
524 #define OP16_OP32_WITH_WORK(mnem, opcode16, isa16, opcode32, isa32, work) \
525 {mnem, _TRANSFER, \
526 {opcode16, OPCODE_INFO_NONE ()}, \
527 {opcode32, OPCODE_INFO_NONE ()}, \
528 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
529 #define DOP16_OP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32, isa32, work) \
530 {mnem, _TRANSFER, \
531 {opcode16a, opcode16b}, \
532 {opcode32, OPCODE_INFO_NONE ()}, \
533 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
534 #define DOP16_DOP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32, work) \
535 {mnem, _TRANSFER, \
536 {opcode16a, opcode16b}, \
537 {opcode32a, opcode32b}, \
538 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
539 #define DOP32_WITH_WORK(mnem, opcode32a, opcode32b, isa, work) \
540 {mnem, _TRANSFER, \
541 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
542 {opcode32a, opcode32b}, \
543 0, isa, 0, _RELOC32, _RELAX, NULL}
544
545 #endif /* ifdef BUILD_AS */
546
547 #define DOP16(mnem, opcode16_1, opcode16_2, isa) \
548 {mnem, _TRANSFER, \
549 {opcode16_1, opcode16_2}, \
550 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
551 isa, 0, _RELOC16, 0, _RELAX, NULL}
552 #define OP32(mnem, opcode32, isa) \
553 {mnem, _TRANSFER, \
554 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
555 {opcode32, OPCODE_INFO_NONE ()}, \
556 0, isa, 0, _RELOC32, _RELAX, NULL}
557 #define DOP32(mnem, opcode32a, opcode32b, isa) \
558 {mnem, _TRANSFER, \
559 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
560 {opcode32a, opcode32b}, \
561 0, isa, 0, _RELOC32, _RELAX, NULL}
562 #define OP16_OP32(mnem, opcode16, isa16, opcode32, isa32) \
563 {mnem, _TRANSFER, \
564 {opcode16, OPCODE_INFO_NONE ()}, \
565 {opcode32, OPCODE_INFO_NONE ()}, \
566 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
567 #define DOP16_OP32(mnem, opcode16a, opcode16b, isa16, opcode32, isa32) \
568 {mnem, _TRANSFER, \
569 {opcode16a, opcode16b}, \
570 {opcode32, OPCODE_INFO_NONE ()}, \
571 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
572 #define OP16_DOP32(mnem, opcode16, isa16, opcode32a, opcode32b, isa32) \
573 {mnem, _TRANSFER, \
574 {opcode16, OPCODE_INFO_NONE ()}, \
575 {opcode32a, opcode32b}, \
576 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
577 #define DOP16_DOP32(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32) \
578 {mnem, _TRANSFER, \
579 {opcode16a, opcode16b}, \
580 {opcode32a, opcode32b}, \
581 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
582
583
584 /* Register names and numbers. */
585 #define V1_REG_SP 0
586 #define V1_REG_LR 15
587
588 struct csky_reg
589 {
590 const char *name;
591 int index;
592 int flag;
593 };
594
595 const char *csky_general_reg[] =
596 {
597 "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
598 "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
599 "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
600 "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31",
601 NULL,
602 };
603
604 /* TODO: optimize. */
605 const char *cskyv2_general_alias_reg[] =
606 {
607 "a0", "a1", "a2", "a3", "l0", "l1", "l2", "l3",
608 "l4", "l5", "l6", "l7", "t0", "t1", "sp", "lr",
609 "l8", "l9", "t2", "t3", "t4", "t5", "t6", "t7",
610 "t8", "t9", "r26", "r27", "rdb", "gb", "r30", "r31",
611 NULL,
612 };
613
614 /* TODO: optimize. */
615 const char *cskyv1_general_alias_reg[] =
616 {
617 "sp", "r1", "a0", "a1", "a2", "a3", "a4", "a5",
618 "fp", "l0", "l1", "l2", "l3", "l4", "gb", "lr",
619 NULL,
620 };
621
622 /* TODO: optimize. */
623 const char *csky_fpu_reg[] =
624 {
625 "fr0", "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7",
626 "fr8", "fr9", "fr10", "fr11", "fr12", "fr13", "fr14", "fr15",
627 "fr16", "fr17", "fr18", "fr19", "fr20", "fr21", "fr22", "fr23",
628 "fr24", "fr25", "fr26", "fr27", "fr28", "fr29", "fr30", "fr31",
629 NULL,
630 };
631
632 /* Control Registers. */
633 struct csky_reg csky_ctrl_regs[] =
634 {
635 {"psr", 0, 0}, {"vbr", 1, 0}, {"epsr", 2, 0}, {"fpsr", 3, 0},
636 {"epc", 4, 0}, {"fpc", 5, 0}, {"ss0", 6, 0}, {"ss1", 7, 0},
637 {"ss2", 8, 0}, {"ss3", 9, 0}, {"ss4", 10, 0}, {"gcr", 11, 0},
638 {"gsr", 12, 0}, {"cpuidr", 13, 0}, {"dcsr", 14, 0}, {"cwr", 15, 0},
639 {"cfr", 16, 0}, {"ccr", 17, 0}, {"capr", 19, 0}, {"pacr", 20, 0},
640 {"rid", 21, 0}, {"sedcr", 8, CSKY_ISA_TRUST}, {"sepcr", 9, CSKY_ISA_TRUST},
641 {NULL, 0, 0}
642 };
643
644 const char *csky_cp_idx[] =
645 {
646 "cp0", "cp1", "cp2", "cp3", "cp4", "cp5", "cp6", "cp7",
647 "cp8", "cp9", "cp10", "cp11", "cp12", "cp13", "cp14", "cp15",
648 "cp16", "cp17", "cp18", "cp19", "cp20",
649 NULL,
650 };
651
652 const char *csky_cp_reg[] =
653 {
654 "cpr0", "cpr1", "cpr2", "cpr3", "cpr4", "cpr5", "cpr6", "cpr7",
655 "cpr8", "cpr9", "cpr10", "cpr11", "cpr12", "cpr13", "cpr14", "cpr15",
656 "cpr16", "cpr17", "cpr18", "cpr19", "cpr20", "cpr21", "cpr22", "cpr23",
657 "cpr24", "cpr25", "cpr26", "cpr27", "cpr28", "cpr29", "cpr30", "cpr31",
658 "cpr32", "cpr33", "cpr34", "cpr35", "cpr36", "cpr37", "cpr38", "cpr39",
659 "cpr40", "cpr41", "cpr42", "cpr43", "cpr44", "cpr45", "cpr46", "cpr47",
660 "cpr48", "cpr49", "cpr50", "cpr51", "cpr52", "cpr53", "cpr54", "cpr55",
661 "cpr56", "cpr57", "cpr58", "cpr59", "cpr60", "cpr61", "cpr62", "cpr63",
662 NULL,
663 };
664
665 const char *csky_cp_creg[] =
666 {
667 "cpcr0", "cpcr1", "cpcr2", "cpcr3",
668 "cpcr4", "cpcr5", "cpcr6", "cpcr7",
669 "cpcr8", "cpcr9", "cpcr10", "cpcr11",
670 "cpcr12", "cpcr13", "cpcr14", "cpcr15",
671 "cpcr16", "cpcr17", "cpcr18", "cpcr19",
672 "cpcr20", "cpcr21", "cpcr22", "cpcr23",
673 "cpcr24", "cpcr25", "cpcr26", "cpcr27",
674 "cpcr28", "cpcr29", "cpcr30", "cpcr31",
675 "cpcr32", "cpcr33", "cpcr34", "cpcr35",
676 "cpcr36", "cpcr37", "cpcr38", "cpcr39",
677 "cpcr40", "cpcr41", "cpcr42", "cpcr43",
678 "cpcr44", "cpcr45", "cpcr46", "cpcr47",
679 "cpcr48", "cpcr49", "cpcr50", "cpcr51",
680 "cpcr52", "cpcr53", "cpcr54", "cpcr55",
681 "cpcr56", "cpcr57", "cpcr58", "cpcr59",
682 "cpcr60", "cpcr61", "cpcr62", "cpcr63",
683 NULL,
684 };
685
686 struct psrbit
687 {
688 int value;
689 int isa;
690 const char *name;
691 };
692 const struct psrbit cskyv1_psr_bits[] =
693 {
694 {1, 0, "ie"},
695 {2, 0, "fe"},
696 {4, 0, "ee"},
697 {8, 0, "af"},
698 {0, 0, NULL},
699 };
700 const struct psrbit cskyv2_psr_bits[] =
701 {
702 {8, 0, "ee"},
703 {4, 0, "ie"},
704 {2, 0, "fe"},
705 {1, 0, "af"},
706 {0x10, CSKY_ISA_TRUST, "sie"},
707 {0, 0, NULL},
708 };
709
710
711 /* C-SKY V1 opcodes. */
712 const struct csky_opcode csky_v1_opcodes[] =
713 {
714 #define _TRANSFER 0
715 #define _RELOC16 0
716 #define _RELOC32 0
717 #define _RELAX 0
718 OP16 ("bkpt",
719 OPCODE_INFO0 (0x0000),
720 CSKYV1_ISA_E1),
721 OP16 ("sync",
722 OPCODE_INFO0 (0x0001),
723 CSKYV1_ISA_E1),
724 #undef _TRANSFER
725 #define _TRANSFER 2
726 OP16 ("rfi",
727 OPCODE_INFO0 (0x0003),
728 CSKYV1_ISA_E1),
729 #undef _TRANSFER
730 #define _TRANSFER 0
731 OP16 ("stop",
732 OPCODE_INFO0 (0x0004),
733 CSKYV1_ISA_E1),
734 OP16 ("wait",
735 OPCODE_INFO0 (0x0005),
736 CSKYV1_ISA_E1),
737 OP16 ("doze",
738 OPCODE_INFO0 (0x0006),
739 CSKYV1_ISA_E1),
740 OP16 ("idly4",
741 OPCODE_INFO0 (0x0007),
742 CSKYV1_ISA_E1),
743 OP16 ("trap",
744 OPCODE_INFO1 (0x0008,
745 (0_1, IMM2b, OPRND_SHIFT_0_BIT)),
746 CSKYV1_ISA_E1),
747 OP16 ("mvtc",
748 OPCODE_INFO0 (0x000c),
749 CSKY_ISA_DSP),
750 OP16 ("cprc",
751 OPCODE_INFO0 (0x000d),
752 CSKY_ISA_CP),
753 OP16 ("cpseti",
754 OPCODE_INFO1 (0x0010,
755 (0_3, CPIDX, OPRND_SHIFT_0_BIT)),
756 CSKY_ISA_CP),
757 OP16 ("mvc",
758 OPCODE_INFO1 (0x0020,
759 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
760 CSKYV1_ISA_E1),
761 OP16 ("mvcv",
762 OPCODE_INFO1 (0x0030,
763 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
764 CSKYV1_ISA_E1),
765 OP16 ("ldq",
766 OPCODE_INFO2 (0x0040,
767 (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
768 (0_3, REGnr4_r7, OPRND_SHIFT_0_BIT)),
769 CSKYV1_ISA_E1),
770 OP16 ("stq",
771 OPCODE_INFO2 (0x0050,
772 (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
773 (0_3, REGnr4_r7, OPRND_SHIFT_0_BIT)),
774 CSKYV1_ISA_E1),
775 OP16 ("ldm",
776 OPCODE_INFO2 (0x0060,
777 (0_3, REGLIST_DASH, OPRND_SHIFT_0_BIT),
778 (NONE, REGbsp, OPRND_SHIFT_0_BIT)),
779 CSKYV1_ISA_E1),
780 OP16 ("stm",
781 OPCODE_INFO2 (0x0070,
782 (0_3, REGLIST_DASH, OPRND_SHIFT_0_BIT),
783 (NONE, REGbsp, OPRND_SHIFT_0_BIT)),
784 CSKYV1_ISA_E1),
785 DOP16 ("dect",
786 OPCODE_INFO3 (0x0080,
787 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
788 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
789 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
790 OPCODE_INFO1 (0x0080,
791 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
792 CSKYV1_ISA_E1),
793 DOP16 ("decf",
794 OPCODE_INFO3 (0x0090,
795 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
796 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
797 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
798 OPCODE_INFO1 (0x0090,
799 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
800 CSKYV1_ISA_E1),
801 DOP16 ("inct",
802 OPCODE_INFO3 (0x00a0,
803 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
804 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
805 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
806 OPCODE_INFO1 (0x00a0,
807 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
808 CSKYV1_ISA_E1),
809 DOP16 ("incf",
810 OPCODE_INFO3 (0x00b0,
811 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
812 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
813 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
814 OPCODE_INFO1 (0x00b0,
815 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
816 CSKYV1_ISA_E1),
817 #undef _TRANSFER
818 #define _TRANSFER 2
819 OP16 ("jmp",
820 OPCODE_INFO1 (0x00c0,
821 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
822 CSKYV1_ISA_E1),
823 #undef _TRANSFER
824 #define _TRANSFER 0
825 OP16 ("jsr",
826 OPCODE_INFO1 (0x00d0,
827 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
828 CSKYV1_ISA_E1),
829 DOP16 ("ff1",
830 OPCODE_INFO2 (0x00e0,
831 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
832 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
833 OPCODE_INFO1 (0x00e0,
834 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
835 CSKYV1_ISA_E1),
836 DOP16 ("brev",
837 OPCODE_INFO2 (0x00f0,
838 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
839 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
840 OPCODE_INFO1 (0x00f0,
841 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
842 CSKYV1_ISA_E1),
843 DOP16 ("xtrb3",
844 OPCODE_INFO2 (0x0100,
845 (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
846 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
847 OPCODE_INFO1 (0x0100,
848 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
849 CSKYV1_ISA_E1),
850 DOP16 ("xtrb2",
851 OPCODE_INFO2 (0x0110,
852 (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
853 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
854 OPCODE_INFO1 (0x0110,
855 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
856 CSKYV1_ISA_E1),
857 DOP16 ("xtrb1",
858 OPCODE_INFO2 (0x0120,
859 (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
860 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
861 OPCODE_INFO1 (0x0120,
862 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
863 CSKYV1_ISA_E1),
864 DOP16 ("xtrb0",
865 OPCODE_INFO2 (0x0130,
866 (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
867 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
868 OPCODE_INFO1 (0x0130,
869 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
870 CSKYV1_ISA_E1),
871 DOP16 ("zextb",
872 OPCODE_INFO2 (0x0140,
873 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
874 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
875 OPCODE_INFO1 (0x0140,
876 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
877 CSKYV1_ISA_E1),
878 DOP16 ("sextb",
879 OPCODE_INFO2 (0x0150,
880 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
881 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
882 OPCODE_INFO1 (0x0150,
883 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
884 CSKYV1_ISA_E1),
885 DOP16 ("zexth",
886 OPCODE_INFO2 (0x0160,
887 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
888 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
889 OPCODE_INFO1 (0x0160,
890 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
891 CSKYV1_ISA_E1),
892 DOP16 ("sexth",
893 OPCODE_INFO2 (0x0170,
894 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
895 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
896 OPCODE_INFO1 (0x0170,
897 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
898 CSKYV1_ISA_E1),
899 DOP16 ("declt",
900 OPCODE_INFO3 (0x0180,
901 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
902 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
903 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
904 OPCODE_INFO1 (0x0180,
905 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
906 CSKYV1_ISA_E1),
907 OP16 ("tstnbz",
908 OPCODE_INFO1 (0x0190,
909 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
910 CSKYV1_ISA_E1),
911 DOP16 ("decgt",
912 OPCODE_INFO3 (0x01a0,
913 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
914 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
915 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
916 OPCODE_INFO1 (0x01a0,
917 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
918 CSKYV1_ISA_E1),
919 DOP16 ("decne",
920 OPCODE_INFO3 (0x01b0,
921 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
922 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
923 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
924 OPCODE_INFO1 (0x01b0,
925 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
926 CSKYV1_ISA_E1),
927 OP16 ("clrt",
928 OPCODE_INFO1 (0x01c0,
929 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
930 CSKYV1_ISA_E1),
931 OP16 ("clrf",
932 OPCODE_INFO1 (0x01d0,
933 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
934 CSKYV1_ISA_E1),
935 DOP16 ("abs",
936 OPCODE_INFO2 (0x01e0,
937 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
938 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
939 OPCODE_INFO1 (0x01e0,
940 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
941 CSKYV1_ISA_E1),
942 DOP16 ("not",
943 OPCODE_INFO2 (0x01f0,
944 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
945 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
946 OPCODE_INFO1 (0x01f0,
947 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
948 CSKYV1_ISA_E1),
949 OP16 ("movt",
950 OPCODE_INFO2 (0x0200,
951 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
952 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
953 CSKYV1_ISA_E1),
954 DOP16 ("mult",
955 OPCODE_INFO3 (0x0300,
956 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
957 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
958 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
959 OPCODE_INFO2 (0x0300,
960 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
961 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
962 CSKYV1_ISA_E1),
963 OP16 ("mac",
964 OPCODE_INFO2 (0x0400,
965 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
966 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
967 CSKY_ISA_MAC),
968 DOP16 ("subu",
969 OPCODE_INFO3 (0x0500,
970 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
971 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
972 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
973 OPCODE_INFO2 (0x0500,
974 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
975 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
976 CSKYV1_ISA_E1),
977 DOP16 ("sub",
978 OPCODE_INFO3 (0x0500,
979 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
980 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
981 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
982 OPCODE_INFO2 (0x0500,
983 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
984 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
985 CSKYV1_ISA_E1),
986 DOP16 ("addc",
987 OPCODE_INFO3 (0x0600,
988 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
989 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
990 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
991 OPCODE_INFO2 (0x0600,
992 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
993 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
994 CSKYV1_ISA_E1),
995 DOP16 ("subc",
996 OPCODE_INFO3 (0x0700,
997 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
998 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
999 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1000 OPCODE_INFO2 (0x0700,
1001 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1002 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1003 CSKYV1_ISA_E1),
1004 OP16 ("cprgr",
1005 OPCODE_INFO2 (0x0800,
1006 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1007 (4_8, CPREG, OPRND_SHIFT_0_BIT)),
1008 CSKY_ISA_CP),
1009 OP16 ("movf",
1010 OPCODE_INFO2 (0x0a00,
1011 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1012 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1013 CSKYV1_ISA_E1),
1014 DOP16 ("lsr",
1015 OPCODE_INFO3 (0x0b00,
1016 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1017 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1018 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1019 OPCODE_INFO2 (0x0b00,
1020 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1021 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1022 CSKYV1_ISA_E1),
1023 OP16 ("cmphs",
1024 OPCODE_INFO2 (0x0c00,
1025 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1026 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1027 CSKYV1_ISA_E1),
1028 OP16 ("cmplt",
1029 OPCODE_INFO2 (0x0d00,
1030 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1031 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1032 CSKYV1_ISA_E1),
1033 OP16 ("tst",
1034 OPCODE_INFO2 (0x0e00,
1035 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1036 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1037 CSKYV1_ISA_E1),
1038 OP16 ("cmpne",
1039 OPCODE_INFO2 (0x0f00,
1040 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1041 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1042 CSKYV1_ISA_E1),
1043 OP16 ("mfcr",
1044 OPCODE_INFO2 (0x1000,
1045 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1046 (4_8, CTRLREG, OPRND_SHIFT_0_BIT)),
1047 CSKYV1_ISA_E1),
1048 OP16 ("psrclr",
1049 OPCODE_INFO_LIST (0x11f0,
1050 (0_2, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
1051 CSKYV1_ISA_E1),
1052 OP16 ("psrset",
1053 OPCODE_INFO_LIST (0x11f8,
1054 (0_2, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
1055 CSKYV1_ISA_E1),
1056 OP16 ("mov",
1057 OPCODE_INFO2 (0x1200,
1058 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1059 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1060 CSKYV1_ISA_E1),
1061 OP16 ("bgenr",
1062 OPCODE_INFO2 (0x1300,
1063 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1064 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1065 CSKYV1_ISA_E1),
1066 DOP16 ("rsub",
1067 OPCODE_INFO3 (0x1400,
1068 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1069 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1070 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1071 OPCODE_INFO2 (0x1400,
1072 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1073 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1074 CSKYV1_ISA_E1),
1075 DOP16 ("ixw",
1076 OPCODE_INFO3 (0x1500,
1077 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1078 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1079 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1080 OPCODE_INFO2 (0x1500,
1081 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1082 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1083 CSKYV1_ISA_E1),
1084 DOP16 ("and",
1085 OPCODE_INFO3 (0x1600,
1086 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1087 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1088 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1089 OPCODE_INFO2 (0x1600,
1090 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1091 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1092 CSKYV1_ISA_E1),
1093 DOP16 ("xor",
1094 OPCODE_INFO3 (0x1700,
1095 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1096 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1097 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1098 OPCODE_INFO2 (0x1700,
1099 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1100 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1101 CSKYV1_ISA_E1),
1102 OP16 ("mtcr",
1103 OPCODE_INFO2 (0x1800,
1104 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1105 (4_8, CTRLREG, OPRND_SHIFT_0_BIT)),
1106 CSKYV1_ISA_E1),
1107 DOP16 ("asr",
1108 OPCODE_INFO3 (0x1a00,
1109 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1110 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1111 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1112 OPCODE_INFO2 (0x1a00,
1113 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1114 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1115 CSKYV1_ISA_E1),
1116 DOP16 ("lsl",
1117 OPCODE_INFO3 (0x1b00,
1118 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1119 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1120 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1121 OPCODE_INFO2 (0x1b00,
1122 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1123 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1124 CSKYV1_ISA_E1),
1125 DOP16 ("addu",
1126 OPCODE_INFO3 (0x1c00,
1127 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1128 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1129 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1130 OPCODE_INFO2 (0x1c00,
1131 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1132 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1133 CSKYV1_ISA_E1),
1134 OP16 ("add",
1135 OPCODE_INFO2 (0x1c00,
1136 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1137 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1138 CSKYV1_ISA_E1),
1139 DOP16 ("ixh",
1140 OPCODE_INFO3 (0x1d00,
1141 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1142 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1143 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1144 OPCODE_INFO2 (0x1d00,
1145 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1146 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1147 CSKYV1_ISA_E1),
1148 DOP16 ("or",
1149 OPCODE_INFO3 (0x1e00,
1150 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1151 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1152 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1153 OPCODE_INFO2 (0x1e00,
1154 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1155 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1156 CSKYV1_ISA_E1),
1157 DOP16 ("andn",
1158 OPCODE_INFO3 (0x1f00,
1159 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1160 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1161 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1162 OPCODE_INFO2 (0x1f00,
1163 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1164 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1165 CSKYV1_ISA_E1),
1166 DOP16 ("addi",
1167 OPCODE_INFO3 (0x2000,
1168 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1169 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1170 (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
1171 OPCODE_INFO2 (0x2000,
1172 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1173 (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
1174 CSKYV1_ISA_E1),
1175 OP16 ("cmplti",
1176 OPCODE_INFO2 (0x2200,
1177 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1178 (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
1179 CSKYV1_ISA_E1),
1180 DOP16 ("subi",
1181 OPCODE_INFO3 (0x2400,
1182 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1183 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1184 (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
1185 OPCODE_INFO2 (0x2400,
1186 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1187 (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
1188 CSKYV1_ISA_E1),
1189 OP16 ("cpwgr",
1190 OPCODE_INFO2 (0x2600,
1191 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1192 (4_8, CPREG, OPRND_SHIFT_0_BIT)),
1193 CSKY_ISA_CP),
1194 DOP16 ("rsubi",
1195 OPCODE_INFO3 (0x2800,
1196 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1197 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1198 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1199 OPCODE_INFO2 (0x2800,
1200 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1201 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1202 CSKYV1_ISA_E1),
1203 OP16 ("cmpnei",
1204 OPCODE_INFO2 (0x2a00,
1205 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1206 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1207 CSKYV1_ISA_E1),
1208 OP16 ("bmaski",
1209 OPCODE_INFO2 (0x2c00,
1210 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1211 (4_8, IMM5b_BMASKI, OPRND_SHIFT_0_BIT)),
1212 CSKYV1_ISA_E1),
1213 DOP16 ("divu",
1214 OPCODE_INFO3 (0x2c10,
1215 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1216 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1217 (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
1218 OPCODE_INFO2 (0x2c10,
1219 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1220 (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
1221 CSKYV1_ISA_E1),
1222 OP16 ("mflos",
1223 OPCODE_INFO1 (0x2c20,
1224 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1225 CSKY_ISA_MAC_DSP),
1226 OP16 ("mfhis",
1227 OPCODE_INFO1 (0x2c30,
1228 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1229 CSKY_ISA_MAC_DSP),
1230 OP16 ("mtlo",
1231 OPCODE_INFO1 (0x2c40,
1232 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1233 CSKY_ISA_MAC_DSP),
1234 OP16 ("mthi",
1235 OPCODE_INFO1 (0x2c50,
1236 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1237 CSKY_ISA_MAC_DSP),
1238 OP16 ("mflo",
1239 OPCODE_INFO1 (0x2c60,
1240 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1241 CSKY_ISA_MAC_DSP),
1242 OP16 ("mfhi",
1243 OPCODE_INFO1 (0x2c70,
1244 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1245 CSKY_ISA_MAC_DSP),
1246 DOP16 ("andi",
1247 OPCODE_INFO3 (0x2e00,
1248 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1249 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1250 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1251 OPCODE_INFO2 (0x2e00,
1252 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1253 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1254 CSKYV1_ISA_E1),
1255 DOP16 ("bclri",
1256 OPCODE_INFO3 (0x3000,
1257 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1258 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1259 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1260 OPCODE_INFO2 (0x3000,
1261 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1262 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1263 CSKYV1_ISA_E1),
1264 OP16 ("bgeni",
1265 OPCODE_INFO2 (0x3200,
1266 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1267 (4_8, IMM5b_7_31, OPRND_SHIFT_0_BIT)),
1268 CSKYV1_ISA_E1),
1269 OP16 ("cpwir",
1270 OPCODE_INFO1 (0x3200,
1271 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1272 CSKY_ISA_CP),
1273 DOP16 ("divs",
1274 OPCODE_INFO3 (0x3210,
1275 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1276 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1277 (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
1278 OPCODE_INFO2 (0x3210,
1279 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1280 (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
1281 CSKYV1_ISA_E1),
1282 OP16 ("cprsr",
1283 OPCODE_INFO1 (0x3220,
1284 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1285 CSKY_ISA_CP),
1286 OP16 ("cpwsr",
1287 OPCODE_INFO1 (0x3230,
1288 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1289 CSKY_ISA_CP),
1290 DOP16 ("bseti",
1291 OPCODE_INFO3 (0x3400,
1292 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1293 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1294 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1295 OPCODE_INFO2 (0x3400,
1296 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1297 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1298 CSKYV1_ISA_E1),
1299 OP16 ("btsti",
1300 OPCODE_INFO2 (0x3600,
1301 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1302 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1303 CSKYV1_ISA_E1),
1304 DOP16 ("rotli",
1305 OPCODE_INFO3 (0x3800,
1306 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1307 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1308 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1309 OPCODE_INFO2 (0x3800,
1310 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1311 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1312 CSKYV1_ISA_E1),
1313 DOP16 ("xsr",
1314 OPCODE_INFO3 (0x3800,
1315 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1316 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1317 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1318 OPCODE_INFO1 (0x3800,
1319 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1320 CSKYV1_ISA_E1),
1321 DOP16 ("asrc",
1322 OPCODE_INFO3 (0x3a00,
1323 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1324 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1325 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1326 OPCODE_INFO1 (0x3a00,
1327 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1328 CSKYV1_ISA_E1),
1329 DOP16 ("asri",
1330 OPCODE_INFO3 (0x3a00,
1331 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1332 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1333 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1334 OPCODE_INFO2 (0x3a00,
1335 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1336 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1337 CSKYV1_ISA_E1),
1338 DOP16 ("lslc",
1339 OPCODE_INFO3 (0x3c00,
1340 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1341 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1342 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1343 OPCODE_INFO1 (0x3c00,
1344 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1345 CSKYV1_ISA_E1),
1346 DOP16 ("lsli",
1347 OPCODE_INFO3 (0x3c00,
1348 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1349 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1350 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1351 OPCODE_INFO2 (0x3c00,
1352 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1353 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1354 CSKYV1_ISA_E1),
1355 DOP16 ("lsrc",
1356 OPCODE_INFO3 (0x3e00,
1357 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1358 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1359 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1360 OPCODE_INFO1 (0x3e00,
1361 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1362 CSKYV1_ISA_E1),
1363 DOP16 ("lsri",
1364 OPCODE_INFO3 (0x3e00,
1365 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1366 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1367 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1368 OPCODE_INFO2 (0x3e00,
1369 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1370 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1371 CSKYV1_ISA_E1),
1372 OP16 ("ldex",
1373 SOPCODE_INFO2 (0x4000,
1374 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1375 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1376 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1377 CSKY_ISA_MP),
1378 OP16 ("ldex.w",
1379 SOPCODE_INFO2 (0x4000,
1380 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1381 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1382 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1383 CSKY_ISA_MP),
1384 OP16 ("ldwex",
1385 SOPCODE_INFO2 (0x4000,
1386 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1387 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1388 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1389 CSKY_ISA_MP),
1390 OP16 ("stex",
1391 SOPCODE_INFO2 (0x5000,
1392 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1393 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1394 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1395 CSKY_ISA_MP),
1396 OP16 ("stex.w",
1397 SOPCODE_INFO2 (0x5000,
1398 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1399 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1400 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1401 CSKY_ISA_MP),
1402 OP16 ("stwex",
1403 SOPCODE_INFO2 (0x5000,
1404 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1405 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1406 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1407 CSKY_ISA_MP),
1408 OP16 ("omflip0",
1409 OPCODE_INFO2 (0x4000,
1410 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1411 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1412 CSKY_ISA_MAC),
1413 OP16 ("omflip1",
1414 OPCODE_INFO2 (0x4100,
1415 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1416 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1417 CSKY_ISA_MAC),
1418 OP16 ("omflip2",
1419 OPCODE_INFO2 (0x4200,
1420 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1421 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1422 CSKY_ISA_MAC),
1423 OP16 ("omflip3",
1424 OPCODE_INFO2 (0x4300,
1425 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1426 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1427 CSKY_ISA_MAC),
1428 OP16 ("muls",
1429 OPCODE_INFO2 (0x5000,
1430 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1431 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1432 CSKY_ISA_DSP),
1433 OP16 ("mulsa",
1434 OPCODE_INFO2 (0x5100,
1435 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1436 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1437 CSKY_ISA_DSP),
1438 OP16 ("mulss",
1439 OPCODE_INFO2 (0x5200,
1440 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1441 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1442 CSKY_ISA_DSP),
1443 OP16 ("mulu",
1444 OPCODE_INFO2 (0x5400,
1445 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1446 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1447 CSKY_ISA_DSP),
1448 OP16 ("mulua",
1449 OPCODE_INFO2 (0x5500,
1450 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1451 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1452 CSKY_ISA_DSP),
1453 OP16 ("mulus",
1454 OPCODE_INFO2 (0x5600,
1455 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1456 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1457 CSKY_ISA_DSP),
1458 OP16 ("vmulsh",
1459 OPCODE_INFO2 (0x5800,
1460 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1461 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1462 CSKY_ISA_DSP),
1463 OP16 ("vmulsha",
1464 OPCODE_INFO2 (0x5900,
1465 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1466 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1467 CSKY_ISA_DSP),
1468 OP16 ("vmulshs",
1469 OPCODE_INFO2 (0x5a00,
1470 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1471 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1472 CSKY_ISA_DSP),
1473 OP16 ("vmulsw",
1474 OPCODE_INFO2 (0x5c00,
1475 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1476 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1477 CSKY_ISA_DSP),
1478 OP16 ("vmulswa",
1479 OPCODE_INFO2 (0x5d00,
1480 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1481 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1482 CSKY_ISA_DSP),
1483 OP16 ("vmulsws",
1484 OPCODE_INFO2 (0x5e00,
1485 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1486 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1487 CSKY_ISA_DSP),
1488 OP16 ("movi",
1489 OPCODE_INFO2 (0x6000,
1490 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1491 (4_10, IMM7b, OPRND_SHIFT_0_BIT)),
1492 CSKYV1_ISA_E1),
1493 DOP16 ("mulsh",
1494 OPCODE_INFO3 (0x6800,
1495 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1496 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1497 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1498 OPCODE_INFO2 (0x6800,
1499 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1500 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1501 CSKYV1_ISA_E1),
1502 DOP16 ("mulsh.h",
1503 OPCODE_INFO3 (0x6800,
1504 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1505 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1506 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1507 OPCODE_INFO2 (0x6800,
1508 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1509 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1510 CSKYV1_ISA_E1),
1511 OP16 ("mulsha",
1512 OPCODE_INFO2 (0x6900,
1513 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1514 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1515 CSKY_ISA_DSP),
1516 OP16 ("mulshs",
1517 OPCODE_INFO2 (0x6a00,
1518 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1519 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1520 CSKY_ISA_DSP),
1521 OP16 ("cprcr",
1522 OPCODE_INFO2 (0x6b00,
1523 (0_2, GREG0_7, OPRND_SHIFT_0_BIT),
1524 (3_7, CPCREG, OPRND_SHIFT_0_BIT)),
1525 CSKY_ISA_CP),
1526 OP16 ("mulsw",
1527 OPCODE_INFO2 (0x6c00,
1528 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1529 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1530 CSKY_ISA_DSP),
1531 OP16 ("mulswa",
1532 OPCODE_INFO2 (0x6d00,
1533 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1534 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1535 CSKY_ISA_DSP),
1536 OP16 ("mulsws",
1537 OPCODE_INFO2 (0x6e00,
1538 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1539 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1540 CSKY_ISA_DSP),
1541 OP16 ("cpwcr",
1542 OPCODE_INFO2 (0x6f00,
1543 (0_2, GREG0_7, OPRND_SHIFT_0_BIT),
1544 (3_7, CPCREG, OPRND_SHIFT_0_BIT)),
1545 CSKY_ISA_CP),
1546 #undef _RELOC16
1547 #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM8BY4
1548 #undef _TRANSFER
1549 #define _TRANSFER 1
1550 OP16 ("jmpi",
1551 OPCODE_INFO1 (0x7000,
1552 (0_7, OFF8b, OPRND_SHIFT_2_BIT)),
1553 CSKYV1_ISA_E1),
1554 #undef _TRANSFER
1555 #define _TRANSFER 0
1556 OP16 ("jsri",
1557 OPCODE_INFO1 (0x7f00,
1558 (0_7, OFF8b, OPRND_SHIFT_2_BIT)),
1559 CSKYV1_ISA_E1),
1560 OP16_WITH_WORK ("lrw",
1561 OPCODE_INFO2 (0x7000,
1562 (8_11, REGnsplr, OPRND_SHIFT_0_BIT),
1563 (0_7, CONSTANT, OPRND_SHIFT_2_BIT)),
1564 CSKYV1_ISA_E1,
1565 v1_work_lrw),
1566 #undef _RELOC16
1567 #define _RELOC16 0
1568 DOP16 ("ld.w",
1569 SOPCODE_INFO2 (0x8000,
1570 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1571 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1572 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1573 OPCODE_INFO2 (0x8000,
1574 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1575 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1576 CSKYV1_ISA_E1),
1577 DOP16 ("ldw",
1578 SOPCODE_INFO2 (0x8000,
1579 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1580 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1581 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1582 OPCODE_INFO2 (0x8000,
1583 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1584 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1585 CSKYV1_ISA_E1),
1586 DOP16 ("ld",
1587 SOPCODE_INFO2 (0x8000,
1588 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1589 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1590 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1591 OPCODE_INFO2 (0x8000,
1592 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1593 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1594 CSKYV1_ISA_E1),
1595 DOP16 ("st.w",
1596 SOPCODE_INFO2 (0x9000,
1597 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1598 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1599 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1600 OPCODE_INFO2 (0x9000,
1601 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1602 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1603 CSKYV1_ISA_E1),
1604 DOP16 ("stw",
1605 SOPCODE_INFO2 (0x9000,
1606 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1607 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1608 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1609 OPCODE_INFO2 (0x9000,
1610 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1611 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1612 CSKYV1_ISA_E1),
1613 DOP16 ("st",
1614 SOPCODE_INFO2 (0x9000,
1615 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1616 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1617 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1618 OPCODE_INFO2 (0x9000,
1619 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1620 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1621 CSKYV1_ISA_E1),
1622 DOP16 ("ld.b",
1623 SOPCODE_INFO2 (0xa000,
1624 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1625 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1626 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1627 OPCODE_INFO2 (0xa000,
1628 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1629 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1630 CSKYV1_ISA_E1),
1631 DOP16 ("ldb",
1632 SOPCODE_INFO2 (0xa000,
1633 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1634 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1635 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1636 OPCODE_INFO2 (0xa000,
1637 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1638 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1639 CSKYV1_ISA_E1),
1640 DOP16 ("st.b",
1641 SOPCODE_INFO2 (0xb000,
1642 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1643 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1644 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1645 OPCODE_INFO2 (0xb000,
1646 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1647 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1648 CSKYV1_ISA_E1),
1649 DOP16 ("stb",
1650 SOPCODE_INFO2 (0xb000,
1651 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1652 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1653 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1654 OPCODE_INFO2 (0xb000,
1655 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1656 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1657 CSKYV1_ISA_E1),
1658 DOP16 ("ld.h",
1659 SOPCODE_INFO2 (0xc000,
1660 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1661 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1662 (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
1663 OPCODE_INFO2 (0xc000,
1664 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1665 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1666 CSKYV1_ISA_E1),
1667 DOP16 ("ldh",
1668 SOPCODE_INFO2 (0xc000,
1669 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1670 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1671 (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
1672 OPCODE_INFO2 (0xc000,
1673 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1674 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1675 CSKYV1_ISA_E1),
1676 DOP16 ("st.h",
1677 SOPCODE_INFO2 (0xd000,
1678 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1679 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1680 (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
1681 OPCODE_INFO2 (0xd000,
1682 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1683 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1684 CSKYV1_ISA_E1),
1685 DOP16 ("sth",
1686 SOPCODE_INFO2 (0xd000,
1687 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1688 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1689 (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
1690 OPCODE_INFO2 (0xd000,
1691 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1692 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1693 CSKYV1_ISA_E1),
1694
1695 #undef _RELOC16
1696 #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM11BY2
1697 OP16 ("bt",
1698 OPCODE_INFO1 (0xe000,
1699 (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
1700 CSKYV1_ISA_E1),
1701 OP16 ("bf",
1702 OPCODE_INFO1 (0xe800,
1703 (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
1704 CSKYV1_ISA_E1),
1705 #undef _TRANSFER
1706 #define _TRANSFER 1
1707 OP16 ("br",
1708 OPCODE_INFO1 (0xf000,
1709 (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
1710 CSKYV1_ISA_E1),
1711 #undef _TRANSFER
1712 #define _TRANSFER 0
1713 OP16 ("bsr",
1714 OPCODE_INFO1 (0xf800,
1715 (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
1716 CSKYV1_ISA_E1),
1717 #undef _RELOC16
1718 #define _RELOC16 0
1719
1720 #undef _RELAX
1721 #define _RELAX 1
1722 OP16 ("jbt",
1723 OPCODE_INFO1 (0xe000,
1724 (0_10, JBTF, OPRND_SHIFT_0_BIT)),
1725 CSKYV1_ISA_E1),
1726 OP16 ("jbf",
1727 OPCODE_INFO1 (0xe800,
1728 (0_10, JBTF, OPRND_SHIFT_0_BIT)),
1729 CSKYV1_ISA_E1),
1730 #undef _TRANSFER
1731 #define _TRANSFER 1
1732 OP16 ("jbr",
1733 OPCODE_INFO1 (0xf000,
1734 (0_10, JBR, OPRND_SHIFT_0_BIT)),
1735 CSKYV1_ISA_E1),
1736 #undef _TRANSFER
1737 #define _TRANSFER 0
1738 #undef _RELAX
1739 #define _RELAX 0
1740
1741 OP16_WITH_WORK ("jbsr",
1742 OPCODE_INFO1 (0xf800,
1743 (0_10, JBSR, OPRND_SHIFT_0_BIT)),
1744 CSKYV1_ISA_E1,
1745 v1_work_jbsr),
1746
1747 /* The following are aliases for other instructions. */
1748 /* rts -> jmp r15. */
1749 #undef _TRANSFER
1750 #define _TRANSFER 2
1751 OP16 ("rts",
1752 OPCODE_INFO0 (0x00CF),
1753 CSKYV1_ISA_E1),
1754 OP16 ("rte",
1755 OPCODE_INFO0 (0x0002),
1756 CSKYV1_ISA_E1),
1757 OP16 ("rfe",
1758 OPCODE_INFO0 (0x0002),
1759 CSKYV1_ISA_E1),
1760 #undef _TRANSFER
1761 #define _TRANSFER 0
1762
1763 /* cmphs r0,r0 */
1764 OP16 ("setc",
1765 OPCODE_INFO0 (0x0c00),
1766 CSKYV1_ISA_E1),
1767 /* cmpne r0,r0 */
1768 OP16 ("clrc",
1769 OPCODE_INFO0 (0x0f00),
1770 CSKYV1_ISA_E1),
1771 /* cmplti rd,1 */
1772 OP16 ("tstle",
1773 OPCODE_INFO1 (0x2200,
1774 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1775 CSKYV1_ISA_E1),
1776 /* cmplei rd,X -> cmplti rd,X+1 */
1777 OP16 ("cmplei",
1778 OPCODE_INFO2 (0x2200,
1779 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1780 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1781 CSKYV1_ISA_E1),
1782 /* rsubi rd,0 */
1783 OP16 ("neg",
1784 OPCODE_INFO1 (0x2800,
1785 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1786 CSKYV1_ISA_E1),
1787 /* cmpnei rd,0. */
1788 OP16 ("tstne",
1789 OPCODE_INFO1 (0x2a00,
1790 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1791 CSKYV1_ISA_E1),
1792 /* btsti rx,31. */
1793 OP16 ("tstlt",
1794 OPCODE_INFO1 (0x37f0,
1795 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1796 CSKYV1_ISA_E1),
1797 /* bclri rx,log2(imm). */
1798 OP16 ("mclri",
1799 OPCODE_INFO2 (0x3000,
1800 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1801 (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)),
1802 CSKYV1_ISA_E1),
1803 /* bgeni rx,log2(imm). */
1804 OP16 ("mgeni",
1805 OPCODE_INFO2 (0x3200,
1806 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1807 (4_8, IMM5b_7_31_POWER, OPRND_SHIFT_0_BIT)),
1808 CSKYV1_ISA_E1),
1809 /* bseti rx,log2(imm). */
1810 OP16 ("mseti",
1811 OPCODE_INFO2 (0x3400,
1812 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1813 (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)),
1814 CSKYV1_ISA_E1),
1815 /* btsti rx,log2(imm). */
1816 OP16 ("mtsti",
1817 OPCODE_INFO2 (0x3600,
1818 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1819 (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)),
1820 CSKYV1_ISA_E1),
1821 OP16 ("rori",
1822 OPCODE_INFO2 (0x3800,
1823 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1824 (4_8, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
1825 CSKYV1_ISA_E1),
1826 OP16 ("rotri",
1827 OPCODE_INFO2 (0x3800,
1828 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1829 (4_8, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
1830 CSKYV1_ISA_E1),
1831 /* mov r0, r0. */
1832 OP16 ("nop",
1833 OPCODE_INFO0 (0x1200),
1834 CSKYV1_ISA_E1),
1835
1836 /* Float instruction with work. */
1837 OP16_WITH_WORK ("fabss",
1838 OPCODE_INFO3 (0xffe04400,
1839 (5_9, FREG, OPRND_SHIFT_0_BIT),
1840 (0_4, FREG, OPRND_SHIFT_0_BIT),
1841 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1842 CSKY_ISA_FLOAT_E1,
1843 v1_work_fpu_fo),
1844 OP16_WITH_WORK ("fnegs",
1845 OPCODE_INFO3 (0xffe04c00,
1846 (5_9, FREG, OPRND_SHIFT_0_BIT),
1847 (0_4, FREG, OPRND_SHIFT_0_BIT),
1848 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1849 CSKY_ISA_FLOAT_E1,
1850 v1_work_fpu_fo),
1851 OP16_WITH_WORK ("fsqrts",
1852 OPCODE_INFO3 (0xffe05400,
1853 (5_9, FREG, OPRND_SHIFT_0_BIT),
1854 (0_4, FREG, OPRND_SHIFT_0_BIT),
1855 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1856 CSKY_ISA_FLOAT_E1,
1857 v1_work_fpu_fo),
1858 OP16_WITH_WORK ("frecips",
1859 OPCODE_INFO3 (0xffe05c00,
1860 (5_9, FREG, OPRND_SHIFT_0_BIT),
1861 (0_4, FREG, OPRND_SHIFT_0_BIT),
1862 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1863 CSKY_ISA_FLOAT_E1,
1864 v1_work_fpu_fo),
1865 OP16_WITH_WORK ("fadds",
1866 OPCODE_INFO4 (0xffe38000,
1867 (5_9, FREG, OPRND_SHIFT_0_BIT),
1868 (0_4, FREG, OPRND_SHIFT_0_BIT),
1869 (10_14, FREG, OPRND_SHIFT_0_BIT),
1870 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1871 CSKY_ISA_FLOAT_E1,
1872 v1_work_fpu_fo),
1873 OP16_WITH_WORK ("fsubs",
1874 OPCODE_INFO4 (0xffe48000,
1875 (5_9, FREG, OPRND_SHIFT_0_BIT),
1876 (0_4, FREG, OPRND_SHIFT_0_BIT),
1877 (10_14, FREG, OPRND_SHIFT_0_BIT),
1878 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1879 CSKY_ISA_FLOAT_E1, v1_work_fpu_fo),
1880 OP16_WITH_WORK ("fmacs",
1881 OPCODE_INFO4 (0xffe58000,
1882 (5_9, FREG, OPRND_SHIFT_0_BIT),
1883 (0_4, FREG, OPRND_SHIFT_0_BIT),
1884 (10_14, FREG, OPRND_SHIFT_0_BIT),
1885 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1886 CSKY_ISA_FLOAT_E1,
1887 v1_work_fpu_fo),
1888 OP16_WITH_WORK ("fmscs",
1889 OPCODE_INFO4 (0xffe68000,
1890 (5_9, FREG, OPRND_SHIFT_0_BIT),
1891 (0_4, FREG, OPRND_SHIFT_0_BIT),
1892 (10_14, FREG, OPRND_SHIFT_0_BIT),
1893 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1894 CSKY_ISA_FLOAT_E1,
1895 v1_work_fpu_fo),
1896 OP16_WITH_WORK ("fmuls",
1897 OPCODE_INFO4 (0xffe78000,
1898 (5_9, FREG, OPRND_SHIFT_0_BIT),
1899 (0_4, FREG, OPRND_SHIFT_0_BIT),
1900 (10_14, FREG, OPRND_SHIFT_0_BIT),
1901 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1902 CSKY_ISA_FLOAT_E1,
1903 v1_work_fpu_fo),
1904 OP16_WITH_WORK ("fdivs",
1905 OPCODE_INFO4 (0xffe88000,
1906 (5_9, FREG, OPRND_SHIFT_0_BIT),
1907 (0_4, FREG, OPRND_SHIFT_0_BIT),
1908 (10_14, FREG, OPRND_SHIFT_0_BIT),
1909 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1910 CSKY_ISA_FLOAT_E1,
1911 v1_work_fpu_fo),
1912 OP16_WITH_WORK ("fnmacs",
1913 OPCODE_INFO4 (0xffe98000,
1914 (5_9, FREG, OPRND_SHIFT_0_BIT),
1915 (0_4, FREG, OPRND_SHIFT_0_BIT),
1916 (10_14, FREG, OPRND_SHIFT_0_BIT),
1917 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1918 CSKY_ISA_FLOAT_E1,
1919 v1_work_fpu_fo),
1920 OP16_WITH_WORK ("fnmscs",
1921 OPCODE_INFO4 (0xffea8000,
1922 (5_9, FREG, OPRND_SHIFT_0_BIT),
1923 (0_4, FREG, OPRND_SHIFT_0_BIT),
1924 (10_14, FREG, OPRND_SHIFT_0_BIT),
1925 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1926 CSKY_ISA_FLOAT_E1,
1927 v1_work_fpu_fo),
1928 OP16_WITH_WORK ("fnmuls",
1929 OPCODE_INFO4 (0xffeb8000,
1930 (5_9, FREG, OPRND_SHIFT_0_BIT),
1931 (0_4, FREG, OPRND_SHIFT_0_BIT),
1932 (10_14, FREG, OPRND_SHIFT_0_BIT),
1933 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1934 CSKY_ISA_FLOAT_E1,
1935 v1_work_fpu_fo),
1936 OP16_WITH_WORK ("fabsd",
1937 OPCODE_INFO3 (0xffe04000,
1938 (5_9, FEREG, OPRND_SHIFT_0_BIT),
1939 (0_4, FEREG, OPRND_SHIFT_0_BIT),
1940 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1941 CSKY_ISA_FLOAT_E1,
1942 v1_work_fpu_fo),
1943 OP16_WITH_WORK ("fnegd",
1944 OPCODE_INFO3 (0xffe04800,
1945 (5_9, FEREG, OPRND_SHIFT_0_BIT),
1946 (0_4, FEREG, OPRND_SHIFT_0_BIT),
1947 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1948 CSKY_ISA_FLOAT_E1,
1949 v1_work_fpu_fo),
1950 OP16_WITH_WORK ("fsqrtd",
1951 OPCODE_INFO3 (0xffe05000,
1952 (5_9, FEREG, OPRND_SHIFT_0_BIT),
1953 (0_4, FEREG, OPRND_SHIFT_0_BIT),
1954 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1955 CSKY_ISA_FLOAT_E1,
1956 v1_work_fpu_fo),
1957 OP16_WITH_WORK ("frecipd",
1958 OPCODE_INFO3 (0xffe05800,
1959 (5_9, FEREG, OPRND_SHIFT_0_BIT),
1960 (0_4, FEREG, OPRND_SHIFT_0_BIT),
1961 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1962 CSKY_ISA_FLOAT_E1,
1963 v1_work_fpu_fo),
1964 OP16_WITH_WORK ("faddd",
1965 OPCODE_INFO4 (0xffe30000,
1966 (5_9, FEREG, OPRND_SHIFT_0_BIT),
1967 (0_4, FEREG, OPRND_SHIFT_0_BIT),
1968 (10_14, FEREG, OPRND_SHIFT_0_BIT),
1969 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1970 CSKY_ISA_FLOAT_E1,
1971 v1_work_fpu_fo),
1972 OP16_WITH_WORK ("fsubd",
1973 OPCODE_INFO4 (0xffe40000,
1974 (5_9, FEREG, OPRND_SHIFT_0_BIT),
1975 (0_4, FEREG, OPRND_SHIFT_0_BIT),
1976 (10_14, FEREG, OPRND_SHIFT_0_BIT),
1977 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1978 CSKY_ISA_FLOAT_E1,
1979 v1_work_fpu_fo),
1980 OP16_WITH_WORK ("fmacd",
1981 OPCODE_INFO4 (0xffe50000,
1982 (5_9, FEREG, OPRND_SHIFT_0_BIT),
1983 (0_4, FEREG, OPRND_SHIFT_0_BIT),
1984 (10_14, FEREG, OPRND_SHIFT_0_BIT),
1985 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1986 CSKY_ISA_FLOAT_E1,
1987 v1_work_fpu_fo),
1988 OP16_WITH_WORK ("fmscd",
1989 OPCODE_INFO4 (0xffe60000,
1990 (5_9, FEREG, OPRND_SHIFT_0_BIT),
1991 (0_4, FEREG, OPRND_SHIFT_0_BIT),
1992 (10_14, FEREG, OPRND_SHIFT_0_BIT),
1993 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
1994 CSKY_ISA_FLOAT_E1,
1995 v1_work_fpu_fo),
1996 OP16_WITH_WORK ("fmuld",
1997 OPCODE_INFO4 (0xffe70000,
1998 (5_9, FEREG, OPRND_SHIFT_0_BIT),
1999 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2000 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2001 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2002 CSKY_ISA_FLOAT_E1,
2003 v1_work_fpu_fo),
2004 OP16_WITH_WORK ("fdivd",
2005 OPCODE_INFO4 (0xffe80000,
2006 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2007 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2008 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2009 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2010 CSKY_ISA_FLOAT_E1,
2011 v1_work_fpu_fo),
2012 OP16_WITH_WORK ("fnmacd",
2013 OPCODE_INFO4 (0xffe90000,
2014 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2015 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2016 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2017 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2018 CSKY_ISA_FLOAT_E1,
2019 v1_work_fpu_fo),
2020 OP16_WITH_WORK ("fnmscd",
2021 OPCODE_INFO4 (0xffea0000,
2022 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2023 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2024 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2025 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2026 CSKY_ISA_FLOAT_E1,
2027 v1_work_fpu_fo),
2028 OP16_WITH_WORK ("fnmuld",
2029 OPCODE_INFO4 (0xffeb0000,
2030 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2031 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2032 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2033 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2034 CSKY_ISA_FLOAT_E1,
2035 v1_work_fpu_fo),
2036 OP16_WITH_WORK ("fabsm",
2037 OPCODE_INFO3 (0xffe06000,
2038 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2039 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2040 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2041 CSKY_ISA_FLOAT_E1,
2042 v1_work_fpu_fo),
2043 OP16_WITH_WORK ("fnegm",
2044 OPCODE_INFO3 (0xffe06400,
2045 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2046 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2047 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2048 CSKY_ISA_FLOAT_E1,
2049 v1_work_fpu_fo),
2050 OP16_WITH_WORK ("faddm",
2051 OPCODE_INFO4 (0xffec0000,
2052 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2053 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2054 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2055 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2056 CSKY_ISA_FLOAT_E1,
2057 v1_work_fpu_fo),
2058 OP16_WITH_WORK ("fsubm",
2059 OPCODE_INFO4 (0xffec8000,
2060 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2061 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2062 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2063 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2064 CSKY_ISA_FLOAT_E1,
2065 v1_work_fpu_fo),
2066 OP16_WITH_WORK ("fmacm",
2067 OPCODE_INFO4 (0xffed8000,
2068 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2069 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2070 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2071 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2072 CSKY_ISA_FLOAT_E1,
2073 v1_work_fpu_fo),
2074 OP16_WITH_WORK ("fmscm",
2075 OPCODE_INFO4 (0xffee0000,
2076 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2077 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2078 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2079 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2080 CSKY_ISA_FLOAT_E1,
2081 v1_work_fpu_fo),
2082 OP16_WITH_WORK ("fmulm",
2083 OPCODE_INFO4 (0xffed0000,
2084 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2085 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2086 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2087 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2088 CSKY_ISA_FLOAT_E1,
2089 v1_work_fpu_fo),
2090 OP16_WITH_WORK ("fnmacm",
2091 OPCODE_INFO4 (0xffee8000,
2092 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2093 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2094 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2095 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2096 CSKY_ISA_FLOAT_E1,
2097 v1_work_fpu_fo),
2098 OP16_WITH_WORK ("fnmscm",
2099 OPCODE_INFO4 (0xffef0000,
2100 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2101 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2102 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2103 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2104 CSKY_ISA_FLOAT_E1,
2105 v1_work_fpu_fo),
2106 OP16_WITH_WORK ("fnmulm",
2107 OPCODE_INFO4 (0xffef8000,
2108 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2109 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2110 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2111 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2112 CSKY_ISA_FLOAT_E1,
2113 v1_work_fpu_fo),
2114 OP16_WITH_WORK ("fcmphsd",
2115 OPCODE_INFO3 (0xffe00800,
2116 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2117 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2118 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2119 CSKY_ISA_FLOAT_E1,
2120 v1_work_fpu_fo_fc),
2121 OP16_WITH_WORK ("fcmpltd",
2122 OPCODE_INFO3 (0xffe00c00,
2123 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2124 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2125 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2126 CSKY_ISA_FLOAT_E1,
2127 v1_work_fpu_fo_fc),
2128 OP16_WITH_WORK ("fcmpned",
2129 OPCODE_INFO3 (0xffe01000,
2130 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2131 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2132 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2133 CSKY_ISA_FLOAT_E1,
2134 v1_work_fpu_fo_fc),
2135 OP16_WITH_WORK ("fcmpuod",
2136 OPCODE_INFO3 (0xffe01400,
2137 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2138 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2139 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2140 CSKY_ISA_FLOAT_E1,
2141 v1_work_fpu_fo_fc),
2142 OP16_WITH_WORK ("fcmphss",
2143 OPCODE_INFO3 (0xffe01800,
2144 (0_4, FREG, OPRND_SHIFT_0_BIT),
2145 (5_9, FREG, OPRND_SHIFT_0_BIT),
2146 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2147 CSKY_ISA_FLOAT_E1,
2148 v1_work_fpu_fo_fc),
2149 OP16_WITH_WORK ("fcmplts",
2150 OPCODE_INFO3 (0xffe01c00,
2151 (0_4, FREG, OPRND_SHIFT_0_BIT),
2152 (5_9, FREG, OPRND_SHIFT_0_BIT),
2153 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2154 CSKY_ISA_FLOAT_E1,
2155 v1_work_fpu_fo_fc),
2156 OP16_WITH_WORK ("fcmpnes",
2157 OPCODE_INFO3 (0xffe02000,
2158 (0_4, FREG, OPRND_SHIFT_0_BIT),
2159 (5_9, FREG, OPRND_SHIFT_0_BIT),
2160 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2161 CSKY_ISA_FLOAT_E1,
2162 v1_work_fpu_fo_fc),
2163 OP16_WITH_WORK ("fcmpuos",
2164 OPCODE_INFO3 (0xffe02400,
2165 (0_4, FREG, OPRND_SHIFT_0_BIT),
2166 (5_9, FREG, OPRND_SHIFT_0_BIT),
2167 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2168 CSKY_ISA_FLOAT_E1,
2169 v1_work_fpu_fo_fc),
2170 OP16_WITH_WORK ("fcmpzhsd",
2171 OPCODE_INFO2 (0xffe00400,
2172 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2173 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2174 CSKY_ISA_FLOAT_E1,
2175 v1_work_fpu_fo_fc),
2176 OP16_WITH_WORK ("fcmpzltd",
2177 OPCODE_INFO2 (0xffe00480,
2178 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2179 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2180 CSKY_ISA_FLOAT_E1,
2181 v1_work_fpu_fo_fc),
2182 OP16_WITH_WORK ("fcmpzned",
2183 OPCODE_INFO2 (0xffe00500,
2184 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2185 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2186 CSKY_ISA_FLOAT_E1,
2187 v1_work_fpu_fo_fc),
2188 OP16_WITH_WORK ("fcmpzuod",
2189 OPCODE_INFO2 (0xffe00580,
2190 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2191 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2192 CSKY_ISA_FLOAT_E1,
2193 v1_work_fpu_fo_fc),
2194 OP16_WITH_WORK ("fcmpzhss",
2195 OPCODE_INFO2 (0xffe00600,
2196 (0_4, FREG, OPRND_SHIFT_0_BIT),
2197 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2198 CSKY_ISA_FLOAT_E1,
2199 v1_work_fpu_fo_fc),
2200 OP16_WITH_WORK ("fcmpzlts",
2201 OPCODE_INFO2 (0xffe00680,
2202 (0_4, FREG, OPRND_SHIFT_0_BIT),
2203 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2204 CSKY_ISA_FLOAT_E1,
2205 v1_work_fpu_fo_fc),
2206 OP16_WITH_WORK ("fcmpznes",
2207 OPCODE_INFO2 (0xffe00700,
2208 (0_4, FREG, OPRND_SHIFT_0_BIT),
2209 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2210 CSKY_ISA_FLOAT_E1,
2211 v1_work_fpu_fo_fc),
2212 OP16_WITH_WORK ("fcmpzuos",
2213 OPCODE_INFO2 (0xffe00780,
2214 (0_4, FREG, OPRND_SHIFT_0_BIT),
2215 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2216 CSKY_ISA_FLOAT_E1,
2217 v1_work_fpu_fo_fc),
2218 OP16_WITH_WORK ("fstod",
2219 OPCODE_INFO3 (0xffe02800,
2220 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2221 (0_4, FREG, OPRND_SHIFT_0_BIT),
2222 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2223 CSKY_ISA_FLOAT_E1,
2224 v1_work_fpu_fo),
2225 OP16_WITH_WORK ("fdtos",
2226 OPCODE_INFO3 (0xffe02c00,
2227 (5_9, FREG, OPRND_SHIFT_0_BIT),
2228 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2229 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2230 CSKY_ISA_FLOAT_E1,
2231 v1_work_fpu_fo),
2232 OP16_WITH_WORK ("fsitos",
2233 OPCODE_INFO3 (0xffe03400,
2234 (5_9, FREG, OPRND_SHIFT_0_BIT),
2235 (0_4, FREG, OPRND_SHIFT_0_BIT),
2236 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2237 CSKY_ISA_FLOAT_E1,
2238 v1_work_fpu_fo),
2239 OP16_WITH_WORK ("fsitod",
2240 OPCODE_INFO3 (0xffe03000,
2241 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2242 (0_4, FREG, OPRND_SHIFT_0_BIT),
2243 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2244 CSKY_ISA_FLOAT_E1,
2245 v1_work_fpu_fo),
2246 OP16_WITH_WORK ("fuitos",
2247 OPCODE_INFO3 (0xffe03c00,
2248 (5_9, FREG, OPRND_SHIFT_0_BIT),
2249 (0_4, FREG, OPRND_SHIFT_0_BIT),
2250 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2251 CSKY_ISA_FLOAT_E1,
2252 v1_work_fpu_fo),
2253 OP16_WITH_WORK ("fuitod",
2254 OPCODE_INFO3 (0xffe03800,
2255 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2256 (0_4, FREG, OPRND_SHIFT_0_BIT),
2257 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2258 CSKY_ISA_FLOAT_E1,
2259 v1_work_fpu_fo),
2260 OP16_WITH_WORK ("fstosi",
2261 OPCODE_INFO4 (0xffe10000,
2262 (5_9, FREG, OPRND_SHIFT_0_BIT),
2263 (0_4, FREG, OPRND_SHIFT_0_BIT),
2264 (13_17, RM, OPRND_SHIFT_0_BIT),
2265 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2266 CSKY_ISA_FLOAT_E1,
2267 v1_work_fpu_fo),
2268 OP16_WITH_WORK ("fdtosi",
2269 OPCODE_INFO4 (0xffe08000,
2270 (5_9, FREG, OPRND_SHIFT_0_BIT),
2271 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2272 (13_17, RM, OPRND_SHIFT_0_BIT),
2273 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2274 CSKY_ISA_FLOAT_E1,
2275 v1_work_fpu_fo),
2276 OP16_WITH_WORK ("fstoui",
2277 OPCODE_INFO4 (0xffe20000,
2278 (5_9, FREG, OPRND_SHIFT_0_BIT),
2279 (0_4, FREG, OPRND_SHIFT_0_BIT),
2280 (13_17, RM, OPRND_SHIFT_0_BIT),
2281 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2282 CSKY_ISA_FLOAT_E1,
2283 v1_work_fpu_fo),
2284 OP16_WITH_WORK ("fdtoui",
2285 OPCODE_INFO4 (0xffe18000,
2286 (5_9, FREG, OPRND_SHIFT_0_BIT),
2287 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2288 (13_17, RM, OPRND_SHIFT_0_BIT),
2289 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2290 CSKY_ISA_FLOAT_E1,
2291 v1_work_fpu_fo),
2292 OP16_WITH_WORK ("fmovd",
2293 OPCODE_INFO3 (0xffe06800,
2294 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2295 (0_4, FREG, OPRND_SHIFT_0_BIT),
2296 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2297 CSKY_ISA_FLOAT_E1,
2298 v1_work_fpu_fo),
2299 OP16_WITH_WORK ("fmovs",
2300 OPCODE_INFO3 (0xffe06c00,
2301 (5_9, FREG, OPRND_SHIFT_0_BIT),
2302 (0_4, FREG, OPRND_SHIFT_0_BIT),
2303 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2304 CSKY_ISA_FLOAT_E1,
2305 v1_work_fpu_fo),
2306 OP16_WITH_WORK ("fmts",
2307 OPCODE_INFO2 (0x00000000,
2308 (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
2309 (NONE, FREG, OPRND_SHIFT_0_BIT)),
2310 CSKY_ISA_FLOAT_E1,
2311 v1_work_fpu_write),
2312 OP16_WITH_WORK ("fmfs",
2313 OPCODE_INFO2 (0x00000000,
2314 (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
2315 (NONE, FREG, OPRND_SHIFT_0_BIT)),
2316 CSKY_ISA_FLOAT_E1,
2317 v1_work_fpu_read),
2318 OP16_WITH_WORK ("fmtd",
2319 OPCODE_INFO2 (0x00000000,
2320 (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
2321 (NONE, FEREG, OPRND_SHIFT_0_BIT)),
2322 CSKY_ISA_FLOAT_E1,
2323 v1_work_fpu_writed),
2324 OP16_WITH_WORK ("fmfd",
2325 OPCODE_INFO2 (0x00000000,
2326 (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
2327 (NONE, FEREG, OPRND_SHIFT_0_BIT)),
2328 CSKY_ISA_FLOAT_E1,
2329 v1_work_fpu_readd),
2330 {NULL, 0, {}, {}, 0, 0, 0, 0, 0, NULL}
2331 };
2332
2333 #undef _TRANSFER
2334 #undef _RELOC16
2335 #undef _RELOC32
2336 #undef _RELAX
2337
2338 /* C-SKY v2 opcodes. */
2339 const struct csky_opcode csky_v2_opcodes[] =
2340 {
2341 #define _TRANSFER 0
2342 #define _RELOC16 0
2343 #define _RELOC32 0
2344 #define _RELAX 0
2345 OP16 ("bkpt",
2346 OPCODE_INFO0 (0x0000),
2347 CSKYV2_ISA_E1),
2348 OP16_WITH_WORK ("nie",
2349 OPCODE_INFO0 (0x1460),
2350 CSKYV2_ISA_E1,
2351 v2_work_istack),
2352 OP16_WITH_WORK ("nir",
2353 OPCODE_INFO0 (0x1461),
2354 CSKYV2_ISA_E1,
2355 v2_work_istack),
2356 OP16_WITH_WORK ("ipush",
2357 OPCODE_INFO0 (0x1462),
2358 CSKYV2_ISA_E1,
2359 v2_work_istack),
2360 OP16_WITH_WORK ("ipop",
2361 OPCODE_INFO0 (0x1463),
2362 CSKYV2_ISA_E1,
2363 v2_work_istack),
2364 OP16 ("bpop.h",
2365 OPCODE_INFO1 (0x14a0,
2366 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
2367 CSKY_ISA_JAVA),
2368 OP16 ("bpop.w",
2369 OPCODE_INFO1 (0x14a2,
2370 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
2371 CSKY_ISA_JAVA),
2372 OP16 ("bpush.h",
2373 OPCODE_INFO1 (0x14e0,
2374 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
2375 CSKY_ISA_JAVA),
2376 OP16 ("bpush.w",
2377 OPCODE_INFO1 (0x14e2,
2378 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
2379 CSKY_ISA_JAVA),
2380 OP32 ("bmset",
2381 OPCODE_INFO0 (0xc0001020),
2382 CSKY_ISA_JAVA),
2383 OP32 ("bmclr",
2384 OPCODE_INFO0 (0xc0001420),
2385 CSKY_ISA_JAVA),
2386 OP32 ("sce",
2387 OPCODE_INFO1 (0xc0001820,
2388 (21_24, IMM4b, OPRND_SHIFT_0_BIT)),
2389 CSKY_ISA_MP),
2390 OP32 ("trap",
2391 OPCODE_INFO1 (0xc0002020,
2392 (10_11, IMM2b, OPRND_SHIFT_0_BIT)),
2393 CSKYV2_ISA_E1),
2394 /* Secure/nsecure world switch. */
2395 OP32 ("wsc",
2396 OPCODE_INFO0 (0xc0003c20),
2397 CSKY_ISA_TRUST),
2398 OP32 ("mtcr",
2399 OPCODE_INFO2 (0xc0006420,
2400 (16_20, AREG, OPRND_SHIFT_0_BIT),
2401 (0_4or21_25, CTRLREG, OPRND_SHIFT_0_BIT)),
2402 CSKYV2_ISA_E1),
2403 OP32 ("mfcr",
2404 OPCODE_INFO2 (0xc0006020,
2405 (0_4, AREG, OPRND_SHIFT_0_BIT),
2406 (16_20or21_25, CTRLREG, OPRND_SHIFT_0_BIT)),
2407 CSKYV2_ISA_E1),
2408 #undef _TRANSFER
2409 #define _TRANSFER 2
2410 OP32 ("rte",
2411 OPCODE_INFO0 (0xc0004020),
2412 CSKYV2_ISA_E1),
2413 OP32 ("rfi",
2414 OPCODE_INFO0 (0xc0004420),
2415 CSKYV2_ISA_2E3),
2416 #undef _TRANSFER
2417 #define _TRANSFER 0
2418 OP32 ("stop",
2419 OPCODE_INFO0 (0xc0004820),
2420 CSKYV2_ISA_E1),
2421 OP32 ("wait",
2422 OPCODE_INFO0 (0xc0004c20),
2423 CSKYV2_ISA_E1),
2424 OP32 ("doze",
2425 OPCODE_INFO0 (0xc0005020),
2426 CSKYV2_ISA_E1),
2427 OP32 ("we",
2428 OPCODE_INFO0 (0xc0005420),
2429 CSKY_ISA_MP_1E2),
2430 OP32 ("se",
2431 OPCODE_INFO0 (0xc0005820),
2432 CSKY_ISA_MP_1E2),
2433 OP32 ("psrclr",
2434 OPCODE_INFO_LIST (0xc0007020,
2435 (21_25, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
2436 CSKYV2_ISA_E1),
2437 OP32 ("psrset",
2438 OPCODE_INFO_LIST (0xc0007420,
2439 (21_25, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
2440 CSKYV2_ISA_E1),
2441 DOP32 ("abs",
2442 OPCODE_INFO2 (0xc4000200,
2443 (0_4, AREG, OPRND_SHIFT_0_BIT),
2444 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2445 OPCODE_INFO1 (0xc4000200,
2446 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
2447 CSKYV2_ISA_2E3),
2448 OP32 ("mvc",
2449 OPCODE_INFO1 (0xc4000500,
2450 (0_4, AREG, OPRND_SHIFT_0_BIT)),
2451 CSKYV2_ISA_1E2),
2452 OP32 ("incf",
2453 OPCODE_INFO3 (0xc4000c20,
2454 (21_25, AREG, OPRND_SHIFT_0_BIT),
2455 (16_20, AREG, OPRND_SHIFT_0_BIT),
2456 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
2457 CSKYV2_ISA_1E2),
2458 OP32 ("movf",
2459 OPCODE_INFO2 (0xc4000c20,
2460 (21_25, AREG, OPRND_SHIFT_0_BIT),
2461 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2462 CSKYV2_ISA_1E2),
2463 OP32 ("inct",
2464 OPCODE_INFO3 (0xc4000c40,
2465 (21_25, AREG, OPRND_SHIFT_0_BIT),
2466 (16_20, AREG, OPRND_SHIFT_0_BIT),
2467 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
2468 CSKYV2_ISA_1E2),
2469 OP32 ("movt",
2470 OPCODE_INFO2 (0xc4000c40,
2471 (21_25, AREG, OPRND_SHIFT_0_BIT),
2472 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2473 CSKYV2_ISA_1E2),
2474 OP32 ("decf",
2475 OPCODE_INFO3 (0xc4000c80,
2476 (21_25, AREG, OPRND_SHIFT_0_BIT),
2477 (16_20, AREG, OPRND_SHIFT_0_BIT),
2478 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
2479 CSKYV2_ISA_1E2),
2480 OP32 ("dect",
2481 OPCODE_INFO3 (0xc4000d00,
2482 (21_25, AREG, OPRND_SHIFT_0_BIT),
2483 (16_20, AREG, OPRND_SHIFT_0_BIT),
2484 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
2485 CSKYV2_ISA_1E2),
2486 OP32 ("decgt",
2487 OPCODE_INFO3 (0xc4001020,
2488 (0_4, AREG, OPRND_SHIFT_0_BIT),
2489 (16_20, AREG, OPRND_SHIFT_0_BIT),
2490 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
2491 CSKYV2_ISA_2E3),
2492 OP32 ("declt",
2493 OPCODE_INFO3 (0xc4001040,
2494 (0_4, AREG, OPRND_SHIFT_0_BIT),
2495 (16_20, AREG, OPRND_SHIFT_0_BIT),
2496 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
2497 CSKYV2_ISA_2E3),
2498 OP32 ("decne",
2499 OPCODE_INFO3 (0xc4001080,
2500 (0_4, AREG, OPRND_SHIFT_0_BIT),
2501 (16_20, AREG, OPRND_SHIFT_0_BIT),
2502 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
2503 CSKYV2_ISA_2E3),
2504 OP32 ("clrf",
2505 OPCODE_INFO1 (0xc4002c20,
2506 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2507 CSKYV2_ISA_2E3),
2508 OP32 ("clrt",
2509 OPCODE_INFO1 (0xc4002c40,
2510 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2511 CSKYV2_ISA_2E3),
2512 DOP32 ("rotli",
2513 OPCODE_INFO3 (0xc4004900,
2514 (0_4, AREG, OPRND_SHIFT_0_BIT),
2515 (16_20, AREG, OPRND_SHIFT_0_BIT),
2516 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
2517 OPCODE_INFO2 (0xc4004900,
2518 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
2519 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
2520 CSKYV2_ISA_1E2),
2521 OP32 ("lslc",
2522 OPCODE_INFO3 (0xc4004c20,
2523 (0_4, AREG, OPRND_SHIFT_0_BIT),
2524 (16_20, AREG, OPRND_SHIFT_0_BIT),
2525 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
2526 CSKYV2_ISA_1E2),
2527 OP32 ("lsrc",
2528 OPCODE_INFO3 (0xc4004c40,
2529 (0_4, AREG, OPRND_SHIFT_0_BIT),
2530 (16_20, AREG, OPRND_SHIFT_0_BIT),
2531 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
2532 CSKYV2_ISA_1E2),
2533 DOP32 ("asrc",
2534 OPCODE_INFO3 (0xc4004c80,
2535 (0_4, AREG, OPRND_SHIFT_0_BIT),
2536 (16_20, AREG, OPRND_SHIFT_0_BIT),
2537 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
2538 OPCODE_INFO1 (0xc4004c80,
2539 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
2540 CSKYV2_ISA_1E2),
2541 OP32 ("xsr",
2542 OPCODE_INFO3 (0xc4004d00,
2543 (0_4, AREG, OPRND_SHIFT_0_BIT),
2544 (16_20, AREG, OPRND_SHIFT_0_BIT),
2545 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
2546 CSKYV2_ISA_1E2),
2547 OP32 ("bgenr",
2548 OPCODE_INFO2 (0xc4005040,
2549 (0_4, AREG, OPRND_SHIFT_0_BIT),
2550 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2551 CSKYV2_ISA_2E3),
2552 DOP32 ("brev",
2553 OPCODE_INFO2 (0xc4006200,
2554 (0_4, AREG, OPRND_SHIFT_0_BIT),
2555 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2556 OPCODE_INFO1 (0xc4006200,
2557 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
2558 CSKYV2_ISA_2E3),
2559 OP32 ("xtrb0",
2560 OPCODE_INFO2 (0xc4007020,
2561 (0_4, AREG, OPRND_SHIFT_0_BIT),
2562 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2563 CSKYV2_ISA_1E2),
2564 OP32 ("xtrb1",
2565 OPCODE_INFO2 (0xc4007040,
2566 (0_4, AREG, OPRND_SHIFT_0_BIT),
2567 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2568 CSKYV2_ISA_1E2),
2569 OP32 ("xtrb2",
2570 OPCODE_INFO2 (0xc4007080,
2571 (0_4, AREG, OPRND_SHIFT_0_BIT),
2572 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2573 CSKYV2_ISA_1E2),
2574 OP32 ("xtrb3",
2575 OPCODE_INFO2 (0xc4007100,
2576 (0_4, AREG, OPRND_SHIFT_0_BIT),
2577 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2578 CSKYV2_ISA_1E2),
2579 OP32 ("ff0",
2580 OPCODE_INFO2 (0xc4007c20,
2581 (0_4, AREG, OPRND_SHIFT_0_BIT),
2582 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2583 CSKYV2_ISA_1E2),
2584 DOP32 ("ff1",
2585 OPCODE_INFO2 (0xc4007c40,
2586 (0_4, AREG, OPRND_SHIFT_0_BIT),
2587 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2588 OPCODE_INFO1 (0xc4007c40,
2589 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
2590 CSKYV2_ISA_1E2),
2591 OP32 ("mulu",
2592 OPCODE_INFO2 (0xc4008820,
2593 (16_20, AREG, OPRND_SHIFT_0_BIT),
2594 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2595 CSKY_ISA_DSP),
2596 OP32 ("mulua",
2597 OPCODE_INFO2 (0xc4008840,
2598 (16_20, AREG, OPRND_SHIFT_0_BIT),
2599 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2600 CSKY_ISA_DSP),
2601 OP32 ("mulus",
2602 OPCODE_INFO2 (0xc4008880,
2603 (16_20, AREG, OPRND_SHIFT_0_BIT),
2604 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2605 CSKY_ISA_DSP),
2606 OP32 ("muls",
2607 OPCODE_INFO2 (0xc4008c20,
2608 (16_20, AREG, OPRND_SHIFT_0_BIT),
2609 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2610 CSKY_ISA_DSP),
2611 OP32 ("mulsa",
2612 OPCODE_INFO2 (0xc4008c40,
2613 (16_20, AREG, OPRND_SHIFT_0_BIT),
2614 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2615 CSKY_ISA_DSP),
2616 OP32 ("mulss",
2617 OPCODE_INFO2 (0xc4008c80,
2618 (16_20, AREG, OPRND_SHIFT_0_BIT),
2619 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2620 CSKY_ISA_DSP),
2621 OP32 ("mulsha",
2622 OPCODE_INFO2 (0xc4009040,
2623 (16_20, AREG, OPRND_SHIFT_0_BIT),
2624 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2625 CSKY_ISA_DSP),
2626 OP32 ("mulshs",
2627 OPCODE_INFO2 (0xc4009080,
2628 (16_20, AREG, OPRND_SHIFT_0_BIT),
2629 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2630 CSKY_ISA_DSP),
2631 OP32 ("mulswa",
2632 OPCODE_INFO2 (0xc4009440,
2633 (16_20, AREG, OPRND_SHIFT_0_BIT),
2634 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2635 CSKY_ISA_DSP),
2636 OP32 ("mulsws",
2637 OPCODE_INFO2 (0xc4009480,
2638 (16_20, AREG, OPRND_SHIFT_0_BIT),
2639 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2640 CSKY_ISA_DSP),
2641 OP32 ("mfhis",
2642 OPCODE_INFO1 (0xc4009820,
2643 (0_4, AREG, OPRND_SHIFT_0_BIT)),
2644 CSKY_ISA_DSP),
2645 OP32 ("mflos",
2646 OPCODE_INFO1 (0xc4009880,
2647 (0_4, AREG, OPRND_SHIFT_0_BIT)),
2648 CSKY_ISA_DSP),
2649 OP32 ("mvtc",
2650 OPCODE_INFO0 (0xc4009a00),
2651 CSKY_ISA_DSP),
2652 OP32 ("mfhi",
2653 OPCODE_INFO1 (0xc4009c20,
2654 (0_4, AREG, OPRND_SHIFT_0_BIT)),
2655 CSKY_ISA_DSP),
2656 OP32 ("mthi",
2657 OPCODE_INFO1 (0xc4009c40,
2658 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2659 CSKY_ISA_DSP),
2660 OP32 ("mflo",
2661 OPCODE_INFO1 (0xc4009c80,
2662 (0_4, AREG, OPRND_SHIFT_0_BIT)),
2663 CSKY_ISA_DSP),
2664 OP32 ("mtlo",
2665 OPCODE_INFO1 (0xc4009d00,
2666 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2667 CSKY_ISA_DSP),
2668 OP32 ("vmulsh",
2669 OPCODE_INFO2 (0xc400b020,
2670 (16_20, AREG, OPRND_SHIFT_0_BIT),
2671 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2672 CSKY_ISA_DSP_1E2),
2673 OP32 ("vmulsha",
2674 OPCODE_INFO2 (0xc400b040,
2675 (16_20, AREG, OPRND_SHIFT_0_BIT),
2676 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2677 CSKY_ISA_DSP_1E2),
2678 OP32 ("vmulshs",
2679 OPCODE_INFO2 (0xc400b080,
2680 (16_20, AREG, OPRND_SHIFT_0_BIT),
2681 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2682 CSKY_ISA_DSP_1E2),
2683 OP32 ("vmulsw",
2684 OPCODE_INFO2 (0xc400b420,
2685 (16_20, AREG, OPRND_SHIFT_0_BIT),
2686 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2687 CSKY_ISA_DSP_1E2),
2688 OP32 ("vmulswa",
2689 OPCODE_INFO2 (0xc400b440,
2690 (16_20, AREG, OPRND_SHIFT_0_BIT),
2691 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2692 CSKY_ISA_DSP_1E2),
2693 OP32 ("vmulsws",
2694 OPCODE_INFO2 (0xc400b480,
2695 (16_20, AREG, OPRND_SHIFT_0_BIT),
2696 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2697 CSKY_ISA_DSP_1E2),
2698 OP32 ("ldr.b",
2699 SOPCODE_INFO2 (0xd0000000,
2700 (0_4, AREG, OPRND_SHIFT_0_BIT),
2701 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2702 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
2703 CSKYV2_ISA_2E3),
2704 OP32 ("ldr.bs",
2705 SOPCODE_INFO2 (0xd0001000,
2706 (0_4, AREG, OPRND_SHIFT_0_BIT),
2707 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2708 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
2709 CSKYV2_ISA_2E3),
2710 OP32 ("ldr.h",
2711 SOPCODE_INFO2 (0xd0000400,
2712 (0_4, AREG, OPRND_SHIFT_0_BIT),
2713 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2714 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
2715 CSKYV2_ISA_2E3),
2716 OP32 ("ldr.hs",
2717 SOPCODE_INFO2 (0xd0001400,
2718 (0_4, AREG, OPRND_SHIFT_0_BIT),
2719 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2720 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
2721 CSKYV2_ISA_2E3),
2722 OP32 ("ldr.w",
2723 SOPCODE_INFO2 (0xd0000800,
2724 (0_4, AREG, OPRND_SHIFT_0_BIT),
2725 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2726 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
2727 CSKYV2_ISA_2E3),
2728 OP32 ("ldm",
2729 OPCODE_INFO2 (0xd0001c20,
2730 (0_4or21_25, REGLIST_DASH, OPRND_SHIFT_0_BIT),
2731 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
2732 CSKYV2_ISA_1E2),
2733 OP32 ("ldq",
2734 OPCODE_INFO2 (0xd0801c23,
2735 (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
2736 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
2737 CSKYV2_ISA_2E3),
2738 OP32 ("str.b",
2739 SOPCODE_INFO2 (0xd4000000,
2740 (0_4, AREG, OPRND_SHIFT_0_BIT),
2741 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2742 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
2743 CSKYV2_ISA_2E3),
2744 OP32 ("str.h",
2745 SOPCODE_INFO2 (0xd4000400,
2746 (0_4, AREG, OPRND_SHIFT_0_BIT),
2747 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2748 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
2749 CSKYV2_ISA_2E3),
2750 OP32 ("str.w",
2751 SOPCODE_INFO2 (0xd4000800,
2752 (0_4, AREG, OPRND_SHIFT_0_BIT),
2753 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2754 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
2755 CSKYV2_ISA_2E3),
2756 OP32 ("stm",
2757 OPCODE_INFO2 (0xd4001c20,
2758 (0_4or21_25, REGLIST_DASH, OPRND_SHIFT_0_BIT),
2759 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
2760 CSKYV2_ISA_1E2),
2761 OP32 ("stq",
2762 OPCODE_INFO2 (0xd4801c23,
2763 (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
2764 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
2765 CSKYV2_ISA_2E3),
2766 OP32 ("ld.bs",
2767 SOPCODE_INFO2 (0xd8004000,
2768 (21_25, AREG, OPRND_SHIFT_0_BIT),
2769 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2770 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
2771 CSKYV2_ISA_1E2),
2772 OP32 ("ldbs",
2773 SOPCODE_INFO2 (0xd8004000,
2774 (21_25, AREG, OPRND_SHIFT_0_BIT),
2775 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2776 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
2777 CSKYV2_ISA_1E2),
2778 OP32 ("ld.hs",
2779 SOPCODE_INFO2 (0xd8005000,
2780 (21_25, AREG, OPRND_SHIFT_0_BIT),
2781 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2782 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
2783 CSKYV2_ISA_1E2),
2784 OP32 ("ldhs",
2785 SOPCODE_INFO2 (0xd8005000,
2786 (21_25, AREG, OPRND_SHIFT_0_BIT),
2787 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2788 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
2789 CSKYV2_ISA_1E2),
2790 OP32 ("ld.d",
2791 SOPCODE_INFO2 (0xd8003000,
2792 (21_25, AREG, OPRND_SHIFT_0_BIT),
2793 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2794 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
2795 CSKYV2_ISA_3E7),
2796 OP32 ("ldex.w",
2797 SOPCODE_INFO2 (0xd8007000,
2798 (21_25, AREG, OPRND_SHIFT_0_BIT),
2799 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2800 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
2801 CSKY_ISA_MP_1E2),
2802 OP32 ("ldexw",
2803 SOPCODE_INFO2 (0xd8007000,
2804 (21_25, AREG, OPRND_SHIFT_0_BIT),
2805 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2806 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
2807 CSKY_ISA_MP_1E2),
2808 OP32 ("ldex",
2809 SOPCODE_INFO2 (0xd8007000,
2810 (21_25, AREG, OPRND_SHIFT_0_BIT),
2811 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2812 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
2813 CSKY_ISA_MP_1E2),
2814 OP32 ("st.d",
2815 SOPCODE_INFO2 (0xdc003000,
2816 (21_25, AREG, OPRND_SHIFT_0_BIT),
2817 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2818 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
2819 CSKYV2_ISA_3E7),
2820 OP32 ("stex.w",
2821 SOPCODE_INFO2 (0xdc007000,
2822 (21_25, AREG, OPRND_SHIFT_0_BIT),
2823 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2824 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
2825 CSKY_ISA_MP_1E2),
2826 OP32 ("stexw",
2827 SOPCODE_INFO2 (0xdc007000,
2828 (21_25, AREG, OPRND_SHIFT_0_BIT),
2829 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2830 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
2831 CSKY_ISA_MP_1E2),
2832 OP32 ("stex",
2833 SOPCODE_INFO2 (0xdc007000,
2834 (21_25, AREG, OPRND_SHIFT_0_BIT),
2835 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
2836 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
2837 CSKY_ISA_MP_1E2),
2838 DOP32 ("andi",
2839 OPCODE_INFO3 (0xe4002000,
2840 (21_25, AREG, OPRND_SHIFT_0_BIT),
2841 (16_20, AREG, OPRND_SHIFT_0_BIT),
2842 (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
2843 OPCODE_INFO2 (0xe4002000,
2844 (16_20or21_25, DUP_AREG, OPRND_SHIFT_0_BIT),
2845 (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
2846 CSKYV2_ISA_1E2),
2847 OP32 ("andni",
2848 OPCODE_INFO3 (0xe4003000,
2849 (21_25, AREG, OPRND_SHIFT_0_BIT),
2850 (16_20, AREG, OPRND_SHIFT_0_BIT),
2851 (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
2852 CSKYV2_ISA_1E2),
2853 OP32 ("xori",
2854 OPCODE_INFO3 (0xe4004000,
2855 (21_25, AREG, OPRND_SHIFT_0_BIT),
2856 (16_20, AREG, OPRND_SHIFT_0_BIT),
2857 (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
2858 CSKYV2_ISA_1E2),
2859 OP32 ("ins",
2860 OPCODE_INFO4 (0xc4005c00,
2861 (21_25, AREG, OPRND_SHIFT_0_BIT),
2862 (16_20, AREG, OPRND_SHIFT_0_BIT),
2863 (5_9, MSB2SIZE, OPRND_SHIFT_0_BIT),
2864 (0_4, LSB2SIZE, OPRND_SHIFT_0_BIT)),
2865 CSKYV2_ISA_2E3),
2866 #undef _TRANSFER
2867 #undef _RELOC32
2868 #define _TRANSFER 1
2869 #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4
2870 OP32 ("jmpi",
2871 OPCODE_INFO1 (0xeac00000,
2872 (0_15, OFF16b, OPRND_SHIFT_2_BIT)),
2873 CSKYV2_ISA_2E3),
2874 #undef _TRANSFER
2875 #undef _RELOC32
2876 #define _TRANSFER 0
2877 #define _RELOC32 0
2878
2879 OP32 ("fadds",
2880 OPCODE_INFO3 (0xf4000000,
2881 (0_3, FREG, OPRND_SHIFT_0_BIT),
2882 (16_19, FREG, OPRND_SHIFT_0_BIT),
2883 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2884 CSKY_ISA_FLOAT_E1),
2885 OP32 ("fsubs",
2886 OPCODE_INFO3 (0xf4000020,
2887 (0_3, FREG, OPRND_SHIFT_0_BIT),
2888 (16_19, FREG, OPRND_SHIFT_0_BIT),
2889 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2890 CSKY_ISA_FLOAT_E1),
2891 OP32 ("fmovs",
2892 OPCODE_INFO2 (0xf4000080,
2893 (0_3, FREG, OPRND_SHIFT_0_BIT),
2894 (16_19, FREG, OPRND_SHIFT_0_BIT)),
2895 CSKY_ISA_FLOAT_E1),
2896 OP32 ("fabss",
2897 OPCODE_INFO2 (0xf40000c0,
2898 (0_3, FREG, OPRND_SHIFT_0_BIT),
2899 (16_19, FREG, OPRND_SHIFT_0_BIT)),
2900 CSKY_ISA_FLOAT_E1),
2901 OP32 ("fnegs",
2902 OPCODE_INFO2 (0xf40000e0,
2903 (0_3, FREG, OPRND_SHIFT_0_BIT),
2904 (16_19, FREG, OPRND_SHIFT_0_BIT)),
2905 CSKY_ISA_FLOAT_E1),
2906 OP32 ("fcmpzhss",
2907 OPCODE_INFO1 (0xf4000100,
2908 (16_19, FREG, OPRND_SHIFT_0_BIT)),
2909 CSKY_ISA_FLOAT_E1),
2910 OP32 ("fcmpzlss",
2911 OPCODE_INFO1 (0xf4000120,
2912 (16_19, FREG, OPRND_SHIFT_0_BIT)),
2913 CSKY_ISA_FLOAT_E1),
2914 OP32 ("fcmpznes",
2915 OPCODE_INFO1 (0xf4000140,
2916 (16_19, FREG, OPRND_SHIFT_0_BIT)),
2917 CSKY_ISA_FLOAT_E1),
2918 OP32 ("fcmpzuos",
2919 OPCODE_INFO1 (0xf4000160,
2920 (16_19, FREG, OPRND_SHIFT_0_BIT)),
2921 CSKY_ISA_FLOAT_E1),
2922 OP32 ("fcmphss",
2923 OPCODE_INFO2 (0xf4000180,
2924 (16_19, FREG, OPRND_SHIFT_0_BIT),
2925 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2926 CSKY_ISA_FLOAT_E1),
2927 OP32 ("fcmplts",
2928 OPCODE_INFO2 (0xf40001a0,
2929 (16_19, FREG, OPRND_SHIFT_0_BIT),
2930 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2931 CSKY_ISA_FLOAT_E1),
2932 OP32 ("fcmpnes",
2933 OPCODE_INFO2 (0xf40001c0,
2934 (16_19, FREG, OPRND_SHIFT_0_BIT),
2935 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2936 CSKY_ISA_FLOAT_E1),
2937 OP32 ("fcmpuos",
2938 OPCODE_INFO2 (0xf40001e0,
2939 (16_19, FREG, OPRND_SHIFT_0_BIT),
2940 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2941 CSKY_ISA_FLOAT_E1),
2942 OP32 ("fmuls",
2943 OPCODE_INFO3 (0xf4000200,
2944 (0_3, FREG, OPRND_SHIFT_0_BIT),
2945 (16_19, FREG, OPRND_SHIFT_0_BIT),
2946 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2947 CSKY_ISA_FLOAT_E1),
2948 OP32 ("fmacs",
2949 OPCODE_INFO3 (0xf4000280,
2950 (0_3, FREG, OPRND_SHIFT_0_BIT),
2951 (16_19, FREG, OPRND_SHIFT_0_BIT),
2952 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2953 CSKY_ISA_FLOAT_E1),
2954 OP32 ("fmscs",
2955 OPCODE_INFO3 (0xf40002a0,
2956 (0_3, FREG, OPRND_SHIFT_0_BIT),
2957 (16_19, FREG, OPRND_SHIFT_0_BIT),
2958 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2959 CSKY_ISA_FLOAT_E1),
2960 OP32 ("fnmacs",
2961 OPCODE_INFO3 (0xf40002c0,
2962 (0_3, FREG, OPRND_SHIFT_0_BIT),
2963 (16_19, FREG, OPRND_SHIFT_0_BIT),
2964 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2965 CSKY_ISA_FLOAT_E1),
2966 OP32 ("fnmscs",
2967 OPCODE_INFO3 (0xf40002e0,
2968 (0_3, FREG, OPRND_SHIFT_0_BIT),
2969 (16_19, FREG, OPRND_SHIFT_0_BIT),
2970 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2971 CSKY_ISA_FLOAT_E1),
2972 OP32 ("fnmuls",
2973 OPCODE_INFO3 (0xf4000220,
2974 (0_3, FREG, OPRND_SHIFT_0_BIT),
2975 (16_19, FREG, OPRND_SHIFT_0_BIT),
2976 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2977 CSKY_ISA_FLOAT_E1),
2978 OP32 ("fdivs",
2979 OPCODE_INFO3 (0xf4000300,
2980 (0_3, FREG, OPRND_SHIFT_0_BIT),
2981 (16_19, FREG, OPRND_SHIFT_0_BIT),
2982 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2983 CSKY_ISA_FLOAT_E1),
2984 OP32 ("frecips",
2985 OPCODE_INFO2 (0xf4000320,
2986 (0_3, FREG, OPRND_SHIFT_0_BIT),
2987 (16_19, FREG, OPRND_SHIFT_0_BIT)),
2988 CSKY_ISA_FLOAT_E1),
2989 OP32 ("fsqrts",
2990 OPCODE_INFO2 (0xf4000340,
2991 (0_3, FREG, OPRND_SHIFT_0_BIT),
2992 (16_19, FREG, OPRND_SHIFT_0_BIT)),
2993 CSKY_ISA_FLOAT_E1),
2994 OP32 ("faddd",
2995 OPCODE_INFO3 (0xf4000800,
2996 (0_3, FREG, OPRND_SHIFT_0_BIT),
2997 (16_19, FREG, OPRND_SHIFT_0_BIT),
2998 (21_24, FREG, OPRND_SHIFT_0_BIT)),
2999 CSKY_ISA_FLOAT_1E2),
3000 OP32 ("fsubd",
3001 OPCODE_INFO3 (0xf4000820,
3002 (0_3, FREG, OPRND_SHIFT_0_BIT),
3003 (16_19, FREG, OPRND_SHIFT_0_BIT),
3004 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3005 CSKY_ISA_FLOAT_1E2),
3006 OP32 ("fmovd",
3007 OPCODE_INFO2 (0xf4000880,
3008 (0_3, FREG, OPRND_SHIFT_0_BIT),
3009 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3010 CSKY_ISA_FLOAT_1E2),
3011 OP32 ("fabsd",
3012 OPCODE_INFO2 (0xf40008c0,
3013 (0_3, FREG, OPRND_SHIFT_0_BIT),
3014 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3015 CSKY_ISA_FLOAT_1E2),
3016 OP32 ("fnegd",
3017 OPCODE_INFO2 (0xf40008e0,
3018 (0_3, FREG, OPRND_SHIFT_0_BIT),
3019 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3020 CSKY_ISA_FLOAT_1E2),
3021 OP32 ("fcmpzhsd",
3022 OPCODE_INFO1 (0xf4000900,
3023 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3024 CSKY_ISA_FLOAT_1E2),
3025 OP32 ("fcmpzlsd",
3026 OPCODE_INFO1 (0xf4000920,
3027 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3028 CSKY_ISA_FLOAT_1E2),
3029 OP32 ("fcmpzned",
3030 OPCODE_INFO1 (0xf4000940,
3031 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3032 CSKY_ISA_FLOAT_1E2),
3033 OP32 ("fcmpzuod",
3034 OPCODE_INFO1 (0xf4000960,
3035 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3036 CSKY_ISA_FLOAT_1E2),
3037 OP32 ("fcmphsd",
3038 OPCODE_INFO2 (0xf4000980,
3039 (16_19, FREG, OPRND_SHIFT_0_BIT),
3040 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3041 CSKY_ISA_FLOAT_1E2),
3042 OP32 ("fcmpltd",
3043 OPCODE_INFO2 (0xf40009a0,
3044 (16_19, FREG, OPRND_SHIFT_0_BIT),
3045 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3046 CSKY_ISA_FLOAT_1E2),
3047 OP32 ("fcmpned",
3048 OPCODE_INFO2 (0xf40009c0,
3049 (16_19, FREG, OPRND_SHIFT_0_BIT),
3050 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3051 CSKY_ISA_FLOAT_1E2),
3052 OP32 ("fcmpuod",
3053 OPCODE_INFO2 (0xf40009e0,
3054 (16_19, FREG, OPRND_SHIFT_0_BIT),
3055 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3056 CSKY_ISA_FLOAT_1E2),
3057 OP32 ("fmuld",
3058 OPCODE_INFO3 (0xf4000a00,
3059 (0_3, FREG, OPRND_SHIFT_0_BIT),
3060 (16_19, FREG, OPRND_SHIFT_0_BIT),
3061 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3062 CSKY_ISA_FLOAT_1E2),
3063 OP32 ("fnmuld",
3064 OPCODE_INFO3 (0xf4000a20,
3065 (0_3, FREG, OPRND_SHIFT_0_BIT),
3066 (16_19, FREG, OPRND_SHIFT_0_BIT),
3067 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3068 CSKY_ISA_FLOAT_1E2),
3069 OP32 ("fmacd",
3070 OPCODE_INFO3 (0xf4000a80,
3071 (0_3, FREG, OPRND_SHIFT_0_BIT),
3072 (16_19, FREG, OPRND_SHIFT_0_BIT),
3073 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3074 CSKY_ISA_FLOAT_1E2),
3075 OP32 ("fmscd",
3076 OPCODE_INFO3 (0xf4000aa0,
3077 (0_3, FREG, OPRND_SHIFT_0_BIT),
3078 (16_19, FREG, OPRND_SHIFT_0_BIT),
3079 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3080 CSKY_ISA_FLOAT_1E2),
3081 OP32 ("fnmacd",
3082 OPCODE_INFO3 (0xf4000ac0,
3083 (0_3, FREG, OPRND_SHIFT_0_BIT),
3084 (16_19, FREG, OPRND_SHIFT_0_BIT),
3085 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3086 CSKY_ISA_FLOAT_1E2),
3087 OP32 ("fnmscd",
3088 OPCODE_INFO3 (0xf4000ae0,
3089 (0_3, FREG, OPRND_SHIFT_0_BIT),
3090 (16_19, FREG, OPRND_SHIFT_0_BIT),
3091 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3092 CSKY_ISA_FLOAT_1E2),
3093 OP32 ("fdivd",
3094 OPCODE_INFO3 (0xf4000b00,
3095 (0_3, FREG, OPRND_SHIFT_0_BIT),
3096 (16_19, FREG, OPRND_SHIFT_0_BIT),
3097 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3098 CSKY_ISA_FLOAT_1E2),
3099 OP32 ("frecipd",
3100 OPCODE_INFO2 (0xf4000b20,
3101 (0_3, FREG, OPRND_SHIFT_0_BIT),
3102 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3103 CSKY_ISA_FLOAT_1E2),
3104 OP32 ("fsqrtd",
3105 OPCODE_INFO2 (0xf4000b40,
3106 (0_3, FREG, OPRND_SHIFT_0_BIT),
3107 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3108 CSKY_ISA_FLOAT_1E2),
3109 OP32 ("faddm",
3110 OPCODE_INFO3 (0xf4001000,
3111 (0_3, FREG, OPRND_SHIFT_0_BIT),
3112 (16_19, FREG, OPRND_SHIFT_0_BIT),
3113 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3114 CSKY_ISA_FLOAT_1E2),
3115 OP32 ("fsubm",
3116 OPCODE_INFO3 (0xf4001020,
3117 (0_3, FREG, OPRND_SHIFT_0_BIT),
3118 (16_19, FREG, OPRND_SHIFT_0_BIT),
3119 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3120 CSKY_ISA_FLOAT_1E2),
3121 OP32 ("fmovm",
3122 OPCODE_INFO2 (0xf4001080,
3123 (0_3, FREG, OPRND_SHIFT_0_BIT),
3124 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3125 CSKY_ISA_FLOAT_1E2),
3126 OP32 ("fabsm",
3127 OPCODE_INFO2 (0xf40010c0,
3128 (0_3, FREG, OPRND_SHIFT_0_BIT),
3129 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3130 CSKY_ISA_FLOAT_1E2),
3131 OP32 ("fnegm",
3132 OPCODE_INFO2 (0xf40010e0,
3133 (0_3, FREG, OPRND_SHIFT_0_BIT),
3134 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3135 CSKY_ISA_FLOAT_1E2),
3136 OP32 ("fmulm",
3137 OPCODE_INFO3 (0xf4001200,
3138 (0_3, FREG, OPRND_SHIFT_0_BIT),
3139 (16_19, FREG, OPRND_SHIFT_0_BIT),
3140 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3141 CSKY_ISA_FLOAT_1E2),
3142 OP32 ("fnmulm",
3143 OPCODE_INFO3 (0xf4001220,
3144 (0_3, FREG, OPRND_SHIFT_0_BIT),
3145 (16_19, FREG, OPRND_SHIFT_0_BIT),
3146 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3147 CSKY_ISA_FLOAT_1E2),
3148 OP32 ("fmacm",
3149 OPCODE_INFO3 (0xf4001280,
3150 (0_3, FREG, OPRND_SHIFT_0_BIT),
3151 (16_19, FREG, OPRND_SHIFT_0_BIT),
3152 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3153 CSKY_ISA_FLOAT_1E2),
3154 OP32 ("fmscm",
3155 OPCODE_INFO3 (0xf40012a0,
3156 (0_3, FREG, OPRND_SHIFT_0_BIT),
3157 (16_19, FREG, OPRND_SHIFT_0_BIT),
3158 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3159 CSKY_ISA_FLOAT_1E2),
3160 OP32 ("fnmacm",
3161 OPCODE_INFO3 (0xf40012c0,
3162 (0_3, FREG, OPRND_SHIFT_0_BIT),
3163 (16_19, FREG, OPRND_SHIFT_0_BIT),
3164 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3165 CSKY_ISA_FLOAT_1E2),
3166 OP32 ("fnmscm",
3167 OPCODE_INFO3 (0xf40012e0,
3168 (0_3, FREG, OPRND_SHIFT_0_BIT),
3169 (16_19, FREG, OPRND_SHIFT_0_BIT),
3170 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3171 CSKY_ISA_FLOAT_1E2),
3172 OP32 ("fstosi.rn",
3173 OPCODE_INFO2 (0xf4001800,
3174 (0_3, FREG, OPRND_SHIFT_0_BIT),
3175 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3176 CSKY_ISA_FLOAT_E1),
3177 OP32 ("fstosi.rz",
3178 OPCODE_INFO2 (0xf4001820,
3179 (0_3, FREG, OPRND_SHIFT_0_BIT),
3180 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3181 CSKY_ISA_FLOAT_E1),
3182 OP32 ("fstosi.rpi",
3183 OPCODE_INFO2 (0xf4001840,
3184 (0_3, FREG, OPRND_SHIFT_0_BIT),
3185 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3186 CSKY_ISA_FLOAT_E1),
3187 OP32 ("fstosi.rni",
3188 OPCODE_INFO2 (0xf4001860,
3189 (0_3, FREG, OPRND_SHIFT_0_BIT),
3190 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3191 CSKY_ISA_FLOAT_E1),
3192 OP32 ("fstoui.rn",
3193 OPCODE_INFO2 (0xf4001880,
3194 (0_3, FREG, OPRND_SHIFT_0_BIT),
3195 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3196 CSKY_ISA_FLOAT_E1),
3197 OP32 ("fstoui.rz",
3198 OPCODE_INFO2 (0xf40018a0,
3199 (0_3, FREG, OPRND_SHIFT_0_BIT),
3200 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3201 CSKY_ISA_FLOAT_E1),
3202 OP32 ("fstoui.rpi",
3203 OPCODE_INFO2 (0xf40018c0,
3204 (0_3, FREG, OPRND_SHIFT_0_BIT),
3205 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3206 CSKY_ISA_FLOAT_E1),
3207 OP32 ("fstoui.rni",
3208 OPCODE_INFO2 (0xf40018e0,
3209 (0_3, FREG, OPRND_SHIFT_0_BIT),
3210 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3211 CSKY_ISA_FLOAT_E1),
3212 OP32 ("fdtosi.rn",
3213 OPCODE_INFO2 (0xf4001900,
3214 (0_3, FREG, OPRND_SHIFT_0_BIT),
3215 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3216 CSKY_ISA_FLOAT_1E2),
3217 OP32 ("fdtosi.rz",
3218 OPCODE_INFO2 (0xf4001920,
3219 (0_3, FREG, OPRND_SHIFT_0_BIT),
3220 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3221 CSKY_ISA_FLOAT_1E2),
3222 OP32 ("fdtosi.rpi",
3223 OPCODE_INFO2 (0xf4001940,
3224 (0_3, FREG, OPRND_SHIFT_0_BIT),
3225 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3226 CSKY_ISA_FLOAT_1E2),
3227 OP32 ("fdtosi.rni",
3228 OPCODE_INFO2 (0xf4001960,
3229 (0_3, FREG, OPRND_SHIFT_0_BIT),
3230 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3231 CSKY_ISA_FLOAT_1E2),
3232 OP32 ("fdtoui.rn",
3233 OPCODE_INFO2 (0xf4001980,
3234 (0_3, FREG, OPRND_SHIFT_0_BIT),
3235 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3236 CSKY_ISA_FLOAT_1E2),
3237 OP32 ("fdtoui.rz",
3238 OPCODE_INFO2 (0xf40019a0,
3239 (0_3, FREG, OPRND_SHIFT_0_BIT),
3240 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3241 CSKY_ISA_FLOAT_1E2),
3242 OP32 ("fdtoui.rpi",
3243 OPCODE_INFO2 (0xf40019c0,
3244 (0_3, FREG, OPRND_SHIFT_0_BIT),
3245 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3246 CSKY_ISA_FLOAT_1E2),
3247 OP32 ("fdtoui.rni",
3248 OPCODE_INFO2 (0xf40019e0,
3249 (0_3, FREG, OPRND_SHIFT_0_BIT),
3250 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3251 CSKY_ISA_FLOAT_1E2),
3252 OP32 ("fsitos",
3253 OPCODE_INFO2 (0xf4001a00,
3254 (0_3, FREG, OPRND_SHIFT_0_BIT),
3255 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3256 CSKY_ISA_FLOAT_E1),
3257 OP32 ("fuitos",
3258 OPCODE_INFO2 (0xf4001a20,
3259 (0_3, FREG, OPRND_SHIFT_0_BIT),
3260 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3261 CSKY_ISA_FLOAT_E1),
3262 OP32 ("fsitod",
3263 OPCODE_INFO2 (0xf4001a80,
3264 (0_3, FREG, OPRND_SHIFT_0_BIT),
3265 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3266 CSKY_ISA_FLOAT_1E2),
3267 OP32 ("fuitod",
3268 OPCODE_INFO2 (0xf4001aa0,
3269 (0_3, FREG, OPRND_SHIFT_0_BIT),
3270 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3271 CSKY_ISA_FLOAT_1E2),
3272 OP32 ("fdtos",
3273 OPCODE_INFO2 (0xf4001ac0,
3274 (0_3, FREG, OPRND_SHIFT_0_BIT),
3275 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3276 CSKY_ISA_FLOAT_1E2),
3277 OP32 ("fstod",
3278 OPCODE_INFO2 (0xf4001ae0,
3279 (0_3, FREG, OPRND_SHIFT_0_BIT),
3280 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3281 CSKY_ISA_FLOAT_1E2),
3282 OP32 ("fmfvrh",
3283 OPCODE_INFO2 (0xf4001b00,
3284 (0_4, AREG, OPRND_SHIFT_0_BIT),
3285 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3286 CSKY_ISA_FLOAT_1E2),
3287 OP32 ("fmfvrl",
3288 OPCODE_INFO2 (0xf4001b20,
3289 (0_4, AREG, OPRND_SHIFT_0_BIT),
3290 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3291 CSKY_ISA_FLOAT_E1),
3292 OP32 ("fmtvrh",
3293 OPCODE_INFO2 (0xf4001b40,
3294 (0_3, FREG, OPRND_SHIFT_0_BIT),
3295 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3296 CSKY_ISA_FLOAT_1E2),
3297 OP32 ("fmtvrl",
3298 OPCODE_INFO2 (0xf4001b60,
3299 (0_3, FREG, OPRND_SHIFT_0_BIT),
3300 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3301 CSKY_ISA_FLOAT_E1),
3302 OP32 ("flds",
3303 SOPCODE_INFO2 (0xf4002000,
3304 (0_3, FREG, OPRND_SHIFT_0_BIT),
3305 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3306 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
3307 CSKY_ISA_FLOAT_E1),
3308 OP32 ("fldd",
3309 SOPCODE_INFO2 (0xf4002100,
3310 (0_3, FREG, OPRND_SHIFT_0_BIT),
3311 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3312 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
3313 CSKY_ISA_FLOAT_1E2),
3314 OP32 ("fldm",
3315 SOPCODE_INFO2 (0xf4002200,
3316 (0_3, FREG, OPRND_SHIFT_0_BIT),
3317 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3318 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
3319 CSKY_ISA_FLOAT_1E2),
3320 OP32 ("fsts",
3321 SOPCODE_INFO2 (0xf4002400,
3322 (0_3, FREG, OPRND_SHIFT_0_BIT),
3323 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3324 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
3325 CSKY_ISA_FLOAT_E1),
3326 OP32 ("fstd",
3327 SOPCODE_INFO2 (0xf4002500,
3328 (0_3, FREG, OPRND_SHIFT_0_BIT),
3329 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3330 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
3331 CSKY_ISA_FLOAT_1E2),
3332 OP32 ("fstm",
3333 SOPCODE_INFO2 (0xf4002600,
3334 (0_3, FREG, OPRND_SHIFT_0_BIT),
3335 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3336 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
3337 CSKY_ISA_FLOAT_1E2),
3338 OP32 ("fldrs",
3339 SOPCODE_INFO2 (0xf4002800,
3340 (0_3, FREG, OPRND_SHIFT_0_BIT),
3341 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3342 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3343 CSKY_ISA_FLOAT_E1),
3344 OP32 ("fstrs",
3345 SOPCODE_INFO2 (0xf4002c00,
3346 (0_3, FREG, OPRND_SHIFT_0_BIT),
3347 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3348 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3349 CSKY_ISA_FLOAT_E1),
3350 OP32 ("fldrd",
3351 SOPCODE_INFO2 (0xf4002900,
3352 (0_3, FREG, OPRND_SHIFT_0_BIT),
3353 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3354 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3355 CSKY_ISA_FLOAT_1E2),
3356 OP32 ("fldrm",
3357 SOPCODE_INFO2 (0xf4002a00,
3358 (0_3, FREG, OPRND_SHIFT_0_BIT),
3359 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3360 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3361 CSKY_ISA_FLOAT_1E2),
3362 OP32 ("fstrd",
3363 SOPCODE_INFO2 (0xf4002d00,
3364 (0_3, FREG, OPRND_SHIFT_0_BIT),
3365 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3366 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3367 CSKY_ISA_FLOAT_1E2),
3368 OP32 ("fstrm",
3369 SOPCODE_INFO2 (0xf4002e00,
3370 (0_3, FREG, OPRND_SHIFT_0_BIT),
3371 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3372 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3373 CSKY_ISA_FLOAT_1E2),
3374 OP32 ("fldms",
3375 OPCODE_INFO2 (0xf4003000,
3376 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3377 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3378 CSKY_ISA_FLOAT_E1),
3379 OP32 ("fldmd",
3380 OPCODE_INFO2 (0xf4003100,
3381 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3382 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3383 CSKY_ISA_FLOAT_1E2),
3384 OP32 ("fldmm",
3385 OPCODE_INFO2 (0xf4003200,
3386 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3387 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3388 CSKY_ISA_FLOAT_1E2),
3389 OP32 ("fstms",
3390 OPCODE_INFO2 (0xf4003400,
3391 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3392 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3393 CSKY_ISA_FLOAT_E1),
3394 OP32 ("fstmd",
3395 OPCODE_INFO2 (0xf4003500,
3396 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3397 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3398 CSKY_ISA_FLOAT_1E2),
3399 OP32 ("fstmm",
3400 OPCODE_INFO2 (0xf4003600,
3401 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3402 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3403 CSKY_ISA_FLOAT_1E2),
3404 DOP32 ("sync",
3405 OPCODE_INFO1 (0xc0000420,
3406 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3407 OPCODE_INFO0 (0xc0000420),
3408 CSKYV2_ISA_E1),
3409 DOP32 ("idly",
3410 OPCODE_INFO1 (0xc0001c20,
3411 (21_25, OIMM5b_IDLY, OPRND_SHIFT_0_BIT)),
3412 OPCODE_INFO0 (0xc0601c20),
3413 CSKYV2_ISA_E1),
3414
3415 #undef _RELOC32
3416 #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM18BY2
3417 OP32 ("grs",
3418 OPCODE_INFO2 (0xcc0c0000,
3419 (21_25, AREG, OPRND_SHIFT_0_BIT),
3420 (0_17, IMM_OFF18b, OPRND_SHIFT_1_BIT)),
3421 CSKYV2_ISA_2E3),
3422 #undef _RELOC32
3423 #define _RELOC32 0
3424 DOP32 ("ixh",
3425 OPCODE_INFO3 (0xc4000820,
3426 (0_4, AREG, OPRND_SHIFT_0_BIT),
3427 (16_20, AREG, OPRND_SHIFT_0_BIT),
3428 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3429 OPCODE_INFO2 (0xc4000820,
3430 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3431 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3432 CSKYV2_ISA_1E2),
3433 DOP32 ("ixw",
3434 OPCODE_INFO3 (0xc4000840,
3435 (0_4, AREG, OPRND_SHIFT_0_BIT),
3436 (16_20, AREG, OPRND_SHIFT_0_BIT),
3437 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3438 OPCODE_INFO2 (0xc4000840,
3439 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3440 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3441 CSKYV2_ISA_1E2),
3442 OP32 ("ixd",
3443 OPCODE_INFO3 (0xc4000880,
3444 (0_4, AREG, OPRND_SHIFT_0_BIT),
3445 (16_20, AREG, OPRND_SHIFT_0_BIT),
3446 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3447 CSKYV2_ISA_2E3),
3448 DOP32 ("divu",
3449 OPCODE_INFO3 (0xc4008020,
3450 (0_4, AREG, OPRND_SHIFT_0_BIT),
3451 (16_20, AREG, OPRND_SHIFT_0_BIT),
3452 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3453 OPCODE_INFO2 (0xc4008020,
3454 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3455 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3456 CSKYV2_ISA_2E3),
3457 DOP32 ("divs",
3458 OPCODE_INFO3 (0xc4008040,
3459 (0_4, AREG, OPRND_SHIFT_0_BIT),
3460 (16_20, AREG, OPRND_SHIFT_0_BIT),
3461 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3462 OPCODE_INFO2 (0xc4008040,
3463 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3464 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3465 CSKYV2_ISA_2E3),
3466 OP32 ("pldr",
3467 SOPCODE_INFO1 (0xd8006000,
3468 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3469 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3470 CSKY_ISA_CACHE),
3471 OP32 ("pldw",
3472 SOPCODE_INFO1 (0xdc006000,
3473 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3474 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3475 CSKY_ISA_CACHE),
3476 OP32 ("cprgr",
3477 SOPCODE_INFO2 (0xfc000000,
3478 (16_20, AREG, OPRND_SHIFT_0_BIT),
3479 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3480 (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
3481 CSKYV2_ISA_E1),
3482 OP32 ("cpwgr",
3483 SOPCODE_INFO2 (0xfc001000,
3484 (16_20, AREG, OPRND_SHIFT_0_BIT),
3485 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3486 (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
3487 CSKYV2_ISA_E1),
3488 OP32 ("cprcr",
3489 SOPCODE_INFO2 (0xfc002000,
3490 (16_20, AREG, OPRND_SHIFT_0_BIT),
3491 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3492 (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
3493 CSKYV2_ISA_E1),
3494 OP32 ("cpwcr",
3495 SOPCODE_INFO2 (0xfc003000,
3496 (16_20, AREG, OPRND_SHIFT_0_BIT),
3497 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3498 (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
3499 CSKYV2_ISA_E1),
3500 OP32 ("cprc",
3501 SOPCODE_INFO1 (0xfc004000,
3502 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3503 (0_11, IMM12b, OPRND_SHIFT_0_BIT))),
3504 CSKYV2_ISA_E1),
3505 OP32 ("cpop",
3506 SOPCODE_INFO1 (0xfc008000,
3507 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3508 (0_14or16_20 , IMM15b, OPRND_SHIFT_0_BIT))),
3509 CSKYV2_ISA_E1),
3510
3511 OP16_OP32 ("push",
3512 OPCODE_INFO_LIST (0x14c0,
3513 (0_4, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
3514 CSKYV2_ISA_E1,
3515 OPCODE_INFO_LIST (0xebe00000,
3516 (0_8, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
3517 CSKYV2_ISA_2E3),
3518 #undef _TRANSFER
3519 #define _TRANSFER 2
3520 OP16_OP32 ("pop",
3521 OPCODE_INFO_LIST (0x1480,
3522 (0_4, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
3523 CSKYV2_ISA_E1,
3524 OPCODE_INFO_LIST (0xebc00000,
3525 (0_8, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
3526 CSKYV2_ISA_2E3),
3527 #undef _TRANSFER
3528 #define _TRANSFER 0
3529 OP16_OP32 ("movi",
3530 OPCODE_INFO2 (0x3000,
3531 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3532 (0_7, IMM8b, OPRND_SHIFT_0_BIT)),
3533 CSKYV2_ISA_E1,
3534 OPCODE_INFO2 (0xea000000,
3535 (16_20, AREG, OPRND_SHIFT_0_BIT),
3536 (0_15, IMM16b, OPRND_SHIFT_0_BIT)),
3537 CSKYV2_ISA_1E2),
3538 /* bmaski will transfer to movi when imm < 17. */
3539 OP16_OP32 ("bmaski",
3540 OPCODE_INFO2 (0x3000,
3541 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3542 (0_7, IMM8b_BMASKI, OPRND_SHIFT_0_BIT)),
3543 CSKYV2_ISA_1E2,
3544 OPCODE_INFO2 (0xc4005020,
3545 (0_4, AREG, OPRND_SHIFT_0_BIT),
3546 (21_25, OIMM5b_BMASKI, OPRND_SHIFT_0_BIT)),
3547 CSKYV2_ISA_1E2),
3548 OP16_OP32 ("cmphsi",
3549 OPCODE_INFO2 (0x3800,
3550 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3551 (0_4, OIMM5b, OPRND_SHIFT_0_BIT)),
3552 CSKYV2_ISA_E1,
3553 OPCODE_INFO2 (0xeb000000,
3554 (16_20, AREG, OPRND_SHIFT_0_BIT),
3555 (0_15, OIMM16b, OPRND_SHIFT_0_BIT)),
3556 CSKYV2_ISA_1E2),
3557 OP16_OP32 ("cmplti",
3558 OPCODE_INFO2 (0x3820,
3559 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3560 (0_4, OIMM5b, OPRND_SHIFT_0_BIT)),
3561 CSKYV2_ISA_E1,
3562 OPCODE_INFO2 (0xeb200000,
3563 (16_20, AREG, OPRND_SHIFT_0_BIT),
3564 (0_15, OIMM16b, OPRND_SHIFT_0_BIT)),
3565 CSKYV2_ISA_1E2),
3566 OP16_OP32 ("cmpnei",
3567 OPCODE_INFO2 (0x3840,
3568 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3569 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3570 CSKYV2_ISA_E1,
3571 OPCODE_INFO2 (0xeb400000,
3572 (16_20, AREG, OPRND_SHIFT_0_BIT),
3573 (0_15, IMM16b, OPRND_SHIFT_0_BIT)),
3574 CSKYV2_ISA_1E2),
3575 #undef _TRANSFER
3576 #define _TRANSFER 1
3577 OP16_OP32 ("jmpix",
3578 OPCODE_INFO2 (0x38e0,
3579 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3580 (0_1, IMM2b_JMPIX, OPRND_SHIFT_0_BIT)),
3581 CSKY_ISA_JAVA,
3582 OPCODE_INFO2 (0xe9e00000,
3583 (16_20, GREG0_7, OPRND_SHIFT_0_BIT),
3584 (0_1, IMM2b_JMPIX, OPRND_SHIFT_0_BIT)),
3585 CSKY_ISA_JAVA),
3586 #undef _TRANSFER
3587 #define _TRANSFER 0
3588 DOP16_DOP32 ("bclri",
3589 OPCODE_INFO3 (0x3880,
3590 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3591 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
3592 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3593 OPCODE_INFO2 (0x3880,
3594 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3595 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3596 CSKYV2_ISA_E1,
3597 OPCODE_INFO3 (0xc4002820,
3598 (0_4, AREG, OPRND_SHIFT_0_BIT),
3599 (16_20, AREG, OPRND_SHIFT_0_BIT),
3600 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3601 OPCODE_INFO2 (0xc4002820,
3602 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3603 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3604 CSKYV2_ISA_1E2),
3605 DOP16_DOP32 ("bseti",
3606 OPCODE_INFO3 (0x38a0,
3607 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3608 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
3609 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3610 OPCODE_INFO2 (0x38a0,
3611 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3612 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3613 CSKYV2_ISA_E1,
3614 OPCODE_INFO3 (0xc4002840,
3615 (0_4, AREG, OPRND_SHIFT_0_BIT),
3616 (16_20, AREG, OPRND_SHIFT_0_BIT),
3617 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3618 OPCODE_INFO2 (0xc4002840,
3619 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3620 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3621 CSKYV2_ISA_1E2),
3622 OP16_OP32_WITH_WORK ("btsti",
3623 OPCODE_INFO2 (0x38c0,
3624 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3625 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3626 CSKYV2_ISA_E1,
3627 OPCODE_INFO2 (0xc4002880,
3628 (16_20, AREG, OPRND_SHIFT_0_BIT),
3629 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3630 CSKYV2_ISA_1E2, v2_work_btsti),
3631 DOP16_DOP32 ("lsli",
3632 OPCODE_INFO3 (0x4000,
3633 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
3634 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3635 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3636 OPCODE_INFO2 (0x4000,
3637 (5_7or8_10, DUP_GREG0_7, OPRND_SHIFT_0_BIT),
3638 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3639 CSKYV2_ISA_E1,
3640 OPCODE_INFO3 (0xc4004820,
3641 (0_4, AREG, OPRND_SHIFT_0_BIT),
3642 (16_20, AREG, OPRND_SHIFT_0_BIT),
3643 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3644 OPCODE_INFO2 (0xc4004820,
3645 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3646 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3647 CSKYV2_ISA_1E2),
3648 DOP16_DOP32 ("lsri",
3649 OPCODE_INFO3 (0x4800,
3650 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
3651 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3652 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3653 OPCODE_INFO2 (0x4800,
3654 (5_7or8_10, DUP_GREG0_7, OPRND_SHIFT_0_BIT),
3655 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3656 CSKYV2_ISA_E1,
3657 OPCODE_INFO3 (0xc4004840,
3658 (0_4, AREG, OPRND_SHIFT_0_BIT),
3659 (16_20, AREG, OPRND_SHIFT_0_BIT),
3660 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3661 OPCODE_INFO2 (0xc4004840,
3662 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3663 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3664 CSKYV2_ISA_1E2),
3665 OP16_OP32 ("asri",
3666 OPCODE_INFO3 (0x5000,
3667 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
3668 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3669 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3670 CSKYV2_ISA_E1,
3671 OPCODE_INFO3 (0xc4004880,
3672 (0_4, AREG, OPRND_SHIFT_0_BIT),
3673 (16_20, AREG, OPRND_SHIFT_0_BIT),
3674 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3675 CSKYV2_ISA_1E2),
3676 DOP16_DOP32 ("addc",
3677 OPCODE_INFO2 (0x6001,
3678 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3679 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3680 OPCODE_INFO3 (0x6001,
3681 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3682 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
3683 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
3684 CSKYV2_ISA_E1,
3685 OPCODE_INFO3 (0xc4000040,
3686 (0_4, AREG, OPRND_SHIFT_0_BIT),
3687 (16_20, AREG, OPRND_SHIFT_0_BIT),
3688 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3689 OPCODE_INFO2 (0xc4000040,
3690 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3691 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3692 CSKYV2_ISA_1E2),
3693 DOP16_DOP32 ("subc",
3694 OPCODE_INFO2 (0x6003,
3695 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3696 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3697 OPCODE_INFO3 (0x6003,
3698 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3699 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
3700 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3701 CSKYV2_ISA_E1,
3702 OPCODE_INFO3 (0xc4000100,
3703 (0_4, AREG, OPRND_SHIFT_0_BIT),
3704 (16_20, AREG, OPRND_SHIFT_0_BIT),
3705 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3706 OPCODE_INFO2 (0xc4000100,
3707 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3708 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3709 CSKYV2_ISA_1E2),
3710 OP16_OP32 ("cmphs",
3711 OPCODE_INFO2 (0x6400,
3712 (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
3713 (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
3714 CSKYV2_ISA_E1,
3715 OPCODE_INFO2 (0xc4000420,
3716 (16_20, AREG, OPRND_SHIFT_0_BIT),
3717 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3718 CSKYV2_ISA_2E3),
3719 OP16_OP32 ("cmplt",
3720 OPCODE_INFO2 (0x6401,
3721 (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
3722 (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
3723 CSKYV2_ISA_E1,
3724 OPCODE_INFO2 (0xc4000440,
3725 (16_20, AREG, OPRND_SHIFT_0_BIT),
3726 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3727 CSKYV2_ISA_2E3),
3728 OP16_OP32 ("cmpne",
3729 OPCODE_INFO2 (0x6402,
3730 (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
3731 (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
3732 CSKYV2_ISA_E1,
3733 OPCODE_INFO2 (0xc4000480,
3734 (16_20, AREG, OPRND_SHIFT_0_BIT),
3735 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3736 CSKYV2_ISA_2E3),
3737 OP16_OP32 ("mvcv",
3738 OPCODE_INFO1 (0x6403,
3739 (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
3740 CSKYV2_ISA_E1,
3741 OPCODE_INFO1 (0xc4000600,
3742 (0_4, AREG, OPRND_SHIFT_0_BIT)),
3743 CSKYV2_ISA_2E3),
3744 DOP16_DOP32 ("and",
3745 OPCODE_INFO2 (0x6800,
3746 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3747 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3748 OPCODE_INFO3 (0x6800,
3749 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3750 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
3751 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
3752 CSKYV2_ISA_E1,
3753 OPCODE_INFO3 (0xc4002020,
3754 (0_4, AREG, OPRND_SHIFT_0_BIT),
3755 (16_20, AREG, OPRND_SHIFT_0_BIT),
3756 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3757 OPCODE_INFO2 (0xc4002020,
3758 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3759 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3760 CSKYV2_ISA_1E2),
3761 DOP16_DOP32 ("andn",
3762 OPCODE_INFO2 (0x6801,
3763 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3764 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3765 OPCODE_INFO3 (0x6801,
3766 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3767 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
3768 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3769 CSKYV2_ISA_E1,
3770 OPCODE_INFO3 (0xc4002040,
3771 (0_4, AREG, OPRND_SHIFT_0_BIT),
3772 (16_20, AREG, OPRND_SHIFT_0_BIT),
3773 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3774 OPCODE_INFO2 (0xc4002040,
3775 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3776 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3777 CSKYV2_ISA_1E2),
3778 OP16_OP32 ("tst",
3779 OPCODE_INFO2 (0x6802,
3780 (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
3781 (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
3782 CSKYV2_ISA_E1,
3783 OPCODE_INFO2 (0xc4002080,
3784 (16_20, AREG, OPRND_SHIFT_0_BIT),
3785 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3786 CSKYV2_ISA_2E3),
3787 OP16_OP32 ("tstnbz",
3788 OPCODE_INFO1 (0x6803,
3789 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3790 CSKYV2_ISA_E1,
3791 OPCODE_INFO1 (0xc4002100,
3792 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3793 CSKYV2_ISA_2E3),
3794 DOP16_DOP32 ("or",
3795 OPCODE_INFO2 (0x6c00,
3796 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3797 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3798 OPCODE_INFO3 (0x6c00,
3799 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3800 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
3801 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
3802 CSKYV2_ISA_E1,
3803 OPCODE_INFO3 (0xc4002420,
3804 (0_4, AREG, OPRND_SHIFT_0_BIT),
3805 (16_20, AREG, OPRND_SHIFT_0_BIT),
3806 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3807 OPCODE_INFO2 (0xc4002420,
3808 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3809 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3810 CSKYV2_ISA_1E2),
3811 DOP16_DOP32 ("xor",
3812 OPCODE_INFO2 (0x6c01,
3813 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3814 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3815 OPCODE_INFO3 (0x6c01,
3816 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3817 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
3818 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
3819 CSKYV2_ISA_E1,
3820 OPCODE_INFO3 (0xc4002440,
3821 (0_4, AREG, OPRND_SHIFT_0_BIT),
3822 (16_20, AREG, OPRND_SHIFT_0_BIT),
3823 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3824 OPCODE_INFO2 (0xc4002440,
3825 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3826 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3827 CSKYV2_ISA_1E2),
3828 DOP16_DOP32 ("nor",
3829 OPCODE_INFO2 (0x6c02,
3830 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3831 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3832 OPCODE_INFO3 (0x6c02,
3833 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3834 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
3835 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
3836 CSKYV2_ISA_E1,
3837 OPCODE_INFO3 (0xc4002480,
3838 (0_4, AREG, OPRND_SHIFT_0_BIT),
3839 (16_20, AREG, OPRND_SHIFT_0_BIT),
3840 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3841 OPCODE_INFO2 (0xc4002480,
3842 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3843 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3844 CSKYV2_ISA_1E2),
3845 OP16_OP32 ("mov",
3846 OPCODE_INFO2 (0x6c03,
3847 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3848 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3849 CSKYV2_ISA_E1,
3850 OPCODE_INFO2 (0xc4004820,
3851 (0_4, AREG, OPRND_SHIFT_0_BIT),
3852 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3853 CSKYV2_ISA_1E2),
3854 OP16_OP32 ("nop",
3855 OPCODE_INFO0 (0x6c03),
3856 CSKYV2_ISA_E1,
3857 OPCODE_INFO0 (0xc4004820),
3858 CSKYV2_ISA_E1),
3859 DOP16_DOP32 ("lsl",
3860 OPCODE_INFO2 (0x7000,
3861 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3862 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3863 OPCODE_INFO3 (0x7000,
3864 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3865 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
3866 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3867 CSKYV2_ISA_E1,
3868 OPCODE_INFO3 (0xc4004020,
3869 (0_4, AREG, OPRND_SHIFT_0_BIT),
3870 (16_20, AREG, OPRND_SHIFT_0_BIT),
3871 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3872 OPCODE_INFO2 (0xc4004020,
3873 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3874 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3875 CSKYV2_ISA_1E2),
3876 DOP16_DOP32 ("lsr",
3877 OPCODE_INFO2 (0x7001,
3878 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3879 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3880 OPCODE_INFO3 (0x7001,
3881 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3882 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
3883 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3884 CSKYV2_ISA_E1,
3885 OPCODE_INFO3 (0xc4004040,
3886 (0_4, AREG, OPRND_SHIFT_0_BIT),
3887 (16_20, AREG, OPRND_SHIFT_0_BIT),
3888 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3889 OPCODE_INFO2 (0xc4004040,
3890 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3891 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3892 CSKYV2_ISA_1E2),
3893 DOP16_DOP32 ("asr",
3894 OPCODE_INFO2 (0x7002,
3895 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3896 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3897 OPCODE_INFO3 (0x7002,
3898 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3899 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
3900 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3901 CSKYV2_ISA_E1,
3902 OPCODE_INFO3 (0xc4004080,
3903 (0_4, AREG, OPRND_SHIFT_0_BIT),
3904 (16_20, AREG, OPRND_SHIFT_0_BIT),
3905 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3906 OPCODE_INFO2 (0xc4004080,
3907 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3908 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3909 CSKYV2_ISA_1E2),
3910 DOP16_DOP32 ("rotl",
3911 OPCODE_INFO2 (0x7003,
3912 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3913 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3914 OPCODE_INFO3 (0x7003,
3915 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3916 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
3917 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3918 CSKYV2_ISA_E1,
3919 OPCODE_INFO3 (0xc4004100,
3920 (0_4, AREG, OPRND_SHIFT_0_BIT),
3921 (16_20, AREG, OPRND_SHIFT_0_BIT),
3922 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3923 OPCODE_INFO2 (0xc4004100,
3924 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3925 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3926 CSKYV2_ISA_1E2),
3927 DOP16_DOP32 ("zextb",
3928 OPCODE_INFO2 (0x7400,
3929 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3930 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3931 OPCODE_INFO1 (0x7400,
3932 (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
3933 CSKYV2_ISA_E1,
3934 OPCODE_INFO2 (0xc40054e0,
3935 (0_4, AREG, OPRND_SHIFT_0_BIT),
3936 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3937 OPCODE_INFO1 (0xc40054e0,
3938 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
3939 CSKYV2_ISA_2E3),
3940 DOP16_DOP32 ("zexth",
3941 OPCODE_INFO2 (0x7401,
3942 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3943 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3944 OPCODE_INFO1 (0x7401,
3945 (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
3946 CSKYV2_ISA_E1,
3947 OPCODE_INFO2 (0xc40055e0,
3948 (0_4, AREG, OPRND_SHIFT_0_BIT),
3949 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3950 OPCODE_INFO1 (0xc40055e0,
3951 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
3952 CSKYV2_ISA_2E3),
3953 DOP16_DOP32 ("sextb",
3954 OPCODE_INFO2 (0x7402,
3955 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3956 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3957 OPCODE_INFO1 (0x7402,
3958 (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
3959 CSKYV2_ISA_E1,
3960 OPCODE_INFO2 (0xc40058e0,
3961 (0_4, AREG, OPRND_SHIFT_0_BIT),
3962 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3963 OPCODE_INFO1 (0xc40058e0,
3964 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
3965 CSKYV2_ISA_2E3),
3966 DOP16_DOP32 ("sexth",
3967 OPCODE_INFO2 (0x7403,
3968 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
3969 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
3970 OPCODE_INFO1 (0x7403,
3971 (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
3972 CSKYV2_ISA_E1,
3973 OPCODE_INFO2 (0xc40059e0,
3974 (0_4, AREG, OPRND_SHIFT_0_BIT),
3975 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3976 OPCODE_INFO1 (0xc40059e0,
3977 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
3978 CSKYV2_ISA_2E3),
3979 OP32 ("zext",
3980 OPCODE_INFO4 (0xc4005400,
3981 (0_4, AREG, OPRND_SHIFT_0_BIT),
3982 (16_20, AREG, OPRND_SHIFT_0_BIT),
3983 (5_9, IMM5b, OPRND_SHIFT_0_BIT),
3984 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3985 CSKYV2_ISA_2E3),
3986 OP32 ("sext",
3987 OPCODE_INFO4 (0xc4005800,
3988 (0_4, AREG, OPRND_SHIFT_0_BIT),
3989 (16_20, AREG, OPRND_SHIFT_0_BIT),
3990 (5_9, IMM5b, OPRND_SHIFT_0_BIT),
3991 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3992 CSKYV2_ISA_2E3),
3993 #undef _TRANSFER
3994 #define _TRANSFER 2
3995 OP16_OP32 ("rts",
3996 OPCODE_INFO0 (0x783c),
3997 CSKYV2_ISA_E1,
3998 OPCODE_INFO0 (0xe8cf0000),
3999 CSKYV2_ISA_E1),
4000 #undef _TRANSFER
4001 #define _TRANSFER 1
4002 OP16_OP32 ("jmp",
4003 OPCODE_INFO1 (0x7800,
4004 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4005 CSKYV2_ISA_E1,
4006 OPCODE_INFO1 (0xe8c00000,
4007 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4008 CSKYV2_ISA_2E3),
4009 #undef _TRANSFER
4010 #define _TRANSFER 0
4011 OP16_OP32 ("revb",
4012 OPCODE_INFO2 (0x7802,
4013 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4014 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4015 CSKYV2_ISA_1E2,
4016 OPCODE_INFO2 (0xc4006080,
4017 (0_4, AREG, OPRND_SHIFT_0_BIT),
4018 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4019 CSKYV2_ISA_2E3),
4020 OP16_OP32 ("revh",
4021 OPCODE_INFO2 (0x7803,
4022 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4023 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4024 CSKYV2_ISA_1E2,
4025 OPCODE_INFO2 (0xc4006100,
4026 (0_4, AREG, OPRND_SHIFT_0_BIT),
4027 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4028 CSKYV2_ISA_2E3),
4029 OP16_OP32 ("jsr",
4030 OPCODE_INFO1 (0x7bc1,
4031 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4032 CSKYV2_ISA_E1,
4033 OPCODE_INFO1 (0xe8e00000,
4034 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4035 CSKYV2_ISA_2E3),
4036 DOP16_DOP32 ("mult",
4037 OPCODE_INFO2 (0x7c00,
4038 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4039 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4040 OPCODE_INFO3 (0x7c00,
4041 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4042 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
4043 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
4044 CSKYV2_ISA_E1,
4045 OPCODE_INFO3 (0xc4008420,
4046 (0_4, AREG, OPRND_SHIFT_0_BIT),
4047 (16_20, AREG, OPRND_SHIFT_0_BIT),
4048 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4049 OPCODE_INFO2 (0xc4008420,
4050 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4051 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4052 CSKYV2_ISA_1E2),
4053 OP16 ("mul",
4054 OPCODE_INFO2 (0x7c00,
4055 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4056 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4057 CSKYV2_ISA_E1),
4058 DOP16_DOP32 ("mulsh",
4059 OPCODE_INFO2 (0x7c01,
4060 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4061 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4062 OPCODE_INFO3 (0x7c01,
4063 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4064 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
4065 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
4066 CSKYV2_ISA_2E3,
4067 OPCODE_INFO3 (0xc4009020,
4068 (0_4, AREG, OPRND_SHIFT_0_BIT),
4069 (16_20, AREG, OPRND_SHIFT_0_BIT),
4070 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4071 OPCODE_INFO2 (0xc4009020,
4072 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4073 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4074 CSKYV2_ISA_2E3),
4075 OP16 ("muls.h",
4076 OPCODE_INFO2 (0x7c01,
4077 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4078 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4079 CSKYV2_ISA_2E3),
4080 DOP32 ("mulsw",
4081 OPCODE_INFO3 (0xc4009420,
4082 (0_4, AREG, OPRND_SHIFT_0_BIT),
4083 (16_20, AREG, OPRND_SHIFT_0_BIT),
4084 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4085 OPCODE_INFO2 (0xc4009420,
4086 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4087 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4088 CSKY_ISA_DSP),
4089 OP16_OP32 ("ld.b",
4090 SOPCODE_INFO2 (0x8000,
4091 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4092 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4093 (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
4094 CSKYV2_ISA_E1,
4095 SOPCODE_INFO2 (0xd8000000,
4096 (21_25, AREG, OPRND_SHIFT_0_BIT),
4097 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4098 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
4099 CSKYV2_ISA_E1),
4100 OP16_OP32 ("ldb",
4101 SOPCODE_INFO2 (0x8000,
4102 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4103 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4104 (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
4105 CSKYV2_ISA_E1,
4106 SOPCODE_INFO2 (0xd8000000,
4107 (21_25, AREG, OPRND_SHIFT_0_BIT),
4108 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4109 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
4110 CSKYV2_ISA_E1),
4111 OP16_OP32 ("st.b",
4112 SOPCODE_INFO2 (0xa000,
4113 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4114 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4115 (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
4116 CSKYV2_ISA_E1,
4117 SOPCODE_INFO2 (0xdc000000,
4118 (21_25, AREG, OPRND_SHIFT_0_BIT),
4119 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4120 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
4121 CSKYV2_ISA_E1),
4122 OP16_OP32 ("stb",
4123 SOPCODE_INFO2 (0xa000,
4124 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4125 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4126 (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
4127 CSKYV2_ISA_E1,
4128 SOPCODE_INFO2 (0xdc000000,
4129 (21_25, AREG, OPRND_SHIFT_0_BIT),
4130 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4131 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
4132 CSKYV2_ISA_E1),
4133
4134 OP16_OP32 ("ld.h",
4135 SOPCODE_INFO2 (0x8800,
4136 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4137 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4138 (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
4139 CSKYV2_ISA_E1,
4140 SOPCODE_INFO2 (0xd8001000,
4141 (21_25, AREG, OPRND_SHIFT_0_BIT),
4142 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4143 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
4144 CSKYV2_ISA_E1),
4145 OP16_OP32 ("ldh",
4146 SOPCODE_INFO2 (0x8800,
4147 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4148 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4149 (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
4150 CSKYV2_ISA_E1,
4151 SOPCODE_INFO2 (0xd8001000,
4152 (21_25, AREG, OPRND_SHIFT_0_BIT),
4153 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4154 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
4155 CSKYV2_ISA_E1),
4156 OP16_OP32 ("st.h",
4157 SOPCODE_INFO2 (0xa800,
4158 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4159 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4160 (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
4161 CSKYV2_ISA_E1,
4162 SOPCODE_INFO2 (0xdc001000,
4163 (21_25, AREG, OPRND_SHIFT_0_BIT),
4164 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4165 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
4166 CSKYV2_ISA_E1),
4167 OP16_OP32 ("sth",
4168 SOPCODE_INFO2 (0xa800,
4169 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4170 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4171 (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
4172 CSKYV2_ISA_E1,
4173 SOPCODE_INFO2 (0xdc001000,
4174 (21_25, AREG, OPRND_SHIFT_0_BIT),
4175 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4176 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
4177 CSKYV2_ISA_E1),
4178 DOP16_OP32 ("ld.w",
4179 SOPCODE_INFO2 (0x9000,
4180 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4181 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4182 (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
4183 SOPCODE_INFO2 (0x9800,
4184 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4185 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4186 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4187 CSKYV2_ISA_E1,
4188 SOPCODE_INFO2 (0xd8002000,
4189 (21_25, AREG, OPRND_SHIFT_0_BIT),
4190 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4191 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4192 CSKYV2_ISA_E1),
4193 DOP16_OP32 ("ldw",
4194 SOPCODE_INFO2 (0x9000,
4195 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4196 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4197 (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
4198 SOPCODE_INFO2 (0x9800,
4199 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4200 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4201 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4202 CSKYV2_ISA_E1,
4203 SOPCODE_INFO2 (0xd8002000,
4204 (21_25, AREG, OPRND_SHIFT_0_BIT),
4205 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4206 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4207 CSKYV2_ISA_E1),
4208 DOP16_OP32 ("ld",
4209 SOPCODE_INFO2 (0x9000,
4210 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4211 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4212 (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
4213 SOPCODE_INFO2 (0x9800,
4214 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4215 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4216 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4217 CSKYV2_ISA_E1,
4218 SOPCODE_INFO2 (0xd8002000,
4219 (21_25, AREG, OPRND_SHIFT_0_BIT),
4220 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4221 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4222 CSKYV2_ISA_E1),
4223 DOP16_OP32 ("st.w",
4224 SOPCODE_INFO2 (0xb000,
4225 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4226 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4227 (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
4228 SOPCODE_INFO2 (0xb800,
4229 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4230 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4231 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4232 CSKYV2_ISA_E1,
4233 SOPCODE_INFO2 (0xdc002000,
4234 (21_25, AREG, OPRND_SHIFT_0_BIT),
4235 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4236 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4237 CSKYV2_ISA_E1),
4238 DOP16_OP32 ("stw",
4239 SOPCODE_INFO2 (0xb000,
4240 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4241 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4242 (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
4243 SOPCODE_INFO2 (0xb800,
4244 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4245 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4246 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4247 CSKYV2_ISA_E1,
4248 SOPCODE_INFO2 (0xdc002000,
4249 (21_25, AREG, OPRND_SHIFT_0_BIT),
4250 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4251 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4252 CSKYV2_ISA_E1),
4253 DOP16_OP32 ("st",
4254 SOPCODE_INFO2 (0xb000,
4255 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4256 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4257 (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
4258 SOPCODE_INFO2 (0xb800,
4259 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4260 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4261 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4262 CSKYV2_ISA_E1,
4263 SOPCODE_INFO2 (0xdc002000,
4264 (21_25, AREG, OPRND_SHIFT_0_BIT),
4265 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4266 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4267 CSKYV2_ISA_E1),
4268 #ifdef BUILD_AS
4269 DOP16_DOP32_WITH_WORK ("addi",
4270 OPCODE_INFO2 (0x2000,
4271 (NONE, AREG, OPRND_SHIFT_0_BIT),
4272 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4273 OPCODE_INFO3 (0x2000,
4274 (NONE, AREG, OPRND_SHIFT_0_BIT),
4275 (NONE, AREG, OPRND_SHIFT_0_BIT),
4276 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4277 CSKYV2_ISA_E1,
4278 OPCODE_INFO2 (0xe4000000,
4279 (NONE, AREG, OPRND_SHIFT_0_BIT),
4280 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4281 OPCODE_INFO3 (0xe4000000,
4282 (NONE, AREG, OPRND_SHIFT_0_BIT),
4283 (NONE, AREG, OPRND_SHIFT_0_BIT),
4284 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4285 CSKYV2_ISA_1E2,
4286 v2_work_addi),
4287 #else
4288 DOP16 ("addi",
4289 OPCODE_INFO2 (0x2000,
4290 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4291 (0_7, OIMM8b, OPRND_SHIFT_0_BIT)),
4292 OPCODE_INFO3 (0x5802,
4293 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4294 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4295 (2_4, OIMM3b, OPRND_SHIFT_0_BIT)),
4296 CSKYV2_ISA_E1),
4297 DOP16 ("addi",
4298 OPCODE_INFO3 (0x1800,
4299 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4300 (NONE, REGsp, OPRND_SHIFT_0_BIT),
4301 (0_7, IMM8b_LS2, OPRND_SHIFT_0_BIT)),
4302 OPCODE_INFO3 (0x1400,
4303 (NONE, REGsp, OPRND_SHIFT_0_BIT),
4304 (NONE, REGsp, OPRND_SHIFT_0_BIT),
4305 (0_4or8_9, IMM7b_LS2, OPRND_SHIFT_0_BIT)),
4306 CSKYV2_ISA_E1),
4307 DOP32 ("addi",
4308 OPCODE_INFO3 (0xe4000000,
4309 (21_25, AREG, OPRND_SHIFT_0_BIT),
4310 (16_20, AREG, OPRND_SHIFT_0_BIT),
4311 (0_11, OIMM12b, OPRND_SHIFT_0_BIT)),
4312 OPCODE_INFO3 (0xcc1c0000,
4313 (21_25, AREG, OPRND_SHIFT_0_BIT),
4314 (NONE, REG_r28, OPRND_SHIFT_0_BIT),
4315 (0_17, OIMM18b, OPRND_SHIFT_0_BIT)),
4316 CSKYV2_ISA_1E2),
4317 #endif
4318 #ifdef BUILD_AS
4319 DOP16_DOP32_WITH_WORK ("subi",
4320 OPCODE_INFO2 (0x2800,
4321 (NONE, AREG, OPRND_SHIFT_0_BIT),
4322 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4323 OPCODE_INFO3 (0x2800,
4324 (NONE, AREG, OPRND_SHIFT_0_BIT),
4325 (NONE, AREG, OPRND_SHIFT_0_BIT),
4326 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4327 CSKYV2_ISA_E1,
4328 OPCODE_INFO2 (0xe4001000,
4329 (NONE, AREG, OPRND_SHIFT_0_BIT),
4330 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4331 OPCODE_INFO3 (0xe4001000,
4332 (NONE, AREG, OPRND_SHIFT_0_BIT),
4333 (NONE, AREG, OPRND_SHIFT_0_BIT),
4334 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4335 CSKYV2_ISA_1E2, v2_work_subi),
4336 #else
4337 DOP16 ("subi",
4338 OPCODE_INFO2 (0x2800,
4339 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4340 (0_7, OIMM8b, OPRND_SHIFT_0_BIT)),
4341 OPCODE_INFO3 (0x5803,
4342 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4343 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4344 (2_4, OIMM3b, OPRND_SHIFT_0_BIT)),
4345 CSKYV2_ISA_E1),
4346 OP32 ("subi",
4347 OPCODE_INFO3 (0xe4001000,
4348 (21_25, AREG, OPRND_SHIFT_0_BIT),
4349 (16_20, AREG, OPRND_SHIFT_0_BIT),
4350 (0_11, OIMM12b, OPRND_SHIFT_0_BIT)),
4351 CSKYV2_ISA_1E2),
4352 OP16 ("subi",
4353 OPCODE_INFO3 (0x1420,
4354 (NONE, REGsp, OPRND_SHIFT_0_BIT),
4355 (NONE, REGsp, OPRND_SHIFT_0_BIT),
4356 (0_4or8_9, IMM7b_LS2, OPRND_SHIFT_0_BIT)),
4357 CSKYV2_ISA_E1),
4358 #endif
4359 DOP16_DOP32_WITH_WORK ("addu",
4360 OPCODE_INFO2 (0x6000,
4361 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4362 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4363 OPCODE_INFO3 (0x5800,
4364 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4365 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4366 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
4367 CSKYV2_ISA_E1,
4368 OPCODE_INFO3 (0xc4000020,
4369 (0_4, AREG, OPRND_SHIFT_0_BIT),
4370 (16_20, AREG, OPRND_SHIFT_0_BIT),
4371 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4372 OPCODE_INFO2 (0xc4000020,
4373 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4374 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4375 CSKYV2_ISA_E1,
4376 v2_work_add_sub),
4377 DOP16_DOP32_WITH_WORK ("add",
4378 OPCODE_INFO2 (0x6000,
4379 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4380 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4381 OPCODE_INFO3 (0x5800,
4382 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4383 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4384 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
4385 CSKYV2_ISA_E1,
4386 OPCODE_INFO3 (0xc4000020,
4387 (0_4, AREG, OPRND_SHIFT_0_BIT),
4388 (16_20, AREG, OPRND_SHIFT_0_BIT),
4389 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4390 OPCODE_INFO2 (0xc4000020,
4391 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4392 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4393 CSKYV2_ISA_E1,
4394 v2_work_add_sub),
4395 DOP16_DOP32_WITH_WORK ("subu",
4396 OPCODE_INFO2 (0x6002,
4397 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4398 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4399 OPCODE_INFO3 (0x5801,
4400 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4401 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4402 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
4403 CSKYV2_ISA_E1,
4404 OPCODE_INFO3 (0xc4000080,
4405 (0_4, AREG, OPRND_SHIFT_0_BIT),
4406 (16_20, AREG, OPRND_SHIFT_0_BIT),
4407 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4408 OPCODE_INFO2 (0xc4000080,
4409 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4410 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4411 CSKYV2_ISA_E1,
4412 v2_work_add_sub),
4413 DOP16_DOP32_WITH_WORK ("sub",
4414 OPCODE_INFO2 (0x6002,
4415 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4416 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4417 OPCODE_INFO3 (0x5801,
4418 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4419 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4420 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
4421 CSKYV2_ISA_E1,
4422 OPCODE_INFO3 (0xc4000080,
4423 (0_4, AREG, OPRND_SHIFT_0_BIT),
4424 (16_20, AREG, OPRND_SHIFT_0_BIT),
4425 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4426 OPCODE_INFO2 (0xc4000080,
4427 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4428 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4429 CSKYV2_ISA_E1,
4430 v2_work_add_sub),
4431 OP32_WITH_WORK ("fmovis",
4432 OPCODE_INFO2 (0xf4001c00,
4433 (0_3, FREG, OPRND_SHIFT_0_BIT),
4434 (4_7or16_24, SFLOAT, OPRND_SHIFT_2_BIT)),
4435 CSKY_ISA_FLOAT_1E3,
4436 float_work_fmovi),
4437 OP32_WITH_WORK ("fmovid",
4438 OPCODE_INFO2 (0xf4001e00,
4439 (0_3, FREG, OPRND_SHIFT_0_BIT),
4440 (4_7or16_24, DFLOAT, OPRND_SHIFT_2_BIT)),
4441 CSKY_ISA_FLOAT_3E4,
4442 float_work_fmovi),
4443 #undef _RELOC32
4444 #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM26BY2
4445 OP32 ("bsr",
4446 OPCODE_INFO1 (0xe0000000,
4447 (0_25, OFF26b, OPRND_SHIFT_1_BIT)),
4448 CSKYV2_ISA_E1),
4449 #undef _RELOC32
4450 #define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18
4451 OP32 ("lrs.b",
4452 OPCODE_INFO2 (0xcc000000,
4453 (21_25, AREG, OPRND_SHIFT_0_BIT),
4454 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4455 CSKYV2_ISA_2E3),
4456 OP32 ("srs.b",
4457 OPCODE_INFO2 (0xcc100000,
4458 (21_25, AREG, OPRND_SHIFT_0_BIT),
4459 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4460 CSKYV2_ISA_2E3),
4461 #undef _RELOC32
4462 #define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18BY2
4463 OP32 ("lrs.h",
4464 OPCODE_INFO2 (0xcc040000,
4465 (21_25, AREG, OPRND_SHIFT_0_BIT),
4466 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4467 CSKYV2_ISA_2E3),
4468 OP32 ("srs.h",
4469 OPCODE_INFO2 (0xcc140000,
4470 (21_25, AREG, OPRND_SHIFT_0_BIT),
4471 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4472 CSKYV2_ISA_2E3),
4473 #undef _RELOC32
4474 #define _RELOC32 BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4
4475 OP32 ("flrws",
4476 OPCODE_INFO2 (0xf4003800,
4477 (0_3, FREG, OPRND_SHIFT_0_BIT),
4478 (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
4479 CSKY_ISA_FLOAT_1E3),
4480 OP32 ("flrwd",
4481 OPCODE_INFO2 (0xf4003900,
4482 (0_3, FREG, OPRND_SHIFT_0_BIT),
4483 (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
4484 CSKY_ISA_FLOAT_3E4),
4485 #undef _RELOC32
4486 #define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18BY4
4487 OP32_WITH_WORK ("lrs.w",
4488 OPCODE_INFO2 (0xcc080000,
4489 (21_25, AREG, OPRND_SHIFT_0_BIT),
4490 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4491 CSKYV2_ISA_2E3,
4492 v2_work_lrsrsw),
4493 OP32_WITH_WORK ("srs.w",
4494 OPCODE_INFO2 (0xcc180000,
4495 (21_25, AREG, OPRND_SHIFT_0_BIT),
4496 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4497 CSKYV2_ISA_2E3,
4498 v2_work_lrsrsw),
4499
4500 #undef _RELOC32
4501 #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4
4502 OP32_WITH_WORK ("jsri",
4503 OPCODE_INFO1 (0xeae00000,
4504 (0_15, OFF16b, OPRND_SHIFT_2_BIT)),
4505 CSKYV2_ISA_2E3,
4506 v2_work_jsri),
4507 #undef _RELOC32
4508 #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY2
4509 OP32 ("bez",
4510 OPCODE_INFO2 (0xe9000000,
4511 (16_20, AREG, OPRND_SHIFT_0_BIT),
4512 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4513 CSKYV2_ISA_2E3),
4514 OP32 ("bnez",
4515 OPCODE_INFO2 (0xe9200000,
4516 (16_20, AREG, OPRND_SHIFT_0_BIT),
4517 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4518 CSKYV2_ISA_2E3),
4519 OP32 ("bhz",
4520 OPCODE_INFO2 (0xe9400000,
4521 (16_20, AREG, OPRND_SHIFT_0_BIT),
4522 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4523 CSKYV2_ISA_2E3),
4524 OP32 ("blsz",
4525 OPCODE_INFO2 (0xe9600000,
4526 (16_20, AREG, OPRND_SHIFT_0_BIT),
4527 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4528 CSKYV2_ISA_2E3),
4529 OP32 ("blz",
4530 OPCODE_INFO2 (0xe9800000,
4531 (16_20, AREG, OPRND_SHIFT_0_BIT),
4532 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4533 CSKYV2_ISA_2E3),
4534 OP32 ("bhsz",
4535 OPCODE_INFO2 (0xe9a00000,
4536 (16_20, AREG, OPRND_SHIFT_0_BIT),
4537 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4538 CSKYV2_ISA_2E3),
4539 #undef _RELAX
4540 #undef _RELOC16
4541 #undef _TRANSFER
4542 #define _TRANSFER 1
4543 #define _RELAX 1
4544 #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM10BY2
4545 OP16_OP32 ("br",
4546 OPCODE_INFO1 (0x0400,
4547 (0_9, UNCOND10b, OPRND_SHIFT_1_BIT)),
4548 CSKYV2_ISA_E1,
4549 OPCODE_INFO1 (0xe8000000,
4550 (0_15, UNCOND16b, OPRND_SHIFT_1_BIT)),
4551 CSKYV2_ISA_E1),
4552 #undef _TRANSFER
4553 #define _TRANSFER 0
4554 OP16_OP32 ("bt",
4555 OPCODE_INFO1 (0x0800,
4556 (0_9, COND10b, OPRND_SHIFT_1_BIT)),
4557 CSKYV2_ISA_E1,
4558 OPCODE_INFO1 (0xe8600000,
4559 (0_15, COND16b, OPRND_SHIFT_1_BIT)),
4560 CSKYV2_ISA_1E2),
4561 OP16_OP32 ("bf",
4562 OPCODE_INFO1 (0x0c00,
4563 (0_9, COND10b, OPRND_SHIFT_1_BIT)),
4564 CSKYV2_ISA_E1,
4565 OPCODE_INFO1 (0xe8400000,
4566 (0_15, COND16b, OPRND_SHIFT_1_BIT)),
4567 CSKYV2_ISA_1E2),
4568 #undef _RELOC16
4569 #undef _RELOC32
4570 #undef _RELAX
4571 #define _RELOC16 0
4572 #define _RELOC32 0
4573 #define _RELAX 0
4574 #undef _TRANSFER
4575 #define _TRANSFER 1
4576 OP16_WITH_WORK ("jbr",
4577 OPCODE_INFO1 (0x0400,
4578 (0_10, UNCOND10b, OPRND_SHIFT_1_BIT)),
4579 CSKYV2_ISA_E1,
4580 v2_work_jbr),
4581 #undef _TRANSFER
4582 #define _TRANSFER 0
4583 OP16_WITH_WORK ("jbt",
4584 OPCODE_INFO1 (0x0800,
4585 (0_10, COND10b, OPRND_SHIFT_1_BIT)),
4586 CSKYV2_ISA_E1,
4587 v2_work_jbtf),
4588 OP16_WITH_WORK ("jbf",
4589 OPCODE_INFO1 (0x0c00,
4590 (0_10, COND10b, OPRND_SHIFT_1_BIT)),
4591 CSKYV2_ISA_E1,
4592 v2_work_jbtf),
4593 OP32_WITH_WORK ("jbsr",
4594 OPCODE_INFO1 (0xe0000000,
4595 (0_25, OFF26b, OPRND_SHIFT_1_BIT)),
4596 CSKYV2_ISA_E1,
4597 v2_work_jbsr),
4598 OP32_WITH_WORK ("movih",
4599 OPCODE_INFO2 (0xea200000,
4600 (16_20, AREG, OPRND_SHIFT_0_BIT),
4601 (0_15, IMM16b_MOVIH, OPRND_SHIFT_0_BIT)),
4602 CSKYV2_ISA_1E2,
4603 v2_work_movih),
4604 OP32_WITH_WORK ("ori",
4605 OPCODE_INFO3 (0xec000000,
4606 (21_25, AREG, OPRND_SHIFT_0_BIT),
4607 (16_20, AREG, OPRND_SHIFT_0_BIT),
4608 (0_15, IMM16b_ORI, OPRND_SHIFT_0_BIT)),
4609 CSKYV2_ISA_1E2,
4610 v2_work_ori),
4611 DOP32_WITH_WORK ("bgeni",
4612 OPCODE_INFO2 (0xea000000,
4613 (16_20, AREG, OPRND_SHIFT_0_BIT),
4614 (0_4, IMM4b, OPRND_SHIFT_0_BIT)),
4615 OPCODE_INFO2 (0xea200000,
4616 (16_20, AREG, OPRND_SHIFT_0_BIT),
4617 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
4618 CSKYV2_ISA_E1,
4619 v2_work_bgeni),
4620 #undef _RELOC16
4621 #undef _RELOC32
4622 #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM7BY4
4623 #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4
4624 DOP16_OP32_WITH_WORK ("lrw",
4625 OPCODE_INFO2 (0x1000,
4626 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4627 (0_4or8_9, CONSTANT, OPRND_SHIFT_2_BIT)),
4628 OPCODE_INFO2 (0x0000,
4629 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4630 (0_4or8_9, ELRW_CONSTANT, OPRND_SHIFT_2_BIT)),
4631 CSKYV2_ISA_E1,
4632 OPCODE_INFO2 (0xea800000,
4633 (16_20, AREG, OPRND_SHIFT_0_BIT),
4634 (0_15, CONSTANT, OPRND_SHIFT_2_BIT)),
4635 CSKYV2_ISA_E1,
4636 v2_work_lrw),
4637 #undef _RELOC16
4638 #undef _RELOC32
4639 #define _RELOC16 0
4640 #define _RELOC32 0
4641
4642 #undef _RELAX
4643 #define _RELAX 1
4644 OP32 ("jbez",
4645 OPCODE_INFO2 (0xe9000000,
4646 (16_20, AREG, OPRND_SHIFT_0_BIT),
4647 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
4648 CSKYV2_ISA_2E3),
4649 OP32 ("jbnez",
4650 OPCODE_INFO2 (0xe9200000,
4651 (16_20, AREG, OPRND_SHIFT_0_BIT),
4652 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
4653 CSKYV2_ISA_2E3),
4654 OP32 ("jbhz",
4655 OPCODE_INFO2 (0xe9400000,
4656 (16_20, AREG, OPRND_SHIFT_0_BIT),
4657 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
4658 CSKYV2_ISA_2E3),
4659 OP32 ("jblsz",
4660 OPCODE_INFO2 (0xe9600000,
4661 (16_20, AREG, OPRND_SHIFT_0_BIT),
4662 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
4663 CSKYV2_ISA_2E3),
4664 OP32 ("jblz",
4665 OPCODE_INFO2 (0xe9800000,
4666 (16_20, AREG, OPRND_SHIFT_0_BIT),
4667 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
4668 CSKYV2_ISA_2E3),
4669 OP32 ("jbhsz",
4670 OPCODE_INFO2 (0xe9a00000,
4671 (16_20, AREG, OPRND_SHIFT_0_BIT),
4672 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
4673 CSKYV2_ISA_2E3),
4674 #undef _RELAX
4675 #define _RELAX 0
4676
4677 /* The followings are enhance DSP instructions. */
4678 OP32_WITH_WORK ("bloop",
4679 OPCODE_INFO3 (0xe9c00000,
4680 (16_20, AREG, OPRND_SHIFT_0_BIT),
4681 (0_11, BLOOP_OFF12b, OPRND_SHIFT_1_BIT),
4682 (12_15, BLOOP_OFF4b, OPRND_SHIFT_1_BIT)),
4683 CSKY_ISA_DSP_ENHANCE,
4684 dsp_work_bloop),
4685 /* The followings are ld/st instructions. */
4686 OP32 ("ldbi.b",
4687 OPCODE_INFO2 (0xd0008000,
4688 (0_4, AREG, OPRND_SHIFT_0_BIT),
4689 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4690 CSKY_ISA_DSP_ENHANCE),
4691 OP32 ("ldbi.h",
4692 OPCODE_INFO2 (0xd0008400,
4693 (0_4, AREG, OPRND_SHIFT_0_BIT),
4694 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4695 CSKY_ISA_DSP_ENHANCE),
4696 OP32 ("ldbi.w",
4697 OPCODE_INFO2 (0xd0008800,
4698 (0_4, AREG, OPRND_SHIFT_0_BIT),
4699 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4700 CSKY_ISA_DSP_ENHANCE),
4701 OP32 ("pldbi.d",
4702 OPCODE_INFO2 (0xd0008c00,
4703 (0_4, AREG, OPRND_SHIFT_0_BIT),
4704 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4705 CSKY_ISA_DSP_ENHANCE),
4706 OP32 ("ldbi.hs",
4707 OPCODE_INFO2 (0xd0009000,
4708 (0_4, AREG, OPRND_SHIFT_0_BIT),
4709 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4710 CSKY_ISA_DSP_ENHANCE),
4711 OP32 ("ldbi.bs",
4712 OPCODE_INFO2 (0xd0009400,
4713 (0_4, AREG, OPRND_SHIFT_0_BIT),
4714 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4715 CSKY_ISA_DSP_ENHANCE),
4716 OP32 ("stbi.b",
4717 OPCODE_INFO2 (0xd4008000,
4718 (0_4, AREG, OPRND_SHIFT_0_BIT),
4719 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4720 CSKY_ISA_DSP_ENHANCE),
4721 OP32 ("stbi.h",
4722 OPCODE_INFO2 (0xd4008400,
4723 (0_4, AREG, OPRND_SHIFT_0_BIT),
4724 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4725 CSKY_ISA_DSP_ENHANCE),
4726 OP32 ("stbi.w",
4727 OPCODE_INFO2 (0xd4008800,
4728 (0_4, AREG, OPRND_SHIFT_0_BIT),
4729 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4730 CSKY_ISA_DSP_ENHANCE),
4731 OP32 ("ldbir.b",
4732 OPCODE_INFO3 (0xd000a000,
4733 (0_4, AREG, OPRND_SHIFT_0_BIT),
4734 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
4735 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4736 CSKY_ISA_DSP_ENHANCE),
4737 OP32 ("ldbir.h",
4738 OPCODE_INFO3 (0xd000a400,
4739 (0_4, AREG, OPRND_SHIFT_0_BIT),
4740 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
4741 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4742 CSKY_ISA_DSP_ENHANCE),
4743 OP32 ("ldbir.w",
4744 OPCODE_INFO3 (0xd000a800,
4745 (0_4, AREG, OPRND_SHIFT_0_BIT),
4746 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
4747 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4748 CSKY_ISA_DSP_ENHANCE),
4749 OP32 ("pldbir.d",
4750 OPCODE_INFO3 (0xd000ac00,
4751 (0_4, AREG, OPRND_SHIFT_0_BIT),
4752 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
4753 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4754 CSKY_ISA_DSP_ENHANCE),
4755 OP32 ("ldbir.bs",
4756 OPCODE_INFO3 (0xd000b000,
4757 (0_4, AREG, OPRND_SHIFT_0_BIT),
4758 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
4759 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4760 CSKY_ISA_DSP_ENHANCE),
4761 OP32 ("ldbir.hs",
4762 OPCODE_INFO3 (0xd000b400,
4763 (0_4, AREG, OPRND_SHIFT_0_BIT),
4764 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
4765 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4766 CSKY_ISA_DSP_ENHANCE),
4767 OP32 ("stbir.b",
4768 OPCODE_INFO3 (0xd400a000,
4769 (0_4, AREG, OPRND_SHIFT_0_BIT),
4770 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
4771 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4772 CSKY_ISA_DSP_ENHANCE),
4773 OP32 ("stbir.h",
4774 OPCODE_INFO3 (0xd400a400,
4775 (0_4, AREG, OPRND_SHIFT_0_BIT),
4776 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
4777 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4778 CSKY_ISA_DSP_ENHANCE),
4779 OP32 ("stbir.w",
4780 OPCODE_INFO3 (0xd400a800,
4781 (0_4, AREG, OPRND_SHIFT_0_BIT),
4782 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
4783 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4784 CSKY_ISA_DSP_ENHANCE),
4785 /* The followings are add/sub instructions. */
4786 OP32 ("padd.8",
4787 OPCODE_INFO3 (0xf800c040,
4788 (0_4, AREG, OPRND_SHIFT_0_BIT),
4789 (16_20, AREG, OPRND_SHIFT_0_BIT),
4790 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4791 CSKY_ISA_DSP_ENHANCE),
4792 OP32 ("padd.16",
4793 OPCODE_INFO3 (0xf800c000,
4794 (0_4, AREG, OPRND_SHIFT_0_BIT),
4795 (16_20, AREG, OPRND_SHIFT_0_BIT),
4796 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4797 CSKY_ISA_DSP_ENHANCE),
4798 OP32 ("padd.u8.s",
4799 OPCODE_INFO3 (0xf800c140,
4800 (0_4, AREG, OPRND_SHIFT_0_BIT),
4801 (16_20, AREG, OPRND_SHIFT_0_BIT),
4802 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4803 CSKY_ISA_DSP_ENHANCE),
4804 OP32 ("padd.s8.s",
4805 OPCODE_INFO3 (0xf800c1c0,
4806 (0_4, AREG, OPRND_SHIFT_0_BIT),
4807 (16_20, AREG, OPRND_SHIFT_0_BIT),
4808 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4809 CSKY_ISA_DSP_ENHANCE),
4810 OP32 ("padd.u16.s",
4811 OPCODE_INFO3 (0xf800c100,
4812 (0_4, AREG, OPRND_SHIFT_0_BIT),
4813 (16_20, AREG, OPRND_SHIFT_0_BIT),
4814 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4815 CSKY_ISA_DSP_ENHANCE),
4816 OP32 ("padd.s16.s",
4817 OPCODE_INFO3 (0xf800c180,
4818 (0_4, AREG, OPRND_SHIFT_0_BIT),
4819 (16_20, AREG, OPRND_SHIFT_0_BIT),
4820 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4821 CSKY_ISA_DSP_ENHANCE),
4822 OP32 ("add.u32.s",
4823 OPCODE_INFO3 (0xf800c120,
4824 (0_4, AREG, OPRND_SHIFT_0_BIT),
4825 (16_20, AREG, OPRND_SHIFT_0_BIT),
4826 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4827 CSKY_ISA_DSP_ENHANCE),
4828 OP32 ("add.s32.s",
4829 OPCODE_INFO3 (0xf800c1a0,
4830 (0_4, AREG, OPRND_SHIFT_0_BIT),
4831 (16_20, AREG, OPRND_SHIFT_0_BIT),
4832 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4833 CSKY_ISA_DSP_ENHANCE),
4834 OP32 ("psub.8",
4835 OPCODE_INFO3 (0xf800c440,
4836 (0_4, AREG, OPRND_SHIFT_0_BIT),
4837 (16_20, AREG, OPRND_SHIFT_0_BIT),
4838 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4839 CSKY_ISA_DSP_ENHANCE),
4840 OP32 ("psub.16",
4841 OPCODE_INFO3 (0xf800c400,
4842 (0_4, AREG, OPRND_SHIFT_0_BIT),
4843 (16_20, AREG, OPRND_SHIFT_0_BIT),
4844 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4845 CSKY_ISA_DSP_ENHANCE),
4846 OP32 ("psub.u8.s",
4847 OPCODE_INFO3 (0xf800c540,
4848 (0_4, AREG, OPRND_SHIFT_0_BIT),
4849 (16_20, AREG, OPRND_SHIFT_0_BIT),
4850 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4851 CSKY_ISA_DSP_ENHANCE),
4852 OP32 ("psub.s8.s",
4853 OPCODE_INFO3 (0xf800c5c0,
4854 (0_4, AREG, OPRND_SHIFT_0_BIT),
4855 (16_20, AREG, OPRND_SHIFT_0_BIT),
4856 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4857 CSKY_ISA_DSP_ENHANCE),
4858 OP32 ("psub.u16.s",
4859 OPCODE_INFO3 (0xf800c500,
4860 (0_4, AREG, OPRND_SHIFT_0_BIT),
4861 (16_20, AREG, OPRND_SHIFT_0_BIT),
4862 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4863 CSKY_ISA_DSP_ENHANCE),
4864 OP32 ("psub.s16.s",
4865 OPCODE_INFO3 (0xf800c580,
4866 (0_4, AREG, OPRND_SHIFT_0_BIT),
4867 (16_20, AREG, OPRND_SHIFT_0_BIT),
4868 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4869 CSKY_ISA_DSP_ENHANCE),
4870 OP32 ("sub.u32.s",
4871 OPCODE_INFO3 (0xf800c520,
4872 (0_4, AREG, OPRND_SHIFT_0_BIT),
4873 (16_20, AREG, OPRND_SHIFT_0_BIT),
4874 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4875 CSKY_ISA_DSP_ENHANCE),
4876 OP32 ("sub.s32.s",
4877 OPCODE_INFO3 (0xf800c5a0,
4878 (0_4, AREG, OPRND_SHIFT_0_BIT),
4879 (16_20, AREG, OPRND_SHIFT_0_BIT),
4880 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4881 CSKY_ISA_DSP_ENHANCE),
4882 OP32 ("paddh.u8",
4883 OPCODE_INFO3 (0xf800c240,
4884 (0_4, AREG, OPRND_SHIFT_0_BIT),
4885 (16_20, AREG, OPRND_SHIFT_0_BIT),
4886 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4887 CSKY_ISA_DSP_ENHANCE),
4888 OP32 ("paddh.s8",
4889 OPCODE_INFO3 (0xf800c2c0,
4890 (0_4, AREG, OPRND_SHIFT_0_BIT),
4891 (16_20, AREG, OPRND_SHIFT_0_BIT),
4892 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4893 CSKY_ISA_DSP_ENHANCE),
4894 OP32 ("paddh.u16",
4895 OPCODE_INFO3 (0xf800c200,
4896 (0_4, AREG, OPRND_SHIFT_0_BIT),
4897 (16_20, AREG, OPRND_SHIFT_0_BIT),
4898 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4899 CSKY_ISA_DSP_ENHANCE),
4900 OP32 ("paddh.s16",
4901 OPCODE_INFO3 (0xf800c280,
4902 (0_4, AREG, OPRND_SHIFT_0_BIT),
4903 (16_20, AREG, OPRND_SHIFT_0_BIT),
4904 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4905 CSKY_ISA_DSP_ENHANCE),
4906 OP32 ("addh.u32",
4907 OPCODE_INFO3 (0xf800c220,
4908 (0_4, AREG, OPRND_SHIFT_0_BIT),
4909 (16_20, AREG, OPRND_SHIFT_0_BIT),
4910 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4911 CSKY_ISA_DSP_ENHANCE),
4912 OP32 ("addh.s32",
4913 OPCODE_INFO3 (0xf800c2a0,
4914 (0_4, AREG, OPRND_SHIFT_0_BIT),
4915 (16_20, AREG, OPRND_SHIFT_0_BIT),
4916 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4917 CSKY_ISA_DSP_ENHANCE),
4918 OP32 ("psubh.u8",
4919 OPCODE_INFO3 (0xf800c640,
4920 (0_4, AREG, OPRND_SHIFT_0_BIT),
4921 (16_20, AREG, OPRND_SHIFT_0_BIT),
4922 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4923 CSKY_ISA_DSP_ENHANCE),
4924 OP32 ("psubh.s8",
4925 OPCODE_INFO3 (0xf800c6c0,
4926 (0_4, AREG, OPRND_SHIFT_0_BIT),
4927 (16_20, AREG, OPRND_SHIFT_0_BIT),
4928 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4929 CSKY_ISA_DSP_ENHANCE),
4930 OP32 ("psubh.u16",
4931 OPCODE_INFO3 (0xf800c600,
4932 (0_4, AREG, OPRND_SHIFT_0_BIT),
4933 (16_20, AREG, OPRND_SHIFT_0_BIT),
4934 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4935 CSKY_ISA_DSP_ENHANCE),
4936 OP32 ("psubh.s16",
4937 OPCODE_INFO3 (0xf800c680,
4938 (0_4, AREG, OPRND_SHIFT_0_BIT),
4939 (16_20, AREG, OPRND_SHIFT_0_BIT),
4940 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4941 CSKY_ISA_DSP_ENHANCE),
4942 OP32 ("subh.u32",
4943 OPCODE_INFO3 (0xf800c620,
4944 (0_4, AREG, OPRND_SHIFT_0_BIT),
4945 (16_20, AREG, OPRND_SHIFT_0_BIT),
4946 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4947 CSKY_ISA_DSP_ENHANCE),
4948 OP32 ("subh.s32",
4949 OPCODE_INFO3 (0xf800c6a0,
4950 (0_4, AREG, OPRND_SHIFT_0_BIT),
4951 (16_20, AREG, OPRND_SHIFT_0_BIT),
4952 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4953 CSKY_ISA_DSP_ENHANCE),
4954 OP32 ("add.64",
4955 OPCODE_INFO3 (0xf800c060,
4956 (0_4, AREG, OPRND_SHIFT_0_BIT),
4957 (16_20, AREG, OPRND_SHIFT_0_BIT),
4958 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4959 CSKY_ISA_DSP_ENHANCE),
4960 OP32 ("sub.64",
4961 OPCODE_INFO3 (0xf800c460,
4962 (0_4, AREG, OPRND_SHIFT_0_BIT),
4963 (16_20, AREG, OPRND_SHIFT_0_BIT),
4964 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4965 CSKY_ISA_DSP_ENHANCE),
4966 OP32 ("add.u64.s",
4967 OPCODE_INFO3 (0xf800c160,
4968 (0_4, AREG, OPRND_SHIFT_0_BIT),
4969 (16_20, AREG, OPRND_SHIFT_0_BIT),
4970 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4971 CSKY_ISA_DSP_ENHANCE),
4972 OP32 ("add.s64.s",
4973 OPCODE_INFO3 (0xf800c1e0,
4974 (0_4, AREG, OPRND_SHIFT_0_BIT),
4975 (16_20, AREG, OPRND_SHIFT_0_BIT),
4976 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4977 CSKY_ISA_DSP_ENHANCE),
4978 OP32 ("sub.u64.s",
4979 OPCODE_INFO3 (0xf800c560,
4980 (0_4, AREG, OPRND_SHIFT_0_BIT),
4981 (16_20, AREG, OPRND_SHIFT_0_BIT),
4982 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4983 CSKY_ISA_DSP_ENHANCE),
4984 OP32 ("sub.s64.s",
4985 OPCODE_INFO3 (0xf800c5e0,
4986 (0_4, AREG, OPRND_SHIFT_0_BIT),
4987 (16_20, AREG, OPRND_SHIFT_0_BIT),
4988 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4989 CSKY_ISA_DSP_ENHANCE),
4990 /* The following are comparison instructions. */
4991 OP32 ("pasx.16",
4992 OPCODE_INFO3 (0xf800c860,
4993 (0_4, AREG, OPRND_SHIFT_0_BIT),
4994 (16_20, AREG, OPRND_SHIFT_0_BIT),
4995 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4996 CSKY_ISA_DSP_ENHANCE),
4997 OP32 ("psax.16",
4998 OPCODE_INFO3 (0xf800cc60,
4999 (0_4, AREG, OPRND_SHIFT_0_BIT),
5000 (16_20, AREG, OPRND_SHIFT_0_BIT),
5001 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5002 CSKY_ISA_DSP_ENHANCE),
5003 OP32 ("pasx.u16.s",
5004 OPCODE_INFO3 (0xf800c960,
5005 (0_4, AREG, OPRND_SHIFT_0_BIT),
5006 (16_20, AREG, OPRND_SHIFT_0_BIT),
5007 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5008 CSKY_ISA_DSP_ENHANCE),
5009 OP32 ("pasx.s16.s",
5010 OPCODE_INFO3 (0xf800c9e0,
5011 (0_4, AREG, OPRND_SHIFT_0_BIT),
5012 (16_20, AREG, OPRND_SHIFT_0_BIT),
5013 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5014 CSKY_ISA_DSP_ENHANCE),
5015 OP32 ("psax.u16.s",
5016 OPCODE_INFO3 (0xf800cd60,
5017 (0_4, AREG, OPRND_SHIFT_0_BIT),
5018 (16_20, AREG, OPRND_SHIFT_0_BIT),
5019 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5020 CSKY_ISA_DSP_ENHANCE),
5021 OP32 ("psax.s16.s",
5022 OPCODE_INFO3 (0xf800cde0,
5023 (0_4, AREG, OPRND_SHIFT_0_BIT),
5024 (16_20, AREG, OPRND_SHIFT_0_BIT),
5025 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5026 CSKY_ISA_DSP_ENHANCE),
5027 OP32 ("pasxh.u16",
5028 OPCODE_INFO3 (0xf800ca60,
5029 (0_4, AREG, OPRND_SHIFT_0_BIT),
5030 (16_20, AREG, OPRND_SHIFT_0_BIT),
5031 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5032 CSKY_ISA_DSP_ENHANCE),
5033 OP32 ("pasxh.s16",
5034 OPCODE_INFO3 (0xf800cae0,
5035 (0_4, AREG, OPRND_SHIFT_0_BIT),
5036 (16_20, AREG, OPRND_SHIFT_0_BIT),
5037 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5038 CSKY_ISA_DSP_ENHANCE),
5039 OP32 ("psaxh.u16",
5040 OPCODE_INFO3 (0xf800ce60,
5041 (0_4, AREG, OPRND_SHIFT_0_BIT),
5042 (16_20, AREG, OPRND_SHIFT_0_BIT),
5043 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5044 CSKY_ISA_DSP_ENHANCE),
5045 OP32 ("psaxh.s16",
5046 OPCODE_INFO3 (0xf800cee0,
5047 (0_4, AREG, OPRND_SHIFT_0_BIT),
5048 (16_20, AREG, OPRND_SHIFT_0_BIT),
5049 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5050 CSKY_ISA_DSP_ENHANCE),
5051 OP32 ("pcmpne.8",
5052 OPCODE_INFO3 (0xf800c840,
5053 (0_4, AREG, OPRND_SHIFT_0_BIT),
5054 (16_20, AREG, OPRND_SHIFT_0_BIT),
5055 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5056 CSKY_ISA_DSP_ENHANCE),
5057 OP32 ("pcmpne.16",
5058 OPCODE_INFO3 (0xf800c800,
5059 (0_4, AREG, OPRND_SHIFT_0_BIT),
5060 (16_20, AREG, OPRND_SHIFT_0_BIT),
5061 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5062 CSKY_ISA_DSP_ENHANCE),
5063 OP32 ("pcmphs.u8",
5064 OPCODE_INFO3 (0xf800c940,
5065 (0_4, AREG, OPRND_SHIFT_0_BIT),
5066 (16_20, AREG, OPRND_SHIFT_0_BIT),
5067 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5068 CSKY_ISA_DSP_ENHANCE),
5069 OP32 ("pcmphs.s8",
5070 OPCODE_INFO3 (0xf800c9c0,
5071 (0_4, AREG, OPRND_SHIFT_0_BIT),
5072 (16_20, AREG, OPRND_SHIFT_0_BIT),
5073 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5074 CSKY_ISA_DSP_ENHANCE),
5075 OP32 ("pcmphs.u16",
5076 OPCODE_INFO3 (0xf800c900,
5077 (0_4, AREG, OPRND_SHIFT_0_BIT),
5078 (16_20, AREG, OPRND_SHIFT_0_BIT),
5079 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5080 CSKY_ISA_DSP_ENHANCE),
5081 OP32 ("pcmphs.s16",
5082 OPCODE_INFO3 (0xf800c980,
5083 (0_4, AREG, OPRND_SHIFT_0_BIT),
5084 (16_20, AREG, OPRND_SHIFT_0_BIT),
5085 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5086 CSKY_ISA_DSP_ENHANCE),
5087 OP32 ("pcmplt.u8",
5088 OPCODE_INFO3 (0xf800ca40,
5089 (0_4, AREG, OPRND_SHIFT_0_BIT),
5090 (16_20, AREG, OPRND_SHIFT_0_BIT),
5091 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5092 CSKY_ISA_DSP_ENHANCE),
5093 OP32 ("pcmplt.s8",
5094 OPCODE_INFO3 (0xf800cac0,
5095 (0_4, AREG, OPRND_SHIFT_0_BIT),
5096 (16_20, AREG, OPRND_SHIFT_0_BIT),
5097 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5098 CSKY_ISA_DSP_ENHANCE),
5099 OP32 ("pcmplt.u16",
5100 OPCODE_INFO3 (0xf800ca00,
5101 (0_4, AREG, OPRND_SHIFT_0_BIT),
5102 (16_20, AREG, OPRND_SHIFT_0_BIT),
5103 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5104 CSKY_ISA_DSP_ENHANCE),
5105 OP32 ("pcmplt.s16",
5106 OPCODE_INFO3 (0xf800ca80,
5107 (0_4, AREG, OPRND_SHIFT_0_BIT),
5108 (16_20, AREG, OPRND_SHIFT_0_BIT),
5109 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5110 CSKY_ISA_DSP_ENHANCE),
5111 OP32 ("pmax.u8",
5112 OPCODE_INFO3 (0xf800cc40,
5113 (0_4, AREG, OPRND_SHIFT_0_BIT),
5114 (16_20, AREG, OPRND_SHIFT_0_BIT),
5115 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5116 CSKY_ISA_DSP_ENHANCE),
5117 OP32 ("pmax.s8",
5118 OPCODE_INFO3 (0xf800ccc0,
5119 (0_4, AREG, OPRND_SHIFT_0_BIT),
5120 (16_20, AREG, OPRND_SHIFT_0_BIT),
5121 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5122 CSKY_ISA_DSP_ENHANCE),
5123 OP32 ("pmax.u16",
5124 OPCODE_INFO3 (0xf800cc00,
5125 (0_4, AREG, OPRND_SHIFT_0_BIT),
5126 (16_20, AREG, OPRND_SHIFT_0_BIT),
5127 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5128 CSKY_ISA_DSP_ENHANCE),
5129 OP32 ("pmax.s16",
5130 OPCODE_INFO3 (0xf800cc80,
5131 (0_4, AREG, OPRND_SHIFT_0_BIT),
5132 (16_20, AREG, OPRND_SHIFT_0_BIT),
5133 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5134 CSKY_ISA_DSP_ENHANCE),
5135 OP32 ("max.u32",
5136 OPCODE_INFO3 (0xf800cc20,
5137 (0_4, AREG, OPRND_SHIFT_0_BIT),
5138 (16_20, AREG, OPRND_SHIFT_0_BIT),
5139 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5140 CSKY_ISA_DSP_ENHANCE),
5141 OP32 ("max.s32",
5142 OPCODE_INFO3 (0xf800cca0,
5143 (0_4, AREG, OPRND_SHIFT_0_BIT),
5144 (16_20, AREG, OPRND_SHIFT_0_BIT),
5145 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5146 CSKY_ISA_DSP_ENHANCE),
5147 OP32 ("pmin.u8",
5148 OPCODE_INFO3 (0xf800cd40,
5149 (0_4, AREG, OPRND_SHIFT_0_BIT),
5150 (16_20, AREG, OPRND_SHIFT_0_BIT),
5151 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5152 CSKY_ISA_DSP_ENHANCE),
5153 OP32 ("pmin.s8",
5154 OPCODE_INFO3 (0xf800cdc0,
5155 (0_4, AREG, OPRND_SHIFT_0_BIT),
5156 (16_20, AREG, OPRND_SHIFT_0_BIT),
5157 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5158 CSKY_ISA_DSP_ENHANCE),
5159 OP32 ("pmin.u16",
5160 OPCODE_INFO3 (0xf800cd00,
5161 (0_4, AREG, OPRND_SHIFT_0_BIT),
5162 (16_20, AREG, OPRND_SHIFT_0_BIT),
5163 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5164 CSKY_ISA_DSP_ENHANCE),
5165 OP32 ("pmin.s16",
5166 OPCODE_INFO3 (0xf800cd80,
5167 (0_4, AREG, OPRND_SHIFT_0_BIT),
5168 (16_20, AREG, OPRND_SHIFT_0_BIT),
5169 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5170 CSKY_ISA_DSP_ENHANCE),
5171 OP32 ("min.u32",
5172 OPCODE_INFO3 (0xf800cd20,
5173 (0_4, AREG, OPRND_SHIFT_0_BIT),
5174 (16_20, AREG, OPRND_SHIFT_0_BIT),
5175 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5176 CSKY_ISA_DSP_ENHANCE),
5177 OP32 ("min.s32",
5178 OPCODE_INFO3 (0xf800cda0,
5179 (0_4, AREG, OPRND_SHIFT_0_BIT),
5180 (16_20, AREG, OPRND_SHIFT_0_BIT),
5181 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5182 CSKY_ISA_DSP_ENHANCE),
5183 OP32 ("sel",
5184 OPCODE_INFO4 (0xf8009000,
5185 (0_4, AREG, OPRND_SHIFT_0_BIT),
5186 (16_20, AREG, OPRND_SHIFT_0_BIT),
5187 (21_25, AREG, OPRND_SHIFT_0_BIT),
5188 (5_9, AREG, OPRND_SHIFT_0_BIT)),
5189 CSKY_ISA_DSP_ENHANCE),
5190 /* The followings are miscs. */
5191 OP32 ("psabsa.u8",
5192 OPCODE_INFO3 (0xf800e040,
5193 (0_4, AREG, OPRND_SHIFT_0_BIT),
5194 (16_20, AREG, OPRND_SHIFT_0_BIT),
5195 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5196 CSKY_ISA_DSP_ENHANCE),
5197 OP32 ("psabsaa.u8",
5198 OPCODE_INFO3 (0xf800e140,
5199 (0_4, AREG, OPRND_SHIFT_0_BIT),
5200 (16_20, AREG, OPRND_SHIFT_0_BIT),
5201 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5202 CSKY_ISA_DSP_ENHANCE),
5203 OP32 ("divul",
5204 OPCODE_INFO3 (0xf800e260,
5205 (0_4, AREG, OPRND_SHIFT_0_BIT),
5206 (16_20, AREG, OPRND_SHIFT_0_BIT),
5207 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5208 CSKY_ISA_DSP_ENHANCE),
5209 OP32 ("divsl",
5210 OPCODE_INFO3 (0xf800e2e0,
5211 (0_4, AREG, OPRND_SHIFT_0_BIT),
5212 (16_20, AREG, OPRND_SHIFT_0_BIT),
5213 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5214 CSKY_ISA_DSP_ENHANCE),
5215 OP32 ("mulaca.s8",
5216 OPCODE_INFO3 (0xf800e4c0,
5217 (0_4, AREG, OPRND_SHIFT_0_BIT),
5218 (16_20, AREG, OPRND_SHIFT_0_BIT),
5219 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5220 CSKY_ISA_DSP_ENHANCE),
5221 /* The followings are shift instructions. */
5222 OP32 ("asri.s32.r",
5223 OPCODE_INFO3 (0xf800d1a0,
5224 (0_4, AREG, OPRND_SHIFT_0_BIT),
5225 (16_20, AREG, OPRND_SHIFT_0_BIT),
5226 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
5227 CSKY_ISA_DSP_ENHANCE),
5228 OP32 ("asr.s32.r",
5229 OPCODE_INFO3 (0xf800d1e0,
5230 (0_4, AREG, OPRND_SHIFT_0_BIT),
5231 (16_20, AREG, OPRND_SHIFT_0_BIT),
5232 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5233 CSKY_ISA_DSP_ENHANCE),
5234 OP32 ("lsri.u32.r",
5235 OPCODE_INFO3 (0xf800d320,
5236 (0_4, AREG, OPRND_SHIFT_0_BIT),
5237 (16_20, AREG, OPRND_SHIFT_0_BIT),
5238 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
5239 CSKY_ISA_DSP_ENHANCE),
5240 OP32 ("lsr.u32.r",
5241 OPCODE_INFO3 (0xf800d360,
5242 (0_4, AREG, OPRND_SHIFT_0_BIT),
5243 (16_20, AREG, OPRND_SHIFT_0_BIT),
5244 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5245 CSKY_ISA_DSP_ENHANCE),
5246 OP32 ("lsli.u32.s",
5247 OPCODE_INFO3 (0xf800d520,
5248 (0_4, AREG, OPRND_SHIFT_0_BIT),
5249 (16_20, AREG, OPRND_SHIFT_0_BIT),
5250 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
5251 CSKY_ISA_DSP_ENHANCE),
5252 OP32 ("lsli.s32.s",
5253 OPCODE_INFO3 (0xf800d5a0,
5254 (0_4, AREG, OPRND_SHIFT_0_BIT),
5255 (16_20, AREG, OPRND_SHIFT_0_BIT),
5256 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
5257 CSKY_ISA_DSP_ENHANCE),
5258 OP32 ("lsl.u32.s",
5259 OPCODE_INFO3 (0xf800d560,
5260 (0_4, AREG, OPRND_SHIFT_0_BIT),
5261 (16_20, AREG, OPRND_SHIFT_0_BIT),
5262 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5263 CSKY_ISA_DSP_ENHANCE),
5264 OP32 ("lsl.s32.s",
5265 OPCODE_INFO3 (0xf800d5e0,
5266 (0_4, AREG, OPRND_SHIFT_0_BIT),
5267 (16_20, AREG, OPRND_SHIFT_0_BIT),
5268 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5269 CSKY_ISA_DSP_ENHANCE),
5270 OP32 ("pasri.s16",
5271 OPCODE_INFO3 (0xf800d080,
5272 (0_4, AREG, OPRND_SHIFT_0_BIT),
5273 (16_20, AREG, OPRND_SHIFT_0_BIT),
5274 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5275 CSKY_ISA_DSP_ENHANCE),
5276 OP32 ("pasr.s16",
5277 OPCODE_INFO3 (0xf800d0c0,
5278 (0_4, AREG, OPRND_SHIFT_0_BIT),
5279 (16_20, AREG, OPRND_SHIFT_0_BIT),
5280 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5281 CSKY_ISA_DSP_ENHANCE),
5282 OP32 ("pasri.s16.r",
5283 OPCODE_INFO3 (0xf800d180,
5284 (0_4, AREG, OPRND_SHIFT_0_BIT),
5285 (16_20, AREG, OPRND_SHIFT_0_BIT),
5286 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5287 CSKY_ISA_DSP_ENHANCE),
5288 OP32 ("pasr.s16.r",
5289 OPCODE_INFO3 (0xf800d1c0,
5290 (0_4, AREG, OPRND_SHIFT_0_BIT),
5291 (16_20, AREG, OPRND_SHIFT_0_BIT),
5292 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5293 CSKY_ISA_DSP_ENHANCE),
5294 OP32 ("plsri.u16",
5295 OPCODE_INFO3 (0xf800d200,
5296 (0_4, AREG, OPRND_SHIFT_0_BIT),
5297 (16_20, AREG, OPRND_SHIFT_0_BIT),
5298 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5299 CSKY_ISA_DSP_ENHANCE),
5300 OP32 ("plsr.u16",
5301 OPCODE_INFO3 (0xf800d240,
5302 (0_4, AREG, OPRND_SHIFT_0_BIT),
5303 (16_20, AREG, OPRND_SHIFT_0_BIT),
5304 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5305 CSKY_ISA_DSP_ENHANCE),
5306 OP32 ("plsri.u16.r",
5307 OPCODE_INFO3 (0xf800d300,
5308 (0_4, AREG, OPRND_SHIFT_0_BIT),
5309 (16_20, AREG, OPRND_SHIFT_0_BIT),
5310 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5311 CSKY_ISA_DSP_ENHANCE),
5312 OP32 ("plsr.u16.r",
5313 OPCODE_INFO3 (0xf800d340,
5314 (0_4, AREG, OPRND_SHIFT_0_BIT),
5315 (16_20, AREG, OPRND_SHIFT_0_BIT),
5316 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5317 CSKY_ISA_DSP_ENHANCE),
5318 OP32 ("plsli.u16",
5319 OPCODE_INFO3 (0xf800d400,
5320 (0_4, AREG, OPRND_SHIFT_0_BIT),
5321 (16_20, AREG, OPRND_SHIFT_0_BIT),
5322 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5323 CSKY_ISA_DSP_ENHANCE),
5324 OP32 ("plsl.u16",
5325 OPCODE_INFO3 (0xf800d440,
5326 (0_4, AREG, OPRND_SHIFT_0_BIT),
5327 (16_20, AREG, OPRND_SHIFT_0_BIT),
5328 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5329 CSKY_ISA_DSP_ENHANCE),
5330 OP32 ("plsli.u16.s",
5331 OPCODE_INFO3 (0xf800d500,
5332 (0_4, AREG, OPRND_SHIFT_0_BIT),
5333 (16_20, AREG, OPRND_SHIFT_0_BIT),
5334 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5335 CSKY_ISA_DSP_ENHANCE),
5336 OP32 ("plsli.s16.s",
5337 OPCODE_INFO3 (0xf800d580,
5338 (0_4, AREG, OPRND_SHIFT_0_BIT),
5339 (16_20, AREG, OPRND_SHIFT_0_BIT),
5340 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5341 CSKY_ISA_DSP_ENHANCE),
5342 OP32 ("plsl.u16.s",
5343 OPCODE_INFO3 (0xf800d540,
5344 (0_4, AREG, OPRND_SHIFT_0_BIT),
5345 (16_20, AREG, OPRND_SHIFT_0_BIT),
5346 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5347 CSKY_ISA_DSP_ENHANCE),
5348 OP32 ("plsl.s16.s",
5349 OPCODE_INFO3 (0xf800d5c0,
5350 (0_4, AREG, OPRND_SHIFT_0_BIT),
5351 (16_20, AREG, OPRND_SHIFT_0_BIT),
5352 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5353 CSKY_ISA_DSP_ENHANCE),
5354 /* The following are package & unpackage instructions. */
5355 OP32 ("pkg",
5356 OPCODE_INFO5 (0xf800a000,
5357 (0_4, AREG, OPRND_SHIFT_0_BIT),
5358 (16_20, AREG, OPRND_SHIFT_0_BIT),
5359 (5_8, IMM4b, OPRND_SHIFT_0_BIT),
5360 (21_25, AREG, OPRND_SHIFT_0_BIT),
5361 (9_12, OIMM4b, OPRND_SHIFT_0_BIT)),
5362 CSKY_ISA_DSP_ENHANCE),
5363 OP32 ("dexti",
5364 OPCODE_INFO4 (0xf8009800,
5365 (0_4, AREG, OPRND_SHIFT_0_BIT),
5366 (16_20, AREG, OPRND_SHIFT_0_BIT),
5367 (21_25, AREG, OPRND_SHIFT_0_BIT),
5368 (5_9, IMM5b, OPRND_SHIFT_0_BIT)),
5369 CSKY_ISA_DSP_ENHANCE),
5370 OP32 ("dext",
5371 OPCODE_INFO4 (0xf8009c00,
5372 (0_4, AREG, OPRND_SHIFT_0_BIT),
5373 (16_20, AREG, OPRND_SHIFT_0_BIT),
5374 (21_25, AREG, OPRND_SHIFT_0_BIT),
5375 (5_9, AREG, OPRND_SHIFT_0_BIT)),
5376 CSKY_ISA_DSP_ENHANCE),
5377 OP32 ("pkgll",
5378 OPCODE_INFO3 (0xf800d840,
5379 (0_4, AREG, OPRND_SHIFT_0_BIT),
5380 (16_20, AREG, OPRND_SHIFT_0_BIT),
5381 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5382 CSKY_ISA_DSP_ENHANCE),
5383 OP32 ("pkghh",
5384 OPCODE_INFO3 (0xf800d860,
5385 (0_4, AREG, OPRND_SHIFT_0_BIT),
5386 (16_20, AREG, OPRND_SHIFT_0_BIT),
5387 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5388 CSKY_ISA_DSP_ENHANCE),
5389 OP32 ("pext.u8.e",
5390 OPCODE_INFO2 (0xf800d900,
5391 (0_4, AREG, OPRND_SHIFT_0_BIT),
5392 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5393 CSKY_ISA_DSP_ENHANCE),
5394 OP32 ("pext.s8.e",
5395 OPCODE_INFO2 (0xf800d980,
5396 (0_4, AREG, OPRND_SHIFT_0_BIT),
5397 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5398 CSKY_ISA_DSP_ENHANCE),
5399 OP32 ("pextx.u8.e",
5400 OPCODE_INFO2 (0xf800d920,
5401 (0_4, AREG, OPRND_SHIFT_0_BIT),
5402 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5403 CSKY_ISA_DSP_ENHANCE),
5404 OP32 ("pextx.s8.e",
5405 OPCODE_INFO2 (0xf800d9a0,
5406 (0_4, AREG, OPRND_SHIFT_0_BIT),
5407 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5408 CSKY_ISA_DSP_ENHANCE),
5409 OP32 ("narl",
5410 OPCODE_INFO3 (0xf800da00,
5411 (0_4, AREG, OPRND_SHIFT_0_BIT),
5412 (16_20, AREG, OPRND_SHIFT_0_BIT),
5413 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5414 CSKY_ISA_DSP_ENHANCE),
5415 OP32 ("narh",
5416 OPCODE_INFO3 (0xf800da20,
5417 (0_4, AREG, OPRND_SHIFT_0_BIT),
5418 (16_20, AREG, OPRND_SHIFT_0_BIT),
5419 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5420 CSKY_ISA_DSP_ENHANCE),
5421 OP32 ("narlx",
5422 OPCODE_INFO3 (0xf800da40,
5423 (0_4, AREG, OPRND_SHIFT_0_BIT),
5424 (16_20, AREG, OPRND_SHIFT_0_BIT),
5425 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5426 CSKY_ISA_DSP_ENHANCE),
5427 OP32 ("narhx",
5428 OPCODE_INFO3 (0xf800da60,
5429 (0_4, AREG, OPRND_SHIFT_0_BIT),
5430 (16_20, AREG, OPRND_SHIFT_0_BIT),
5431 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5432 CSKY_ISA_DSP_ENHANCE),
5433 OP32 ("clipi.u32",
5434 OPCODE_INFO3 (0xf800db00,
5435 (0_4, AREG, OPRND_SHIFT_0_BIT),
5436 (16_20, AREG, OPRND_SHIFT_0_BIT),
5437 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
5438 CSKY_ISA_DSP_ENHANCE),
5439 OP32 ("clipi.s32",
5440 OPCODE_INFO3 (0xf800db80,
5441 (0_4, AREG, OPRND_SHIFT_0_BIT),
5442 (16_20, AREG, OPRND_SHIFT_0_BIT),
5443 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
5444 CSKY_ISA_DSP_ENHANCE),
5445 OP32 ("clip.u32",
5446 OPCODE_INFO3 (0xf800db20,
5447 (0_4, AREG, OPRND_SHIFT_0_BIT),
5448 (16_20, AREG, OPRND_SHIFT_0_BIT),
5449 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5450 CSKY_ISA_DSP_ENHANCE),
5451 OP32 ("clip.s32",
5452 OPCODE_INFO3 (0xf800dba0,
5453 (0_4, AREG, OPRND_SHIFT_0_BIT),
5454 (16_20, AREG, OPRND_SHIFT_0_BIT),
5455 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5456 CSKY_ISA_DSP_ENHANCE),
5457 OP32 ("pclipi.u16",
5458 OPCODE_INFO3 (0xf800db40,
5459 (0_4, AREG, OPRND_SHIFT_0_BIT),
5460 (16_20, AREG, OPRND_SHIFT_0_BIT),
5461 (21_25, IMM4b, OPRND_SHIFT_0_BIT)),
5462 CSKY_ISA_DSP_ENHANCE),
5463 OP32 ("pclipi.s16",
5464 OPCODE_INFO3 (0xf800dbc0,
5465 (0_4, AREG, OPRND_SHIFT_0_BIT),
5466 (16_20, AREG, OPRND_SHIFT_0_BIT),
5467 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5468 CSKY_ISA_DSP_ENHANCE),
5469 OP32 ("pclip.u16",
5470 OPCODE_INFO3 (0xf800db60,
5471 (0_4, AREG, OPRND_SHIFT_0_BIT),
5472 (16_20, AREG, OPRND_SHIFT_0_BIT),
5473 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5474 CSKY_ISA_DSP_ENHANCE),
5475 OP32 ("pclip.s16",
5476 OPCODE_INFO3 (0xf800dbe0,
5477 (0_4, AREG, OPRND_SHIFT_0_BIT),
5478 (16_20, AREG, OPRND_SHIFT_0_BIT),
5479 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5480 CSKY_ISA_DSP_ENHANCE),
5481 OP32 ("pabs.s8.s",
5482 OPCODE_INFO2 (0xf800dc80,
5483 (0_4, AREG, OPRND_SHIFT_0_BIT),
5484 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5485 CSKY_ISA_DSP_ENHANCE),
5486 OP32 ("pabs.s16.s",
5487 OPCODE_INFO2 (0xf800dca0,
5488 (0_4, AREG, OPRND_SHIFT_0_BIT),
5489 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5490 CSKY_ISA_DSP_ENHANCE),
5491 OP32 ("abs.s32.s",
5492 OPCODE_INFO2 (0xf800dcc0,
5493 (0_4, AREG, OPRND_SHIFT_0_BIT),
5494 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5495 CSKY_ISA_DSP_ENHANCE),
5496 OP32 ("pneg.s8.s",
5497 OPCODE_INFO2 (0xf800dd80,
5498 (0_4, AREG, OPRND_SHIFT_0_BIT),
5499 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5500 CSKY_ISA_DSP_ENHANCE),
5501 OP32 ("pneg.s16.s",
5502 OPCODE_INFO2 (0xf800dda0,
5503 (0_4, AREG, OPRND_SHIFT_0_BIT),
5504 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5505 CSKY_ISA_DSP_ENHANCE),
5506 OP32 ("neg.s32.s",
5507 OPCODE_INFO2 (0xf800ddc0,
5508 (0_4, AREG, OPRND_SHIFT_0_BIT),
5509 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5510 CSKY_ISA_DSP_ENHANCE),
5511 OP32 ("dup.8",
5512 OPCODE_INFO3 (0xf800de00,
5513 (0_4, AREG, OPRND_SHIFT_0_BIT),
5514 (16_20, AREG, OPRND_SHIFT_0_BIT),
5515 (5_6, IMM2b, OPRND_SHIFT_0_BIT)),
5516 CSKY_ISA_DSP_ENHANCE),
5517 OP32 ("dup.16",
5518 OPCODE_INFO3 (0xf800df00,
5519 (0_4, AREG, OPRND_SHIFT_0_BIT),
5520 (16_20, AREG, OPRND_SHIFT_0_BIT),
5521 (5_6, IMM1b, OPRND_SHIFT_0_BIT)),
5522 CSKY_ISA_DSP_ENHANCE),
5523 /* The followings are multiplication instructions. */
5524 OP32 ("mul.u32",
5525 OPCODE_INFO3 (0xf8008000,
5526 (0_4, AREG, OPRND_SHIFT_0_BIT),
5527 (16_20, AREG, OPRND_SHIFT_0_BIT),
5528 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5529 CSKYV2_ISA_3E3R1),
5530 OP32 ("mul.s32",
5531 OPCODE_INFO3 (0xf8008200,
5532 (0_4, AREG, OPRND_SHIFT_0_BIT),
5533 (16_20, AREG, OPRND_SHIFT_0_BIT),
5534 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5535 CSKYV2_ISA_3E3R1),
5536 OP32 ("mula.u32",
5537 OPCODE_INFO3 (0xf8008080,
5538 (0_4, AREG, OPRND_SHIFT_0_BIT),
5539 (16_20, AREG, OPRND_SHIFT_0_BIT),
5540 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5541 CSKYV2_ISA_3E3R1),
5542 OP32 ("mula.s32",
5543 OPCODE_INFO3 (0xf8008280,
5544 (0_4, AREG, OPRND_SHIFT_0_BIT),
5545 (16_20, AREG, OPRND_SHIFT_0_BIT),
5546 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5547 CSKYV2_ISA_3E3R1),
5548 OP32 ("mula.32.l",
5549 OPCODE_INFO3 (0xf8008440,
5550 (0_4, AREG, OPRND_SHIFT_0_BIT),
5551 (16_20, AREG, OPRND_SHIFT_0_BIT),
5552 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5553 CSKYV2_ISA_3E3R1),
5554 OP32 ("mulall.s16.s",
5555 OPCODE_INFO3 (0xf80081a0,
5556 (0_4, AREG, OPRND_SHIFT_0_BIT),
5557 (16_20, AREG, OPRND_SHIFT_0_BIT),
5558 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5559 CSKYV2_ISA_3E3R1),
5560 OP32 ("muls.u32",
5561 OPCODE_INFO3 (0xf80080c0,
5562 (0_4, AREG, OPRND_SHIFT_0_BIT),
5563 (16_20, AREG, OPRND_SHIFT_0_BIT),
5564 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5565 CSKY_ISA_DSP_ENHANCE),
5566 OP32 ("muls.s32",
5567 OPCODE_INFO3 (0xf80082c0,
5568 (0_4, AREG, OPRND_SHIFT_0_BIT),
5569 (16_20, AREG, OPRND_SHIFT_0_BIT),
5570 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5571 CSKY_ISA_DSP_ENHANCE),
5572 OP32 ("mula.u32.s",
5573 OPCODE_INFO3 (0xf8008180,
5574 (0_4, AREG, OPRND_SHIFT_0_BIT),
5575 (16_20, AREG, OPRND_SHIFT_0_BIT),
5576 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5577 CSKY_ISA_DSP_ENHANCE),
5578 OP32 ("mula.s32.s",
5579 OPCODE_INFO3 (0xf8008380,
5580 (0_4, AREG, OPRND_SHIFT_0_BIT),
5581 (16_20, AREG, OPRND_SHIFT_0_BIT),
5582 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5583 CSKY_ISA_DSP_ENHANCE),
5584 OP32 ("muls.u32.s",
5585 OPCODE_INFO3 (0xf80081c0,
5586 (0_4, AREG, OPRND_SHIFT_0_BIT),
5587 (16_20, AREG, OPRND_SHIFT_0_BIT),
5588 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5589 CSKY_ISA_DSP_ENHANCE),
5590 OP32 ("muls.s32.s",
5591 OPCODE_INFO3 (0xf80083c0,
5592 (0_4, AREG, OPRND_SHIFT_0_BIT),
5593 (16_20, AREG, OPRND_SHIFT_0_BIT),
5594 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5595 CSKY_ISA_DSP_ENHANCE),
5596 OP32 ("mul.s32.h",
5597 OPCODE_INFO3 (0xf8008400,
5598 (0_4, AREG, OPRND_SHIFT_0_BIT),
5599 (16_20, AREG, OPRND_SHIFT_0_BIT),
5600 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5601 CSKY_ISA_DSP_ENHANCE),
5602 OP32 ("mul.s32.rh",
5603 OPCODE_INFO3 (0xf8008600,
5604 (0_4, AREG, OPRND_SHIFT_0_BIT),
5605 (16_20, AREG, OPRND_SHIFT_0_BIT),
5606 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5607 CSKY_ISA_DSP_ENHANCE),
5608 OP32 ("rmul.s32.h",
5609 OPCODE_INFO3 (0xf8008500,
5610 (0_4, AREG, OPRND_SHIFT_0_BIT),
5611 (16_20, AREG, OPRND_SHIFT_0_BIT),
5612 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5613 CSKY_ISA_DSP_ENHANCE),
5614 OP32 ("rmul.s32.rh",
5615 OPCODE_INFO3 (0xf8008700,
5616 (0_4, AREG, OPRND_SHIFT_0_BIT),
5617 (16_20, AREG, OPRND_SHIFT_0_BIT),
5618 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5619 CSKY_ISA_DSP_ENHANCE),
5620 OP32 ("mula.s32.hs",
5621 OPCODE_INFO3 (0xf8008580,
5622 (0_4, AREG, OPRND_SHIFT_0_BIT),
5623 (16_20, AREG, OPRND_SHIFT_0_BIT),
5624 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5625 CSKY_ISA_DSP_ENHANCE),
5626 OP32 ("muls.s32.hs",
5627 OPCODE_INFO3 (0xf80085c0,
5628 (0_4, AREG, OPRND_SHIFT_0_BIT),
5629 (16_20, AREG, OPRND_SHIFT_0_BIT),
5630 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5631 CSKY_ISA_DSP_ENHANCE),
5632 OP32 ("mula.s32.rhs",
5633 OPCODE_INFO3 (0xf8008780,
5634 (0_4, AREG, OPRND_SHIFT_0_BIT),
5635 (16_20, AREG, OPRND_SHIFT_0_BIT),
5636 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5637 CSKY_ISA_DSP_ENHANCE),
5638 OP32 ("muls.s32.rhs",
5639 OPCODE_INFO3 (0xf80087c0,
5640 (0_4, AREG, OPRND_SHIFT_0_BIT),
5641 (16_20, AREG, OPRND_SHIFT_0_BIT),
5642 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5643 CSKY_ISA_DSP_ENHANCE),
5644 OP32 ("mulxl.s32",
5645 OPCODE_INFO3 (0xf8008800,
5646 (0_4, AREG, OPRND_SHIFT_0_BIT),
5647 (16_20, AREG, OPRND_SHIFT_0_BIT),
5648 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5649 CSKY_ISA_DSP_ENHANCE),
5650 OP32 ("mulxl.s32.r",
5651 OPCODE_INFO3 (0xf8008a00,
5652 (0_4, AREG, OPRND_SHIFT_0_BIT),
5653 (16_20, AREG, OPRND_SHIFT_0_BIT),
5654 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5655 CSKY_ISA_DSP_ENHANCE),
5656 OP32 ("mulxh.s32",
5657 OPCODE_INFO3 (0xf8008c00,
5658 (0_4, AREG, OPRND_SHIFT_0_BIT),
5659 (16_20, AREG, OPRND_SHIFT_0_BIT),
5660 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5661 CSKY_ISA_DSP_ENHANCE),
5662 OP32 ("mulxh.s32.r",
5663 OPCODE_INFO3 (0xf8008e00,
5664 (0_4, AREG, OPRND_SHIFT_0_BIT),
5665 (16_20, AREG, OPRND_SHIFT_0_BIT),
5666 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5667 CSKY_ISA_DSP_ENHANCE),
5668 OP32 ("rmulxl.s32",
5669 OPCODE_INFO3 (0xf8008900,
5670 (0_4, AREG, OPRND_SHIFT_0_BIT),
5671 (16_20, AREG, OPRND_SHIFT_0_BIT),
5672 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5673 CSKY_ISA_DSP_ENHANCE),
5674 OP32 ("rmulxl.s32.r",
5675 OPCODE_INFO3 (0xf8008b00,
5676 (0_4, AREG, OPRND_SHIFT_0_BIT),
5677 (16_20, AREG, OPRND_SHIFT_0_BIT),
5678 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5679 CSKY_ISA_DSP_ENHANCE),
5680 OP32 ("rmulxh.s32",
5681 OPCODE_INFO3 (0xf8008d00,
5682 (0_4, AREG, OPRND_SHIFT_0_BIT),
5683 (16_20, AREG, OPRND_SHIFT_0_BIT),
5684 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5685 CSKY_ISA_DSP_ENHANCE),
5686 OP32 ("rmulxh.s32.r",
5687 OPCODE_INFO3 (0xf8008f00,
5688 (0_4, AREG, OPRND_SHIFT_0_BIT),
5689 (16_20, AREG, OPRND_SHIFT_0_BIT),
5690 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5691 CSKY_ISA_DSP_ENHANCE),
5692 OP32 ("mulaxl.s32.s",
5693 OPCODE_INFO3 (0xf8008980,
5694 (0_4, AREG, OPRND_SHIFT_0_BIT),
5695 (16_20, AREG, OPRND_SHIFT_0_BIT),
5696 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5697 CSKY_ISA_DSP_ENHANCE),
5698 OP32 ("mulaxl.s32.rs",
5699 OPCODE_INFO3 (0xf8008b80,
5700 (0_4, AREG, OPRND_SHIFT_0_BIT),
5701 (16_20, AREG, OPRND_SHIFT_0_BIT),
5702 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5703 CSKY_ISA_DSP_ENHANCE),
5704 OP32 ("mulaxh.s32.s",
5705 OPCODE_INFO3 (0xf8008d80,
5706 (0_4, AREG, OPRND_SHIFT_0_BIT),
5707 (16_20, AREG, OPRND_SHIFT_0_BIT),
5708 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5709 CSKY_ISA_DSP_ENHANCE),
5710 OP32 ("mulaxh.s32.rs",
5711 OPCODE_INFO3 (0xf8008f80,
5712 (0_4, AREG, OPRND_SHIFT_0_BIT),
5713 (16_20, AREG, OPRND_SHIFT_0_BIT),
5714 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5715 CSKY_ISA_DSP_ENHANCE),
5716 OP32 ("mulll.s16",
5717 OPCODE_INFO3 (0xf8008020,
5718 (0_4, AREG, OPRND_SHIFT_0_BIT),
5719 (16_20, AREG, OPRND_SHIFT_0_BIT),
5720 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5721 CSKY_ISA_DSP_ENHANCE),
5722 OP32 ("mulhh.s16",
5723 OPCODE_INFO3 (0xf8008260,
5724 (0_4, AREG, OPRND_SHIFT_0_BIT),
5725 (16_20, AREG, OPRND_SHIFT_0_BIT),
5726 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5727 CSKY_ISA_DSP_ENHANCE),
5728 OP32 ("mulhl.s16",
5729 OPCODE_INFO3 (0xf8008220,
5730 (0_4, AREG, OPRND_SHIFT_0_BIT),
5731 (16_20, AREG, OPRND_SHIFT_0_BIT),
5732 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5733 CSKY_ISA_DSP_ENHANCE),
5734 OP32 ("rmulll.s16",
5735 OPCODE_INFO3 (0xf8008120,
5736 (0_4, AREG, OPRND_SHIFT_0_BIT),
5737 (16_20, AREG, OPRND_SHIFT_0_BIT),
5738 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5739 CSKY_ISA_DSP_ENHANCE),
5740 OP32 ("rmulhh.s16",
5741 OPCODE_INFO3 (0xf8008360,
5742 (0_4, AREG, OPRND_SHIFT_0_BIT),
5743 (16_20, AREG, OPRND_SHIFT_0_BIT),
5744 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5745 CSKY_ISA_DSP_ENHANCE),
5746 OP32 ("rmulhl.s16",
5747 OPCODE_INFO3 (0xf8008320,
5748 (0_4, AREG, OPRND_SHIFT_0_BIT),
5749 (16_20, AREG, OPRND_SHIFT_0_BIT),
5750 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5751 CSKY_ISA_DSP_ENHANCE),
5752 OP32 ("mulahh.s16.s",
5753 OPCODE_INFO3 (0xf80083e0,
5754 (0_4, AREG, OPRND_SHIFT_0_BIT),
5755 (16_20, AREG, OPRND_SHIFT_0_BIT),
5756 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5757 CSKY_ISA_DSP_ENHANCE),
5758 OP32 ("mulahl.s16.s",
5759 OPCODE_INFO3 (0xf80083a0,
5760 (0_4, AREG, OPRND_SHIFT_0_BIT),
5761 (16_20, AREG, OPRND_SHIFT_0_BIT),
5762 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5763 CSKY_ISA_DSP_ENHANCE),
5764 OP32 ("mulall.s16.e",
5765 OPCODE_INFO3 (0xf80080a0,
5766 (0_4, AREG, OPRND_SHIFT_0_BIT),
5767 (16_20, AREG, OPRND_SHIFT_0_BIT),
5768 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5769 CSKY_ISA_DSP_ENHANCE),
5770 OP32 ("mulahh.s16.e",
5771 OPCODE_INFO3 (0xf80082e0,
5772 (0_4, AREG, OPRND_SHIFT_0_BIT),
5773 (16_20, AREG, OPRND_SHIFT_0_BIT),
5774 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5775 CSKY_ISA_DSP_ENHANCE),
5776 OP32 ("mulahl.s16.e",
5777 OPCODE_INFO3 (0xf80080e0,
5778 (0_4, AREG, OPRND_SHIFT_0_BIT),
5779 (16_20, AREG, OPRND_SHIFT_0_BIT),
5780 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5781 CSKY_ISA_DSP_ENHANCE),
5782 OP32 ("pmul.u16",
5783 OPCODE_INFO3 (0xf80084a0,
5784 (0_4, AREG, OPRND_SHIFT_0_BIT),
5785 (16_20, AREG, OPRND_SHIFT_0_BIT),
5786 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5787 CSKY_ISA_DSP_ENHANCE),
5788 OP32 ("pmulx.u16",
5789 OPCODE_INFO3 (0xf80084e0,
5790 (0_4, AREG, OPRND_SHIFT_0_BIT),
5791 (16_20, AREG, OPRND_SHIFT_0_BIT),
5792 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5793 CSKY_ISA_DSP_ENHANCE),
5794 OP32 ("pmul.s16",
5795 OPCODE_INFO3 (0xf8008420,
5796 (0_4, AREG, OPRND_SHIFT_0_BIT),
5797 (16_20, AREG, OPRND_SHIFT_0_BIT),
5798 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5799 CSKY_ISA_DSP_ENHANCE),
5800 OP32 ("pmulx.s16",
5801 OPCODE_INFO3 (0xf8008460,
5802 (0_4, AREG, OPRND_SHIFT_0_BIT),
5803 (16_20, AREG, OPRND_SHIFT_0_BIT),
5804 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5805 CSKY_ISA_DSP_ENHANCE),
5806 OP32 ("prmul.s16",
5807 OPCODE_INFO3 (0xf8008520,
5808 (0_4, AREG, OPRND_SHIFT_0_BIT),
5809 (16_20, AREG, OPRND_SHIFT_0_BIT),
5810 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5811 CSKY_ISA_DSP_ENHANCE),
5812 OP32 ("prmulx.s16",
5813 OPCODE_INFO3 (0xf8008560,
5814 (0_4, AREG, OPRND_SHIFT_0_BIT),
5815 (16_20, AREG, OPRND_SHIFT_0_BIT),
5816 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5817 CSKY_ISA_DSP_ENHANCE),
5818 OP32 ("prmul.s16.h",
5819 OPCODE_INFO3 (0xf80085a0,
5820 (0_4, AREG, OPRND_SHIFT_0_BIT),
5821 (16_20, AREG, OPRND_SHIFT_0_BIT),
5822 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5823 CSKY_ISA_DSP_ENHANCE),
5824 OP32 ("prmul.s16.rh",
5825 OPCODE_INFO3 (0xf80087a0,
5826 (0_4, AREG, OPRND_SHIFT_0_BIT),
5827 (16_20, AREG, OPRND_SHIFT_0_BIT),
5828 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5829 CSKY_ISA_DSP_ENHANCE),
5830 OP32 ("prmulx.s16.h",
5831 OPCODE_INFO3 (0xf80085e0,
5832 (0_4, AREG, OPRND_SHIFT_0_BIT),
5833 (16_20, AREG, OPRND_SHIFT_0_BIT),
5834 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5835 CSKY_ISA_DSP_ENHANCE),
5836 OP32 ("prmulx.s16.rh",
5837 OPCODE_INFO3 (0xf80087e0,
5838 (0_4, AREG, OPRND_SHIFT_0_BIT),
5839 (16_20, AREG, OPRND_SHIFT_0_BIT),
5840 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5841 CSKY_ISA_DSP_ENHANCE),
5842 OP32 ("mulca.s16.s",
5843 OPCODE_INFO3 (0xf8008920,
5844 (0_4, AREG, OPRND_SHIFT_0_BIT),
5845 (16_20, AREG, OPRND_SHIFT_0_BIT),
5846 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5847 CSKY_ISA_DSP_ENHANCE),
5848 OP32 ("mulcax.s16.s",
5849 OPCODE_INFO3 (0xf8008960,
5850 (0_4, AREG, OPRND_SHIFT_0_BIT),
5851 (16_20, AREG, OPRND_SHIFT_0_BIT),
5852 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5853 CSKY_ISA_DSP_ENHANCE),
5854 OP32 ("mulcs.s16",
5855 OPCODE_INFO3 (0xf8008a20,
5856 (0_4, AREG, OPRND_SHIFT_0_BIT),
5857 (16_20, AREG, OPRND_SHIFT_0_BIT),
5858 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5859 CSKY_ISA_DSP_ENHANCE),
5860 OP32 ("mulcsr.s16",
5861 OPCODE_INFO3 (0xf8008a60,
5862 (0_4, AREG, OPRND_SHIFT_0_BIT),
5863 (16_20, AREG, OPRND_SHIFT_0_BIT),
5864 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5865 CSKY_ISA_DSP_ENHANCE),
5866 OP32 ("mulcsx.s16",
5867 OPCODE_INFO3 (0xf8008c20,
5868 (0_4, AREG, OPRND_SHIFT_0_BIT),
5869 (16_20, AREG, OPRND_SHIFT_0_BIT),
5870 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5871 CSKY_ISA_DSP_ENHANCE),
5872 OP32 ("mulaca.s16.s",
5873 OPCODE_INFO3 (0xf80089a0,
5874 (0_4, AREG, OPRND_SHIFT_0_BIT),
5875 (16_20, AREG, OPRND_SHIFT_0_BIT),
5876 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5877 CSKY_ISA_DSP_ENHANCE),
5878 OP32 ("mulacax.s16.s",
5879 OPCODE_INFO3 (0xf80089e0,
5880 (0_4, AREG, OPRND_SHIFT_0_BIT),
5881 (16_20, AREG, OPRND_SHIFT_0_BIT),
5882 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5883 CSKY_ISA_DSP_ENHANCE),
5884 OP32 ("mulacs.s16.s",
5885 OPCODE_INFO3 (0xf8008ba0,
5886 (0_4, AREG, OPRND_SHIFT_0_BIT),
5887 (16_20, AREG, OPRND_SHIFT_0_BIT),
5888 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5889 CSKY_ISA_DSP_ENHANCE),
5890 OP32 ("mulacsr.s16.s",
5891 OPCODE_INFO3 (0xf8008be0,
5892 (0_4, AREG, OPRND_SHIFT_0_BIT),
5893 (16_20, AREG, OPRND_SHIFT_0_BIT),
5894 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5895 CSKY_ISA_DSP_ENHANCE),
5896 OP32 ("mulacsx.s16.s",
5897 OPCODE_INFO3 (0xf8008da0,
5898 (0_4, AREG, OPRND_SHIFT_0_BIT),
5899 (16_20, AREG, OPRND_SHIFT_0_BIT),
5900 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5901 CSKY_ISA_DSP_ENHANCE),
5902 OP32 ("mulsca.s16.s",
5903 OPCODE_INFO3 (0xf8008de0,
5904 (0_4, AREG, OPRND_SHIFT_0_BIT),
5905 (16_20, AREG, OPRND_SHIFT_0_BIT),
5906 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5907 CSKY_ISA_DSP_ENHANCE),
5908 OP32 ("mulscax.s16.s",
5909 OPCODE_INFO3 (0xf8008fa0,
5910 (0_4, AREG, OPRND_SHIFT_0_BIT),
5911 (16_20, AREG, OPRND_SHIFT_0_BIT),
5912 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5913 CSKY_ISA_DSP_ENHANCE),
5914 OP32 ("mulaca.s16.e",
5915 OPCODE_INFO3 (0xf80088a0,
5916 (0_4, AREG, OPRND_SHIFT_0_BIT),
5917 (16_20, AREG, OPRND_SHIFT_0_BIT),
5918 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5919 CSKY_ISA_DSP_ENHANCE),
5920 OP32 ("mulacax.s16.e",
5921 OPCODE_INFO3 (0xf80088e0,
5922 (0_4, AREG, OPRND_SHIFT_0_BIT),
5923 (16_20, AREG, OPRND_SHIFT_0_BIT),
5924 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5925 CSKY_ISA_DSP_ENHANCE),
5926 OP32 ("mulacs.s16.e",
5927 OPCODE_INFO3 (0xf8008aa0,
5928 (0_4, AREG, OPRND_SHIFT_0_BIT),
5929 (16_20, AREG, OPRND_SHIFT_0_BIT),
5930 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5931 CSKY_ISA_DSP_ENHANCE),
5932 OP32 ("mulacsr.s16.e",
5933 OPCODE_INFO3 (0xf8008ae0,
5934 (0_4, AREG, OPRND_SHIFT_0_BIT),
5935 (16_20, AREG, OPRND_SHIFT_0_BIT),
5936 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5937 CSKY_ISA_DSP_ENHANCE),
5938 OP32 ("mulacsx.s16.e",
5939 OPCODE_INFO3 (0xf8008ca0,
5940 (0_4, AREG, OPRND_SHIFT_0_BIT),
5941 (16_20, AREG, OPRND_SHIFT_0_BIT),
5942 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5943 CSKY_ISA_DSP_ENHANCE),
5944 OP32 ("mulsca.s16.e",
5945 OPCODE_INFO3 (0xf8008ce0,
5946 (0_4, AREG, OPRND_SHIFT_0_BIT),
5947 (16_20, AREG, OPRND_SHIFT_0_BIT),
5948 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5949 CSKY_ISA_DSP_ENHANCE),
5950 OP32 ("mulscax.s16.e",
5951 OPCODE_INFO3 (0xf8008ea0,
5952 (0_4, AREG, OPRND_SHIFT_0_BIT),
5953 (16_20, AREG, OPRND_SHIFT_0_BIT),
5954 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5955 CSKY_ISA_DSP_ENHANCE),
5956
5957 /* The followings are vdsp instructions for ck810. */
5958 OP32 ("vdup.8",
5959 OPCODE_INFO2 (0xf8000e80,
5960 (0_3, FREG, OPRND_SHIFT_0_BIT),
5961 (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
5962 CSKY_ISA_VDSP),
5963 OP32 ("vdup.16",
5964 OPCODE_INFO2 (0xf8100e80,
5965 (0_3, FREG, OPRND_SHIFT_0_BIT),
5966 (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
5967 CSKY_ISA_VDSP),
5968 OP32 ("vdup.32",
5969 OPCODE_INFO2 (0xfa000e80,
5970 (0_3, FREG, OPRND_SHIFT_0_BIT),
5971 (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
5972 CSKY_ISA_VDSP),
5973 OP32 ("vmfvr.u8",
5974 OPCODE_INFO2 (0xf8001200,
5975 (0_4, AREG, OPRND_SHIFT_0_BIT),
5976 (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
5977 CSKY_ISA_VDSP),
5978 OP32 ("vmfvr.u16",
5979 OPCODE_INFO2 (0xf8001220,
5980 (0_4, AREG, OPRND_SHIFT_0_BIT),
5981 (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
5982 CSKY_ISA_VDSP),
5983 OP32 ("vmfvr.u32",
5984 OPCODE_INFO2 (0xf8001240,
5985 (0_4, AREG, OPRND_SHIFT_0_BIT),
5986 (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
5987 CSKY_ISA_VDSP),
5988 OP32 ("vmfvr.s8",
5989 OPCODE_INFO2 (0xf8001280,
5990 (0_4, AREG, OPRND_SHIFT_0_BIT),
5991 (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
5992 CSKY_ISA_VDSP),
5993 OP32 ("vmfvr.s16",
5994 OPCODE_INFO2 (0xf80012a0,
5995 (0_4, AREG, OPRND_SHIFT_0_BIT),
5996 (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
5997 CSKY_ISA_VDSP),
5998 OP32 ("vmtvr.u8",
5999 OPCODE_INFO2 (0xf8001300,
6000 (0_3or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
6001 (16_20, AREG, OPRND_SHIFT_0_BIT)),
6002 CSKY_ISA_VDSP),
6003 OP32 ("vmtvr.u16",
6004 OPCODE_INFO2 (0xf8001320,
6005 (0_3or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
6006 (16_20, AREG, OPRND_SHIFT_0_BIT)),
6007 CSKY_ISA_VDSP),
6008 OP32 ("vmtvr.u32",
6009 OPCODE_INFO2 (0xf8001340,
6010 (0_3or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
6011 (16_20, AREG, OPRND_SHIFT_0_BIT)),
6012 CSKY_ISA_VDSP),
6013 OP32 ("vldd.8",
6014 SOPCODE_INFO2 (0xf8002000,
6015 (0_3, FREG, OPRND_SHIFT_0_BIT),
6016 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6017 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6018 CSKY_ISA_VDSP),
6019 OP32 ("vldd.16",
6020 SOPCODE_INFO2 (0xf8002100,
6021 (0_3, FREG, OPRND_SHIFT_0_BIT),
6022 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6023 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6024 CSKY_ISA_VDSP),
6025 OP32 ("vldd.32",
6026 SOPCODE_INFO2 (0xf8002200,
6027 (0_3, FREG, OPRND_SHIFT_0_BIT),
6028 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6029 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6030 CSKY_ISA_VDSP),
6031 OP32 ("vldq.8",
6032 SOPCODE_INFO2 (0xf8002400,
6033 (0_3, FREG, OPRND_SHIFT_0_BIT),
6034 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6035 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6036 CSKY_ISA_VDSP),
6037 OP32 ("vldq.16",
6038 SOPCODE_INFO2 (0xf8002500,
6039 (0_3, FREG, OPRND_SHIFT_0_BIT),
6040 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6041 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6042 CSKY_ISA_VDSP),
6043 OP32 ("vldq.32",
6044 SOPCODE_INFO2 (0xf8002600,
6045 (0_3, FREG, OPRND_SHIFT_0_BIT),
6046 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6047 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6048 CSKY_ISA_VDSP),
6049 OP32 ("vstd.8",
6050 SOPCODE_INFO2 (0xf8002800,
6051 (0_3, FREG, OPRND_SHIFT_0_BIT),
6052 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6053 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6054 CSKY_ISA_VDSP),
6055 OP32 ("vstd.16",
6056 SOPCODE_INFO2 (0xf8002900,
6057 (0_3, FREG, OPRND_SHIFT_0_BIT),
6058 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6059 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6060 CSKY_ISA_VDSP),
6061 OP32 ("vstd.32",
6062 SOPCODE_INFO2 (0xf8002a00,
6063 (0_3, FREG, OPRND_SHIFT_0_BIT),
6064 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6065 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6066 CSKY_ISA_VDSP),
6067 OP32 ("vstq.8",
6068 SOPCODE_INFO2 (0xf8002c00,
6069 (0_3, FREG, OPRND_SHIFT_0_BIT),
6070 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6071 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6072 CSKY_ISA_VDSP),
6073 OP32 ("vstq.16",
6074 SOPCODE_INFO2 (0xf8002d00,
6075 (0_3, FREG, OPRND_SHIFT_0_BIT),
6076 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6077 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6078 CSKY_ISA_VDSP),
6079 OP32 ("vstq.32",
6080 SOPCODE_INFO2 (0xf8002e00,
6081 (0_3, FREG, OPRND_SHIFT_0_BIT),
6082 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6083 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6084 CSKY_ISA_VDSP),
6085 OP32 ("vldrd.8",
6086 SOPCODE_INFO2 (0xf8003000,
6087 (0_3, FREG, OPRND_SHIFT_0_BIT),
6088 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6089 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6090 CSKY_ISA_VDSP),
6091 OP32 ("vldrd.16",
6092 SOPCODE_INFO2 (0xf8003100,
6093 (0_3, FREG, OPRND_SHIFT_0_BIT),
6094 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6095 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6096 CSKY_ISA_VDSP),
6097 OP32 ("vldrd.32",
6098 SOPCODE_INFO2 (0xf8003200,
6099 (0_3, FREG, OPRND_SHIFT_0_BIT),
6100 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6101 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6102 CSKY_ISA_VDSP),
6103 OP32 ("vldrq.8",
6104 SOPCODE_INFO2 (0xf8003400,
6105 (0_3, FREG, OPRND_SHIFT_0_BIT),
6106 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6107 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6108 CSKY_ISA_VDSP),
6109 OP32 ("vldrq.16",
6110 SOPCODE_INFO2 (0xf8003500,
6111 (0_3, FREG, OPRND_SHIFT_0_BIT),
6112 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6113 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6114 CSKY_ISA_VDSP),
6115 OP32 ("vldrq.32",
6116 SOPCODE_INFO2 (0xf8003600,
6117 (0_3, FREG, OPRND_SHIFT_0_BIT),
6118 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6119 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6120 CSKY_ISA_VDSP),
6121 OP32 ("vstrd.8",
6122 SOPCODE_INFO2 (0xf8003800,
6123 (0_3, FREG, OPRND_SHIFT_0_BIT),
6124 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6125 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6126 CSKY_ISA_VDSP),
6127 OP32 ("vstrd.16",
6128 SOPCODE_INFO2 (0xf8003900,
6129 (0_3, FREG, OPRND_SHIFT_0_BIT),
6130 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6131 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6132 CSKY_ISA_VDSP),
6133 OP32 ("vstrd.32",
6134 SOPCODE_INFO2 (0xf8003a00,
6135 (0_3, FREG, OPRND_SHIFT_0_BIT),
6136 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6137 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6138 CSKY_ISA_VDSP),
6139 OP32 ("vstrq.8",
6140 SOPCODE_INFO2 (0xf8003c00,
6141 (0_3, FREG, OPRND_SHIFT_0_BIT),
6142 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6143 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6144 CSKY_ISA_VDSP),
6145 OP32 ("vstrq.16",
6146 SOPCODE_INFO2 (0xf8003d00,
6147 (0_3, FREG, OPRND_SHIFT_0_BIT),
6148 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6149 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6150 CSKY_ISA_VDSP),
6151 OP32 ("vstrq.32",
6152 SOPCODE_INFO2 (0xf8003e00,
6153 (0_3, FREG, OPRND_SHIFT_0_BIT),
6154 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6155 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6156 CSKY_ISA_VDSP),
6157 OP32 ("vmov",
6158 OPCODE_INFO2 (0xf8000c00,
6159 (0_3, VREG, OPRND_SHIFT_0_BIT),
6160 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6161 CSKY_ISA_VDSP),
6162 OP32 ("vcadd.eu8",
6163 OPCODE_INFO2 (0xf8000060,
6164 (0_3, VREG, OPRND_SHIFT_0_BIT),
6165 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6166 CSKY_ISA_VDSP),
6167 OP32 ("vcadd.eu16",
6168 OPCODE_INFO2 (0xf8100060,
6169 (0_3, VREG, OPRND_SHIFT_0_BIT),
6170 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6171 CSKY_ISA_VDSP),
6172 OP32 ("vcadd.es8",
6173 OPCODE_INFO2 (0xf8000070,
6174 (0_3, VREG, OPRND_SHIFT_0_BIT),
6175 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6176 CSKY_ISA_VDSP),
6177 OP32 ("vcadd.es16",
6178 OPCODE_INFO2 (0xf8100070,
6179 (0_3, VREG, OPRND_SHIFT_0_BIT),
6180 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6181 CSKY_ISA_VDSP),
6182 OP32 ("vmov.eu8",
6183 OPCODE_INFO2 (0xf8000c20,
6184 (0_3, VREG, OPRND_SHIFT_0_BIT),
6185 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6186 CSKY_ISA_VDSP),
6187 OP32 ("vmov.eu16",
6188 OPCODE_INFO2 (0xf8100c20,
6189 (0_3, VREG, OPRND_SHIFT_0_BIT),
6190 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6191 CSKY_ISA_VDSP),
6192 OP32 ("vmov.es8",
6193 OPCODE_INFO2 (0xf8000c30,
6194 (0_3, VREG, OPRND_SHIFT_0_BIT),
6195 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6196 CSKY_ISA_VDSP),
6197 OP32 ("vmov.es16",
6198 OPCODE_INFO2 (0xf8100c30,
6199 (0_3, VREG, OPRND_SHIFT_0_BIT),
6200 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6201 CSKY_ISA_VDSP),
6202 OP32 ("vmov.u16.l",
6203 OPCODE_INFO2 (0xf8100d00,
6204 (0_3, VREG, OPRND_SHIFT_0_BIT),
6205 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6206 CSKY_ISA_VDSP),
6207 OP32 ("vmov.u32.l",
6208 OPCODE_INFO2 (0xfa000d00,
6209 (0_3, VREG, OPRND_SHIFT_0_BIT),
6210 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6211 CSKY_ISA_VDSP),
6212 OP32 ("vmov.s16.l",
6213 OPCODE_INFO2 (0xf8100d10,
6214 (0_3, VREG, OPRND_SHIFT_0_BIT),
6215 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6216 CSKY_ISA_VDSP),
6217 OP32 ("vmov.s32.l",
6218 OPCODE_INFO2 (0xfa000d10,
6219 (0_3, VREG, OPRND_SHIFT_0_BIT),
6220 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6221 CSKY_ISA_VDSP),
6222 OP32 ("vmov.u16.sl",
6223 OPCODE_INFO2 (0xf8100d40,
6224 (0_3, VREG, OPRND_SHIFT_0_BIT),
6225 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6226 CSKY_ISA_VDSP),
6227 OP32 ("vmov.u32.sl",
6228 OPCODE_INFO2 (0xfa000d40,
6229 (0_3, VREG, OPRND_SHIFT_0_BIT),
6230 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6231 CSKY_ISA_VDSP),
6232 OP32 ("vmov.s16.sl",
6233 OPCODE_INFO2 (0xf8100d50,
6234 (0_3, VREG, OPRND_SHIFT_0_BIT),
6235 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6236 CSKY_ISA_VDSP),
6237 OP32 ("vmov.s32.sl",
6238 OPCODE_INFO2 (0xfa000d50,
6239 (0_3, VREG, OPRND_SHIFT_0_BIT),
6240 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6241 CSKY_ISA_VDSP),
6242 OP32 ("vmov.u16.h",
6243 OPCODE_INFO2 (0xf8100d60,
6244 (0_3, VREG, OPRND_SHIFT_0_BIT),
6245 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6246 CSKY_ISA_VDSP),
6247 OP32 ("vmov.u32.h",
6248 OPCODE_INFO2 (0xfa000d60,
6249 (0_3, VREG, OPRND_SHIFT_0_BIT),
6250 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6251 CSKY_ISA_VDSP),
6252 OP32 ("vmov.s16.h",
6253 OPCODE_INFO2 (0xf8100d70,
6254 (0_3, VREG, OPRND_SHIFT_0_BIT),
6255 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6256 CSKY_ISA_VDSP),
6257 OP32 ("vmov.s32.h",
6258 OPCODE_INFO2 (0xfa000d70,
6259 (0_3, VREG, OPRND_SHIFT_0_BIT),
6260 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6261 CSKY_ISA_VDSP),
6262 OP32 ("vmov.u16.rh",
6263 OPCODE_INFO2 (0xf8100d80,
6264 (0_3, VREG, OPRND_SHIFT_0_BIT),
6265 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6266 CSKY_ISA_VDSP),
6267 OP32 ("vmov.u32.rh",
6268 OPCODE_INFO2 (0xfa000d80,
6269 (0_3, VREG, OPRND_SHIFT_0_BIT),
6270 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6271 CSKY_ISA_VDSP),
6272 OP32 ("vmov.s16.rh",
6273 OPCODE_INFO2 (0xf8100d90,
6274 (0_3, VREG, OPRND_SHIFT_0_BIT),
6275 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6276 CSKY_ISA_VDSP),
6277 OP32 ("vmov.s32.rh",
6278 OPCODE_INFO2 (0xfa000d90,
6279 (0_3, VREG, OPRND_SHIFT_0_BIT),
6280 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6281 CSKY_ISA_VDSP),
6282 OP32 ("vstou.u16.sl",
6283 OPCODE_INFO2 (0xf8100dc0,
6284 (0_3, VREG, OPRND_SHIFT_0_BIT),
6285 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6286 CSKY_ISA_VDSP),
6287 OP32 ("vstou.u32.sl",
6288 OPCODE_INFO2 (0xfa000dc0,
6289 (0_3, VREG, OPRND_SHIFT_0_BIT),
6290 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6291 CSKY_ISA_VDSP),
6292 OP32 ("vstou.s16.sl",
6293 OPCODE_INFO2 (0xf8100dd0,
6294 (0_3, VREG, OPRND_SHIFT_0_BIT),
6295 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6296 CSKY_ISA_VDSP),
6297 OP32 ("vstou.s32.sl",
6298 OPCODE_INFO2 (0xfa000dd0,
6299 (0_3, VREG, OPRND_SHIFT_0_BIT),
6300 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6301 CSKY_ISA_VDSP),
6302 OP32 ("vrev.8",
6303 OPCODE_INFO2 (0xf8000e60,
6304 (0_3, VREG, OPRND_SHIFT_0_BIT),
6305 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6306 CSKY_ISA_VDSP),
6307 OP32 ("vrev.16",
6308 OPCODE_INFO2 (0xf8100e60,
6309 (0_3, VREG, OPRND_SHIFT_0_BIT),
6310 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6311 CSKY_ISA_VDSP),
6312 OP32 ("vrev.32",
6313 OPCODE_INFO2 (0xfa000e60,
6314 (0_3, VREG, OPRND_SHIFT_0_BIT),
6315 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6316 CSKY_ISA_VDSP),
6317 OP32 ("vcnt1.8",
6318 OPCODE_INFO2 (0xf8000ea0,
6319 (0_3, VREG, OPRND_SHIFT_0_BIT),
6320 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6321 CSKY_ISA_VDSP),
6322 OP32 ("vclz.8",
6323 OPCODE_INFO2 (0xf8000ec0,
6324 (0_3, VREG, OPRND_SHIFT_0_BIT),
6325 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6326 CSKY_ISA_VDSP),
6327 OP32 ("vclz.16",
6328 OPCODE_INFO2 (0xf8100ec0,
6329 (0_3, VREG, OPRND_SHIFT_0_BIT),
6330 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6331 CSKY_ISA_VDSP),
6332 OP32 ("vclz.32",
6333 OPCODE_INFO2 (0xfa000ec0,
6334 (0_3, VREG, OPRND_SHIFT_0_BIT),
6335 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6336 CSKY_ISA_VDSP),
6337 OP32 ("vcls.u8",
6338 OPCODE_INFO2 (0xf8000ee0,
6339 (0_3, VREG, OPRND_SHIFT_0_BIT),
6340 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6341 CSKY_ISA_VDSP),
6342 OP32 ("vcls.u16",
6343 OPCODE_INFO2 (0xf8100ee0,
6344 (0_3, VREG, OPRND_SHIFT_0_BIT),
6345 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6346 CSKY_ISA_VDSP),
6347 OP32 ("vcls.u32",
6348 OPCODE_INFO2 (0xfa000ee0,
6349 (0_3, VREG, OPRND_SHIFT_0_BIT),
6350 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6351 CSKY_ISA_VDSP),
6352 OP32 ("vcls.s8",
6353 OPCODE_INFO2 (0xf8000ef0,
6354 (0_3, VREG, OPRND_SHIFT_0_BIT),
6355 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6356 CSKY_ISA_VDSP),
6357 OP32 ("vcls.s16",
6358 OPCODE_INFO2 (0xf8100ef0,
6359 (0_3, VREG, OPRND_SHIFT_0_BIT),
6360 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6361 CSKY_ISA_VDSP),
6362 OP32 ("vcls.s32",
6363 OPCODE_INFO2 (0xfa000ef0,
6364 (0_3, VREG, OPRND_SHIFT_0_BIT),
6365 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6366 CSKY_ISA_VDSP),
6367 OP32 ("vabs.s8",
6368 OPCODE_INFO2 (0xf8001010,
6369 (0_3, VREG, OPRND_SHIFT_0_BIT),
6370 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6371 CSKY_ISA_VDSP),
6372 OP32 ("vabs.s16",
6373 OPCODE_INFO2 (0xf8101010,
6374 (0_3, VREG, OPRND_SHIFT_0_BIT),
6375 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6376 CSKY_ISA_VDSP),
6377 OP32 ("vabs.s32",
6378 OPCODE_INFO2 (0xfa001010,
6379 (0_3, VREG, OPRND_SHIFT_0_BIT),
6380 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6381 CSKY_ISA_VDSP),
6382 OP32 ("vabs.u8.s",
6383 OPCODE_INFO2 (0xf8001040,
6384 (0_3, VREG, OPRND_SHIFT_0_BIT),
6385 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6386 CSKY_ISA_VDSP),
6387 OP32 ("vabs.u16.s",
6388 OPCODE_INFO2 (0xf8101040,
6389 (0_3, VREG, OPRND_SHIFT_0_BIT),
6390 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6391 CSKY_ISA_VDSP),
6392 OP32 ("vabs.u32.s",
6393 OPCODE_INFO2 (0xfa001040,
6394 (0_3, VREG, OPRND_SHIFT_0_BIT),
6395 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6396 CSKY_ISA_VDSP),
6397 OP32 ("vabs.s8.s",
6398 OPCODE_INFO2 (0xf8001050,
6399 (0_3, VREG, OPRND_SHIFT_0_BIT),
6400 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6401 CSKY_ISA_VDSP),
6402 OP32 ("vabs.s16.s",
6403 OPCODE_INFO2 (0xf8101050,
6404 (0_3, VREG, OPRND_SHIFT_0_BIT),
6405 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6406 CSKY_ISA_VDSP),
6407 OP32 ("vabs.s32.s",
6408 OPCODE_INFO2 (0xfa001050,
6409 (0_3, VREG, OPRND_SHIFT_0_BIT),
6410 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6411 CSKY_ISA_VDSP),
6412 OP32 ("vneg.u8",
6413 OPCODE_INFO2 (0xf8001080,
6414 (0_3, VREG, OPRND_SHIFT_0_BIT),
6415 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6416 CSKY_ISA_VDSP),
6417 OP32 ("vneg.u16",
6418 OPCODE_INFO2 (0xf8101080,
6419 (0_3, VREG, OPRND_SHIFT_0_BIT),
6420 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6421 CSKY_ISA_VDSP),
6422 OP32 ("vneg.u32",
6423 OPCODE_INFO2 (0xfa001080,
6424 (0_3, VREG, OPRND_SHIFT_0_BIT),
6425 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6426 CSKY_ISA_VDSP),
6427 OP32 ("vneg.s8",
6428 OPCODE_INFO2 (0xf8001090,
6429 (0_3, VREG, OPRND_SHIFT_0_BIT),
6430 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6431 CSKY_ISA_VDSP),
6432 OP32 ("vneg.s16",
6433 OPCODE_INFO2 (0xf8101090,
6434 (0_3, VREG, OPRND_SHIFT_0_BIT),
6435 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6436 CSKY_ISA_VDSP),
6437 OP32 ("vneg.s32",
6438 OPCODE_INFO2 (0xfa001090,
6439 (0_3, VREG, OPRND_SHIFT_0_BIT),
6440 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6441 CSKY_ISA_VDSP),
6442 OP32 ("vneg.u8.s",
6443 OPCODE_INFO2 (0xf80010c0,
6444 (0_3, VREG, OPRND_SHIFT_0_BIT),
6445 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6446 CSKY_ISA_VDSP),
6447 OP32 ("vneg.u16.s",
6448 OPCODE_INFO2 (0xf81010c0,
6449 (0_3, VREG, OPRND_SHIFT_0_BIT),
6450 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6451 CSKY_ISA_VDSP),
6452 OP32 ("vneg.u32.s",
6453 OPCODE_INFO2 (0xfa0010c0,
6454 (0_3, VREG, OPRND_SHIFT_0_BIT),
6455 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6456 CSKY_ISA_VDSP),
6457 OP32 ("vneg.s8.s",
6458 OPCODE_INFO2 (0xf80010d0,
6459 (0_3, VREG, OPRND_SHIFT_0_BIT),
6460 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6461 CSKY_ISA_VDSP),
6462 OP32 ("vneg.s16.s",
6463 OPCODE_INFO2 (0xf81010d0,
6464 (0_3, VREG, OPRND_SHIFT_0_BIT),
6465 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6466 CSKY_ISA_VDSP),
6467 OP32 ("vneg.s32.s",
6468 OPCODE_INFO2 (0xfa0010d0,
6469 (0_3, VREG, OPRND_SHIFT_0_BIT),
6470 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6471 CSKY_ISA_VDSP),
6472 OP32 ("vcmphsz.u8",
6473 OPCODE_INFO2 (0xf8000880,
6474 (0_3, VREG, OPRND_SHIFT_0_BIT),
6475 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6476 CSKY_ISA_VDSP),
6477 OP32 ("vcmphsz.u16",
6478 OPCODE_INFO2 (0xf8100880,
6479 (0_3, VREG, OPRND_SHIFT_0_BIT),
6480 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6481 CSKY_ISA_VDSP),
6482 OP32 ("vcmphsz.u32",
6483 OPCODE_INFO2 (0xfa000880,
6484 (0_3, VREG, OPRND_SHIFT_0_BIT),
6485 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6486 CSKY_ISA_VDSP),
6487 OP32 ("vcmphsz.s8",
6488 OPCODE_INFO2 (0xf8000890,
6489 (0_3, VREG, OPRND_SHIFT_0_BIT),
6490 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6491 CSKY_ISA_VDSP),
6492 OP32 ("vcmphsz.s16",
6493 OPCODE_INFO2 (0xf8100890,
6494 (0_3, VREG, OPRND_SHIFT_0_BIT),
6495 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6496 CSKY_ISA_VDSP),
6497 OP32 ("vcmphsz.s32",
6498 OPCODE_INFO2 (0xfa000890,
6499 (0_3, VREG, OPRND_SHIFT_0_BIT),
6500 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6501 CSKY_ISA_VDSP),
6502 OP32 ("vcmpltz.u8",
6503 OPCODE_INFO2 (0xf80008a0,
6504 (0_3, VREG, OPRND_SHIFT_0_BIT),
6505 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6506 CSKY_ISA_VDSP),
6507 OP32 ("vcmpltz.u16",
6508 OPCODE_INFO2 (0xf81008a0,
6509 (0_3, VREG, OPRND_SHIFT_0_BIT),
6510 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6511 CSKY_ISA_VDSP),
6512 OP32 ("vcmpltz.u32",
6513 OPCODE_INFO2 (0xfa0008a0,
6514 (0_3, VREG, OPRND_SHIFT_0_BIT),
6515 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6516 CSKY_ISA_VDSP),
6517 OP32 ("vcmpltz.s8",
6518 OPCODE_INFO2 (0xf80008b0,
6519 (0_3, VREG, OPRND_SHIFT_0_BIT),
6520 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6521 CSKY_ISA_VDSP),
6522 OP32 ("vcmpltz.s16",
6523 OPCODE_INFO2 (0xf81008b0,
6524 (0_3, VREG, OPRND_SHIFT_0_BIT),
6525 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6526 CSKY_ISA_VDSP),
6527 OP32 ("vcmpltz.s32",
6528 OPCODE_INFO2 (0xfa0008b0,
6529 (0_3, VREG, OPRND_SHIFT_0_BIT),
6530 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6531 CSKY_ISA_VDSP),
6532 OP32 ("vcmpnez.u8",
6533 OPCODE_INFO2 (0xf80008c0,
6534 (0_3, VREG, OPRND_SHIFT_0_BIT),
6535 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6536 CSKY_ISA_VDSP),
6537 OP32 ("vcmpnez.u16",
6538 OPCODE_INFO2 (0xf81008c0,
6539 (0_3, VREG, OPRND_SHIFT_0_BIT),
6540 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6541 CSKY_ISA_VDSP),
6542 OP32 ("vcmpnez.u32",
6543 OPCODE_INFO2 (0xfa0008c0,
6544 (0_3, VREG, OPRND_SHIFT_0_BIT),
6545 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6546 CSKY_ISA_VDSP),
6547 OP32 ("vcmpnez.s8",
6548 OPCODE_INFO2 (0xf80008d0,
6549 (0_3, VREG, OPRND_SHIFT_0_BIT),
6550 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6551 CSKY_ISA_VDSP),
6552 OP32 ("vcmpnez.s16",
6553 OPCODE_INFO2 (0xf81008d0,
6554 (0_3, VREG, OPRND_SHIFT_0_BIT),
6555 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6556 CSKY_ISA_VDSP),
6557 OP32 ("vcmpnez.s32",
6558 OPCODE_INFO2 (0xfa0008d0,
6559 (0_3, VREG, OPRND_SHIFT_0_BIT),
6560 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6561 CSKY_ISA_VDSP),
6562 OP32 ("vtrch.8",
6563 OPCODE_INFO3 (0xf8000f40,
6564 (0_3, VREG, OPRND_SHIFT_0_BIT),
6565 (16_19, VREG, OPRND_SHIFT_0_BIT),
6566 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6567 CSKY_ISA_VDSP),
6568 OP32 ("vtrch.16",
6569 OPCODE_INFO3 (0xf8100f40,
6570 (0_3, VREG, OPRND_SHIFT_0_BIT),
6571 (16_19, VREG, OPRND_SHIFT_0_BIT),
6572 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6573 CSKY_ISA_VDSP),
6574 OP32 ("vtrch.32",
6575 OPCODE_INFO3 (0xfa000f40,
6576 (0_3, VREG, OPRND_SHIFT_0_BIT),
6577 (16_19, VREG, OPRND_SHIFT_0_BIT),
6578 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6579 CSKY_ISA_VDSP),
6580 OP32 ("vtrcl.8",
6581 OPCODE_INFO3 (0xf8000f60,
6582 (0_3, VREG, OPRND_SHIFT_0_BIT),
6583 (16_19, VREG, OPRND_SHIFT_0_BIT),
6584 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6585 CSKY_ISA_VDSP),
6586 OP32 ("vtrcl.16",
6587 OPCODE_INFO3 (0xf8100f60,
6588 (0_3, VREG, OPRND_SHIFT_0_BIT),
6589 (16_19, VREG, OPRND_SHIFT_0_BIT),
6590 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6591 CSKY_ISA_VDSP),
6592 OP32 ("vtrcl.32",
6593 OPCODE_INFO3 (0xfa000f60,
6594 (0_3, VREG, OPRND_SHIFT_0_BIT),
6595 (16_19, VREG, OPRND_SHIFT_0_BIT),
6596 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6597 CSKY_ISA_VDSP),
6598 OP32 ("vadd.u8",
6599 OPCODE_INFO3 (0xf8000000,
6600 (0_3, VREG, OPRND_SHIFT_0_BIT),
6601 (16_19, VREG, OPRND_SHIFT_0_BIT),
6602 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6603 CSKY_ISA_VDSP),
6604 OP32 ("vadd.u16",
6605 OPCODE_INFO3 (0xf8100000,
6606 (0_3, VREG, OPRND_SHIFT_0_BIT),
6607 (16_19, VREG, OPRND_SHIFT_0_BIT),
6608 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6609 CSKY_ISA_VDSP),
6610 OP32 ("vadd.u32",
6611 OPCODE_INFO3 (0xfa000000,
6612 (0_3, VREG, OPRND_SHIFT_0_BIT),
6613 (16_19, VREG, OPRND_SHIFT_0_BIT),
6614 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6615 CSKY_ISA_VDSP),
6616 OP32 ("vadd.s8",
6617 OPCODE_INFO3 (0xf8000010,
6618 (0_3, VREG, OPRND_SHIFT_0_BIT),
6619 (16_19, VREG, OPRND_SHIFT_0_BIT),
6620 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6621 CSKY_ISA_VDSP),
6622 OP32 ("vadd.s16",
6623 OPCODE_INFO3 (0xf8100010,
6624 (0_3, VREG, OPRND_SHIFT_0_BIT),
6625 (16_19, VREG, OPRND_SHIFT_0_BIT),
6626 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6627 CSKY_ISA_VDSP),
6628 OP32 ("vadd.s32",
6629 OPCODE_INFO3 (0xfa000010,
6630 (0_3, VREG, OPRND_SHIFT_0_BIT),
6631 (16_19, VREG, OPRND_SHIFT_0_BIT),
6632 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6633 CSKY_ISA_VDSP),
6634 OP32 ("vadd.eu8",
6635 OPCODE_INFO3 (0xf8000020,
6636 (0_3, VREG, OPRND_SHIFT_0_BIT),
6637 (16_19, VREG, OPRND_SHIFT_0_BIT),
6638 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6639 CSKY_ISA_VDSP),
6640 OP32 ("vadd.eu16",
6641 OPCODE_INFO3 (0xf8100020,
6642 (0_3, VREG, OPRND_SHIFT_0_BIT),
6643 (16_19, VREG, OPRND_SHIFT_0_BIT),
6644 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6645 CSKY_ISA_VDSP),
6646 OP32 ("vadd.es8",
6647 OPCODE_INFO3 (0xf8000030,
6648 (0_3, VREG, OPRND_SHIFT_0_BIT),
6649 (16_19, VREG, OPRND_SHIFT_0_BIT),
6650 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6651 CSKY_ISA_VDSP),
6652 OP32 ("vadd.es16",
6653 OPCODE_INFO3 (0xf8100030,
6654 (0_3, VREG, OPRND_SHIFT_0_BIT),
6655 (16_19, VREG, OPRND_SHIFT_0_BIT),
6656 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6657 CSKY_ISA_VDSP),
6658 OP32 ("vcadd.u8",
6659 OPCODE_INFO3 (0xf8000040,
6660 (0_3, VREG, OPRND_SHIFT_0_BIT),
6661 (16_19, VREG, OPRND_SHIFT_0_BIT),
6662 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6663 CSKY_ISA_VDSP),
6664 OP32 ("vcadd.u16",
6665 OPCODE_INFO3 (0xf8100040,
6666 (0_3, VREG, OPRND_SHIFT_0_BIT),
6667 (16_19, VREG, OPRND_SHIFT_0_BIT),
6668 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6669 CSKY_ISA_VDSP),
6670 OP32 ("vcadd.u32",
6671 OPCODE_INFO3 (0xfa000040,
6672 (0_3, VREG, OPRND_SHIFT_0_BIT),
6673 (16_19, VREG, OPRND_SHIFT_0_BIT),
6674 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6675 CSKY_ISA_VDSP),
6676 OP32 ("vcadd.s8",
6677 OPCODE_INFO3 (0xf8000050,
6678 (0_3, VREG, OPRND_SHIFT_0_BIT),
6679 (16_19, VREG, OPRND_SHIFT_0_BIT),
6680 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6681 CSKY_ISA_VDSP),
6682 OP32 ("vcadd.s16",
6683 OPCODE_INFO3 (0xf8100050,
6684 (0_3, VREG, OPRND_SHIFT_0_BIT),
6685 (16_19, VREG, OPRND_SHIFT_0_BIT),
6686 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6687 CSKY_ISA_VDSP),
6688 OP32 ("vcadd.s32",
6689 OPCODE_INFO3 (0xfa000050,
6690 (0_3, VREG, OPRND_SHIFT_0_BIT),
6691 (16_19, VREG, OPRND_SHIFT_0_BIT),
6692 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6693 CSKY_ISA_VDSP),
6694 OP32 ("vadd.xu16.sl",
6695 OPCODE_INFO3 (0xf8100140,
6696 (0_3, VREG, OPRND_SHIFT_0_BIT),
6697 (16_19, VREG, OPRND_SHIFT_0_BIT),
6698 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6699 CSKY_ISA_VDSP),
6700 OP32 ("vadd.xu32.sl",
6701 OPCODE_INFO3 (0xfa000140,
6702 (0_3, VREG, OPRND_SHIFT_0_BIT),
6703 (16_19, VREG, OPRND_SHIFT_0_BIT),
6704 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6705 CSKY_ISA_VDSP),
6706 OP32 ("vadd.xs16.sl",
6707 OPCODE_INFO3 (0xf8100150,
6708 (0_3, VREG, OPRND_SHIFT_0_BIT),
6709 (16_19, VREG, OPRND_SHIFT_0_BIT),
6710 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6711 CSKY_ISA_VDSP),
6712 OP32 ("vadd.xs32.sl",
6713 OPCODE_INFO3 (0xfa000150,
6714 (0_3, VREG, OPRND_SHIFT_0_BIT),
6715 (16_19, VREG, OPRND_SHIFT_0_BIT),
6716 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6717 CSKY_ISA_VDSP),
6718 OP32 ("vadd.xu16",
6719 OPCODE_INFO3 (0xf8100160,
6720 (0_3, VREG, OPRND_SHIFT_0_BIT),
6721 (16_19, VREG, OPRND_SHIFT_0_BIT),
6722 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6723 CSKY_ISA_VDSP),
6724 OP32 ("vadd.xu32",
6725 OPCODE_INFO3 (0xfa000160,
6726 (0_3, VREG, OPRND_SHIFT_0_BIT),
6727 (16_19, VREG, OPRND_SHIFT_0_BIT),
6728 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6729 CSKY_ISA_VDSP),
6730 OP32 ("vadd.xs16",
6731 OPCODE_INFO3 (0xf8100170,
6732 (0_3, VREG, OPRND_SHIFT_0_BIT),
6733 (16_19, VREG, OPRND_SHIFT_0_BIT),
6734 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6735 CSKY_ISA_VDSP),
6736 OP32 ("vadd.xs32",
6737 OPCODE_INFO3 (0xfa000170,
6738 (0_3, VREG, OPRND_SHIFT_0_BIT),
6739 (16_19, VREG, OPRND_SHIFT_0_BIT),
6740 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6741 CSKY_ISA_VDSP),
6742 OP32 ("vaddh.u8",
6743 OPCODE_INFO3 (0xf8000180,
6744 (0_3, VREG, OPRND_SHIFT_0_BIT),
6745 (16_19, VREG, OPRND_SHIFT_0_BIT),
6746 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6747 CSKY_ISA_VDSP),
6748 OP32 ("vaddh.u16",
6749 OPCODE_INFO3 (0xf8100180,
6750 (0_3, VREG, OPRND_SHIFT_0_BIT),
6751 (16_19, VREG, OPRND_SHIFT_0_BIT),
6752 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6753 CSKY_ISA_VDSP),
6754 OP32 ("vaddh.u32",
6755 OPCODE_INFO3 (0xfa000180,
6756 (0_3, VREG, OPRND_SHIFT_0_BIT),
6757 (16_19, VREG, OPRND_SHIFT_0_BIT),
6758 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6759 CSKY_ISA_VDSP),
6760 OP32 ("vaddh.s8",
6761 OPCODE_INFO3 (0xf8000190,
6762 (0_3, VREG, OPRND_SHIFT_0_BIT),
6763 (16_19, VREG, OPRND_SHIFT_0_BIT),
6764 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6765 CSKY_ISA_VDSP),
6766 OP32 ("vaddh.s16",
6767 OPCODE_INFO3 (0xf8100190,
6768 (0_3, VREG, OPRND_SHIFT_0_BIT),
6769 (16_19, VREG, OPRND_SHIFT_0_BIT),
6770 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6771 CSKY_ISA_VDSP),
6772 OP32 ("vaddh.s32",
6773 OPCODE_INFO3 (0xfa000190,
6774 (0_3, VREG, OPRND_SHIFT_0_BIT),
6775 (16_19, VREG, OPRND_SHIFT_0_BIT),
6776 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6777 CSKY_ISA_VDSP),
6778 OP32 ("vaddh.u8.r",
6779 OPCODE_INFO3 (0xf80001a0,
6780 (0_3, VREG, OPRND_SHIFT_0_BIT),
6781 (16_19, VREG, OPRND_SHIFT_0_BIT),
6782 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6783 CSKY_ISA_VDSP),
6784 OP32 ("vaddh.u16.r",
6785 OPCODE_INFO3 (0xf81001a0,
6786 (0_3, VREG, OPRND_SHIFT_0_BIT),
6787 (16_19, VREG, OPRND_SHIFT_0_BIT),
6788 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6789 CSKY_ISA_VDSP),
6790 OP32 ("vaddh.u32.r",
6791 OPCODE_INFO3 (0xfa0001a0,
6792 (0_3, VREG, OPRND_SHIFT_0_BIT),
6793 (16_19, VREG, OPRND_SHIFT_0_BIT),
6794 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6795 CSKY_ISA_VDSP),
6796 OP32 ("vaddh.s8.r",
6797 OPCODE_INFO3 (0xf80001b0,
6798 (0_3, VREG, OPRND_SHIFT_0_BIT),
6799 (16_19, VREG, OPRND_SHIFT_0_BIT),
6800 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6801 CSKY_ISA_VDSP),
6802 OP32 ("vaddh.s16.r",
6803 OPCODE_INFO3 (0xf81001b0,
6804 (0_3, VREG, OPRND_SHIFT_0_BIT),
6805 (16_19, VREG, OPRND_SHIFT_0_BIT),
6806 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6807 CSKY_ISA_VDSP),
6808 OP32 ("vaddh.s32.r",
6809 OPCODE_INFO3 (0xfa0001b0,
6810 (0_3, VREG, OPRND_SHIFT_0_BIT),
6811 (16_19, VREG, OPRND_SHIFT_0_BIT),
6812 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6813 CSKY_ISA_VDSP),
6814 OP32 ("vadd.u8.s",
6815 OPCODE_INFO3 (0xf80001c0,
6816 (0_3, VREG, OPRND_SHIFT_0_BIT),
6817 (16_19, VREG, OPRND_SHIFT_0_BIT),
6818 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6819 CSKY_ISA_VDSP),
6820 OP32 ("vadd.u16.s",
6821 OPCODE_INFO3 (0xf81001c0,
6822 (0_3, VREG, OPRND_SHIFT_0_BIT),
6823 (16_19, VREG, OPRND_SHIFT_0_BIT),
6824 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6825 CSKY_ISA_VDSP),
6826 OP32 ("vadd.u32.s",
6827 OPCODE_INFO3 (0xfa0001c0,
6828 (0_3, VREG, OPRND_SHIFT_0_BIT),
6829 (16_19, VREG, OPRND_SHIFT_0_BIT),
6830 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6831 CSKY_ISA_VDSP),
6832 OP32 ("vadd.s8.s",
6833 OPCODE_INFO3 (0xf80001d0,
6834 (0_3, VREG, OPRND_SHIFT_0_BIT),
6835 (16_19, VREG, OPRND_SHIFT_0_BIT),
6836 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6837 CSKY_ISA_VDSP),
6838 OP32 ("vadd.s16.s",
6839 OPCODE_INFO3 (0xf81001d0,
6840 (0_3, VREG, OPRND_SHIFT_0_BIT),
6841 (16_19, VREG, OPRND_SHIFT_0_BIT),
6842 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6843 CSKY_ISA_VDSP),
6844 OP32 ("vadd.s32.s",
6845 OPCODE_INFO3 (0xfa0001d0,
6846 (0_3, VREG, OPRND_SHIFT_0_BIT),
6847 (16_19, VREG, OPRND_SHIFT_0_BIT),
6848 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6849 CSKY_ISA_VDSP),
6850 OP32 ("vsub.u8",
6851 OPCODE_INFO3 (0xf8000200,
6852 (0_3, VREG, OPRND_SHIFT_0_BIT),
6853 (16_19, VREG, OPRND_SHIFT_0_BIT),
6854 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6855 CSKY_ISA_VDSP),
6856 OP32 ("vsub.u16",
6857 OPCODE_INFO3 (0xf8100200,
6858 (0_3, VREG, OPRND_SHIFT_0_BIT),
6859 (16_19, VREG, OPRND_SHIFT_0_BIT),
6860 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6861 CSKY_ISA_VDSP),
6862 OP32 ("vsub.u32",
6863 OPCODE_INFO3 (0xfa000200,
6864 (0_3, VREG, OPRND_SHIFT_0_BIT),
6865 (16_19, VREG, OPRND_SHIFT_0_BIT),
6866 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6867 CSKY_ISA_VDSP),
6868 OP32 ("vsub.s8",
6869 OPCODE_INFO3 (0xf8000210,
6870 (0_3, VREG, OPRND_SHIFT_0_BIT),
6871 (16_19, VREG, OPRND_SHIFT_0_BIT),
6872 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6873 CSKY_ISA_VDSP),
6874 OP32 ("vsub.s16",
6875 OPCODE_INFO3 (0xf8100210,
6876 (0_3, VREG, OPRND_SHIFT_0_BIT),
6877 (16_19, VREG, OPRND_SHIFT_0_BIT),
6878 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6879 CSKY_ISA_VDSP),
6880 OP32 ("vsub.s32",
6881 OPCODE_INFO3 (0xfa000210,
6882 (0_3, VREG, OPRND_SHIFT_0_BIT),
6883 (16_19, VREG, OPRND_SHIFT_0_BIT),
6884 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6885 CSKY_ISA_VDSP),
6886 OP32 ("vsub.eu8",
6887 OPCODE_INFO3 (0xf8000220,
6888 (0_3, VREG, OPRND_SHIFT_0_BIT),
6889 (16_19, VREG, OPRND_SHIFT_0_BIT),
6890 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6891 CSKY_ISA_VDSP),
6892 OP32 ("vsub.eu16",
6893 OPCODE_INFO3 (0xf8100220,
6894 (0_3, VREG, OPRND_SHIFT_0_BIT),
6895 (16_19, VREG, OPRND_SHIFT_0_BIT),
6896 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6897 CSKY_ISA_VDSP),
6898 OP32 ("vsub.eu32",
6899 OPCODE_INFO3 (0xfa000220,
6900 (0_3, VREG, OPRND_SHIFT_0_BIT),
6901 (16_19, VREG, OPRND_SHIFT_0_BIT),
6902 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6903 CSKY_ISA_VDSP),
6904 OP32 ("vsub.es8",
6905 OPCODE_INFO3 (0xf8000230,
6906 (0_3, VREG, OPRND_SHIFT_0_BIT),
6907 (16_19, VREG, OPRND_SHIFT_0_BIT),
6908 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6909 CSKY_ISA_VDSP),
6910 OP32 ("vsub.es16",
6911 OPCODE_INFO3 (0xf8100230,
6912 (0_3, VREG, OPRND_SHIFT_0_BIT),
6913 (16_19, VREG, OPRND_SHIFT_0_BIT),
6914 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6915 CSKY_ISA_VDSP),
6916 OP32 ("vsub.es32",
6917 OPCODE_INFO3 (0xfa000230,
6918 (0_3, VREG, OPRND_SHIFT_0_BIT),
6919 (16_19, VREG, OPRND_SHIFT_0_BIT),
6920 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6921 CSKY_ISA_VDSP),
6922 OP32 ("vsabs.u8",
6923 OPCODE_INFO3 (0xf8000240,
6924 (0_3, VREG, OPRND_SHIFT_0_BIT),
6925 (16_19, VREG, OPRND_SHIFT_0_BIT),
6926 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6927 CSKY_ISA_VDSP),
6928 OP32 ("vsabs.u16",
6929 OPCODE_INFO3 (0xf8100240,
6930 (0_3, VREG, OPRND_SHIFT_0_BIT),
6931 (16_19, VREG, OPRND_SHIFT_0_BIT),
6932 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6933 CSKY_ISA_VDSP),
6934 OP32 ("vsabs.u32",
6935 OPCODE_INFO3 (0xfa000240,
6936 (0_3, VREG, OPRND_SHIFT_0_BIT),
6937 (16_19, VREG, OPRND_SHIFT_0_BIT),
6938 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6939 CSKY_ISA_VDSP),
6940 OP32 ("vsabs.s8",
6941 OPCODE_INFO3 (0xf8000250,
6942 (0_3, VREG, OPRND_SHIFT_0_BIT),
6943 (16_19, VREG, OPRND_SHIFT_0_BIT),
6944 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6945 CSKY_ISA_VDSP),
6946 OP32 ("vsabs.s16",
6947 OPCODE_INFO3 (0xf8100250,
6948 (0_3, VREG, OPRND_SHIFT_0_BIT),
6949 (16_19, VREG, OPRND_SHIFT_0_BIT),
6950 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6951 CSKY_ISA_VDSP),
6952 OP32 ("vsabs.s32",
6953 OPCODE_INFO3 (0xfa000250,
6954 (0_3, VREG, OPRND_SHIFT_0_BIT),
6955 (16_19, VREG, OPRND_SHIFT_0_BIT),
6956 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6957 CSKY_ISA_VDSP),
6958 OP32 ("vsabs.eu8",
6959 OPCODE_INFO3 (0xf8000260,
6960 (0_3, VREG, OPRND_SHIFT_0_BIT),
6961 (16_19, VREG, OPRND_SHIFT_0_BIT),
6962 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6963 CSKY_ISA_VDSP),
6964 OP32 ("vsabs.eu16",
6965 OPCODE_INFO3 (0xf8100260,
6966 (0_3, VREG, OPRND_SHIFT_0_BIT),
6967 (16_19, VREG, OPRND_SHIFT_0_BIT),
6968 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6969 CSKY_ISA_VDSP),
6970 OP32 ("vsabs.es8",
6971 OPCODE_INFO3 (0xf8000270,
6972 (0_3, VREG, OPRND_SHIFT_0_BIT),
6973 (16_19, VREG, OPRND_SHIFT_0_BIT),
6974 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6975 CSKY_ISA_VDSP),
6976 OP32 ("vsabs.es16",
6977 OPCODE_INFO3 (0xf8100270,
6978 (0_3, VREG, OPRND_SHIFT_0_BIT),
6979 (16_19, VREG, OPRND_SHIFT_0_BIT),
6980 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6981 CSKY_ISA_VDSP),
6982 OP32 ("vsabsa.u8",
6983 OPCODE_INFO3 (0xf8000280,
6984 (0_3, VREG, OPRND_SHIFT_0_BIT),
6985 (16_19, VREG, OPRND_SHIFT_0_BIT),
6986 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6987 CSKY_ISA_VDSP),
6988 OP32 ("vsabsa.u16",
6989 OPCODE_INFO3 (0xf8100280,
6990 (0_3, VREG, OPRND_SHIFT_0_BIT),
6991 (16_19, VREG, OPRND_SHIFT_0_BIT),
6992 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6993 CSKY_ISA_VDSP),
6994 OP32 ("vsabsa.u32",
6995 OPCODE_INFO3 (0xfa000280,
6996 (0_3, VREG, OPRND_SHIFT_0_BIT),
6997 (16_19, VREG, OPRND_SHIFT_0_BIT),
6998 (21_24, VREG, OPRND_SHIFT_0_BIT)),
6999 CSKY_ISA_VDSP),
7000 OP32 ("vsabsa.s8",
7001 OPCODE_INFO3 (0xf8000290,
7002 (0_3, VREG, OPRND_SHIFT_0_BIT),
7003 (16_19, VREG, OPRND_SHIFT_0_BIT),
7004 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7005 CSKY_ISA_VDSP),
7006 OP32 ("vsabsa.s16",
7007 OPCODE_INFO3 (0xf8100290,
7008 (0_3, VREG, OPRND_SHIFT_0_BIT),
7009 (16_19, VREG, OPRND_SHIFT_0_BIT),
7010 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7011 CSKY_ISA_VDSP),
7012 OP32 ("vsabsa.s32",
7013 OPCODE_INFO3 (0xfa000290,
7014 (0_3, VREG, OPRND_SHIFT_0_BIT),
7015 (16_19, VREG, OPRND_SHIFT_0_BIT),
7016 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7017 CSKY_ISA_VDSP),
7018 OP32 ("vsabsa.eu8",
7019 OPCODE_INFO3 (0xf80002a0,
7020 (0_3, VREG, OPRND_SHIFT_0_BIT),
7021 (16_19, VREG, OPRND_SHIFT_0_BIT),
7022 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7023 CSKY_ISA_VDSP),
7024 OP32 ("vsabsa.eu16",
7025 OPCODE_INFO3 (0xf81002a0,
7026 (0_3, VREG, OPRND_SHIFT_0_BIT),
7027 (16_19, VREG, OPRND_SHIFT_0_BIT),
7028 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7029 CSKY_ISA_VDSP),
7030 OP32 ("vsabsa.es8",
7031 OPCODE_INFO3 (0xf80002b0,
7032 (0_3, VREG, OPRND_SHIFT_0_BIT),
7033 (16_19, VREG, OPRND_SHIFT_0_BIT),
7034 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7035 CSKY_ISA_VDSP),
7036 OP32 ("vsabsa.es16",
7037 OPCODE_INFO3 (0xf81002b0,
7038 (0_3, VREG, OPRND_SHIFT_0_BIT),
7039 (16_19, VREG, OPRND_SHIFT_0_BIT),
7040 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7041 CSKY_ISA_VDSP),
7042 OP32 ("vsub.xu16",
7043 OPCODE_INFO3 (0xf8100360,
7044 (0_3, VREG, OPRND_SHIFT_0_BIT),
7045 (16_19, VREG, OPRND_SHIFT_0_BIT),
7046 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7047 CSKY_ISA_VDSP),
7048 OP32 ("vsub.xu32",
7049 OPCODE_INFO3 (0xfa000360,
7050 (0_3, VREG, OPRND_SHIFT_0_BIT),
7051 (16_19, VREG, OPRND_SHIFT_0_BIT),
7052 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7053 CSKY_ISA_VDSP),
7054 OP32 ("vsub.xs16",
7055 OPCODE_INFO3 (0xf8100370,
7056 (0_3, VREG, OPRND_SHIFT_0_BIT),
7057 (16_19, VREG, OPRND_SHIFT_0_BIT),
7058 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7059 CSKY_ISA_VDSP),
7060 OP32 ("vsub.xs32",
7061 OPCODE_INFO3 (0xfa000370,
7062 (0_3, VREG, OPRND_SHIFT_0_BIT),
7063 (16_19, VREG, OPRND_SHIFT_0_BIT),
7064 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7065 CSKY_ISA_VDSP),
7066 OP32 ("vsubh.u8",
7067 OPCODE_INFO3 (0xf8000380,
7068 (0_3, VREG, OPRND_SHIFT_0_BIT),
7069 (16_19, VREG, OPRND_SHIFT_0_BIT),
7070 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7071 CSKY_ISA_VDSP),
7072 OP32 ("vsubh.u16",
7073 OPCODE_INFO3 (0xf8100380,
7074 (0_3, VREG, OPRND_SHIFT_0_BIT),
7075 (16_19, VREG, OPRND_SHIFT_0_BIT),
7076 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7077 CSKY_ISA_VDSP),
7078 OP32 ("vsubh.u32",
7079 OPCODE_INFO3 (0xfa000380,
7080 (0_3, VREG, OPRND_SHIFT_0_BIT),
7081 (16_19, VREG, OPRND_SHIFT_0_BIT),
7082 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7083 CSKY_ISA_VDSP),
7084 OP32 ("vsubh.s8",
7085 OPCODE_INFO3 (0xf8000390,
7086 (0_3, VREG, OPRND_SHIFT_0_BIT),
7087 (16_19, VREG, OPRND_SHIFT_0_BIT),
7088 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7089 CSKY_ISA_VDSP),
7090 OP32 ("vsubh.s16",
7091 OPCODE_INFO3 (0xf8100390,
7092 (0_3, VREG, OPRND_SHIFT_0_BIT),
7093 (16_19, VREG, OPRND_SHIFT_0_BIT),
7094 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7095 CSKY_ISA_VDSP),
7096 OP32 ("vsubh.s32",
7097 OPCODE_INFO3 (0xfa000390,
7098 (0_3, VREG, OPRND_SHIFT_0_BIT),
7099 (16_19, VREG, OPRND_SHIFT_0_BIT),
7100 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7101 CSKY_ISA_VDSP),
7102 OP32 ("vsubh.u8.r",
7103 OPCODE_INFO3 (0xf80003a0,
7104 (0_3, VREG, OPRND_SHIFT_0_BIT),
7105 (16_19, VREG, OPRND_SHIFT_0_BIT),
7106 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7107 CSKY_ISA_VDSP),
7108 OP32 ("vsubh.u16.r",
7109 OPCODE_INFO3 (0xf81003a0,
7110 (0_3, VREG, OPRND_SHIFT_0_BIT),
7111 (16_19, VREG, OPRND_SHIFT_0_BIT),
7112 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7113 CSKY_ISA_VDSP),
7114 OP32 ("vsubh.u32.r",
7115 OPCODE_INFO3 (0xfa0003a0,
7116 (0_3, VREG, OPRND_SHIFT_0_BIT),
7117 (16_19, VREG, OPRND_SHIFT_0_BIT),
7118 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7119 CSKY_ISA_VDSP),
7120 OP32 ("vsubh.s8.r",
7121 OPCODE_INFO3 (0xf80003b0,
7122 (0_3, VREG, OPRND_SHIFT_0_BIT),
7123 (16_19, VREG, OPRND_SHIFT_0_BIT),
7124 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7125 CSKY_ISA_VDSP),
7126 OP32 ("vsubh.s16.r",
7127 OPCODE_INFO3 (0xf81003b0,
7128 (0_3, VREG, OPRND_SHIFT_0_BIT),
7129 (16_19, VREG, OPRND_SHIFT_0_BIT),
7130 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7131 CSKY_ISA_VDSP),
7132 OP32 ("vsubh.s32.r",
7133 OPCODE_INFO3 (0xfa0003b0,
7134 (0_3, VREG, OPRND_SHIFT_0_BIT),
7135 (16_19, VREG, OPRND_SHIFT_0_BIT),
7136 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7137 CSKY_ISA_VDSP),
7138 OP32 ("vsub.u8.s",
7139 OPCODE_INFO3 (0xf80003c0,
7140 (0_3, VREG, OPRND_SHIFT_0_BIT),
7141 (16_19, VREG, OPRND_SHIFT_0_BIT),
7142 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7143 CSKY_ISA_VDSP),
7144 OP32 ("vsub.u16.s",
7145 OPCODE_INFO3 (0xf81003c0,
7146 (0_3, VREG, OPRND_SHIFT_0_BIT),
7147 (16_19, VREG, OPRND_SHIFT_0_BIT),
7148 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7149 CSKY_ISA_VDSP),
7150 OP32 ("vsub.u32.s",
7151 OPCODE_INFO3 (0xfa0003c0,
7152 (0_3, VREG, OPRND_SHIFT_0_BIT),
7153 (16_19, VREG, OPRND_SHIFT_0_BIT),
7154 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7155 CSKY_ISA_VDSP),
7156 OP32 ("vsub.s8.s",
7157 OPCODE_INFO3 (0xf80003d0,
7158 (0_3, VREG, OPRND_SHIFT_0_BIT),
7159 (16_19, VREG, OPRND_SHIFT_0_BIT),
7160 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7161 CSKY_ISA_VDSP),
7162 OP32 ("vsub.s16.s",
7163 OPCODE_INFO3 (0xf81003d0,
7164 (0_3, VREG, OPRND_SHIFT_0_BIT),
7165 (16_19, VREG, OPRND_SHIFT_0_BIT),
7166 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7167 CSKY_ISA_VDSP),
7168 OP32 ("vsub.s32.s",
7169 OPCODE_INFO3 (0xfa0003d0,
7170 (0_3, VREG, OPRND_SHIFT_0_BIT),
7171 (16_19, VREG, OPRND_SHIFT_0_BIT),
7172 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7173 CSKY_ISA_VDSP),
7174 OP32 ("vmul.u8",
7175 OPCODE_INFO3 (0xf8000400,
7176 (0_3, VREG, OPRND_SHIFT_0_BIT),
7177 (16_19, VREG, OPRND_SHIFT_0_BIT),
7178 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7179 CSKY_ISA_VDSP),
7180 OP32 ("vmul.u16",
7181 OPCODE_INFO3 (0xf8100400,
7182 (0_3, VREG, OPRND_SHIFT_0_BIT),
7183 (16_19, VREG, OPRND_SHIFT_0_BIT),
7184 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7185 CSKY_ISA_VDSP),
7186 OP32 ("vmul.u32",
7187 OPCODE_INFO3 (0xfa000400,
7188 (0_3, VREG, OPRND_SHIFT_0_BIT),
7189 (16_19, VREG, OPRND_SHIFT_0_BIT),
7190 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7191 CSKY_ISA_VDSP),
7192 OP32 ("vmul.s8",
7193 OPCODE_INFO3 (0xf8000410,
7194 (0_3, VREG, OPRND_SHIFT_0_BIT),
7195 (16_19, VREG, OPRND_SHIFT_0_BIT),
7196 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7197 CSKY_ISA_VDSP),
7198 OP32 ("vmul.s16",
7199 OPCODE_INFO3 (0xf8100410,
7200 (0_3, VREG, OPRND_SHIFT_0_BIT),
7201 (16_19, VREG, OPRND_SHIFT_0_BIT),
7202 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7203 CSKY_ISA_VDSP),
7204 OP32 ("vmul.s32",
7205 OPCODE_INFO3 (0xfa000410,
7206 (0_3, VREG, OPRND_SHIFT_0_BIT),
7207 (16_19, VREG, OPRND_SHIFT_0_BIT),
7208 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7209 CSKY_ISA_VDSP),
7210 OP32 ("vmul.eu8",
7211 OPCODE_INFO3 (0xf8000420,
7212 (0_3, VREG, OPRND_SHIFT_0_BIT),
7213 (16_19, VREG, OPRND_SHIFT_0_BIT),
7214 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7215 CSKY_ISA_VDSP),
7216 OP32 ("vmul.eu16",
7217 OPCODE_INFO3 (0xf8100420,
7218 (0_3, VREG, OPRND_SHIFT_0_BIT),
7219 (16_19, VREG, OPRND_SHIFT_0_BIT),
7220 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7221 CSKY_ISA_VDSP),
7222 OP32 ("vmul.es8",
7223 OPCODE_INFO3 (0xf8000430,
7224 (0_3, VREG, OPRND_SHIFT_0_BIT),
7225 (16_19, VREG, OPRND_SHIFT_0_BIT),
7226 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7227 CSKY_ISA_VDSP),
7228 OP32 ("vmul.es16",
7229 OPCODE_INFO3 (0xf8100430,
7230 (0_3, VREG, OPRND_SHIFT_0_BIT),
7231 (16_19, VREG, OPRND_SHIFT_0_BIT),
7232 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7233 CSKY_ISA_VDSP),
7234 OP32 ("vmula.u8",
7235 OPCODE_INFO3 (0xf8000440,
7236 (0_3, VREG, OPRND_SHIFT_0_BIT),
7237 (16_19, VREG, OPRND_SHIFT_0_BIT),
7238 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7239 CSKY_ISA_VDSP),
7240 OP32 ("vmula.u16",
7241 OPCODE_INFO3 (0xf8100440,
7242 (0_3, VREG, OPRND_SHIFT_0_BIT),
7243 (16_19, VREG, OPRND_SHIFT_0_BIT),
7244 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7245 CSKY_ISA_VDSP),
7246 OP32 ("vmula.u32",
7247 OPCODE_INFO3 (0xfa000440,
7248 (0_3, VREG, OPRND_SHIFT_0_BIT),
7249 (16_19, VREG, OPRND_SHIFT_0_BIT),
7250 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7251 CSKY_ISA_VDSP),
7252 OP32 ("vmula.s8",
7253 OPCODE_INFO3 (0xf8000450,
7254 (0_3, VREG, OPRND_SHIFT_0_BIT),
7255 (16_19, VREG, OPRND_SHIFT_0_BIT),
7256 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7257 CSKY_ISA_VDSP),
7258 OP32 ("vmula.s16",
7259 OPCODE_INFO3 (0xf8100450,
7260 (0_3, VREG, OPRND_SHIFT_0_BIT),
7261 (16_19, VREG, OPRND_SHIFT_0_BIT),
7262 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7263 CSKY_ISA_VDSP),
7264 OP32 ("vmula.s32",
7265 OPCODE_INFO3 (0xfa000450,
7266 (0_3, VREG, OPRND_SHIFT_0_BIT),
7267 (16_19, VREG, OPRND_SHIFT_0_BIT),
7268 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7269 CSKY_ISA_VDSP),
7270 OP32 ("vmula.eu8",
7271 OPCODE_INFO3 (0xf8000460,
7272 (0_3, VREG, OPRND_SHIFT_0_BIT),
7273 (16_19, VREG, OPRND_SHIFT_0_BIT),
7274 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7275 CSKY_ISA_VDSP),
7276 OP32 ("vmula.eu16",
7277 OPCODE_INFO3 (0xf8100460,
7278 (0_3, VREG, OPRND_SHIFT_0_BIT),
7279 (16_19, VREG, OPRND_SHIFT_0_BIT),
7280 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7281 CSKY_ISA_VDSP),
7282 OP32 ("vmula.eu32",
7283 OPCODE_INFO3 (0xfa000460,
7284 (0_3, VREG, OPRND_SHIFT_0_BIT),
7285 (16_19, VREG, OPRND_SHIFT_0_BIT),
7286 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7287 CSKY_ISA_VDSP),
7288 OP32 ("vmula.es8",
7289 OPCODE_INFO3 (0xf8000470,
7290 (0_3, VREG, OPRND_SHIFT_0_BIT),
7291 (16_19, VREG, OPRND_SHIFT_0_BIT),
7292 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7293 CSKY_ISA_VDSP),
7294 OP32 ("vmula.es16",
7295 OPCODE_INFO3 (0xf8100470,
7296 (0_3, VREG, OPRND_SHIFT_0_BIT),
7297 (16_19, VREG, OPRND_SHIFT_0_BIT),
7298 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7299 CSKY_ISA_VDSP),
7300 OP32 ("vmula.es32",
7301 OPCODE_INFO3 (0xfa000470,
7302 (0_3, VREG, OPRND_SHIFT_0_BIT),
7303 (16_19, VREG, OPRND_SHIFT_0_BIT),
7304 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7305 CSKY_ISA_VDSP),
7306 OP32 ("vmuls.u8",
7307 OPCODE_INFO3 (0xf8000480,
7308 (0_3, VREG, OPRND_SHIFT_0_BIT),
7309 (16_19, VREG, OPRND_SHIFT_0_BIT),
7310 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7311 CSKY_ISA_VDSP),
7312 OP32 ("vmuls.u16",
7313 OPCODE_INFO3 (0xf8100480,
7314 (0_3, VREG, OPRND_SHIFT_0_BIT),
7315 (16_19, VREG, OPRND_SHIFT_0_BIT),
7316 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7317 CSKY_ISA_VDSP),
7318 OP32 ("vmuls.u32",
7319 OPCODE_INFO3 (0xfa000480,
7320 (0_3, VREG, OPRND_SHIFT_0_BIT),
7321 (16_19, VREG, OPRND_SHIFT_0_BIT),
7322 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7323 CSKY_ISA_VDSP),
7324 OP32 ("vmuls.s8",
7325 OPCODE_INFO3 (0xf8000490,
7326 (0_3, VREG, OPRND_SHIFT_0_BIT),
7327 (16_19, VREG, OPRND_SHIFT_0_BIT),
7328 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7329 CSKY_ISA_VDSP),
7330 OP32 ("vmuls.s16",
7331 OPCODE_INFO3 (0xf8100490,
7332 (0_3, VREG, OPRND_SHIFT_0_BIT),
7333 (16_19, VREG, OPRND_SHIFT_0_BIT),
7334 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7335 CSKY_ISA_VDSP),
7336 OP32 ("vmuls.s32",
7337 OPCODE_INFO3 (0xfa000490,
7338 (0_3, VREG, OPRND_SHIFT_0_BIT),
7339 (16_19, VREG, OPRND_SHIFT_0_BIT),
7340 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7341 CSKY_ISA_VDSP),
7342 OP32 ("vmuls.eu8",
7343 OPCODE_INFO3 (0xf80004a0,
7344 (0_3, VREG, OPRND_SHIFT_0_BIT),
7345 (16_19, VREG, OPRND_SHIFT_0_BIT),
7346 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7347 CSKY_ISA_VDSP),
7348 OP32 ("vmuls.eu16",
7349 OPCODE_INFO3 (0xf81004a0,
7350 (0_3, VREG, OPRND_SHIFT_0_BIT),
7351 (16_19, VREG, OPRND_SHIFT_0_BIT),
7352 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7353 CSKY_ISA_VDSP),
7354 OP32 ("vmuls.es8",
7355 OPCODE_INFO3 (0xf80004b0,
7356 (0_3, VREG, OPRND_SHIFT_0_BIT),
7357 (16_19, VREG, OPRND_SHIFT_0_BIT),
7358 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7359 CSKY_ISA_VDSP),
7360 OP32 ("vmuls.es16",
7361 OPCODE_INFO3 (0xf81004b0,
7362 (0_3, VREG, OPRND_SHIFT_0_BIT),
7363 (16_19, VREG, OPRND_SHIFT_0_BIT),
7364 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7365 CSKY_ISA_VDSP),
7366 OP32 ("vshr.u8",
7367 OPCODE_INFO3 (0xf8000680,
7368 (0_3, VREG, OPRND_SHIFT_0_BIT),
7369 (16_19, VREG, OPRND_SHIFT_0_BIT),
7370 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7371 CSKY_ISA_VDSP),
7372 OP32 ("vshr.u16",
7373 OPCODE_INFO3 (0xf8100680,
7374 (0_3, VREG, OPRND_SHIFT_0_BIT),
7375 (16_19, VREG, OPRND_SHIFT_0_BIT),
7376 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7377 CSKY_ISA_VDSP),
7378 OP32 ("vshr.u32",
7379 OPCODE_INFO3 (0xfa000680,
7380 (0_3, VREG, OPRND_SHIFT_0_BIT),
7381 (16_19, VREG, OPRND_SHIFT_0_BIT),
7382 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7383 CSKY_ISA_VDSP),
7384 OP32 ("vshr.s8",
7385 OPCODE_INFO3 (0xf8000690,
7386 (0_3, VREG, OPRND_SHIFT_0_BIT),
7387 (16_19, VREG, OPRND_SHIFT_0_BIT),
7388 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7389 CSKY_ISA_VDSP),
7390 OP32 ("vshr.s16",
7391 OPCODE_INFO3 (0xf8100690,
7392 (0_3, VREG, OPRND_SHIFT_0_BIT),
7393 (16_19, VREG, OPRND_SHIFT_0_BIT),
7394 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7395 CSKY_ISA_VDSP),
7396 OP32 ("vshr.s32",
7397 OPCODE_INFO3 (0xfa000690,
7398 (0_3, VREG, OPRND_SHIFT_0_BIT),
7399 (16_19, VREG, OPRND_SHIFT_0_BIT),
7400 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7401 CSKY_ISA_VDSP),
7402 OP32 ("vshr.u8.r",
7403 OPCODE_INFO3 (0xf80006c0,
7404 (0_3, VREG, OPRND_SHIFT_0_BIT),
7405 (16_19, VREG, OPRND_SHIFT_0_BIT),
7406 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7407 CSKY_ISA_VDSP),
7408 OP32 ("vshr.u16.r",
7409 OPCODE_INFO3 (0xf81006c0,
7410 (0_3, VREG, OPRND_SHIFT_0_BIT),
7411 (16_19, VREG, OPRND_SHIFT_0_BIT),
7412 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7413 CSKY_ISA_VDSP),
7414 OP32 ("vshr.u32.r",
7415 OPCODE_INFO3 (0xfa0006c0,
7416 (0_3, VREG, OPRND_SHIFT_0_BIT),
7417 (16_19, VREG, OPRND_SHIFT_0_BIT),
7418 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7419 CSKY_ISA_VDSP),
7420 OP32 ("vshr.s8.r",
7421 OPCODE_INFO3 (0xf80006d0,
7422 (0_3, VREG, OPRND_SHIFT_0_BIT),
7423 (16_19, VREG, OPRND_SHIFT_0_BIT),
7424 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7425 CSKY_ISA_VDSP),
7426 OP32 ("vshr.s16.r",
7427 OPCODE_INFO3 (0xf81006d0,
7428 (0_3, VREG, OPRND_SHIFT_0_BIT),
7429 (16_19, VREG, OPRND_SHIFT_0_BIT),
7430 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7431 CSKY_ISA_VDSP),
7432 OP32 ("vshr.s32.r",
7433 OPCODE_INFO3 (0xfa0006d0,
7434 (0_3, VREG, OPRND_SHIFT_0_BIT),
7435 (16_19, VREG, OPRND_SHIFT_0_BIT),
7436 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7437 CSKY_ISA_VDSP),
7438 OP32 ("vshl.u8",
7439 OPCODE_INFO3 (0xf8000780,
7440 (0_3, VREG, OPRND_SHIFT_0_BIT),
7441 (16_19, VREG, OPRND_SHIFT_0_BIT),
7442 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7443 CSKY_ISA_VDSP),
7444 OP32 ("vshl.u16",
7445 OPCODE_INFO3 (0xf8100780,
7446 (0_3, VREG, OPRND_SHIFT_0_BIT),
7447 (16_19, VREG, OPRND_SHIFT_0_BIT),
7448 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7449 CSKY_ISA_VDSP),
7450 OP32 ("vshl.u32",
7451 OPCODE_INFO3 (0xfa000780,
7452 (0_3, VREG, OPRND_SHIFT_0_BIT),
7453 (16_19, VREG, OPRND_SHIFT_0_BIT),
7454 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7455 CSKY_ISA_VDSP),
7456 OP32 ("vshl.s8",
7457 OPCODE_INFO3 (0xf8000790,
7458 (0_3, VREG, OPRND_SHIFT_0_BIT),
7459 (16_19, VREG, OPRND_SHIFT_0_BIT),
7460 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7461 CSKY_ISA_VDSP),
7462 OP32 ("vshl.s16",
7463 OPCODE_INFO3 (0xf8100790,
7464 (0_3, VREG, OPRND_SHIFT_0_BIT),
7465 (16_19, VREG, OPRND_SHIFT_0_BIT),
7466 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7467 CSKY_ISA_VDSP),
7468 OP32 ("vshl.s32",
7469 OPCODE_INFO3 (0xfa000790,
7470 (0_3, VREG, OPRND_SHIFT_0_BIT),
7471 (16_19, VREG, OPRND_SHIFT_0_BIT),
7472 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7473 CSKY_ISA_VDSP),
7474 OP32 ("vshl.u8.s",
7475 OPCODE_INFO3 (0xf80007c0,
7476 (0_3, VREG, OPRND_SHIFT_0_BIT),
7477 (16_19, VREG, OPRND_SHIFT_0_BIT),
7478 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7479 CSKY_ISA_VDSP),
7480 OP32 ("vshl.u16.s",
7481 OPCODE_INFO3 (0xf81007c0,
7482 (0_3, VREG, OPRND_SHIFT_0_BIT),
7483 (16_19, VREG, OPRND_SHIFT_0_BIT),
7484 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7485 CSKY_ISA_VDSP),
7486 OP32 ("vshl.u32.s",
7487 OPCODE_INFO3 (0xfa0007c0,
7488 (0_3, VREG, OPRND_SHIFT_0_BIT),
7489 (16_19, VREG, OPRND_SHIFT_0_BIT),
7490 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7491 CSKY_ISA_VDSP),
7492 OP32 ("vshl.s8.s",
7493 OPCODE_INFO3 (0xf80007d0,
7494 (0_3, VREG, OPRND_SHIFT_0_BIT),
7495 (16_19, VREG, OPRND_SHIFT_0_BIT),
7496 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7497 CSKY_ISA_VDSP),
7498 OP32 ("vshl.s16.s",
7499 OPCODE_INFO3 (0xf81007d0,
7500 (0_3, VREG, OPRND_SHIFT_0_BIT),
7501 (16_19, VREG, OPRND_SHIFT_0_BIT),
7502 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7503 CSKY_ISA_VDSP),
7504 OP32 ("vshl.s32.s",
7505 OPCODE_INFO3 (0xfa0007d0,
7506 (0_3, VREG, OPRND_SHIFT_0_BIT),
7507 (16_19, VREG, OPRND_SHIFT_0_BIT),
7508 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7509 CSKY_ISA_VDSP),
7510 OP32 ("vcmphs.u8",
7511 OPCODE_INFO3 (0xf8000800,
7512 (0_3, VREG, OPRND_SHIFT_0_BIT),
7513 (16_19, VREG, OPRND_SHIFT_0_BIT),
7514 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7515 CSKY_ISA_VDSP),
7516 OP32 ("vcmphs.u16",
7517 OPCODE_INFO3 (0xf8100800,
7518 (0_3, VREG, OPRND_SHIFT_0_BIT),
7519 (16_19, VREG, OPRND_SHIFT_0_BIT),
7520 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7521 CSKY_ISA_VDSP),
7522 OP32 ("vcmphs.u32",
7523 OPCODE_INFO3 (0xfa000800,
7524 (0_3, VREG, OPRND_SHIFT_0_BIT),
7525 (16_19, VREG, OPRND_SHIFT_0_BIT),
7526 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7527 CSKY_ISA_VDSP),
7528 OP32 ("vcmphs.s8",
7529 OPCODE_INFO3 (0xf8000810,
7530 (0_3, VREG, OPRND_SHIFT_0_BIT),
7531 (16_19, VREG, OPRND_SHIFT_0_BIT),
7532 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7533 CSKY_ISA_VDSP),
7534 OP32 ("vcmphs.s16",
7535 OPCODE_INFO3 (0xf8100810,
7536 (0_3, VREG, OPRND_SHIFT_0_BIT),
7537 (16_19, VREG, OPRND_SHIFT_0_BIT),
7538 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7539 CSKY_ISA_VDSP),
7540 OP32 ("vcmphs.s32",
7541 OPCODE_INFO3 (0xfa000810,
7542 (0_3, VREG, OPRND_SHIFT_0_BIT),
7543 (16_19, VREG, OPRND_SHIFT_0_BIT),
7544 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7545 CSKY_ISA_VDSP),
7546 OP32 ("vcmplt.u8",
7547 OPCODE_INFO3 (0xf8000820,
7548 (0_3, VREG, OPRND_SHIFT_0_BIT),
7549 (16_19, VREG, OPRND_SHIFT_0_BIT),
7550 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7551 CSKY_ISA_VDSP),
7552 OP32 ("vcmplt.u16",
7553 OPCODE_INFO3 (0xf8100820,
7554 (0_3, VREG, OPRND_SHIFT_0_BIT),
7555 (16_19, VREG, OPRND_SHIFT_0_BIT),
7556 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7557 CSKY_ISA_VDSP),
7558 OP32 ("vcmplt.u32",
7559 OPCODE_INFO3 (0xfa000820,
7560 (0_3, VREG, OPRND_SHIFT_0_BIT),
7561 (16_19, VREG, OPRND_SHIFT_0_BIT),
7562 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7563 CSKY_ISA_VDSP),
7564 OP32 ("vcmplt.s8",
7565 OPCODE_INFO3 (0xf8000830,
7566 (0_3, VREG, OPRND_SHIFT_0_BIT),
7567 (16_19, VREG, OPRND_SHIFT_0_BIT),
7568 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7569 CSKY_ISA_VDSP),
7570 OP32 ("vcmplt.s16",
7571 OPCODE_INFO3 (0xf8100830,
7572 (0_3, VREG, OPRND_SHIFT_0_BIT),
7573 (16_19, VREG, OPRND_SHIFT_0_BIT),
7574 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7575 CSKY_ISA_VDSP),
7576 OP32 ("vcmplt.s32",
7577 OPCODE_INFO3 (0xfa000830,
7578 (0_3, VREG, OPRND_SHIFT_0_BIT),
7579 (16_19, VREG, OPRND_SHIFT_0_BIT),
7580 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7581 CSKY_ISA_VDSP),
7582 OP32 ("vcmpne.u8",
7583 OPCODE_INFO3 (0xf8000840,
7584 (0_3, VREG, OPRND_SHIFT_0_BIT),
7585 (16_19, VREG, OPRND_SHIFT_0_BIT),
7586 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7587 CSKY_ISA_VDSP),
7588 OP32 ("vcmpne.u16",
7589 OPCODE_INFO3 (0xf8100840,
7590 (0_3, VREG, OPRND_SHIFT_0_BIT),
7591 (16_19, VREG, OPRND_SHIFT_0_BIT),
7592 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7593 CSKY_ISA_VDSP),
7594 OP32 ("vcmpne.u32",
7595 OPCODE_INFO3 (0xfa000840,
7596 (0_3, VREG, OPRND_SHIFT_0_BIT),
7597 (16_19, VREG, OPRND_SHIFT_0_BIT),
7598 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7599 CSKY_ISA_VDSP),
7600 OP32 ("vcmpne.s8",
7601 OPCODE_INFO3 (0xf8000850,
7602 (0_3, VREG, OPRND_SHIFT_0_BIT),
7603 (16_19, VREG, OPRND_SHIFT_0_BIT),
7604 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7605 CSKY_ISA_VDSP),
7606 OP32 ("vcmpne.s16",
7607 OPCODE_INFO3 (0xf8100850,
7608 (0_3, VREG, OPRND_SHIFT_0_BIT),
7609 (16_19, VREG, OPRND_SHIFT_0_BIT),
7610 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7611 CSKY_ISA_VDSP),
7612 OP32 ("vcmpne.s32",
7613 OPCODE_INFO3 (0xfa000850,
7614 (0_3, VREG, OPRND_SHIFT_0_BIT),
7615 (16_19, VREG, OPRND_SHIFT_0_BIT),
7616 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7617 CSKY_ISA_VDSP),
7618 OP32 ("vmax.u8",
7619 OPCODE_INFO3 (0xf8000900,
7620 (0_3, VREG, OPRND_SHIFT_0_BIT),
7621 (16_19, VREG, OPRND_SHIFT_0_BIT),
7622 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7623 CSKY_ISA_VDSP),
7624 OP32 ("vmax.u16",
7625 OPCODE_INFO3 (0xf8100900,
7626 (0_3, VREG, OPRND_SHIFT_0_BIT),
7627 (16_19, VREG, OPRND_SHIFT_0_BIT),
7628 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7629 CSKY_ISA_VDSP),
7630 OP32 ("vmax.u32",
7631 OPCODE_INFO3 (0xfa000900,
7632 (0_3, VREG, OPRND_SHIFT_0_BIT),
7633 (16_19, VREG, OPRND_SHIFT_0_BIT),
7634 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7635 CSKY_ISA_VDSP),
7636 OP32 ("vmax.s8",
7637 OPCODE_INFO3 (0xf8000910,
7638 (0_3, VREG, OPRND_SHIFT_0_BIT),
7639 (16_19, VREG, OPRND_SHIFT_0_BIT),
7640 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7641 CSKY_ISA_VDSP),
7642 OP32 ("vmax.s16",
7643 OPCODE_INFO3 (0xf8100910,
7644 (0_3, VREG, OPRND_SHIFT_0_BIT),
7645 (16_19, VREG, OPRND_SHIFT_0_BIT),
7646 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7647 CSKY_ISA_VDSP),
7648 OP32 ("vmax.s32",
7649 OPCODE_INFO3 (0xfa000910,
7650 (0_3, VREG, OPRND_SHIFT_0_BIT),
7651 (16_19, VREG, OPRND_SHIFT_0_BIT),
7652 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7653 CSKY_ISA_VDSP),
7654 OP32 ("vmin.u8",
7655 OPCODE_INFO3 (0xf8000920,
7656 (0_3, VREG, OPRND_SHIFT_0_BIT),
7657 (16_19, VREG, OPRND_SHIFT_0_BIT),
7658 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7659 CSKY_ISA_VDSP),
7660 OP32 ("vmin.u16",
7661 OPCODE_INFO3 (0xf8100920,
7662 (0_3, VREG, OPRND_SHIFT_0_BIT),
7663 (16_19, VREG, OPRND_SHIFT_0_BIT),
7664 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7665 CSKY_ISA_VDSP),
7666 OP32 ("vmin.u32",
7667 OPCODE_INFO3 (0xfa000920,
7668 (0_3, VREG, OPRND_SHIFT_0_BIT),
7669 (16_19, VREG, OPRND_SHIFT_0_BIT),
7670 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7671 CSKY_ISA_VDSP),
7672 OP32 ("vmin.s8",
7673 OPCODE_INFO3 (0xf8000930,
7674 (0_3, VREG, OPRND_SHIFT_0_BIT),
7675 (16_19, VREG, OPRND_SHIFT_0_BIT),
7676 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7677 CSKY_ISA_VDSP),
7678 OP32 ("vmin.s16",
7679 OPCODE_INFO3 (0xf8100930,
7680 (0_3, VREG, OPRND_SHIFT_0_BIT),
7681 (16_19, VREG, OPRND_SHIFT_0_BIT),
7682 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7683 CSKY_ISA_VDSP),
7684 OP32 ("vmin.s32",
7685 OPCODE_INFO3 (0xfa000930,
7686 (0_3, VREG, OPRND_SHIFT_0_BIT),
7687 (16_19, VREG, OPRND_SHIFT_0_BIT),
7688 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7689 CSKY_ISA_VDSP),
7690 OP32 ("vcmax.u8",
7691 OPCODE_INFO3 (0xf8000980,
7692 (0_3, VREG, OPRND_SHIFT_0_BIT),
7693 (16_19, VREG, OPRND_SHIFT_0_BIT),
7694 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7695 CSKY_ISA_VDSP),
7696 OP32 ("vcmax.u16",
7697 OPCODE_INFO3 (0xf8100980,
7698 (0_3, VREG, OPRND_SHIFT_0_BIT),
7699 (16_19, VREG, OPRND_SHIFT_0_BIT),
7700 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7701 CSKY_ISA_VDSP),
7702 OP32 ("vcmax.u32",
7703 OPCODE_INFO3 (0xfa000980,
7704 (0_3, VREG, OPRND_SHIFT_0_BIT),
7705 (16_19, VREG, OPRND_SHIFT_0_BIT),
7706 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7707 CSKY_ISA_VDSP),
7708 OP32 ("vcmax.s8",
7709 OPCODE_INFO3 (0xf8000990,
7710 (0_3, VREG, OPRND_SHIFT_0_BIT),
7711 (16_19, VREG, OPRND_SHIFT_0_BIT),
7712 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7713 CSKY_ISA_VDSP),
7714 OP32 ("vcmax.s16",
7715 OPCODE_INFO3 (0xf8100990,
7716 (0_3, VREG, OPRND_SHIFT_0_BIT),
7717 (16_19, VREG, OPRND_SHIFT_0_BIT),
7718 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7719 CSKY_ISA_VDSP),
7720 OP32 ("vcmax.s32",
7721 OPCODE_INFO3 (0xfa000990,
7722 (0_3, VREG, OPRND_SHIFT_0_BIT),
7723 (16_19, VREG, OPRND_SHIFT_0_BIT),
7724 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7725 CSKY_ISA_VDSP),
7726 OP32 ("vcmin.u8",
7727 OPCODE_INFO3 (0xf80009a0,
7728 (0_3, VREG, OPRND_SHIFT_0_BIT),
7729 (16_19, VREG, OPRND_SHIFT_0_BIT),
7730 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7731 CSKY_ISA_VDSP),
7732 OP32 ("vcmin.u16",
7733 OPCODE_INFO3 (0xf81009a0,
7734 (0_3, VREG, OPRND_SHIFT_0_BIT),
7735 (16_19, VREG, OPRND_SHIFT_0_BIT),
7736 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7737 CSKY_ISA_VDSP),
7738 OP32 ("vcmin.u32",
7739 OPCODE_INFO3 (0xfa0009a0,
7740 (0_3, VREG, OPRND_SHIFT_0_BIT),
7741 (16_19, VREG, OPRND_SHIFT_0_BIT),
7742 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7743 CSKY_ISA_VDSP),
7744 OP32 ("vcmin.s8",
7745 OPCODE_INFO3 (0xf80009b0,
7746 (0_3, VREG, OPRND_SHIFT_0_BIT),
7747 (16_19, VREG, OPRND_SHIFT_0_BIT),
7748 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7749 CSKY_ISA_VDSP),
7750 OP32 ("vcmin.s16",
7751 OPCODE_INFO3 (0xf81009b0,
7752 (0_3, VREG, OPRND_SHIFT_0_BIT),
7753 (16_19, VREG, OPRND_SHIFT_0_BIT),
7754 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7755 CSKY_ISA_VDSP),
7756 OP32 ("vcmin.s32",
7757 OPCODE_INFO3 (0xfa0009b0,
7758 (0_3, VREG, OPRND_SHIFT_0_BIT),
7759 (16_19, VREG, OPRND_SHIFT_0_BIT),
7760 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7761 CSKY_ISA_VDSP),
7762 OP32 ("vand.8",
7763 OPCODE_INFO3 (0xf8000a00,
7764 (0_3, VREG, OPRND_SHIFT_0_BIT),
7765 (16_19, VREG, OPRND_SHIFT_0_BIT),
7766 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7767 CSKY_ISA_VDSP),
7768 OP32 ("vand.16",
7769 OPCODE_INFO3 (0xf8100a00,
7770 (0_3, VREG, OPRND_SHIFT_0_BIT),
7771 (16_19, VREG, OPRND_SHIFT_0_BIT),
7772 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7773 CSKY_ISA_VDSP),
7774 OP32 ("vand.32",
7775 OPCODE_INFO3 (0xfa000a00,
7776 (0_3, VREG, OPRND_SHIFT_0_BIT),
7777 (16_19, VREG, OPRND_SHIFT_0_BIT),
7778 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7779 CSKY_ISA_VDSP),
7780 OP32 ("vandn.8",
7781 OPCODE_INFO3 (0xf8000a20,
7782 (0_3, VREG, OPRND_SHIFT_0_BIT),
7783 (16_19, VREG, OPRND_SHIFT_0_BIT),
7784 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7785 CSKY_ISA_VDSP),
7786 OP32 ("vandn.16",
7787 OPCODE_INFO3 (0xf8100a20,
7788 (0_3, VREG, OPRND_SHIFT_0_BIT),
7789 (16_19, VREG, OPRND_SHIFT_0_BIT),
7790 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7791 CSKY_ISA_VDSP),
7792 OP32 ("vandn.32",
7793 OPCODE_INFO3 (0xfa000a20,
7794 (0_3, VREG, OPRND_SHIFT_0_BIT),
7795 (16_19, VREG, OPRND_SHIFT_0_BIT),
7796 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7797 CSKY_ISA_VDSP),
7798 OP32 ("vor.8",
7799 OPCODE_INFO3 (0xf8000a40,
7800 (0_3, VREG, OPRND_SHIFT_0_BIT),
7801 (16_19, VREG, OPRND_SHIFT_0_BIT),
7802 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7803 CSKY_ISA_VDSP),
7804 OP32 ("vor.16",
7805 OPCODE_INFO3 (0xf8100a40,
7806 (0_3, VREG, OPRND_SHIFT_0_BIT),
7807 (16_19, VREG, OPRND_SHIFT_0_BIT),
7808 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7809 CSKY_ISA_VDSP),
7810 OP32 ("vor.32",
7811 OPCODE_INFO3 (0xfa000a40,
7812 (0_3, VREG, OPRND_SHIFT_0_BIT),
7813 (16_19, VREG, OPRND_SHIFT_0_BIT),
7814 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7815 CSKY_ISA_VDSP),
7816 OP32 ("vnor.8",
7817 OPCODE_INFO3 (0xf8000a60,
7818 (0_3, VREG, OPRND_SHIFT_0_BIT),
7819 (16_19, VREG, OPRND_SHIFT_0_BIT),
7820 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7821 CSKY_ISA_VDSP),
7822 OP32 ("vnor.16",
7823 OPCODE_INFO3 (0xf8100a60,
7824 (0_3, VREG, OPRND_SHIFT_0_BIT),
7825 (16_19, VREG, OPRND_SHIFT_0_BIT),
7826 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7827 CSKY_ISA_VDSP),
7828 OP32 ("vnor.32",
7829 OPCODE_INFO3 (0xfa000a60,
7830 (0_3, VREG, OPRND_SHIFT_0_BIT),
7831 (16_19, VREG, OPRND_SHIFT_0_BIT),
7832 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7833 CSKY_ISA_VDSP),
7834 OP32 ("vxor.8",
7835 OPCODE_INFO3 (0xf8000a80,
7836 (0_3, VREG, OPRND_SHIFT_0_BIT),
7837 (16_19, VREG, OPRND_SHIFT_0_BIT),
7838 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7839 CSKY_ISA_VDSP),
7840 OP32 ("vxor.16",
7841 OPCODE_INFO3 (0xf8100a80,
7842 (0_3, VREG, OPRND_SHIFT_0_BIT),
7843 (16_19, VREG, OPRND_SHIFT_0_BIT),
7844 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7845 CSKY_ISA_VDSP),
7846 OP32 ("vxor.32",
7847 OPCODE_INFO3 (0xfa000a80,
7848 (0_3, VREG, OPRND_SHIFT_0_BIT),
7849 (16_19, VREG, OPRND_SHIFT_0_BIT),
7850 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7851 CSKY_ISA_VDSP),
7852 OP32 ("vtst.8",
7853 OPCODE_INFO3 (0xf8000b20,
7854 (0_3, VREG, OPRND_SHIFT_0_BIT),
7855 (16_19, VREG, OPRND_SHIFT_0_BIT),
7856 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7857 CSKY_ISA_VDSP),
7858 OP32 ("vtst.16",
7859 OPCODE_INFO3 (0xf8100b20,
7860 (0_3, VREG, OPRND_SHIFT_0_BIT),
7861 (16_19, VREG, OPRND_SHIFT_0_BIT),
7862 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7863 CSKY_ISA_VDSP),
7864 OP32 ("vtst.32",
7865 OPCODE_INFO3 (0xfa000b20,
7866 (0_3, VREG, OPRND_SHIFT_0_BIT),
7867 (16_19, VREG, OPRND_SHIFT_0_BIT),
7868 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7869 CSKY_ISA_VDSP),
7870 OP32 ("vbpermz.8",
7871 OPCODE_INFO3 (0xf8000f00,
7872 (0_3, VREG, OPRND_SHIFT_0_BIT),
7873 (16_19, VREG, OPRND_SHIFT_0_BIT),
7874 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7875 CSKY_ISA_VDSP),
7876 OP32 ("vbpermz.16",
7877 OPCODE_INFO3 (0xf8100f00,
7878 (0_3, VREG, OPRND_SHIFT_0_BIT),
7879 (16_19, VREG, OPRND_SHIFT_0_BIT),
7880 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7881 CSKY_ISA_VDSP),
7882 OP32 ("vbpermz.32",
7883 OPCODE_INFO3 (0xfa000f00,
7884 (0_3, VREG, OPRND_SHIFT_0_BIT),
7885 (16_19, VREG, OPRND_SHIFT_0_BIT),
7886 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7887 CSKY_ISA_VDSP),
7888 OP32 ("vbperm.8",
7889 OPCODE_INFO3 (0xf8000f20,
7890 (0_3, VREG, OPRND_SHIFT_0_BIT),
7891 (16_19, VREG, OPRND_SHIFT_0_BIT),
7892 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7893 CSKY_ISA_VDSP),
7894 OP32 ("vbperm.16",
7895 OPCODE_INFO3 (0xf8100f20,
7896 (0_3, VREG, OPRND_SHIFT_0_BIT),
7897 (16_19, VREG, OPRND_SHIFT_0_BIT),
7898 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7899 CSKY_ISA_VDSP),
7900 OP32 ("vbperm.32",
7901 OPCODE_INFO3 (0xfa000f20,
7902 (0_3, VREG, OPRND_SHIFT_0_BIT),
7903 (16_19, VREG, OPRND_SHIFT_0_BIT),
7904 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7905 CSKY_ISA_VDSP),
7906 OP32 ("vdch.8",
7907 OPCODE_INFO3 (0xf8000fc0,
7908 (0_3, VREG, OPRND_SHIFT_0_BIT),
7909 (16_19, VREG, OPRND_SHIFT_0_BIT),
7910 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7911 CSKY_ISA_VDSP),
7912 OP32 ("vdch.16",
7913 OPCODE_INFO3 (0xf8100fc0,
7914 (0_3, VREG, OPRND_SHIFT_0_BIT),
7915 (16_19, VREG, OPRND_SHIFT_0_BIT),
7916 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7917 CSKY_ISA_VDSP),
7918 OP32 ("vdch.32",
7919 OPCODE_INFO3 (0xfa000fc0,
7920 (0_3, VREG, OPRND_SHIFT_0_BIT),
7921 (16_19, VREG, OPRND_SHIFT_0_BIT),
7922 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7923 CSKY_ISA_VDSP),
7924 OP32 ("vdcl.8",
7925 OPCODE_INFO3 (0xf8000fe0,
7926 (0_3, VREG, OPRND_SHIFT_0_BIT),
7927 (16_19, VREG, OPRND_SHIFT_0_BIT),
7928 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7929 CSKY_ISA_VDSP),
7930 OP32 ("vdcl.16",
7931 OPCODE_INFO3 (0xf8100fe0,
7932 (0_3, VREG, OPRND_SHIFT_0_BIT),
7933 (16_19, VREG, OPRND_SHIFT_0_BIT),
7934 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7935 CSKY_ISA_VDSP),
7936 OP32 ("vdcl.32",
7937 OPCODE_INFO3 (0xfa000fe0,
7938 (0_3, VREG, OPRND_SHIFT_0_BIT),
7939 (16_19, VREG, OPRND_SHIFT_0_BIT),
7940 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7941 CSKY_ISA_VDSP),
7942 OP32 ("vich.8",
7943 OPCODE_INFO3 (0xf8000f80,
7944 (0_3, VREG, OPRND_SHIFT_0_BIT),
7945 (16_19, VREG, OPRND_SHIFT_0_BIT),
7946 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7947 CSKY_ISA_VDSP),
7948 OP32 ("vich.16",
7949 OPCODE_INFO3 (0xf8100f80,
7950 (0_3, VREG, OPRND_SHIFT_0_BIT),
7951 (16_19, VREG, OPRND_SHIFT_0_BIT),
7952 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7953 CSKY_ISA_VDSP),
7954 OP32 ("vich.32",
7955 OPCODE_INFO3 (0xfa000f80,
7956 (0_3, VREG, OPRND_SHIFT_0_BIT),
7957 (16_19, VREG, OPRND_SHIFT_0_BIT),
7958 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7959 CSKY_ISA_VDSP),
7960 OP32 ("vicl.8",
7961 OPCODE_INFO3 (0xf8000fa0,
7962 (0_3, VREG, OPRND_SHIFT_0_BIT),
7963 (16_19, VREG, OPRND_SHIFT_0_BIT),
7964 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7965 CSKY_ISA_VDSP),
7966 OP32 ("vicl.16",
7967 OPCODE_INFO3 (0xf8100fa0,
7968 (0_3, VREG, OPRND_SHIFT_0_BIT),
7969 (16_19, VREG, OPRND_SHIFT_0_BIT),
7970 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7971 CSKY_ISA_VDSP),
7972 OP32 ("vicl.32",
7973 OPCODE_INFO3 (0xfa000fa0,
7974 (0_3, VREG, OPRND_SHIFT_0_BIT),
7975 (16_19, VREG, OPRND_SHIFT_0_BIT),
7976 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7977 CSKY_ISA_VDSP),
7978
7979 /* The following are aliases for other instructions. */
7980 /* setc -> cmphs r0, r0 */
7981 OP16 ("setc",
7982 OPCODE_INFO0 (0x6400),
7983 CSKYV2_ISA_E1),
7984 /* clrc -> cmpne r0, r0 */
7985 OP16 ("clrc",
7986 OPCODE_INFO0 (0x6402),
7987 CSKYV2_ISA_E1),
7988 /* tstlt rd -> btsti rd,31 */
7989 OP32 ("tstlt",
7990 OPCODE_INFO1 (0xc7e02880,
7991 (16_20, AREG, OPRND_SHIFT_0_BIT)),
7992 CSKYV2_ISA_1E2),
7993 /* idly4 -> idly 4 */
7994 OP32 ("idly4",
7995 OPCODE_INFO0 (0xc0601c20),
7996 CSKYV2_ISA_E1),
7997 /* rsub rz, ry, rx -> subu rz, rx, ry */
7998 DOP32 ("rsub",
7999 OPCODE_INFO3 (0xc4000080,
8000 (0_4, AREG, OPRND_SHIFT_0_BIT),
8001 (21_25, AREG, OPRND_SHIFT_0_BIT),
8002 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8003 OPCODE_INFO2 (0xc4000080,
8004 (0_4or21_25, DUP_AREG, OPRND_SHIFT_0_BIT),
8005 (16_20, AREG, OPRND_SHIFT_0_BIT)), CSKYV2_ISA_1E2),
8006 /* cmplei rd,X -> cmplti rd,X+1 */
8007 OP16_OP32 ("cmplei",
8008 OPCODE_INFO2 (0x3820,
8009 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
8010 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
8011 CSKYV2_ISA_E1,
8012 OPCODE_INFO2 (0xeb200000,
8013 (16_20, AREG, OPRND_SHIFT_0_BIT),
8014 (0_15, IMM16b, OPRND_SHIFT_0_BIT)),
8015 CSKYV2_ISA_1E2),
8016 /* cmpls -> cmphs */
8017 OP16_OP32 ("cmpls",
8018 OPCODE_INFO2 (0x6400,
8019 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
8020 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
8021 CSKYV2_ISA_E1,
8022 OPCODE_INFO2 (0xc4000420,
8023 (21_25, AREG, OPRND_SHIFT_0_BIT),
8024 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8025 CSKYV2_ISA_2E3),
8026 /* cmpgt -> cmplt */
8027 OP16_OP32 ("cmpgt",
8028 OPCODE_INFO2 (0x6401,
8029 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
8030 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
8031 CSKYV2_ISA_E1,
8032 OPCODE_INFO2 (0xc4000440,
8033 (21_25, AREG, OPRND_SHIFT_0_BIT),
8034 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8035 CSKYV2_ISA_2E3),
8036 /* tstle rd -> cmplti rd,1 */
8037 OP16_OP32 ("tstle",
8038 OPCODE_INFO1 (0x3820,
8039 (8_10, GREG0_7, OPRND_SHIFT_0_BIT)),
8040 CSKYV2_ISA_E1,
8041 OPCODE_INFO1 (0xeb200000,
8042 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8043 CSKYV2_ISA_1E2),
8044 /* tstne rd -> cmpnei rd,0 */
8045 OP16_OP32 ("tstne",
8046 OPCODE_INFO1 (0x3840,
8047 (8_10, GREG0_7, OPRND_SHIFT_0_BIT)),
8048 CSKYV2_ISA_E1,
8049 OPCODE_INFO1 (0xeb400000,
8050 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8051 CSKYV2_ISA_1E2),
8052 /* rotri rz, rx, imm5 -> rotli rz, rx, 32-imm5 */
8053 DOP32 ("rotri",
8054 OPCODE_INFO3 (0xc4004900,
8055 (0_4, AREG, OPRND_SHIFT_0_BIT),
8056 (16_20, AREG, OPRND_SHIFT_0_BIT),
8057 (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
8058 OPCODE_INFO2 (0xc4004900,
8059 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
8060 (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
8061 CSKYV2_ISA_2E3),
8062 DOP32 ("rori",
8063 OPCODE_INFO3 (0xc4004900,
8064 (0_4, AREG, OPRND_SHIFT_0_BIT),
8065 (16_20, AREG, OPRND_SHIFT_0_BIT),
8066 (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
8067 OPCODE_INFO2 (0xc4004900,
8068 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
8069 (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
8070 CSKYV2_ISA_2E3),
8071
8072 /* rotlc rd -> addc rd, rd/ addc rd, rd, rd */
8073 OP16_OP32_WITH_WORK ("rotlc",
8074 OPCODE_INFO2 (0x6001,
8075 (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
8076 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
8077 CSKYV2_ISA_E1,
8078 OPCODE_INFO2 (0xc4000040,
8079 (NONE, AREG, OPRND_SHIFT_0_BIT),
8080 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
8081 CSKYV2_ISA_2E3,
8082 v2_work_rotlc),
8083 /* not rd -> nor rd, rd, not rz, rx -> nor rz, rx, rx */
8084 OP16_OP32_WITH_WORK ("not",
8085 OPCODE_INFO1 (0x6c02,
8086 (NONE, AREG, OPRND_SHIFT_0_BIT)),
8087 CSKYV2_ISA_E1,
8088 OPCODE_INFO2 (0xc4002480,
8089 (NONE, AREG, OPRND_SHIFT_0_BIT),
8090 (NONE, AREG, OPRND_SHIFT_0_BIT)),
8091 CSKYV2_ISA_E1, v2_work_not),
8092
8093 /* Special force 32 bits instruction. */
8094 OP32 ("xtrb0.32",
8095 OPCODE_INFO2 (0xc4007020,
8096 (0_4, AREG, OPRND_SHIFT_0_BIT),
8097 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8098 CSKYV2_ISA_1E2),
8099 OP32 ("xtrb1.32",
8100 OPCODE_INFO2 (0xc4007040,
8101 (0_4, AREG, OPRND_SHIFT_0_BIT),
8102 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8103 CSKYV2_ISA_1E2),
8104 OP32 ("xtrb2.32",
8105 OPCODE_INFO2 (0xc4007080,
8106 (0_4, AREG, OPRND_SHIFT_0_BIT),
8107 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8108 CSKYV2_ISA_1E2),
8109 OP32 ("xtrb3.32",
8110 OPCODE_INFO2 (0xc4007100,
8111 (0_4, AREG, OPRND_SHIFT_0_BIT),
8112 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8113 CSKYV2_ISA_1E2),
8114 OP32 ("ff0.32",
8115 OPCODE_INFO2 (0xc4007c20,
8116 (0_4, AREG, OPRND_SHIFT_0_BIT),
8117 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8118 CSKYV2_ISA_1E2),
8119 DOP32 ("ff1.32",
8120 OPCODE_INFO2 (0xc4007c40,
8121 (0_4, AREG, OPRND_SHIFT_0_BIT),
8122 (16_20, AREG, OPRND_SHIFT_0_BIT)),
8123 OPCODE_INFO1 (0xc4007c40,
8124 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
8125 CSKYV2_ISA_1E2),
8126 {NULL, 0, {}, {}, 0, 0, 0, 0, 0, NULL}
8127 };