]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - opcodes/csky-opc.h
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / opcodes / csky-opc.h
CommitLineData
b8891f8d 1/* Declarations for C-SKY opcode table
a2c58332 2 Copyright (C) 2007-2022 Free Software Foundation, Inc.
b8891f8d
AJ
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"
afdcafe8 23#include "safe-ctype.h"
b8891f8d
AJ
24
25#define OP_TABLE_NUM 2
0c0577f6 26#define MAX_OPRND_NUM 5
b8891f8d
AJ
27
28enum operand_type
29{
30 OPRND_TYPE_NONE = 0,
31 /* Control register. */
32 OPRND_TYPE_CTRLREG,
33 /* r0 - r7. */
34 OPRND_TYPE_GREG0_7,
35 /* r0 - r15. */
36 OPRND_TYPE_GREG0_15,
37 /* r16 - r31. */
38 OPRND_TYPE_GREG16_31,
39 /* r0 - r31. */
40 OPRND_TYPE_AREG,
41 /* (rx). */
42 OPRND_TYPE_AREG_WITH_BRACKET,
43 OPRND_TYPE_AREG_WITH_LSHIFT,
44 OPRND_TYPE_AREG_WITH_LSHIFT_FPU,
45
46 OPRND_TYPE_FREG_WITH_INDEX,
039dac29 47 OPRND_TYPE_VREG_WITH_INDEX,
b8891f8d
AJ
48 /* r1 only, for xtrb0(1)(2)(3) in csky v1 ISA. */
49 OPRND_TYPE_REG_r1a,
50 /* r1 only, for divs/divu in csky v1 ISA. */
51 OPRND_TYPE_REG_r1b,
52 /* r28. */
53 OPRND_TYPE_REG_r28,
54 OPRND_TYPE_REGr4_r7,
55 /* sp register with bracket. */
56 OPRND_TYPE_REGbsp,
57 /* sp register. */
58 OPRND_TYPE_REGsp,
59 /* Register with bracket. */
60 OPRND_TYPE_REGnr4_r7,
61 /* Not sp register. */
62 OPRND_TYPE_REGnsp,
63 /* Not lr register. */
64 OPRND_TYPE_REGnlr,
65 /* Not sp/lr register. */
66 OPRND_TYPE_REGnsplr,
67 /* hi/lo register. */
68 OPRND_TYPE_REGhilo,
69 /* VDSP register. */
70 OPRND_TYPE_VREG,
71
72 /* cp index. */
73 OPRND_TYPE_CPIDX,
74 /* cp regs. */
75 OPRND_TYPE_CPREG,
76 /* cp cregs. */
77 OPRND_TYPE_CPCREG,
78 /* fpu regs. */
79 OPRND_TYPE_FREG,
80 /* fpu even regs. */
81 OPRND_TYPE_FEREG,
82 /* Float round mode. */
83 OPRND_TYPE_RM,
84 /* PSR bits. */
85 OPRND_TYPE_PSR_BITS_LIST,
86
87 /* Constant. */
88 OPRND_TYPE_CONSTANT,
89 /* Floating Constant. */
90 OPRND_TYPE_FCONSTANT,
91 /* Extern lrw constant. */
92 OPRND_TYPE_ELRW_CONSTANT,
93 /* [label]. */
94 OPRND_TYPE_LABEL_WITH_BRACKET,
95 /* The operand is the same as first reg. It is a dummy reg that doesn't
96 appear in the binary code of the instruction. It is also used by
97 the disassembler.
98 For example: bclri rz, rz, imm5 -> bclri rz, imm5. */
99 OPRND_TYPE_DUMMY_REG,
100 /* The type of the operand is same as the first operand. If the value
101 of the operand is same as the first operand, we can use a 16-bit
102 instruction to represent the opcode.
103 For example: addc r1, r1, r2 -> addc16 r1, r2. */
104 OPRND_TYPE_2IN1_DUMMY,
105 /* Output a reg same as the first reg.
106 For example: addc r17, r1 -> addc32 r17, r17, r1.
107 The old "addc" cannot be represented by a 16-bit instruction because
108 16-bit "addc" only supports regs from r0 to r15. So we use "addc32"
109 which has 3 operands, and duplicate the first operand to the second. */
110 OPRND_TYPE_DUP_GREG0_7,
111 OPRND_TYPE_DUP_GREG0_15,
112 OPRND_TYPE_DUP_AREG,
113 /* Immediate. */
114 OPRND_TYPE_IMM1b,
115 OPRND_TYPE_IMM2b,
116 OPRND_TYPE_IMM3b,
117 OPRND_TYPE_IMM4b,
118 OPRND_TYPE_IMM5b,
119 OPRND_TYPE_IMM7b,
120 OPRND_TYPE_IMM8b,
1feede9b 121 OPRND_TYPE_IMM9b,
b8891f8d
AJ
122 OPRND_TYPE_IMM12b,
123 OPRND_TYPE_IMM15b,
124 OPRND_TYPE_IMM16b,
125 OPRND_TYPE_IMM18b,
126 OPRND_TYPE_IMM32b,
127 /* Immediate left shift 2 bits. */
128 OPRND_TYPE_IMM7b_LS2,
129 OPRND_TYPE_IMM8b_LS2,
130 /* OPRND_TYPE_IMM5b_a_b means: Immediate in (a, b). */
131 OPRND_TYPE_IMM5b_1_31,
132 OPRND_TYPE_IMM5b_7_31,
afdcafe8
CQ
133 /* OPRND_TYPE_IMM5b_LS means: Imm <= prev Imm. */
134 OPRND_TYPE_IMM5b_LS,
b8891f8d
AJ
135 /* Operand type for rori and rotri. */
136 OPRND_TYPE_IMM5b_RORI,
039dac29 137 OPRND_TYPE_IMM5b_VSH,
b8891f8d
AJ
138 OPRND_TYPE_IMM5b_POWER,
139 OPRND_TYPE_IMM5b_7_31_POWER,
140 OPRND_TYPE_IMM5b_BMASKI,
141 OPRND_TYPE_IMM8b_BMASKI,
142 /* For v2 movih. */
143 OPRND_TYPE_IMM16b_MOVIH,
144 /* For v2 ori. */
145 OPRND_TYPE_IMM16b_ORI,
146 /* For v2 ld/st. */
147 OPRND_TYPE_IMM_LDST,
148 OPRND_TYPE_IMM_FLDST,
149 OPRND_TYPE_IMM2b_JMPIX,
150 /* Offset for bloop. */
151 OPRND_TYPE_BLOOP_OFF4b,
152 OPRND_TYPE_BLOOP_OFF12b,
153 /* Offset for jump. */
154 OPRND_TYPE_OFF8b,
155 OPRND_TYPE_OFF10b,
156 OPRND_TYPE_OFF11b,
157 OPRND_TYPE_OFF16b,
158 OPRND_TYPE_OFF16b_LSL1,
159 OPRND_TYPE_OFF26b,
160 /* An immediate or label. */
161 OPRND_TYPE_IMM_OFF18b,
162 /* Offset immediate. */
163 OPRND_TYPE_OIMM3b,
164 OPRND_TYPE_OIMM4b,
165 OPRND_TYPE_OIMM5b,
166 OPRND_TYPE_OIMM8b,
167 OPRND_TYPE_OIMM12b,
168 OPRND_TYPE_OIMM16b,
169 OPRND_TYPE_OIMM18b,
170 /* For csky v2 idly. */
171 OPRND_TYPE_OIMM5b_IDLY,
172 /* For v2 bmaski. */
173 OPRND_TYPE_OIMM5b_BMASKI,
174 /* Constants. */
175 OPRND_TYPE_CONST1,
176 /* PC relative offset. */
177 OPRND_TYPE_PCR_OFFSET_16K,
178 OPRND_TYPE_PCR_OFFSET_64K,
179 OPRND_TYPE_PCR_OFFSET_64M,
180 OPRND_TYPE_CPFUNC,
181 OPRND_TYPE_GOT_PLT,
182 OPRND_TYPE_REGLIST_LDM,
183 OPRND_TYPE_REGLIST_DASH,
184 OPRND_TYPE_FREGLIST_DASH,
185 OPRND_TYPE_REGLIST_COMMA,
186 OPRND_TYPE_REGLIST_DASH_COMMA,
187 OPRND_TYPE_BRACKET,
188 OPRND_TYPE_ABRACKET,
189 OPRND_TYPE_JBTF,
190 OPRND_TYPE_JBR,
191 OPRND_TYPE_JBSR,
192 OPRND_TYPE_UNCOND10b,
193 OPRND_TYPE_UNCOND16b,
194 OPRND_TYPE_COND10b,
195 OPRND_TYPE_COND16b,
196 OPRND_TYPE_JCOMPZ,
197 OPRND_TYPE_LSB2SIZE,
198 OPRND_TYPE_MSB2SIZE,
199 OPRND_TYPE_LSB,
200 OPRND_TYPE_MSB,
201 /* Single float and double float. */
202 OPRND_TYPE_SFLOAT,
203 OPRND_TYPE_DFLOAT,
1feede9b
CQ
204 OPRND_TYPE_HFLOAT_FMOVI,
205 OPRND_TYPE_SFLOAT_FMOVI,
206 OPRND_TYPE_DFLOAT_FMOVI,
b8891f8d
AJ
207};
208
209/* Operand descriptors. */
210struct operand
211{
212 /* Mask for suboperand. */
213 unsigned int mask;
214 /* Suboperand type. */
215 enum operand_type type;
216 /* Operand shift. */
217 int shift;
218};
219
220struct soperand
221{
222 /* Mask for operand. */
223 unsigned int mask;
224 /* Operand type. */
225 enum operand_type type;
226 /* Operand shift. */
227 int shift;
228 /* Suboperand. */
229 struct operand subs[3];
230};
231
232union csky_operand
233{
0c0577f6 234 struct operand oprnds[MAX_OPRND_NUM];
b8891f8d
AJ
235 struct suboperand1
236 {
237 struct operand oprnd;
238 struct soperand soprnd;
239 } soprnd1;
240 struct suboperand2
241 {
242 struct soperand soprnd;
243 struct operand oprnd;
244 } soprnd2;
245};
246
247/* Describe a single instruction encoding. */
248struct csky_opcode_info
249{
250 /* How many operands. */
251 long operand_num;
252 /* The instruction opcode. */
253 unsigned int opcode;
254 /* Operand information. */
255 union csky_operand oprnd;
256};
257
258/* C-SKY instruction description. Each mnemonic can have multiple
259 16-bit and 32-bit encodings. */
260struct csky_opcode
261{
262 /* The instruction name. */
263 const char *mnemonic;
264 /* Whether this is an unconditional control transfer instruction,
265 for the purposes of placing literal pools after it.
266 0 = no, 1 = within function, 2 = end of function.
267 See check_literals in gas/config/tc-csky.c. */
268 int transfer;
269 /* Encodings for 16-bit opcodes. */
270 struct csky_opcode_info op16[OP_TABLE_NUM];
271 /* Encodings for 32-bit opcodes. */
272 struct csky_opcode_info op32[OP_TABLE_NUM];
273 /* Instruction set flag. */
0861f561
CQ
274 BFD_HOST_U_64_BIT isa_flag16;
275 BFD_HOST_U_64_BIT isa_flag32;
b8891f8d
AJ
276 /* Whether this insn needs relocation, 0: no, !=0: yes. */
277 signed int reloc16;
278 signed int reloc32;
279 /* Whether this insn needs relaxation, 0: no, != 0: yes. */
280 signed int relax;
281 /* Worker function to call when this instruction needs special assembler
282 handling. */
78933a4a 283 bool (*work) (void);
b8891f8d
AJ
284};
285
286/* The following are the opcodes used in relax/fix process. */
287#define CSKYV1_INST_JMPI 0x7000
288#define CSKYV1_INST_ADDI 0x2000
289#define CSKYV1_INST_SUBI 0x2400
290#define CSKYV1_INST_LDW 0x8000
291#define CSKYV1_INST_STW 0x9000
292#define CSKYV1_INST_BSR 0xf800
293#define CSKYV1_INST_LRW 0x7000
294#define CSKYV1_INST_ADDU 0x1c00
295#define CSKYV1_INST_JMP 0x00c0
296#define CSKYV1_INST_MOV_R1_RX 0x1201
297#define CSKYV1_INST_MOV_RX_R1 0x1210
298
299#define CSKYV2_INST_BT16 0x0800
300#define CSKYV2_INST_BF16 0x0c00
301#define CSKYV2_INST_BT32 0xe8600000
302#define CSKYV2_INST_BF32 0xe8400000
303#define CSKYV2_INST_BR32 0xe8000000
304#define CSKYV2_INST_NOP 0x6c03
305#define CSKYV2_INST_MOVI16 0x3000
306#define CSKYV2_INST_MOVI32 0xea000000
307#define CSKYV2_INST_MOVIH 0xea200000
308#define CSKYV2_INST_LRW16 0x1000
309#define CSKYV2_INST_LRW32 0xea800000
310#define CSKYV2_INST_BSR32 0xe0000000
311#define CSKYV2_INST_BR32 0xe8000000
312#define CSKYV2_INST_FLRW 0xf4003800
313#define CSKYV2_INST_JMPI32 0xeac00000
314#define CSKYV2_INST_JSRI32 0xeae00000
315#define CSKYV2_INST_JSRI_TO_LRW 0xea9a0000
316#define CSKYV2_INST_JSR_R26 0xe8fa0000
317#define CSKYV2_INST_MOV_R0_R0 0xc4004820
318
319#define OPRND_SHIFT_0_BIT 0
320#define OPRND_SHIFT_1_BIT 1
321#define OPRND_SHIFT_2_BIT 2
322#define OPRND_SHIFT_3_BIT 3
323#define OPRND_SHIFT_4_BIT 4
324
325#define OPRND_MASK_NONE 0x0
326#define OPRND_MASK_0_1 0x3
327#define OPRND_MASK_0_2 0x7
328#define OPRND_MASK_0_3 0xf
329#define OPRND_MASK_0_4 0x1f
330#define OPRND_MASK_0_7 0xff
331#define OPRND_MASK_0_8 0x1ff
332#define OPRND_MASK_0_9 0x3ff
333#define OPRND_MASK_0_10 0x7ff
334#define OPRND_MASK_0_11 0xfff
335#define OPRND_MASK_0_14 0x7fff
336#define OPRND_MASK_0_15 0xffff
337#define OPRND_MASK_0_17 0x3ffff
338#define OPRND_MASK_0_25 0x3ffffff
339#define OPRND_MASK_2_4 0x1c
340#define OPRND_MASK_2_5 0x3c
341#define OPRND_MASK_3_7 0xf8
342#define OPRND_MASK_4 0x10
1feede9b 343#define OPRND_MASK_4_5 0x30
b8891f8d
AJ
344#define OPRND_MASK_4_6 0x70
345#define OPRND_MASK_4_7 0xf0
346#define OPRND_MASK_4_8 0x1f0
347#define OPRND_MASK_4_10 0x7f0
348#define OPRND_MASK_5 0x20
349#define OPRND_MASK_5_6 0x60
350#define OPRND_MASK_5_7 0xe0
351#define OPRND_MASK_5_8 0x1e0
352#define OPRND_MASK_5_9 0x3e0
1feede9b
CQ
353#define OPRND_MASK_6 0x40
354#define OPRND_MASK_6_7 0xc0
355#define OPRND_MASK_6_8 0x1c0
b8891f8d
AJ
356#define OPRND_MASK_6_9 0x3c0
357#define OPRND_MASK_6_10 0x7c0
1feede9b
CQ
358#define OPRND_MASK_7 0x80
359#define OPRND_MASK_7_8 0x180
b8891f8d
AJ
360#define OPRND_MASK_8_9 0x300
361#define OPRND_MASK_8_10 0x700
362#define OPRND_MASK_8_11 0xf00
363#define OPRND_MASK_9_10 0x600
364#define OPRND_MASK_9_12 0x1e00
365#define OPRND_MASK_10_11 0xc00
366#define OPRND_MASK_10_14 0x7c00
367#define OPRND_MASK_12_15 0xf000
368#define OPRND_MASK_13_17 0x3e000
369#define OPRND_MASK_16_19 0xf0000
370#define OPRND_MASK_16_20 0x1f0000
371#define OPRND_MASK_16_25 0x3ff0000
1feede9b
CQ
372#define OPRND_MASK_17_24 0x1fe0000
373#define OPRND_MASK_20 0x0100000
374#define OPRND_MASK_20_21 0x0300000
375#define OPRND_MASK_20_22 0x0700000
376#define OPRND_MASK_20_23 0x0f00000
377#define OPRND_MASK_20_24 0x1f00000
378#define OPRND_MASK_20_25 0x3f00000
b8891f8d
AJ
379#define OPRND_MASK_21_24 0x1e00000
380#define OPRND_MASK_21_25 0x3e00000
381#define OPRND_MASK_25 0x2000000
382#define OPRND_MASK_RSV 0xffffffff
1feede9b
CQ
383#define OPRND_MASK_0_3or5_8 OPRND_MASK_0_3 | OPRND_MASK_5_8
384#define OPRND_MASK_0_3or6_7 OPRND_MASK_0_3 | OPRND_MASK_6_7
b8891f8d 385#define OPRND_MASK_0_3or21_24 OPRND_MASK_0_3 | OPRND_MASK_21_24
1feede9b
CQ
386#define OPRND_MASK_0_3or25 OPRND_MASK_0_3 | OPRND_MASK_25
387#define OPRND_MASK_0_4or21_24 OPRND_MASK_0_4 | OPRND_MASK_21_24
b8891f8d
AJ
388#define OPRND_MASK_0_4or21_25 OPRND_MASK_0_4 | OPRND_MASK_21_25
389#define OPRND_MASK_0_4or16_20 OPRND_MASK_0_4 | OPRND_MASK_16_20
390#define OPRND_MASK_0_4or8_10 OPRND_MASK_0_4 | OPRND_MASK_8_10
391#define OPRND_MASK_0_4or8_9 OPRND_MASK_0_4 | OPRND_MASK_8_9
392#define OPRND_MASK_0_14or16_20 OPRND_MASK_0_14 | OPRND_MASK_16_20
393#define OPRND_MASK_4or5_8 OPRND_MASK_4 | OPRND_MASK_5_8
1feede9b
CQ
394#define OPRND_MASK_5or20_21 OPRND_MASK_5 | OPRND_MASK_20_21
395#define OPRND_MASK_5or20_22 OPRND_MASK_5 | OPRND_MASK_20_22
396#define OPRND_MASK_5or20_23 OPRND_MASK_5 | OPRND_MASK_20_23
397#define OPRND_MASK_5or20_24 OPRND_MASK_5 | OPRND_MASK_20_24
398#define OPRND_MASK_5or20_25 OPRND_MASK_5 | OPRND_MASK_20_25
b8891f8d
AJ
399#define OPRND_MASK_5or21_24 OPRND_MASK_5 | OPRND_MASK_21_24
400#define OPRND_MASK_2_5or6_9 OPRND_MASK_2_5 | OPRND_MASK_6_9
401#define OPRND_MASK_4_6or21_25 OPRND_MASK_4_6 | OPRND_MASK_21_25
402#define OPRND_MASK_4_7or21_24 OPRND_MASK_4_7 | OPRND_MASK_21_24
403#define OPRND_MASK_5_6or21_25 OPRND_MASK_5_6 | OPRND_MASK_21_25
404#define OPRND_MASK_5_7or8_10 OPRND_MASK_5_7 | OPRND_MASK_8_10
405#define OPRND_MASK_5_9or21_25 OPRND_MASK_5_9 | OPRND_MASK_21_25
1feede9b
CQ
406#define OPRND_MASK_8_9or21_25 OPRND_MASK_8_9 | OPRND_MASK_21_25
407#define OPRND_MASK_8_9or16_25 OPRND_MASK_8_9 | OPRND_MASK_16_20 | OPRND_MASK_21_25
b8891f8d
AJ
408#define OPRND_MASK_16_19or21_24 OPRND_MASK_16_19 | OPRND_MASK_21_24
409#define OPRND_MASK_16_20or21_25 OPRND_MASK_16_20 | OPRND_MASK_21_25
410#define OPRND_MASK_4or9_10or25 OPRND_MASK_4 | OPRND_MASK_9_10 | OPRND_MASK_25
411#define OPRND_MASK_4_7or16_24 OPRND_MASK_4_7 | OPRND_MASK_16_20 | OPRND_MASK_21_24
1feede9b
CQ
412#define OPRND_MASK_4_6or20 OPRND_MASK_4_6 | OPRND_MASK_20
413#define OPRND_MASK_5_7or20 OPRND_MASK_5_7 | OPRND_MASK_20
414#define OPRND_MASK_4_5or20or25 OPRND_MASK_4 | OPRND_MASK_5 | OPRND_MASK_20 | OPRND_MASK_25
415#define OPRND_MASK_4_6or20or25 OPRND_MASK_4_6 | OPRND_MASK_20 | OPRND_MASK_25
416#define OPRND_MASK_4_7or20or25 OPRND_MASK_4_7 | OPRND_MASK_20 | OPRND_MASK_25
417#define OPRND_MASK_6_9or17_24 OPRND_MASK_6_9 | OPRND_MASK_17_24
418#define OPRND_MASK_6_7or20 OPRND_MASK_6_7 | OPRND_MASK_20
419#define OPRND_MASK_6or20 OPRND_MASK_6 | OPRND_MASK_20
420#define OPRND_MASK_7or20 OPRND_MASK_7 | OPRND_MASK_20
421#define OPRND_MASK_5or8_9or16_25 OPRND_MASK_5 | OPRND_MASK_8_9or16_25
422#define OPRND_MASK_5or8_9or20_25 OPRND_MASK_5 | OPRND_MASK_8_9 | OPRND_MASK_20_25
b8891f8d
AJ
423
424#define OPERAND_INFO(mask, type, shift) \
425 {OPRND_MASK_##mask, OPRND_TYPE_##type, shift}
426
427#define OPCODE_INFO_NONE() \
428 {-2, 0, \
429 {{OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
430 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
431 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
432 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
433 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
434
435/* Here and in subsequent macros, the "oprnd" arguments are the
436 parenthesized arglist to the OPERAND_INFO macro above. */
437#define OPCODE_INFO(num, op, oprnd1, oprnd2, oprnd3, oprnd4, oprnd5) \
438 {num, op, \
439 {OPERAND_INFO oprnd1, OPERAND_INFO oprnd2, OPERAND_INFO oprnd3, \
440 OPERAND_INFO oprnd4, OPERAND_INFO oprnd5}}
441
442#define OPCODE_INFO0(op) \
443 {0, op, \
444 {{OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
445 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
446 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
447 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
448 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
449#define OPCODE_INFO1(op, oprnd) \
450 {1, op, \
451 {{OPERAND_INFO oprnd, \
452 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
453 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
454 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
455 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
456#define OPCODE_INFO2(op, oprnd1, oprnd2) \
457 {2, op, \
458 {{OPERAND_INFO oprnd1, \
459 OPERAND_INFO oprnd2, \
460 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
461 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
462 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
463#define OPCODE_INFO3(op, oprnd1, oprnd2, oprnd3) \
464 {3, op, \
465 {{OPERAND_INFO oprnd1, \
466 OPERAND_INFO oprnd2, \
467 OPERAND_INFO oprnd3, \
468 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
469 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
470#define OPCODE_INFO4(op, oprnd1, oprnd2, oprnd3, oprnd4) \
471 {4, op, \
472 {{OPERAND_INFO oprnd1, \
473 OPERAND_INFO oprnd2, \
474 OPERAND_INFO oprnd3, \
475 OPERAND_INFO oprnd4, \
476 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
477#define OPCODE_INFO_LIST(op, oprnd) \
478 {-1, op, \
479 {{OPERAND_INFO oprnd, \
480 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
481 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT) , \
482 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \
483 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
484#define OPCODE_INFO5(op, oprnd1, oprnd2, oprnd3, oprnd4, oprnd5) \
485 {5, op, \
486 {{OPERAND_INFO oprnd1, \
487 OPERAND_INFO oprnd2, \
488 OPERAND_INFO oprnd3, \
489 OPERAND_INFO oprnd4, \
490 OPERAND_INFO oprnd5}}}
491
492#define BRACKET_OPRND(oprnd1, oprnd2) \
493 OPERAND_INFO (RSV, BRACKET, OPRND_SHIFT_0_BIT), \
494 OPERAND_INFO oprnd1, \
495 OPERAND_INFO oprnd2, \
496 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)
497#define ABRACKET_OPRND(oprnd1, oprnd2) \
498 OPERAND_INFO (RSV, ABRACKET, OPRND_SHIFT_0_BIT), \
499 OPERAND_INFO oprnd1, \
500 OPERAND_INFO oprnd2, \
501 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)
502
503#define SOPCODE_INFO1(op, soprnd) \
504 {1, op, \
505 {{soprnd, \
506 OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}}
507#define SOPCODE_INFO2(op, oprnd, soprnd) \
508 {2, op, \
509 {{OPERAND_INFO oprnd, soprnd}}}
510
511
512/* Before using the opcode-defining macros, there need to be
513 #defines for _TRANSFER, _RELOC16, _RELOC32, and _RELAX. See
514 below. */
515/* FIXME: it is a wart that these parameters are not explicit. */
516
517#define OP16(mnem, opcode16, isa) \
518 {mnem, _TRANSFER, \
519 {opcode16, OPCODE_INFO_NONE ()}, \
520 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
521 isa, 0, _RELOC16, 0, _RELAX, NULL}
522
523#ifdef BUILD_AS
524
525#define OP16_WITH_WORK(mnem, opcode16, isa, work) \
526 {mnem, _TRANSFER, \
527 {opcode16, OPCODE_INFO_NONE ()}, \
528 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
529 isa, 0, _RELOC16, 0, _RELAX, work}
530#define OP32_WITH_WORK(mnem, opcode32, isa, work) \
531 {mnem, _TRANSFER, \
532 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
533 {opcode32, OPCODE_INFO_NONE ()}, \
534 0, isa, 0, _RELOC32, _RELAX, work}
535#define OP16_OP32_WITH_WORK(mnem, opcode16, isa16, opcode32, isa32, work) \
536 {mnem, _TRANSFER, \
537 {opcode16, OPCODE_INFO_NONE ()}, \
538 {opcode32, OPCODE_INFO_NONE ()}, \
539 isa16, isa32, _RELOC16, _RELOC32, _RELAX, work}
540#define DOP16_OP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32, isa32, work) \
541 {mnem, _TRANSFER, \
542 {opcode16a, opcode16b}, \
543 {opcode32, OPCODE_INFO_NONE ()}, \
544 isa16, isa32, _RELOC16, _RELOC32, _RELAX, work}
545#define DOP16_DOP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32, work) \
546 {mnem, _TRANSFER, \
547 {opcode16a, opcode16b}, \
548 {opcode32a, opcode32b}, \
549 isa16, isa32, _RELOC16, _RELOC32, _RELAX, work}
550#define DOP32_WITH_WORK(mnem, opcode32a, opcode32b, isa, work) \
551 {mnem, _TRANSFER, \
552 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
553 {opcode32a, opcode32b}, \
554 0, isa, 0, _RELOC32, _RELAX, work}
555
556#else /* ifdef BUILD_AS */
557
558#define OP16_WITH_WORK(mnem, opcode16, isa, work) \
559 {mnem, _TRANSFER, \
560 {opcode16, OPCODE_INFO_NONE ()}, \
561 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
562 isa, 0, _RELOC16, 0, _RELAX, NULL}
563#define OP32_WITH_WORK(mnem, opcode32, isa, work) \
564 {mnem, _TRANSFER, \
565 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
566 {opcode32, OPCODE_INFO_NONE ()}, \
567 0, isa, 0, _RELOC32, _RELAX, NULL}
568#define OP16_OP32_WITH_WORK(mnem, opcode16, isa16, opcode32, isa32, work) \
569 {mnem, _TRANSFER, \
570 {opcode16, OPCODE_INFO_NONE ()}, \
571 {opcode32, OPCODE_INFO_NONE ()}, \
572 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
573#define DOP16_OP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32, isa32, work) \
574 {mnem, _TRANSFER, \
575 {opcode16a, opcode16b}, \
576 {opcode32, OPCODE_INFO_NONE ()}, \
577 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
578#define DOP16_DOP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32, work) \
579 {mnem, _TRANSFER, \
580 {opcode16a, opcode16b}, \
581 {opcode32a, opcode32b}, \
582 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
583#define DOP32_WITH_WORK(mnem, opcode32a, opcode32b, isa, work) \
584 {mnem, _TRANSFER, \
585 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
586 {opcode32a, opcode32b}, \
587 0, isa, 0, _RELOC32, _RELAX, NULL}
588
589#endif /* ifdef BUILD_AS */
590
591#define DOP16(mnem, opcode16_1, opcode16_2, isa) \
592 {mnem, _TRANSFER, \
593 {opcode16_1, opcode16_2}, \
594 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
595 isa, 0, _RELOC16, 0, _RELAX, NULL}
596#define OP32(mnem, opcode32, isa) \
597 {mnem, _TRANSFER, \
598 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
599 {opcode32, OPCODE_INFO_NONE ()}, \
600 0, isa, 0, _RELOC32, _RELAX, NULL}
601#define DOP32(mnem, opcode32a, opcode32b, isa) \
602 {mnem, _TRANSFER, \
603 {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \
604 {opcode32a, opcode32b}, \
605 0, isa, 0, _RELOC32, _RELAX, NULL}
606#define OP16_OP32(mnem, opcode16, isa16, opcode32, isa32) \
607 {mnem, _TRANSFER, \
608 {opcode16, OPCODE_INFO_NONE ()}, \
609 {opcode32, OPCODE_INFO_NONE ()}, \
610 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
611#define DOP16_OP32(mnem, opcode16a, opcode16b, isa16, opcode32, isa32) \
612 {mnem, _TRANSFER, \
613 {opcode16a, opcode16b}, \
614 {opcode32, OPCODE_INFO_NONE ()}, \
615 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
616#define OP16_DOP32(mnem, opcode16, isa16, opcode32a, opcode32b, isa32) \
617 {mnem, _TRANSFER, \
618 {opcode16, OPCODE_INFO_NONE ()}, \
619 {opcode32a, opcode32b}, \
620 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
621#define DOP16_DOP32(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32) \
622 {mnem, _TRANSFER, \
623 {opcode16a, opcode16b}, \
624 {opcode32a, opcode32b}, \
625 isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL}
626
627
628/* Register names and numbers. */
629#define V1_REG_SP 0
630#define V1_REG_LR 15
631
afdcafe8 632struct psrbit
b8891f8d 633{
afdcafe8
CQ
634 int value;
635 int isa;
b8891f8d 636 const char *name;
b8891f8d
AJ
637};
638
afdcafe8 639const struct psrbit cskyv1_psr_bits[] =
b8891f8d 640{
afdcafe8
CQ
641 {1, 0, "ie"},
642 {2, 0, "fe"},
643 {4, 0, "ee"},
644 {8, 0, "af"},
645 {0, 0, NULL},
b8891f8d
AJ
646};
647
afdcafe8 648const struct psrbit cskyv2_psr_bits[] =
b8891f8d 649{
afdcafe8
CQ
650 {8, 0, "ee"},
651 {4, 0, "ie"},
652 {2, 0, "fe"},
653 {1, 0, "af"},
654 {0x10, CSKY_ISA_TRUST, "sie"},
655 {0, 0, NULL},
b8891f8d
AJ
656};
657
0be2fe67 658#define GENERAL_REG_BANK 0x80000000
afdcafe8
CQ
659#define REG_SUPPORT_ALL 0xffffffff
660
661/* CSKY register description. */
662struct csky_reg_def
b8891f8d 663{
afdcafe8
CQ
664 /* The group number for control registers,
665 and set the bank of genaral registers to a special number. */
666 int bank;
667 int regno;
668 /* The name displayed by serial number. */
669 const char *name;
670 /* The name displayed by ABI infomation,
671 used when objdump add option -Mabi-names. */
672 const char *abi_name;
673 /* The flags indicate which arches support the register. */
674 int arch_flag;
675 /* Some registers depend on special features. */
676 char *features;
b8891f8d
AJ
677};
678
afdcafe8
CQ
679/* Arch flag. */
680#define ASH(a) (1 << CSKY_ARCH_##a)
681
682/* All arches exclued 801. */
683#define REG_SUPPORT_A (REG_SUPPORT_ALL & ~ASH(801))
684
685/* All arches exclued 801 and 802. */
686#define REG_SUPPORT_B (REG_SUPPORT_ALL & ~(ASH(801) | ASH(802)))
687
688/* All arches exclued 801, 802, 803, 805.*/
689#define REG_SUPPORT_C (REG_SUPPORT_ALL & ~(ASH(801) \
690 | ASH(802) | ASH(803) | ASH(805)))
691
692/* All arches exclued 801, 802, 803, 805, 807, 810. */
693#define REG_SUPPORT_D (REG_SUPPORT_C & ~(ASH(807) | ASH(810)))
694
695/* All arches exclued 807, 810, 860. */
696#define REG_SUPPORT_E (REG_SUPPORT_ALL & ~(ASH(807) | ASH(810) | \
697 ASH(860)))
698
699/* C-SKY V1 general registers table. */
700static struct csky_reg_def csky_abiv1_general_regs[] =
b8891f8d 701{
afdcafe8 702#define DECLARE_REG(regno, abi_name, support) \
0be2fe67 703 {GENERAL_REG_BANK, regno, "r"#regno, abi_name, support, NULL}
afdcafe8
CQ
704
705 DECLARE_REG (0, "sp", REG_SUPPORT_ALL),
706 DECLARE_REG (1, NULL, REG_SUPPORT_ALL),
707 DECLARE_REG (2, "a0", REG_SUPPORT_ALL),
708 DECLARE_REG (3, "a1", REG_SUPPORT_ALL),
709 DECLARE_REG (4, "a2", REG_SUPPORT_ALL),
710 DECLARE_REG (5, "a3", REG_SUPPORT_ALL),
711 DECLARE_REG (6, "a4", REG_SUPPORT_ALL),
712 DECLARE_REG (7, "a5", REG_SUPPORT_ALL),
713 DECLARE_REG (8, "fp", REG_SUPPORT_ALL),
714 DECLARE_REG (8, "l0", REG_SUPPORT_ALL),
715 DECLARE_REG (9, "l1", REG_SUPPORT_ALL),
716 DECLARE_REG (10, "l2", REG_SUPPORT_ALL),
717 DECLARE_REG (11, "l3", REG_SUPPORT_ALL),
718 DECLARE_REG (12, "l4", REG_SUPPORT_ALL),
719 DECLARE_REG (13, "l5", REG_SUPPORT_ALL),
720 DECLARE_REG (14, "gb", REG_SUPPORT_ALL),
721 DECLARE_REG (15, "lr", REG_SUPPORT_ALL),
722#undef DECLARE_REG
723 {-1, -1, NULL, NULL, 0, NULL},
b8891f8d
AJ
724};
725
afdcafe8
CQ
726/* C-SKY V1 control registers table. */
727static struct csky_reg_def csky_abiv1_control_regs[] =
b8891f8d 728{
afdcafe8
CQ
729#define DECLARE_REG(regno, abi_name, support) \
730 {0, regno, "cr"#regno, abi_name, support, NULL}
731
732 DECLARE_REG (0, "psr", REG_SUPPORT_ALL),
733 DECLARE_REG (1, "vbr", REG_SUPPORT_ALL),
734 DECLARE_REG (2, "epsr", REG_SUPPORT_ALL),
735 DECLARE_REG (3, "fpsr", REG_SUPPORT_ALL),
736 DECLARE_REG (4, "epc", REG_SUPPORT_ALL),
737 DECLARE_REG (5, "fpc", REG_SUPPORT_ALL),
738 DECLARE_REG (6, "ss0", REG_SUPPORT_ALL),
739 DECLARE_REG (7, "ss1", REG_SUPPORT_ALL),
740 DECLARE_REG (8, "ss2", REG_SUPPORT_ALL),
741 DECLARE_REG (9, "ss3", REG_SUPPORT_ALL),
742 DECLARE_REG (10, "ss4", REG_SUPPORT_ALL),
743 DECLARE_REG (11, "gcr", REG_SUPPORT_ALL),
744 DECLARE_REG (12, "gsr", REG_SUPPORT_ALL),
745 DECLARE_REG (13, "cpid", REG_SUPPORT_ALL),
746 DECLARE_REG (14, "dcsr", REG_SUPPORT_ALL),
747 DECLARE_REG (15, "cwr", REG_SUPPORT_ALL),
748 DECLARE_REG (16, NULL, REG_SUPPORT_ALL),
749 DECLARE_REG (17, "cfr", REG_SUPPORT_ALL),
750 DECLARE_REG (18, "ccr", REG_SUPPORT_ALL),
751 DECLARE_REG (19, "capr", REG_SUPPORT_ALL),
752 DECLARE_REG (20, "pacr", REG_SUPPORT_ALL),
753 DECLARE_REG (21, "prsr", REG_SUPPORT_ALL),
754 DECLARE_REG (22, "mir", REG_SUPPORT_ALL),
755 DECLARE_REG (23, "mrr", REG_SUPPORT_ALL),
756 DECLARE_REG (24, "mel0", REG_SUPPORT_ALL),
757 DECLARE_REG (25, "mel1", REG_SUPPORT_ALL),
758 DECLARE_REG (26, "meh", REG_SUPPORT_ALL),
759 DECLARE_REG (27, "mcr", REG_SUPPORT_ALL),
760 DECLARE_REG (28, "mpr", REG_SUPPORT_ALL),
761 DECLARE_REG (29, "mwr", REG_SUPPORT_ALL),
762 DECLARE_REG (30, "mcir", REG_SUPPORT_ALL),
763#undef DECLARE_REG
764 {-1, -1, NULL, NULL, 0, NULL},
b8891f8d
AJ
765};
766
afdcafe8
CQ
767/* C-SKY V2 general registers table. */
768static struct csky_reg_def csky_abiv2_general_regs[] =
b8891f8d 769{
afdcafe8
CQ
770#ifdef DECLARE_REG
771#undef DECLARE_REG
772#endif
773#define DECLARE_REG(regno, abi_name, support) \
0be2fe67 774 {GENERAL_REG_BANK, regno, "r"#regno, abi_name, support, NULL}
afdcafe8
CQ
775
776 DECLARE_REG (0, "a0", REG_SUPPORT_ALL),
777 DECLARE_REG (1, "a1", REG_SUPPORT_ALL),
778 DECLARE_REG (2, "a2", REG_SUPPORT_ALL),
779 DECLARE_REG (3, "a3", REG_SUPPORT_ALL),
780 DECLARE_REG (4, "l0", REG_SUPPORT_ALL),
781 DECLARE_REG (5, "l1", REG_SUPPORT_ALL),
782 DECLARE_REG (6, "l2", REG_SUPPORT_ALL),
783 DECLARE_REG (7, "l3", REG_SUPPORT_ALL),
784 DECLARE_REG (8, "l4", REG_SUPPORT_ALL),
785 DECLARE_REG (9, "l5", REG_SUPPORT_A),
786 DECLARE_REG (10, "l6", REG_SUPPORT_A),
787 DECLARE_REG (11, "l7", REG_SUPPORT_A),
788 DECLARE_REG (12, "t0", REG_SUPPORT_A),
789 DECLARE_REG (13, "t1", REG_SUPPORT_ALL),
790 DECLARE_REG (14, "sp", REG_SUPPORT_ALL),
791 DECLARE_REG (15, "lr", REG_SUPPORT_ALL),
792 DECLARE_REG (16, "l8", REG_SUPPORT_B),
793 DECLARE_REG (17, "l9", REG_SUPPORT_B),
794 DECLARE_REG (18, "t2", REG_SUPPORT_B),
795 DECLARE_REG (19, "t3", REG_SUPPORT_B),
796 DECLARE_REG (20, "t4", REG_SUPPORT_B),
797 DECLARE_REG (21, "t5", REG_SUPPORT_B),
798 DECLARE_REG (22, "t6", REG_SUPPORT_B),
799 DECLARE_REG (23, "t7", REG_SUPPORT_B),
800 DECLARE_REG (24, "t8", REG_SUPPORT_B),
801 DECLARE_REG (25, "t9", REG_SUPPORT_B),
802 DECLARE_REG (26, NULL, REG_SUPPORT_B),
803 DECLARE_REG (27, NULL, REG_SUPPORT_B),
804 DECLARE_REG (28, "gb", REG_SUPPORT_B),
805 DECLARE_REG (28, "rgb", REG_SUPPORT_B),
806 DECLARE_REG (28, "rdb", REG_SUPPORT_B),
807 DECLARE_REG (29, "tb", REG_SUPPORT_B),
808 DECLARE_REG (29, "rtb", REG_SUPPORT_B),
809 DECLARE_REG (30, "svbr", REG_SUPPORT_A),
810 DECLARE_REG (31, "tls", REG_SUPPORT_B),
811
812 /* The followings JAVA/BCTM's features. */
813 DECLARE_REG (23, "fp", REG_SUPPORT_ALL),
814 DECLARE_REG (24, "top", REG_SUPPORT_ALL),
815 DECLARE_REG (25, "bsp", REG_SUPPORT_ALL),
816
817 {-1, -1, NULL, NULL, 0, NULL},
b8891f8d
AJ
818};
819
afdcafe8
CQ
820/* C-SKY V2 control registers table. */
821static struct csky_reg_def csky_abiv2_control_regs[] =
b8891f8d 822{
afdcafe8
CQ
823
824#ifdef DECLARE_REG
825#undef DECLARE_REG
826#endif
827 /* Bank0. */
828#define DECLARE_REG(regno, abi_name) \
829 {0, regno, "cr<"#regno", 0>", abi_name, REG_SUPPORT_ALL, NULL}
830 DECLARE_REG (0, "psr"),
831 DECLARE_REG (1, "vbr"),
832 DECLARE_REG (2, "epsr"),
833 DECLARE_REG (3, "fpsr"),
834 DECLARE_REG (4, "epc"),
835 DECLARE_REG (5, "fpc"),
836 DECLARE_REG (6, "ss0"),
837 DECLARE_REG (7, "ss1"),
838 DECLARE_REG (8, "ss2"),
839 DECLARE_REG (9, "ss3"),
840 DECLARE_REG (10, "ss4"),
841 DECLARE_REG (11, "gcr"),
842 DECLARE_REG (12, "gsr"),
843 DECLARE_REG (13, "cpid"),
844 DECLARE_REG (14, "dcsr"),
845 DECLARE_REG (15, NULL),
846 DECLARE_REG (16, NULL),
847 DECLARE_REG (17, "cfr"),
848 DECLARE_REG (18, "ccr"),
849 DECLARE_REG (19, "capr"),
850 DECLARE_REG (20, "pacr"),
851 DECLARE_REG (21, "prsr"),
852 DECLARE_REG (22, "cir"),
853 DECLARE_REG (23, "ccr2"),
854 DECLARE_REG (24, NULL),
855 DECLARE_REG (25, "cer2"),
856 DECLARE_REG (26, NULL),
857 DECLARE_REG (27, NULL),
858 DECLARE_REG (28, "rvbr"),
859 DECLARE_REG (29, "rmr"),
860 DECLARE_REG (30, "mpid"),
861
862#undef DECLARE_REG
863#define DECLARE_REG(regno, abi_name, support) \
864 {0, regno, "cr<"#regno", 0>", abi_name, support, NULL}
865 DECLARE_REG (31, "chr", REG_SUPPORT_E),
866 DECLARE_REG (31, "hint", REG_SUPPORT_C),
867
868 /* Bank1. */
869#undef DECLARE_REG
870#define DECLARE_REG(regno, abi_name) \
871 {1, regno, "cr<"#regno", 1>", abi_name, REG_SUPPORT_ALL, NULL}
872
873 DECLARE_REG (14, "usp"),
874 DECLARE_REG (26, "cindex"),
875 DECLARE_REG (27, "cdata0"),
876 DECLARE_REG (28, "cdata1"),
877 DECLARE_REG (29, "cdata2"),
878 DECLARE_REG (30, "cdata3"),
879 DECLARE_REG (31, "cins"),
880
881 /* Bank2. */
882#undef DECLARE_REG
883#define DECLARE_REG(regno, abi_name) \
884 {2, regno, "cr<"#regno", 2>", abi_name, REG_SUPPORT_ALL, NULL}
885
886 DECLARE_REG (0, "fid"),
887 DECLARE_REG (1, "fcr"),
888 DECLARE_REG (2, "fesr"),
889
890 /* Bank3. */
891#undef DECLARE_REG
892#define DECLARE_REG(regno, abi_name) \
893 {3, regno, "cr<"#regno", 3>", abi_name, REG_SUPPORT_ALL, NULL}
894 DECLARE_REG (8, "dcr"),
895 DECLARE_REG (8, "sedcr"),
896 DECLARE_REG (9, "pcr"),
897 DECLARE_REG (9, "sepcr"),
898
899 /* Bank15. */
900#undef DECLARE_REG
901#define DECLARE_REG(regno, abi_name) \
902 {15, regno, "cr<"#regno", 15>", abi_name, REG_SUPPORT_ALL, NULL}
903
904 DECLARE_REG (0, "mir"),
905 DECLARE_REG (2, "mel0"),
906 DECLARE_REG (3, "mel1"),
907 DECLARE_REG (4, "meh"),
908 DECLARE_REG (6, "mpr"),
909 DECLARE_REG (8, "mcir"),
910 DECLARE_REG (28, "mpgd0"),
911 DECLARE_REG (29, "mpgd"),
912 DECLARE_REG (29, "mpgd1"),
913 DECLARE_REG (30, "msa0"),
914 DECLARE_REG (31, "msa1"),
915#undef DECLARE_REG
916 {-1, -1, NULL, NULL, 0, NULL},
b8891f8d
AJ
917};
918
afdcafe8
CQ
919/* Get register name according to giving parameters,
920 IS_ABI controls whether is ABI name or not. */
921static inline const char *
922get_register_name (struct csky_reg_def *reg_table,
923 int arch, int bank, int regno, int is_abi)
b8891f8d 924{
afdcafe8
CQ
925 static char regname[64] = {0};
926 unsigned int i = 0;
927 while (reg_table[i].name != NULL)
928 {
929 if (reg_table[i].bank == bank
930 && reg_table[i].regno == regno
0be2fe67 931 && (reg_table[i].arch_flag & (1u << (arch & CSKY_ARCH_MASK))))
afdcafe8
CQ
932 {
933 if (is_abi && reg_table[i].abi_name)
934 return reg_table[i].abi_name;
935 else
936 return reg_table[i].name;
937 }
938 i++;
939 }
b8891f8d 940
afdcafe8
CQ
941 if (bank & 0x80000000)
942 return "unkown register";
943
944 sprintf (regname, "cr<%d, %d>", regno, bank);
945
946 return regname;
947}
948
949/* Get register number according to giving parameters.
950 If not found, return -1. */
951static inline int
952get_register_number (struct csky_reg_def *reg_table,
953 int arch, char *s, char **end, int *bank)
b8891f8d 954{
afdcafe8
CQ
955 unsigned int i = 0;
956 int len = 0;
957 while (reg_table[i].name != NULL)
958 {
959 len = strlen (reg_table[i].name);
960 if ((strncasecmp (reg_table[i].name, s, len) == 0)
961 && !(ISDIGIT (s[len]))
0be2fe67 962 && (reg_table[i].arch_flag & (1u << (arch & CSKY_ARCH_MASK))))
afdcafe8
CQ
963 {
964 *end = s + len;
965 *bank = reg_table[i].bank;
966 return reg_table[i].regno;
967 }
968
969 if (reg_table[i].abi_name == NULL)
970 {
971 i++;
972 continue;
973 }
974
975 len = strlen (reg_table[i].abi_name);
976 if ((strncasecmp (reg_table[i].abi_name, s, len) == 0)
977 && !(ISALNUM (s[len]))
0be2fe67 978 && (reg_table[i].arch_flag & (1u << (arch & CSKY_ARCH_MASK))))
afdcafe8
CQ
979 {
980 *end = s + len;
981 *bank = reg_table[i].bank;
982 return reg_table[i].regno;
983 }
984 i++;
985 }
986 return -1;
987}
988
989/* Return general register's name. */
990static inline const char *
991csky_get_general_reg_name (int arch, int regno, int is_abi)
b8891f8d 992{
afdcafe8
CQ
993 struct csky_reg_def *reg_table;
994
0be2fe67 995 if (IS_CSKY_ARCH_V1 (arch))
afdcafe8
CQ
996 reg_table = csky_abiv1_general_regs;
997 else
998 reg_table = csky_abiv2_general_regs;
999
0be2fe67 1000 return get_register_name (reg_table, arch, GENERAL_REG_BANK, regno, is_abi);
afdcafe8
CQ
1001}
1002
1003/* Return general register's number. */
1004static inline int
0be2fe67 1005csky_get_general_regno (int arch, char *s, char **end)
b8891f8d 1006{
afdcafe8
CQ
1007 struct csky_reg_def *reg_table;
1008 int bank = 0;
1009
0be2fe67 1010 if (IS_CSKY_ARCH_V1 (arch))
afdcafe8
CQ
1011 reg_table = csky_abiv1_general_regs;
1012 else
1013 reg_table = csky_abiv2_general_regs;
b8891f8d 1014
afdcafe8
CQ
1015 return get_register_number (reg_table, arch, s, end, &bank);
1016}
1017
1018/* Return control register's name. */
1019static inline const char *
1020csky_get_control_reg_name (int arch, int bank, int regno, int is_abi)
1021{
1022 struct csky_reg_def *reg_table;
1023
0be2fe67 1024 if (IS_CSKY_ARCH_V1 (arch))
afdcafe8
CQ
1025 reg_table = csky_abiv1_control_regs;
1026 else
1027 reg_table = csky_abiv2_control_regs;
1028
0be2fe67 1029 return get_register_name (reg_table, arch, bank, regno, is_abi);
afdcafe8
CQ
1030}
1031
1032/* Return control register's number. */
1033static inline int
0be2fe67 1034csky_get_control_regno (int arch, char *s, char **end, int *bank)
afdcafe8
CQ
1035{
1036 struct csky_reg_def *reg_table;
1037
0be2fe67 1038 if (IS_CSKY_ARCH_V1 (arch))
afdcafe8
CQ
1039 reg_table = csky_abiv1_control_regs;
1040 else
1041 reg_table = csky_abiv2_control_regs;
1042
1043 return get_register_number (reg_table, arch, s, end, bank);
1044}
b8891f8d
AJ
1045
1046/* C-SKY V1 opcodes. */
1047const struct csky_opcode csky_v1_opcodes[] =
1048{
1049#define _TRANSFER 0
1050#define _RELOC16 0
1051#define _RELOC32 0
1052#define _RELAX 0
1053 OP16 ("bkpt",
1054 OPCODE_INFO0 (0x0000),
1055 CSKYV1_ISA_E1),
1056 OP16 ("sync",
1057 OPCODE_INFO0 (0x0001),
1058 CSKYV1_ISA_E1),
1059#undef _TRANSFER
1060#define _TRANSFER 2
1061 OP16 ("rfi",
1062 OPCODE_INFO0 (0x0003),
1063 CSKYV1_ISA_E1),
1064#undef _TRANSFER
1065#define _TRANSFER 0
1066 OP16 ("stop",
1067 OPCODE_INFO0 (0x0004),
1068 CSKYV1_ISA_E1),
1069 OP16 ("wait",
1070 OPCODE_INFO0 (0x0005),
1071 CSKYV1_ISA_E1),
1072 OP16 ("doze",
1073 OPCODE_INFO0 (0x0006),
1074 CSKYV1_ISA_E1),
1075 OP16 ("idly4",
1076 OPCODE_INFO0 (0x0007),
1077 CSKYV1_ISA_E1),
1078 OP16 ("trap",
1079 OPCODE_INFO1 (0x0008,
1080 (0_1, IMM2b, OPRND_SHIFT_0_BIT)),
1081 CSKYV1_ISA_E1),
1082 OP16 ("mvtc",
1083 OPCODE_INFO0 (0x000c),
1084 CSKY_ISA_DSP),
1085 OP16 ("cprc",
1086 OPCODE_INFO0 (0x000d),
1087 CSKY_ISA_CP),
1088 OP16 ("cpseti",
1089 OPCODE_INFO1 (0x0010,
1090 (0_3, CPIDX, OPRND_SHIFT_0_BIT)),
1091 CSKY_ISA_CP),
1092 OP16 ("mvc",
1093 OPCODE_INFO1 (0x0020,
1094 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1095 CSKYV1_ISA_E1),
1096 OP16 ("mvcv",
1097 OPCODE_INFO1 (0x0030,
1098 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1099 CSKYV1_ISA_E1),
1100 OP16 ("ldq",
1101 OPCODE_INFO2 (0x0040,
1102 (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
1103 (0_3, REGnr4_r7, OPRND_SHIFT_0_BIT)),
1104 CSKYV1_ISA_E1),
1105 OP16 ("stq",
1106 OPCODE_INFO2 (0x0050,
1107 (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
1108 (0_3, REGnr4_r7, OPRND_SHIFT_0_BIT)),
1109 CSKYV1_ISA_E1),
1110 OP16 ("ldm",
1111 OPCODE_INFO2 (0x0060,
1112 (0_3, REGLIST_DASH, OPRND_SHIFT_0_BIT),
1113 (NONE, REGbsp, OPRND_SHIFT_0_BIT)),
1114 CSKYV1_ISA_E1),
1115 OP16 ("stm",
1116 OPCODE_INFO2 (0x0070,
1117 (0_3, REGLIST_DASH, OPRND_SHIFT_0_BIT),
1118 (NONE, REGbsp, OPRND_SHIFT_0_BIT)),
1119 CSKYV1_ISA_E1),
1120 DOP16 ("dect",
1121 OPCODE_INFO3 (0x0080,
1122 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1123 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1124 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1125 OPCODE_INFO1 (0x0080,
1126 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1127 CSKYV1_ISA_E1),
1128 DOP16 ("decf",
1129 OPCODE_INFO3 (0x0090,
1130 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1131 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1132 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1133 OPCODE_INFO1 (0x0090,
1134 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1135 CSKYV1_ISA_E1),
1136 DOP16 ("inct",
1137 OPCODE_INFO3 (0x00a0,
1138 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1139 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1140 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1141 OPCODE_INFO1 (0x00a0,
1142 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1143 CSKYV1_ISA_E1),
1144 DOP16 ("incf",
1145 OPCODE_INFO3 (0x00b0,
1146 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1147 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1148 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1149 OPCODE_INFO1 (0x00b0,
1150 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1151 CSKYV1_ISA_E1),
1152#undef _TRANSFER
1153#define _TRANSFER 2
1154 OP16 ("jmp",
1155 OPCODE_INFO1 (0x00c0,
1156 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1157 CSKYV1_ISA_E1),
1158#undef _TRANSFER
1159#define _TRANSFER 0
1160 OP16 ("jsr",
1161 OPCODE_INFO1 (0x00d0,
1162 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1163 CSKYV1_ISA_E1),
1164 DOP16 ("ff1",
1165 OPCODE_INFO2 (0x00e0,
1166 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1167 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
1168 OPCODE_INFO1 (0x00e0,
1169 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1170 CSKYV1_ISA_E1),
1171 DOP16 ("brev",
1172 OPCODE_INFO2 (0x00f0,
1173 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1174 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
1175 OPCODE_INFO1 (0x00f0,
1176 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1177 CSKYV1_ISA_E1),
1178 DOP16 ("xtrb3",
1179 OPCODE_INFO2 (0x0100,
1180 (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
1181 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1182 OPCODE_INFO1 (0x0100,
1183 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1184 CSKYV1_ISA_E1),
1185 DOP16 ("xtrb2",
1186 OPCODE_INFO2 (0x0110,
1187 (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
1188 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1189 OPCODE_INFO1 (0x0110,
1190 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1191 CSKYV1_ISA_E1),
1192 DOP16 ("xtrb1",
1193 OPCODE_INFO2 (0x0120,
1194 (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
1195 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1196 OPCODE_INFO1 (0x0120,
1197 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1198 CSKYV1_ISA_E1),
1199 DOP16 ("xtrb0",
1200 OPCODE_INFO2 (0x0130,
1201 (NONE, REG_r1a, OPRND_SHIFT_0_BIT),
1202 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1203 OPCODE_INFO1 (0x0130,
1204 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1205 CSKYV1_ISA_E1),
1206 DOP16 ("zextb",
1207 OPCODE_INFO2 (0x0140,
1208 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1209 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
1210 OPCODE_INFO1 (0x0140,
1211 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1212 CSKYV1_ISA_E1),
1213 DOP16 ("sextb",
1214 OPCODE_INFO2 (0x0150,
1215 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1216 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
1217 OPCODE_INFO1 (0x0150,
1218 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1219 CSKYV1_ISA_E1),
1220 DOP16 ("zexth",
1221 OPCODE_INFO2 (0x0160,
1222 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1223 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
1224 OPCODE_INFO1 (0x0160,
1225 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1226 CSKYV1_ISA_E1),
1227 DOP16 ("sexth",
1228 OPCODE_INFO2 (0x0170,
1229 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1230 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
1231 OPCODE_INFO1 (0x0170,
1232 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1233 CSKYV1_ISA_E1),
1234 DOP16 ("declt",
1235 OPCODE_INFO3 (0x0180,
1236 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1237 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1238 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1239 OPCODE_INFO1 (0x0180,
1240 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1241 CSKYV1_ISA_E1),
1242 OP16 ("tstnbz",
1243 OPCODE_INFO1 (0x0190,
1244 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1245 CSKYV1_ISA_E1),
1246 DOP16 ("decgt",
1247 OPCODE_INFO3 (0x01a0,
1248 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1249 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1250 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1251 OPCODE_INFO1 (0x01a0,
1252 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1253 CSKYV1_ISA_E1),
1254 DOP16 ("decne",
1255 OPCODE_INFO3 (0x01b0,
1256 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1257 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1258 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1259 OPCODE_INFO1 (0x01b0,
1260 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1261 CSKYV1_ISA_E1),
1262 OP16 ("clrt",
1263 OPCODE_INFO1 (0x01c0,
1264 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1265 CSKYV1_ISA_E1),
1266 OP16 ("clrf",
1267 OPCODE_INFO1 (0x01d0,
1268 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1269 CSKYV1_ISA_E1),
1270 DOP16 ("abs",
1271 OPCODE_INFO2 (0x01e0,
1272 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1273 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
1274 OPCODE_INFO1 (0x01e0,
1275 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1276 CSKYV1_ISA_E1),
1277 DOP16 ("not",
1278 OPCODE_INFO2 (0x01f0,
1279 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1280 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)),
1281 OPCODE_INFO1 (0x01f0,
1282 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1283 CSKYV1_ISA_E1),
1284 OP16 ("movt",
1285 OPCODE_INFO2 (0x0200,
1286 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1287 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1288 CSKYV1_ISA_E1),
1289 DOP16 ("mult",
1290 OPCODE_INFO3 (0x0300,
1291 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1292 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1293 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1294 OPCODE_INFO2 (0x0300,
1295 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1296 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1297 CSKYV1_ISA_E1),
1298 OP16 ("mac",
1299 OPCODE_INFO2 (0x0400,
1300 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1301 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1302 CSKY_ISA_MAC),
1303 DOP16 ("subu",
1304 OPCODE_INFO3 (0x0500,
1305 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1306 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1307 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1308 OPCODE_INFO2 (0x0500,
1309 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1310 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1311 CSKYV1_ISA_E1),
1312 DOP16 ("sub",
1313 OPCODE_INFO3 (0x0500,
1314 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1315 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1316 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1317 OPCODE_INFO2 (0x0500,
1318 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1319 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1320 CSKYV1_ISA_E1),
1321 DOP16 ("addc",
1322 OPCODE_INFO3 (0x0600,
1323 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1324 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1325 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1326 OPCODE_INFO2 (0x0600,
1327 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1328 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1329 CSKYV1_ISA_E1),
1330 DOP16 ("subc",
1331 OPCODE_INFO3 (0x0700,
1332 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1333 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1334 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1335 OPCODE_INFO2 (0x0700,
1336 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1337 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1338 CSKYV1_ISA_E1),
1339 OP16 ("cprgr",
1340 OPCODE_INFO2 (0x0800,
1341 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1342 (4_8, CPREG, OPRND_SHIFT_0_BIT)),
1343 CSKY_ISA_CP),
1344 OP16 ("movf",
1345 OPCODE_INFO2 (0x0a00,
1346 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1347 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1348 CSKYV1_ISA_E1),
1349 DOP16 ("lsr",
1350 OPCODE_INFO3 (0x0b00,
1351 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1352 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1353 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1354 OPCODE_INFO2 (0x0b00,
1355 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1356 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1357 CSKYV1_ISA_E1),
1358 OP16 ("cmphs",
1359 OPCODE_INFO2 (0x0c00,
1360 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1361 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1362 CSKYV1_ISA_E1),
1363 OP16 ("cmplt",
1364 OPCODE_INFO2 (0x0d00,
1365 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1366 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1367 CSKYV1_ISA_E1),
1368 OP16 ("tst",
1369 OPCODE_INFO2 (0x0e00,
1370 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1371 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1372 CSKYV1_ISA_E1),
1373 OP16 ("cmpne",
1374 OPCODE_INFO2 (0x0f00,
1375 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1376 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1377 CSKYV1_ISA_E1),
1378 OP16 ("mfcr",
1379 OPCODE_INFO2 (0x1000,
1380 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1381 (4_8, CTRLREG, OPRND_SHIFT_0_BIT)),
1382 CSKYV1_ISA_E1),
1383 OP16 ("psrclr",
1384 OPCODE_INFO_LIST (0x11f0,
1385 (0_2, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
1386 CSKYV1_ISA_E1),
1387 OP16 ("psrset",
1388 OPCODE_INFO_LIST (0x11f8,
1389 (0_2, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
1390 CSKYV1_ISA_E1),
1391 OP16 ("mov",
1392 OPCODE_INFO2 (0x1200,
1393 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1394 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1395 CSKYV1_ISA_E1),
1396 OP16 ("bgenr",
1397 OPCODE_INFO2 (0x1300,
1398 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1399 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1400 CSKYV1_ISA_E1),
1401 DOP16 ("rsub",
1402 OPCODE_INFO3 (0x1400,
1403 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1404 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1405 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1406 OPCODE_INFO2 (0x1400,
1407 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1408 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1409 CSKYV1_ISA_E1),
1410 DOP16 ("ixw",
1411 OPCODE_INFO3 (0x1500,
1412 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1413 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1414 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1415 OPCODE_INFO2 (0x1500,
1416 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1417 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1418 CSKYV1_ISA_E1),
1419 DOP16 ("and",
1420 OPCODE_INFO3 (0x1600,
1421 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1422 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1423 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1424 OPCODE_INFO2 (0x1600,
1425 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1426 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1427 CSKYV1_ISA_E1),
1428 DOP16 ("xor",
1429 OPCODE_INFO3 (0x1700,
1430 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1431 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1432 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1433 OPCODE_INFO2 (0x1700,
1434 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1435 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1436 CSKYV1_ISA_E1),
1437 OP16 ("mtcr",
1438 OPCODE_INFO2 (0x1800,
1439 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1440 (4_8, CTRLREG, OPRND_SHIFT_0_BIT)),
1441 CSKYV1_ISA_E1),
1442 DOP16 ("asr",
1443 OPCODE_INFO3 (0x1a00,
1444 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1445 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1446 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1447 OPCODE_INFO2 (0x1a00,
1448 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1449 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1450 CSKYV1_ISA_E1),
1451 DOP16 ("lsl",
1452 OPCODE_INFO3 (0x1b00,
1453 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1454 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1455 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1456 OPCODE_INFO2 (0x1b00,
1457 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1458 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1459 CSKYV1_ISA_E1),
1460 DOP16 ("addu",
1461 OPCODE_INFO3 (0x1c00,
1462 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1463 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1464 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1465 OPCODE_INFO2 (0x1c00,
1466 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1467 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1468 CSKYV1_ISA_E1),
1469 OP16 ("add",
1470 OPCODE_INFO2 (0x1c00,
1471 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1472 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1473 CSKYV1_ISA_E1),
1474 DOP16 ("ixh",
1475 OPCODE_INFO3 (0x1d00,
1476 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1477 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1478 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1479 OPCODE_INFO2 (0x1d00,
1480 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1481 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1482 CSKYV1_ISA_E1),
1483 DOP16 ("or",
1484 OPCODE_INFO3 (0x1e00,
1485 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1486 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1487 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1488 OPCODE_INFO2 (0x1e00,
1489 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1490 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1491 CSKYV1_ISA_E1),
1492 DOP16 ("andn",
1493 OPCODE_INFO3 (0x1f00,
1494 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1495 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1496 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1497 OPCODE_INFO2 (0x1f00,
1498 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1499 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1500 CSKYV1_ISA_E1),
1501 DOP16 ("addi",
1502 OPCODE_INFO3 (0x2000,
1503 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1504 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1505 (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
1506 OPCODE_INFO2 (0x2000,
1507 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1508 (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
1509 CSKYV1_ISA_E1),
1510 OP16 ("cmplti",
1511 OPCODE_INFO2 (0x2200,
1512 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1513 (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
1514 CSKYV1_ISA_E1),
1515 DOP16 ("subi",
1516 OPCODE_INFO3 (0x2400,
1517 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1518 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1519 (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
1520 OPCODE_INFO2 (0x2400,
1521 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1522 (4_8, OIMM5b, OPRND_SHIFT_0_BIT)),
1523 CSKYV1_ISA_E1),
1524 OP16 ("cpwgr",
1525 OPCODE_INFO2 (0x2600,
1526 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1527 (4_8, CPREG, OPRND_SHIFT_0_BIT)),
1528 CSKY_ISA_CP),
1529 DOP16 ("rsubi",
1530 OPCODE_INFO3 (0x2800,
1531 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1532 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1533 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1534 OPCODE_INFO2 (0x2800,
1535 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1536 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1537 CSKYV1_ISA_E1),
1538 OP16 ("cmpnei",
1539 OPCODE_INFO2 (0x2a00,
1540 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1541 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1542 CSKYV1_ISA_E1),
1543 OP16 ("bmaski",
1544 OPCODE_INFO2 (0x2c00,
1545 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1546 (4_8, IMM5b_BMASKI, OPRND_SHIFT_0_BIT)),
1547 CSKYV1_ISA_E1),
1548 DOP16 ("divu",
1549 OPCODE_INFO3 (0x2c10,
1550 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1551 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1552 (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
1553 OPCODE_INFO2 (0x2c10,
1554 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1555 (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
1556 CSKYV1_ISA_E1),
1557 OP16 ("mflos",
1558 OPCODE_INFO1 (0x2c20,
1559 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1560 CSKY_ISA_MAC_DSP),
1561 OP16 ("mfhis",
1562 OPCODE_INFO1 (0x2c30,
1563 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1564 CSKY_ISA_MAC_DSP),
1565 OP16 ("mtlo",
1566 OPCODE_INFO1 (0x2c40,
1567 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1568 CSKY_ISA_MAC_DSP),
1569 OP16 ("mthi",
1570 OPCODE_INFO1 (0x2c50,
1571 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1572 CSKY_ISA_MAC_DSP),
1573 OP16 ("mflo",
1574 OPCODE_INFO1 (0x2c60,
1575 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1576 CSKY_ISA_MAC_DSP),
1577 OP16 ("mfhi",
1578 OPCODE_INFO1 (0x2c70,
1579 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1580 CSKY_ISA_MAC_DSP),
1581 DOP16 ("andi",
1582 OPCODE_INFO3 (0x2e00,
1583 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1584 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1585 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1586 OPCODE_INFO2 (0x2e00,
1587 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1588 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1589 CSKYV1_ISA_E1),
1590 DOP16 ("bclri",
1591 OPCODE_INFO3 (0x3000,
1592 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1593 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1594 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1595 OPCODE_INFO2 (0x3000,
1596 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1597 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1598 CSKYV1_ISA_E1),
1599 OP16 ("bgeni",
1600 OPCODE_INFO2 (0x3200,
1601 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1602 (4_8, IMM5b_7_31, OPRND_SHIFT_0_BIT)),
1603 CSKYV1_ISA_E1),
1604 OP16 ("cpwir",
1605 OPCODE_INFO1 (0x3200,
1606 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1607 CSKY_ISA_CP),
1608 DOP16 ("divs",
1609 OPCODE_INFO3 (0x3210,
1610 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1611 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1612 (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
1613 OPCODE_INFO2 (0x3210,
1614 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1615 (NONE, REG_r1b, OPRND_SHIFT_0_BIT)),
1616 CSKYV1_ISA_E1),
1617 OP16 ("cprsr",
1618 OPCODE_INFO1 (0x3220,
1619 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1620 CSKY_ISA_CP),
1621 OP16 ("cpwsr",
1622 OPCODE_INFO1 (0x3230,
1623 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1624 CSKY_ISA_CP),
1625 DOP16 ("bseti",
1626 OPCODE_INFO3 (0x3400,
1627 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1628 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1629 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1630 OPCODE_INFO2 (0x3400,
1631 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1632 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1633 CSKYV1_ISA_E1),
1634 OP16 ("btsti",
1635 OPCODE_INFO2 (0x3600,
1636 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1637 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
1638 CSKYV1_ISA_E1),
1639 DOP16 ("rotli",
1640 OPCODE_INFO3 (0x3800,
1641 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1642 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1643 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1644 OPCODE_INFO2 (0x3800,
1645 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1646 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1647 CSKYV1_ISA_E1),
1648 DOP16 ("xsr",
1649 OPCODE_INFO3 (0x3800,
1650 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1651 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1652 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1653 OPCODE_INFO1 (0x3800,
1654 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1655 CSKYV1_ISA_E1),
1656 DOP16 ("asrc",
1657 OPCODE_INFO3 (0x3a00,
1658 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1659 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1660 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1661 OPCODE_INFO1 (0x3a00,
1662 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1663 CSKYV1_ISA_E1),
1664 DOP16 ("asri",
1665 OPCODE_INFO3 (0x3a00,
1666 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1667 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1668 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1669 OPCODE_INFO2 (0x3a00,
1670 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1671 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1672 CSKYV1_ISA_E1),
1673 DOP16 ("lslc",
1674 OPCODE_INFO3 (0x3c00,
1675 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1676 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1677 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1678 OPCODE_INFO1 (0x3c00,
1679 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1680 CSKYV1_ISA_E1),
1681 DOP16 ("lsli",
1682 OPCODE_INFO3 (0x3c00,
1683 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1684 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1685 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1686 OPCODE_INFO2 (0x3c00,
1687 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1688 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1689 CSKYV1_ISA_E1),
1690 DOP16 ("lsrc",
1691 OPCODE_INFO3 (0x3e00,
1692 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1693 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1694 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
1695 OPCODE_INFO1 (0x3e00,
1696 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
1697 CSKYV1_ISA_E1),
1698 DOP16 ("lsri",
1699 OPCODE_INFO3 (0x3e00,
1700 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1701 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1702 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1703 OPCODE_INFO2 (0x3e00,
1704 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1705 (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)),
1706 CSKYV1_ISA_E1),
1707 OP16 ("ldex",
1708 SOPCODE_INFO2 (0x4000,
1709 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1710 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1711 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1712 CSKY_ISA_MP),
1713 OP16 ("ldex.w",
1714 SOPCODE_INFO2 (0x4000,
1715 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1716 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1717 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1718 CSKY_ISA_MP),
1719 OP16 ("ldwex",
1720 SOPCODE_INFO2 (0x4000,
1721 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1722 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1723 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1724 CSKY_ISA_MP),
1725 OP16 ("stex",
1726 SOPCODE_INFO2 (0x5000,
1727 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1728 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1729 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1730 CSKY_ISA_MP),
1731 OP16 ("stex.w",
1732 SOPCODE_INFO2 (0x5000,
1733 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1734 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1735 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1736 CSKY_ISA_MP),
1737 OP16 ("stwex",
1738 SOPCODE_INFO2 (0x5000,
1739 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1740 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1741 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1742 CSKY_ISA_MP),
1743 OP16 ("omflip0",
1744 OPCODE_INFO2 (0x4000,
1745 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1746 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1747 CSKY_ISA_MAC),
1748 OP16 ("omflip1",
1749 OPCODE_INFO2 (0x4100,
1750 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1751 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1752 CSKY_ISA_MAC),
1753 OP16 ("omflip2",
1754 OPCODE_INFO2 (0x4200,
1755 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1756 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1757 CSKY_ISA_MAC),
1758 OP16 ("omflip3",
1759 OPCODE_INFO2 (0x4300,
1760 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1761 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1762 CSKY_ISA_MAC),
1763 OP16 ("muls",
1764 OPCODE_INFO2 (0x5000,
1765 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1766 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1767 CSKY_ISA_DSP),
1768 OP16 ("mulsa",
1769 OPCODE_INFO2 (0x5100,
1770 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1771 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1772 CSKY_ISA_DSP),
1773 OP16 ("mulss",
1774 OPCODE_INFO2 (0x5200,
1775 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1776 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1777 CSKY_ISA_DSP),
1778 OP16 ("mulu",
1779 OPCODE_INFO2 (0x5400,
1780 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1781 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1782 CSKY_ISA_DSP),
1783 OP16 ("mulua",
1784 OPCODE_INFO2 (0x5500,
1785 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1786 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1787 CSKY_ISA_DSP),
1788 OP16 ("mulus",
1789 OPCODE_INFO2 (0x5600,
1790 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1791 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1792 CSKY_ISA_DSP),
1793 OP16 ("vmulsh",
1794 OPCODE_INFO2 (0x5800,
1795 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1796 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1797 CSKY_ISA_DSP),
1798 OP16 ("vmulsha",
1799 OPCODE_INFO2 (0x5900,
1800 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1801 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1802 CSKY_ISA_DSP),
1803 OP16 ("vmulshs",
1804 OPCODE_INFO2 (0x5a00,
1805 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1806 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1807 CSKY_ISA_DSP),
1808 OP16 ("vmulsw",
1809 OPCODE_INFO2 (0x5c00,
1810 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1811 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1812 CSKY_ISA_DSP),
1813 OP16 ("vmulswa",
1814 OPCODE_INFO2 (0x5d00,
1815 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1816 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1817 CSKY_ISA_DSP),
1818 OP16 ("vmulsws",
1819 OPCODE_INFO2 (0x5e00,
1820 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1821 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1822 CSKY_ISA_DSP),
1823 OP16 ("movi",
1824 OPCODE_INFO2 (0x6000,
1825 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1826 (4_10, IMM7b, OPRND_SHIFT_0_BIT)),
1827 CSKYV1_ISA_E1),
1828 DOP16 ("mulsh",
1829 OPCODE_INFO3 (0x6800,
1830 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1831 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1832 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1833 OPCODE_INFO2 (0x6800,
1834 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1835 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1836 CSKYV1_ISA_E1),
1837 DOP16 ("mulsh.h",
1838 OPCODE_INFO3 (0x6800,
1839 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1840 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
1841 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1842 OPCODE_INFO2 (0x6800,
1843 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1844 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1845 CSKYV1_ISA_E1),
1846 OP16 ("mulsha",
1847 OPCODE_INFO2 (0x6900,
1848 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1849 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1850 CSKY_ISA_DSP),
1851 OP16 ("mulshs",
1852 OPCODE_INFO2 (0x6a00,
1853 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1854 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1855 CSKY_ISA_DSP),
1856 OP16 ("cprcr",
1857 OPCODE_INFO2 (0x6b00,
1858 (0_2, GREG0_7, OPRND_SHIFT_0_BIT),
1859 (3_7, CPCREG, OPRND_SHIFT_0_BIT)),
1860 CSKY_ISA_CP),
1861 OP16 ("mulsw",
1862 OPCODE_INFO2 (0x6c00,
1863 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1864 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1865 CSKY_ISA_DSP),
1866 OP16 ("mulswa",
1867 OPCODE_INFO2 (0x6d00,
1868 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1869 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1870 CSKY_ISA_DSP),
1871 OP16 ("mulsws",
1872 OPCODE_INFO2 (0x6e00,
1873 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1874 (4_7, GREG0_15, OPRND_SHIFT_0_BIT)),
1875 CSKY_ISA_DSP),
1876 OP16 ("cpwcr",
1877 OPCODE_INFO2 (0x6f00,
1878 (0_2, GREG0_7, OPRND_SHIFT_0_BIT),
1879 (3_7, CPCREG, OPRND_SHIFT_0_BIT)),
1880 CSKY_ISA_CP),
1881#undef _RELOC16
1882#define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM8BY4
1883#undef _TRANSFER
1884#define _TRANSFER 1
1885 OP16 ("jmpi",
1886 OPCODE_INFO1 (0x7000,
1887 (0_7, OFF8b, OPRND_SHIFT_2_BIT)),
1888 CSKYV1_ISA_E1),
1889#undef _TRANSFER
1890#define _TRANSFER 0
1891 OP16 ("jsri",
1892 OPCODE_INFO1 (0x7f00,
1893 (0_7, OFF8b, OPRND_SHIFT_2_BIT)),
1894 CSKYV1_ISA_E1),
1895 OP16_WITH_WORK ("lrw",
1896 OPCODE_INFO2 (0x7000,
1897 (8_11, REGnsplr, OPRND_SHIFT_0_BIT),
1898 (0_7, CONSTANT, OPRND_SHIFT_2_BIT)),
1899 CSKYV1_ISA_E1,
1900 v1_work_lrw),
1901#undef _RELOC16
1902#define _RELOC16 0
1903 DOP16 ("ld.w",
1904 SOPCODE_INFO2 (0x8000,
1905 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1906 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1907 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1908 OPCODE_INFO2 (0x8000,
1909 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1910 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1911 CSKYV1_ISA_E1),
1912 DOP16 ("ldw",
1913 SOPCODE_INFO2 (0x8000,
1914 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1915 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1916 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1917 OPCODE_INFO2 (0x8000,
1918 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1919 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1920 CSKYV1_ISA_E1),
1921 DOP16 ("ld",
1922 SOPCODE_INFO2 (0x8000,
1923 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1924 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1925 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1926 OPCODE_INFO2 (0x8000,
1927 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1928 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1929 CSKYV1_ISA_E1),
1930 DOP16 ("st.w",
1931 SOPCODE_INFO2 (0x9000,
1932 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1933 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1934 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1935 OPCODE_INFO2 (0x9000,
1936 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1937 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1938 CSKYV1_ISA_E1),
1939 DOP16 ("stw",
1940 SOPCODE_INFO2 (0x9000,
1941 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1942 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1943 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1944 OPCODE_INFO2 (0x9000,
1945 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1946 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1947 CSKYV1_ISA_E1),
1948 DOP16 ("st",
1949 SOPCODE_INFO2 (0x9000,
1950 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1951 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1952 (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))),
1953 OPCODE_INFO2 (0x9000,
1954 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1955 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1956 CSKYV1_ISA_E1),
1957 DOP16 ("ld.b",
1958 SOPCODE_INFO2 (0xa000,
1959 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1960 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1961 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1962 OPCODE_INFO2 (0xa000,
1963 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1964 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1965 CSKYV1_ISA_E1),
1966 DOP16 ("ldb",
1967 SOPCODE_INFO2 (0xa000,
1968 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1969 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1970 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1971 OPCODE_INFO2 (0xa000,
1972 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1973 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1974 CSKYV1_ISA_E1),
1975 DOP16 ("st.b",
1976 SOPCODE_INFO2 (0xb000,
1977 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1978 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1979 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1980 OPCODE_INFO2 (0xb000,
1981 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1982 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1983 CSKYV1_ISA_E1),
1984 DOP16 ("stb",
1985 SOPCODE_INFO2 (0xb000,
1986 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1987 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1988 (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))),
1989 OPCODE_INFO2 (0xb000,
1990 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1991 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
1992 CSKYV1_ISA_E1),
1993 DOP16 ("ld.h",
1994 SOPCODE_INFO2 (0xc000,
1995 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
1996 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
1997 (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
1998 OPCODE_INFO2 (0xc000,
1999 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
2000 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
2001 CSKYV1_ISA_E1),
2002 DOP16 ("ldh",
2003 SOPCODE_INFO2 (0xc000,
2004 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
2005 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
2006 (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
2007 OPCODE_INFO2 (0xc000,
2008 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
2009 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
2010 CSKYV1_ISA_E1),
2011 DOP16 ("st.h",
2012 SOPCODE_INFO2 (0xd000,
2013 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
2014 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
2015 (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
2016 OPCODE_INFO2 (0xd000,
2017 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
2018 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
2019 CSKYV1_ISA_E1),
2020 DOP16 ("sth",
2021 SOPCODE_INFO2 (0xd000,
2022 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
2023 BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT),
2024 (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))),
2025 OPCODE_INFO2 (0xd000,
2026 (8_11, GREG0_15, OPRND_SHIFT_0_BIT),
2027 (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
2028 CSKYV1_ISA_E1),
2029
2030#undef _RELOC16
2031#define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM11BY2
2032 OP16 ("bt",
2033 OPCODE_INFO1 (0xe000,
2034 (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
2035 CSKYV1_ISA_E1),
2036 OP16 ("bf",
2037 OPCODE_INFO1 (0xe800,
2038 (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
2039 CSKYV1_ISA_E1),
2040#undef _TRANSFER
2041#define _TRANSFER 1
2042 OP16 ("br",
2043 OPCODE_INFO1 (0xf000,
2044 (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
2045 CSKYV1_ISA_E1),
2046#undef _TRANSFER
2047#define _TRANSFER 0
2048 OP16 ("bsr",
2049 OPCODE_INFO1 (0xf800,
2050 (0_10, OFF11b, OPRND_SHIFT_1_BIT)),
2051 CSKYV1_ISA_E1),
2052#undef _RELOC16
2053#define _RELOC16 0
2054
2055#undef _RELAX
2056#define _RELAX 1
2057 OP16 ("jbt",
2058 OPCODE_INFO1 (0xe000,
2059 (0_10, JBTF, OPRND_SHIFT_0_BIT)),
2060 CSKYV1_ISA_E1),
2061 OP16 ("jbf",
2062 OPCODE_INFO1 (0xe800,
2063 (0_10, JBTF, OPRND_SHIFT_0_BIT)),
2064 CSKYV1_ISA_E1),
2065#undef _TRANSFER
2066#define _TRANSFER 1
2067 OP16 ("jbr",
2068 OPCODE_INFO1 (0xf000,
2069 (0_10, JBR, OPRND_SHIFT_0_BIT)),
2070 CSKYV1_ISA_E1),
2071#undef _TRANSFER
2072#define _TRANSFER 0
2073#undef _RELAX
2074#define _RELAX 0
2075
2076 OP16_WITH_WORK ("jbsr",
2077 OPCODE_INFO1 (0xf800,
2078 (0_10, JBSR, OPRND_SHIFT_0_BIT)),
2079 CSKYV1_ISA_E1,
2080 v1_work_jbsr),
2081
2082 /* The following are aliases for other instructions. */
2083 /* rts -> jmp r15. */
2084#undef _TRANSFER
2085#define _TRANSFER 2
2086 OP16 ("rts",
2087 OPCODE_INFO0 (0x00CF),
2088 CSKYV1_ISA_E1),
2089 OP16 ("rte",
2090 OPCODE_INFO0 (0x0002),
2091 CSKYV1_ISA_E1),
2092 OP16 ("rfe",
2093 OPCODE_INFO0 (0x0002),
2094 CSKYV1_ISA_E1),
2095#undef _TRANSFER
2096#define _TRANSFER 0
2097
2098 /* cmphs r0,r0 */
2099 OP16 ("setc",
2100 OPCODE_INFO0 (0x0c00),
2101 CSKYV1_ISA_E1),
2102 /* cmpne r0,r0 */
2103 OP16 ("clrc",
2104 OPCODE_INFO0 (0x0f00),
2105 CSKYV1_ISA_E1),
2106 /* cmplti rd,1 */
2107 OP16 ("tstle",
2108 OPCODE_INFO1 (0x2200,
2109 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
2110 CSKYV1_ISA_E1),
2111 /* cmplei rd,X -> cmplti rd,X+1 */
2112 OP16 ("cmplei",
2113 OPCODE_INFO2 (0x2200,
2114 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
2115 (4_8, IMM5b, OPRND_SHIFT_0_BIT)),
2116 CSKYV1_ISA_E1),
2117 /* rsubi rd,0 */
2118 OP16 ("neg",
2119 OPCODE_INFO1 (0x2800,
2120 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
2121 CSKYV1_ISA_E1),
2122 /* cmpnei rd,0. */
2123 OP16 ("tstne",
2124 OPCODE_INFO1 (0x2a00,
2125 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
2126 CSKYV1_ISA_E1),
2127 /* btsti rx,31. */
2128 OP16 ("tstlt",
2129 OPCODE_INFO1 (0x37f0,
2130 (0_3, GREG0_15, OPRND_SHIFT_0_BIT)),
2131 CSKYV1_ISA_E1),
2132 /* bclri rx,log2(imm). */
2133 OP16 ("mclri",
2134 OPCODE_INFO2 (0x3000,
2135 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
2136 (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)),
2137 CSKYV1_ISA_E1),
2138 /* bgeni rx,log2(imm). */
2139 OP16 ("mgeni",
2140 OPCODE_INFO2 (0x3200,
2141 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
2142 (4_8, IMM5b_7_31_POWER, OPRND_SHIFT_0_BIT)),
2143 CSKYV1_ISA_E1),
2144 /* bseti rx,log2(imm). */
2145 OP16 ("mseti",
2146 OPCODE_INFO2 (0x3400,
2147 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
2148 (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)),
2149 CSKYV1_ISA_E1),
2150 /* btsti rx,log2(imm). */
2151 OP16 ("mtsti",
2152 OPCODE_INFO2 (0x3600,
2153 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
2154 (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)),
2155 CSKYV1_ISA_E1),
2156 OP16 ("rori",
2157 OPCODE_INFO2 (0x3800,
2158 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
2159 (4_8, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
2160 CSKYV1_ISA_E1),
2161 OP16 ("rotri",
2162 OPCODE_INFO2 (0x3800,
2163 (0_3, GREG0_15, OPRND_SHIFT_0_BIT),
2164 (4_8, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
2165 CSKYV1_ISA_E1),
2166 /* mov r0, r0. */
2167 OP16 ("nop",
2168 OPCODE_INFO0 (0x1200),
2169 CSKYV1_ISA_E1),
2170
2171 /* Float instruction with work. */
2172 OP16_WITH_WORK ("fabss",
2173 OPCODE_INFO3 (0xffe04400,
2174 (5_9, FREG, OPRND_SHIFT_0_BIT),
2175 (0_4, FREG, OPRND_SHIFT_0_BIT),
2176 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2177 CSKY_ISA_FLOAT_E1,
2178 v1_work_fpu_fo),
2179 OP16_WITH_WORK ("fnegs",
2180 OPCODE_INFO3 (0xffe04c00,
2181 (5_9, FREG, OPRND_SHIFT_0_BIT),
2182 (0_4, FREG, OPRND_SHIFT_0_BIT),
2183 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2184 CSKY_ISA_FLOAT_E1,
2185 v1_work_fpu_fo),
2186 OP16_WITH_WORK ("fsqrts",
2187 OPCODE_INFO3 (0xffe05400,
2188 (5_9, FREG, OPRND_SHIFT_0_BIT),
2189 (0_4, FREG, OPRND_SHIFT_0_BIT),
2190 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2191 CSKY_ISA_FLOAT_E1,
2192 v1_work_fpu_fo),
2193 OP16_WITH_WORK ("frecips",
2194 OPCODE_INFO3 (0xffe05c00,
2195 (5_9, FREG, OPRND_SHIFT_0_BIT),
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),
2200 OP16_WITH_WORK ("fadds",
2201 OPCODE_INFO4 (0xffe38000,
2202 (5_9, FREG, OPRND_SHIFT_0_BIT),
2203 (0_4, FREG, OPRND_SHIFT_0_BIT),
2204 (10_14, FREG, OPRND_SHIFT_0_BIT),
2205 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2206 CSKY_ISA_FLOAT_E1,
2207 v1_work_fpu_fo),
2208 OP16_WITH_WORK ("fsubs",
2209 OPCODE_INFO4 (0xffe48000,
2210 (5_9, FREG, OPRND_SHIFT_0_BIT),
2211 (0_4, FREG, OPRND_SHIFT_0_BIT),
2212 (10_14, FREG, OPRND_SHIFT_0_BIT),
2213 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2214 CSKY_ISA_FLOAT_E1, v1_work_fpu_fo),
2215 OP16_WITH_WORK ("fmacs",
2216 OPCODE_INFO4 (0xffe58000,
2217 (5_9, FREG, OPRND_SHIFT_0_BIT),
2218 (0_4, FREG, OPRND_SHIFT_0_BIT),
2219 (10_14, FREG, OPRND_SHIFT_0_BIT),
2220 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2221 CSKY_ISA_FLOAT_E1,
2222 v1_work_fpu_fo),
2223 OP16_WITH_WORK ("fmscs",
2224 OPCODE_INFO4 (0xffe68000,
2225 (5_9, FREG, OPRND_SHIFT_0_BIT),
2226 (0_4, FREG, OPRND_SHIFT_0_BIT),
2227 (10_14, FREG, OPRND_SHIFT_0_BIT),
2228 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2229 CSKY_ISA_FLOAT_E1,
2230 v1_work_fpu_fo),
2231 OP16_WITH_WORK ("fmuls",
2232 OPCODE_INFO4 (0xffe78000,
2233 (5_9, FREG, OPRND_SHIFT_0_BIT),
2234 (0_4, FREG, OPRND_SHIFT_0_BIT),
2235 (10_14, 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 ("fdivs",
2240 OPCODE_INFO4 (0xffe88000,
2241 (5_9, FREG, OPRND_SHIFT_0_BIT),
2242 (0_4, FREG, OPRND_SHIFT_0_BIT),
2243 (10_14, FREG, OPRND_SHIFT_0_BIT),
2244 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2245 CSKY_ISA_FLOAT_E1,
2246 v1_work_fpu_fo),
2247 OP16_WITH_WORK ("fnmacs",
2248 OPCODE_INFO4 (0xffe98000,
2249 (5_9, FREG, OPRND_SHIFT_0_BIT),
2250 (0_4, FREG, OPRND_SHIFT_0_BIT),
2251 (10_14, FREG, OPRND_SHIFT_0_BIT),
2252 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2253 CSKY_ISA_FLOAT_E1,
2254 v1_work_fpu_fo),
2255 OP16_WITH_WORK ("fnmscs",
2256 OPCODE_INFO4 (0xffea8000,
2257 (5_9, FREG, OPRND_SHIFT_0_BIT),
2258 (0_4, FREG, OPRND_SHIFT_0_BIT),
2259 (10_14, FREG, OPRND_SHIFT_0_BIT),
2260 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2261 CSKY_ISA_FLOAT_E1,
2262 v1_work_fpu_fo),
2263 OP16_WITH_WORK ("fnmuls",
2264 OPCODE_INFO4 (0xffeb8000,
2265 (5_9, FREG, OPRND_SHIFT_0_BIT),
2266 (0_4, FREG, OPRND_SHIFT_0_BIT),
2267 (10_14, FREG, OPRND_SHIFT_0_BIT),
2268 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2269 CSKY_ISA_FLOAT_E1,
2270 v1_work_fpu_fo),
2271 OP16_WITH_WORK ("fabsd",
2272 OPCODE_INFO3 (0xffe04000,
2273 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2274 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2275 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2276 CSKY_ISA_FLOAT_E1,
2277 v1_work_fpu_fo),
2278 OP16_WITH_WORK ("fnegd",
2279 OPCODE_INFO3 (0xffe04800,
2280 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2281 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2282 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2283 CSKY_ISA_FLOAT_E1,
2284 v1_work_fpu_fo),
2285 OP16_WITH_WORK ("fsqrtd",
2286 OPCODE_INFO3 (0xffe05000,
2287 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2288 (0_4, FEREG, 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 ("frecipd",
2293 OPCODE_INFO3 (0xffe05800,
2294 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2295 (0_4, FEREG, 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 ("faddd",
2300 OPCODE_INFO4 (0xffe30000,
2301 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2302 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2303 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2304 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2305 CSKY_ISA_FLOAT_E1,
2306 v1_work_fpu_fo),
2307 OP16_WITH_WORK ("fsubd",
2308 OPCODE_INFO4 (0xffe40000,
2309 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2310 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2311 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2312 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2313 CSKY_ISA_FLOAT_E1,
2314 v1_work_fpu_fo),
2315 OP16_WITH_WORK ("fmacd",
2316 OPCODE_INFO4 (0xffe50000,
2317 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2318 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2319 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2320 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2321 CSKY_ISA_FLOAT_E1,
2322 v1_work_fpu_fo),
2323 OP16_WITH_WORK ("fmscd",
2324 OPCODE_INFO4 (0xffe60000,
2325 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2326 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2327 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2328 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2329 CSKY_ISA_FLOAT_E1,
2330 v1_work_fpu_fo),
2331 OP16_WITH_WORK ("fmuld",
2332 OPCODE_INFO4 (0xffe70000,
2333 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2334 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2335 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2336 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2337 CSKY_ISA_FLOAT_E1,
2338 v1_work_fpu_fo),
2339 OP16_WITH_WORK ("fdivd",
2340 OPCODE_INFO4 (0xffe80000,
2341 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2342 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2343 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2344 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2345 CSKY_ISA_FLOAT_E1,
2346 v1_work_fpu_fo),
2347 OP16_WITH_WORK ("fnmacd",
2348 OPCODE_INFO4 (0xffe90000,
2349 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2350 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2351 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2352 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2353 CSKY_ISA_FLOAT_E1,
2354 v1_work_fpu_fo),
2355 OP16_WITH_WORK ("fnmscd",
2356 OPCODE_INFO4 (0xffea0000,
2357 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2358 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2359 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2360 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2361 CSKY_ISA_FLOAT_E1,
2362 v1_work_fpu_fo),
2363 OP16_WITH_WORK ("fnmuld",
2364 OPCODE_INFO4 (0xffeb0000,
2365 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2366 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2367 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2368 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2369 CSKY_ISA_FLOAT_E1,
2370 v1_work_fpu_fo),
2371 OP16_WITH_WORK ("fabsm",
2372 OPCODE_INFO3 (0xffe06000,
2373 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2374 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2375 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2376 CSKY_ISA_FLOAT_E1,
2377 v1_work_fpu_fo),
2378 OP16_WITH_WORK ("fnegm",
2379 OPCODE_INFO3 (0xffe06400,
2380 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2381 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2382 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2383 CSKY_ISA_FLOAT_E1,
2384 v1_work_fpu_fo),
2385 OP16_WITH_WORK ("faddm",
2386 OPCODE_INFO4 (0xffec0000,
2387 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2388 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2389 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2390 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2391 CSKY_ISA_FLOAT_E1,
2392 v1_work_fpu_fo),
2393 OP16_WITH_WORK ("fsubm",
2394 OPCODE_INFO4 (0xffec8000,
2395 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2396 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2397 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2398 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2399 CSKY_ISA_FLOAT_E1,
2400 v1_work_fpu_fo),
2401 OP16_WITH_WORK ("fmacm",
2402 OPCODE_INFO4 (0xffed8000,
2403 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2404 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2405 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2406 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2407 CSKY_ISA_FLOAT_E1,
2408 v1_work_fpu_fo),
2409 OP16_WITH_WORK ("fmscm",
2410 OPCODE_INFO4 (0xffee0000,
2411 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2412 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2413 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2414 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2415 CSKY_ISA_FLOAT_E1,
2416 v1_work_fpu_fo),
2417 OP16_WITH_WORK ("fmulm",
2418 OPCODE_INFO4 (0xffed0000,
2419 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2420 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2421 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2422 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2423 CSKY_ISA_FLOAT_E1,
2424 v1_work_fpu_fo),
2425 OP16_WITH_WORK ("fnmacm",
2426 OPCODE_INFO4 (0xffee8000,
2427 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2428 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2429 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2430 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2431 CSKY_ISA_FLOAT_E1,
2432 v1_work_fpu_fo),
2433 OP16_WITH_WORK ("fnmscm",
2434 OPCODE_INFO4 (0xffef0000,
2435 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2436 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2437 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2438 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2439 CSKY_ISA_FLOAT_E1,
2440 v1_work_fpu_fo),
2441 OP16_WITH_WORK ("fnmulm",
2442 OPCODE_INFO4 (0xffef8000,
2443 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2444 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2445 (10_14, FEREG, OPRND_SHIFT_0_BIT),
2446 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2447 CSKY_ISA_FLOAT_E1,
2448 v1_work_fpu_fo),
2449 OP16_WITH_WORK ("fcmphsd",
2450 OPCODE_INFO3 (0xffe00800,
2451 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2452 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2453 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2454 CSKY_ISA_FLOAT_E1,
2455 v1_work_fpu_fo_fc),
2456 OP16_WITH_WORK ("fcmpltd",
2457 OPCODE_INFO3 (0xffe00c00,
2458 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2459 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2460 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2461 CSKY_ISA_FLOAT_E1,
2462 v1_work_fpu_fo_fc),
2463 OP16_WITH_WORK ("fcmpned",
2464 OPCODE_INFO3 (0xffe01000,
2465 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2466 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2467 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2468 CSKY_ISA_FLOAT_E1,
2469 v1_work_fpu_fo_fc),
2470 OP16_WITH_WORK ("fcmpuod",
2471 OPCODE_INFO3 (0xffe01400,
2472 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2473 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2474 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2475 CSKY_ISA_FLOAT_E1,
2476 v1_work_fpu_fo_fc),
2477 OP16_WITH_WORK ("fcmphss",
2478 OPCODE_INFO3 (0xffe01800,
2479 (0_4, FREG, OPRND_SHIFT_0_BIT),
2480 (5_9, FREG, OPRND_SHIFT_0_BIT),
2481 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2482 CSKY_ISA_FLOAT_E1,
2483 v1_work_fpu_fo_fc),
2484 OP16_WITH_WORK ("fcmplts",
2485 OPCODE_INFO3 (0xffe01c00,
2486 (0_4, FREG, OPRND_SHIFT_0_BIT),
2487 (5_9, FREG, OPRND_SHIFT_0_BIT),
2488 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2489 CSKY_ISA_FLOAT_E1,
2490 v1_work_fpu_fo_fc),
2491 OP16_WITH_WORK ("fcmpnes",
2492 OPCODE_INFO3 (0xffe02000,
2493 (0_4, FREG, OPRND_SHIFT_0_BIT),
2494 (5_9, FREG, OPRND_SHIFT_0_BIT),
2495 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2496 CSKY_ISA_FLOAT_E1,
2497 v1_work_fpu_fo_fc),
2498 OP16_WITH_WORK ("fcmpuos",
2499 OPCODE_INFO3 (0xffe02400,
2500 (0_4, FREG, OPRND_SHIFT_0_BIT),
2501 (5_9, FREG, OPRND_SHIFT_0_BIT),
2502 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2503 CSKY_ISA_FLOAT_E1,
2504 v1_work_fpu_fo_fc),
2505 OP16_WITH_WORK ("fcmpzhsd",
2506 OPCODE_INFO2 (0xffe00400,
2507 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2508 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2509 CSKY_ISA_FLOAT_E1,
2510 v1_work_fpu_fo_fc),
2511 OP16_WITH_WORK ("fcmpzltd",
2512 OPCODE_INFO2 (0xffe00480,
2513 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2514 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2515 CSKY_ISA_FLOAT_E1,
2516 v1_work_fpu_fo_fc),
2517 OP16_WITH_WORK ("fcmpzned",
2518 OPCODE_INFO2 (0xffe00500,
2519 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2520 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2521 CSKY_ISA_FLOAT_E1,
2522 v1_work_fpu_fo_fc),
2523 OP16_WITH_WORK ("fcmpzuod",
2524 OPCODE_INFO2 (0xffe00580,
2525 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2526 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2527 CSKY_ISA_FLOAT_E1,
2528 v1_work_fpu_fo_fc),
2529 OP16_WITH_WORK ("fcmpzhss",
2530 OPCODE_INFO2 (0xffe00600,
2531 (0_4, FREG, OPRND_SHIFT_0_BIT),
2532 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2533 CSKY_ISA_FLOAT_E1,
2534 v1_work_fpu_fo_fc),
2535 OP16_WITH_WORK ("fcmpzlts",
2536 OPCODE_INFO2 (0xffe00680,
2537 (0_4, FREG, OPRND_SHIFT_0_BIT),
2538 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2539 CSKY_ISA_FLOAT_E1,
2540 v1_work_fpu_fo_fc),
2541 OP16_WITH_WORK ("fcmpznes",
2542 OPCODE_INFO2 (0xffe00700,
2543 (0_4, FREG, OPRND_SHIFT_0_BIT),
2544 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2545 CSKY_ISA_FLOAT_E1,
2546 v1_work_fpu_fo_fc),
2547 OP16_WITH_WORK ("fcmpzuos",
2548 OPCODE_INFO2 (0xffe00780,
2549 (0_4, FREG, OPRND_SHIFT_0_BIT),
2550 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2551 CSKY_ISA_FLOAT_E1,
2552 v1_work_fpu_fo_fc),
2553 OP16_WITH_WORK ("fstod",
2554 OPCODE_INFO3 (0xffe02800,
2555 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2556 (0_4, FREG, OPRND_SHIFT_0_BIT),
2557 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2558 CSKY_ISA_FLOAT_E1,
2559 v1_work_fpu_fo),
2560 OP16_WITH_WORK ("fdtos",
2561 OPCODE_INFO3 (0xffe02c00,
2562 (5_9, FREG, OPRND_SHIFT_0_BIT),
2563 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2564 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2565 CSKY_ISA_FLOAT_E1,
2566 v1_work_fpu_fo),
2567 OP16_WITH_WORK ("fsitos",
2568 OPCODE_INFO3 (0xffe03400,
2569 (5_9, FREG, OPRND_SHIFT_0_BIT),
2570 (0_4, FREG, OPRND_SHIFT_0_BIT),
2571 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2572 CSKY_ISA_FLOAT_E1,
2573 v1_work_fpu_fo),
2574 OP16_WITH_WORK ("fsitod",
2575 OPCODE_INFO3 (0xffe03000,
2576 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2577 (0_4, FREG, OPRND_SHIFT_0_BIT),
2578 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2579 CSKY_ISA_FLOAT_E1,
2580 v1_work_fpu_fo),
2581 OP16_WITH_WORK ("fuitos",
2582 OPCODE_INFO3 (0xffe03c00,
2583 (5_9, FREG, OPRND_SHIFT_0_BIT),
2584 (0_4, FREG, OPRND_SHIFT_0_BIT),
2585 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2586 CSKY_ISA_FLOAT_E1,
2587 v1_work_fpu_fo),
2588 OP16_WITH_WORK ("fuitod",
2589 OPCODE_INFO3 (0xffe03800,
2590 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2591 (0_4, FREG, OPRND_SHIFT_0_BIT),
2592 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2593 CSKY_ISA_FLOAT_E1,
2594 v1_work_fpu_fo),
2595 OP16_WITH_WORK ("fstosi",
2596 OPCODE_INFO4 (0xffe10000,
2597 (5_9, FREG, OPRND_SHIFT_0_BIT),
2598 (0_4, FREG, OPRND_SHIFT_0_BIT),
2599 (13_17, RM, OPRND_SHIFT_0_BIT),
2600 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2601 CSKY_ISA_FLOAT_E1,
2602 v1_work_fpu_fo),
2603 OP16_WITH_WORK ("fdtosi",
2604 OPCODE_INFO4 (0xffe08000,
2605 (5_9, FREG, OPRND_SHIFT_0_BIT),
2606 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2607 (13_17, RM, OPRND_SHIFT_0_BIT),
2608 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2609 CSKY_ISA_FLOAT_E1,
2610 v1_work_fpu_fo),
2611 OP16_WITH_WORK ("fstoui",
2612 OPCODE_INFO4 (0xffe20000,
2613 (5_9, FREG, OPRND_SHIFT_0_BIT),
2614 (0_4, FREG, OPRND_SHIFT_0_BIT),
2615 (13_17, RM, OPRND_SHIFT_0_BIT),
2616 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2617 CSKY_ISA_FLOAT_E1,
2618 v1_work_fpu_fo),
2619 OP16_WITH_WORK ("fdtoui",
2620 OPCODE_INFO4 (0xffe18000,
2621 (5_9, FREG, OPRND_SHIFT_0_BIT),
2622 (0_4, FEREG, OPRND_SHIFT_0_BIT),
2623 (13_17, RM, OPRND_SHIFT_0_BIT),
2624 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2625 CSKY_ISA_FLOAT_E1,
2626 v1_work_fpu_fo),
2627 OP16_WITH_WORK ("fmovd",
2628 OPCODE_INFO3 (0xffe06800,
2629 (5_9, FEREG, OPRND_SHIFT_0_BIT),
2630 (0_4, FREG, OPRND_SHIFT_0_BIT),
2631 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2632 CSKY_ISA_FLOAT_E1,
2633 v1_work_fpu_fo),
2634 OP16_WITH_WORK ("fmovs",
2635 OPCODE_INFO3 (0xffe06c00,
2636 (5_9, FREG, OPRND_SHIFT_0_BIT),
2637 (0_4, FREG, OPRND_SHIFT_0_BIT),
2638 (NONE, GREG0_15, OPRND_SHIFT_0_BIT)),
2639 CSKY_ISA_FLOAT_E1,
2640 v1_work_fpu_fo),
2641 OP16_WITH_WORK ("fmts",
2642 OPCODE_INFO2 (0x00000000,
2643 (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
2644 (NONE, FREG, OPRND_SHIFT_0_BIT)),
2645 CSKY_ISA_FLOAT_E1,
2646 v1_work_fpu_write),
2647 OP16_WITH_WORK ("fmfs",
2648 OPCODE_INFO2 (0x00000000,
2649 (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
2650 (NONE, FREG, OPRND_SHIFT_0_BIT)),
2651 CSKY_ISA_FLOAT_E1,
2652 v1_work_fpu_read),
2653 OP16_WITH_WORK ("fmtd",
2654 OPCODE_INFO2 (0x00000000,
2655 (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
2656 (NONE, FEREG, OPRND_SHIFT_0_BIT)),
2657 CSKY_ISA_FLOAT_E1,
2658 v1_work_fpu_writed),
2659 OP16_WITH_WORK ("fmfd",
2660 OPCODE_INFO2 (0x00000000,
2661 (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
2662 (NONE, FEREG, OPRND_SHIFT_0_BIT)),
2663 CSKY_ISA_FLOAT_E1,
2664 v1_work_fpu_readd),
f24ff6e9 2665 {NULL, 0, {}, {}, 0, 0, 0, 0, 0, NULL}
b8891f8d
AJ
2666};
2667
2668#undef _TRANSFER
2669#undef _RELOC16
2670#undef _RELOC32
2671#undef _RELAX
2672
2673/* C-SKY v2 opcodes. */
2674const struct csky_opcode csky_v2_opcodes[] =
2675 {
2676#define _TRANSFER 0
2677#define _RELOC16 0
2678#define _RELOC32 0
2679#define _RELAX 0
2680 OP16 ("bkpt",
2681 OPCODE_INFO0 (0x0000),
2682 CSKYV2_ISA_E1),
2683 OP16_WITH_WORK ("nie",
2684 OPCODE_INFO0 (0x1460),
2685 CSKYV2_ISA_E1,
2686 v2_work_istack),
2687 OP16_WITH_WORK ("nir",
2688 OPCODE_INFO0 (0x1461),
2689 CSKYV2_ISA_E1,
2690 v2_work_istack),
2691 OP16_WITH_WORK ("ipush",
2692 OPCODE_INFO0 (0x1462),
2693 CSKYV2_ISA_E1,
2694 v2_work_istack),
2695 OP16_WITH_WORK ("ipop",
2696 OPCODE_INFO0 (0x1463),
2697 CSKYV2_ISA_E1,
2698 v2_work_istack),
2699 OP16 ("bpop.h",
2700 OPCODE_INFO1 (0x14a0,
2701 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
2702 CSKY_ISA_JAVA),
2703 OP16 ("bpop.w",
2704 OPCODE_INFO1 (0x14a2,
2705 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
2706 CSKY_ISA_JAVA),
2707 OP16 ("bpush.h",
2708 OPCODE_INFO1 (0x14e0,
2709 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
2710 CSKY_ISA_JAVA),
2711 OP16 ("bpush.w",
2712 OPCODE_INFO1 (0x14e2,
2713 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
2714 CSKY_ISA_JAVA),
2715 OP32 ("bmset",
2716 OPCODE_INFO0 (0xc0001020),
2717 CSKY_ISA_JAVA),
2718 OP32 ("bmclr",
2719 OPCODE_INFO0 (0xc0001420),
2720 CSKY_ISA_JAVA),
2721 OP32 ("sce",
2722 OPCODE_INFO1 (0xc0001820,
2723 (21_24, IMM4b, OPRND_SHIFT_0_BIT)),
2724 CSKY_ISA_MP),
2725 OP32 ("trap",
2726 OPCODE_INFO1 (0xc0002020,
2727 (10_11, IMM2b, OPRND_SHIFT_0_BIT)),
2728 CSKYV2_ISA_E1),
2729 /* Secure/nsecure world switch. */
2730 OP32 ("wsc",
2731 OPCODE_INFO0 (0xc0003c20),
2732 CSKY_ISA_TRUST),
2733 OP32 ("mtcr",
2734 OPCODE_INFO2 (0xc0006420,
2735 (16_20, AREG, OPRND_SHIFT_0_BIT),
2736 (0_4or21_25, CTRLREG, OPRND_SHIFT_0_BIT)),
2737 CSKYV2_ISA_E1),
2738 OP32 ("mfcr",
2739 OPCODE_INFO2 (0xc0006020,
2740 (0_4, AREG, OPRND_SHIFT_0_BIT),
2741 (16_20or21_25, CTRLREG, OPRND_SHIFT_0_BIT)),
2742 CSKYV2_ISA_E1),
2743#undef _TRANSFER
2744#define _TRANSFER 2
2745 OP32 ("rte",
2746 OPCODE_INFO0 (0xc0004020),
2747 CSKYV2_ISA_E1),
2748 OP32 ("rfi",
2749 OPCODE_INFO0 (0xc0004420),
2750 CSKYV2_ISA_2E3),
2751#undef _TRANSFER
2752#define _TRANSFER 0
2753 OP32 ("stop",
2754 OPCODE_INFO0 (0xc0004820),
2755 CSKYV2_ISA_E1),
2756 OP32 ("wait",
2757 OPCODE_INFO0 (0xc0004c20),
2758 CSKYV2_ISA_E1),
2759 OP32 ("doze",
2760 OPCODE_INFO0 (0xc0005020),
2761 CSKYV2_ISA_E1),
2762 OP32 ("we",
2763 OPCODE_INFO0 (0xc0005420),
2764 CSKY_ISA_MP_1E2),
2765 OP32 ("se",
2766 OPCODE_INFO0 (0xc0005820),
2767 CSKY_ISA_MP_1E2),
2768 OP32 ("psrclr",
2769 OPCODE_INFO_LIST (0xc0007020,
2770 (21_25, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
2771 CSKYV2_ISA_E1),
2772 OP32 ("psrset",
2773 OPCODE_INFO_LIST (0xc0007420,
2774 (21_25, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)),
2775 CSKYV2_ISA_E1),
2776 DOP32 ("abs",
2777 OPCODE_INFO2 (0xc4000200,
2778 (0_4, AREG, OPRND_SHIFT_0_BIT),
2779 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2780 OPCODE_INFO1 (0xc4000200,
2781 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
2782 CSKYV2_ISA_2E3),
2783 OP32 ("mvc",
2784 OPCODE_INFO1 (0xc4000500,
2785 (0_4, AREG, OPRND_SHIFT_0_BIT)),
2786 CSKYV2_ISA_1E2),
2787 OP32 ("incf",
2788 OPCODE_INFO3 (0xc4000c20,
2789 (21_25, AREG, OPRND_SHIFT_0_BIT),
2790 (16_20, AREG, OPRND_SHIFT_0_BIT),
2791 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
2792 CSKYV2_ISA_1E2),
2793 OP32 ("movf",
2794 OPCODE_INFO2 (0xc4000c20,
2795 (21_25, AREG, OPRND_SHIFT_0_BIT),
2796 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2797 CSKYV2_ISA_1E2),
2798 OP32 ("inct",
2799 OPCODE_INFO3 (0xc4000c40,
2800 (21_25, AREG, OPRND_SHIFT_0_BIT),
2801 (16_20, AREG, OPRND_SHIFT_0_BIT),
2802 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
2803 CSKYV2_ISA_1E2),
2804 OP32 ("movt",
2805 OPCODE_INFO2 (0xc4000c40,
2806 (21_25, AREG, OPRND_SHIFT_0_BIT),
2807 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2808 CSKYV2_ISA_1E2),
2809 OP32 ("decf",
2810 OPCODE_INFO3 (0xc4000c80,
2811 (21_25, AREG, OPRND_SHIFT_0_BIT),
2812 (16_20, AREG, OPRND_SHIFT_0_BIT),
2813 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
2814 CSKYV2_ISA_1E2),
2815 OP32 ("dect",
2816 OPCODE_INFO3 (0xc4000d00,
2817 (21_25, AREG, OPRND_SHIFT_0_BIT),
2818 (16_20, AREG, OPRND_SHIFT_0_BIT),
2819 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
2820 CSKYV2_ISA_1E2),
2821 OP32 ("decgt",
2822 OPCODE_INFO3 (0xc4001020,
2823 (0_4, AREG, OPRND_SHIFT_0_BIT),
2824 (16_20, AREG, OPRND_SHIFT_0_BIT),
2825 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
2826 CSKYV2_ISA_2E3),
2827 OP32 ("declt",
2828 OPCODE_INFO3 (0xc4001040,
2829 (0_4, AREG, OPRND_SHIFT_0_BIT),
2830 (16_20, AREG, OPRND_SHIFT_0_BIT),
2831 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
2832 CSKYV2_ISA_2E3),
2833 OP32 ("decne",
2834 OPCODE_INFO3 (0xc4001080,
2835 (0_4, AREG, OPRND_SHIFT_0_BIT),
2836 (16_20, AREG, OPRND_SHIFT_0_BIT),
2837 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
2838 CSKYV2_ISA_2E3),
2839 OP32 ("clrf",
2840 OPCODE_INFO1 (0xc4002c20,
2841 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2842 CSKYV2_ISA_2E3),
2843 OP32 ("clrt",
2844 OPCODE_INFO1 (0xc4002c40,
2845 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2846 CSKYV2_ISA_2E3),
2847 DOP32 ("rotli",
2848 OPCODE_INFO3 (0xc4004900,
2849 (0_4, AREG, OPRND_SHIFT_0_BIT),
2850 (16_20, AREG, OPRND_SHIFT_0_BIT),
2851 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
2852 OPCODE_INFO2 (0xc4004900,
2853 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
2854 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
2855 CSKYV2_ISA_1E2),
2856 OP32 ("lslc",
2857 OPCODE_INFO3 (0xc4004c20,
2858 (0_4, AREG, OPRND_SHIFT_0_BIT),
2859 (16_20, AREG, OPRND_SHIFT_0_BIT),
2860 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
2861 CSKYV2_ISA_1E2),
2862 OP32 ("lsrc",
2863 OPCODE_INFO3 (0xc4004c40,
2864 (0_4, AREG, OPRND_SHIFT_0_BIT),
2865 (16_20, AREG, OPRND_SHIFT_0_BIT),
2866 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
2867 CSKYV2_ISA_1E2),
2868 DOP32 ("asrc",
2869 OPCODE_INFO3 (0xc4004c80,
2870 (0_4, AREG, OPRND_SHIFT_0_BIT),
2871 (16_20, AREG, OPRND_SHIFT_0_BIT),
2872 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
2873 OPCODE_INFO1 (0xc4004c80,
2874 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
2875 CSKYV2_ISA_1E2),
2876 OP32 ("xsr",
2877 OPCODE_INFO3 (0xc4004d00,
2878 (0_4, AREG, OPRND_SHIFT_0_BIT),
2879 (16_20, AREG, OPRND_SHIFT_0_BIT),
2880 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
2881 CSKYV2_ISA_1E2),
2882 OP32 ("bgenr",
2883 OPCODE_INFO2 (0xc4005040,
2884 (0_4, AREG, OPRND_SHIFT_0_BIT),
2885 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2886 CSKYV2_ISA_2E3),
2887 DOP32 ("brev",
2888 OPCODE_INFO2 (0xc4006200,
2889 (0_4, AREG, OPRND_SHIFT_0_BIT),
2890 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2891 OPCODE_INFO1 (0xc4006200,
2892 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
2893 CSKYV2_ISA_2E3),
2894 OP32 ("xtrb0",
2895 OPCODE_INFO2 (0xc4007020,
2896 (0_4, AREG, OPRND_SHIFT_0_BIT),
2897 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2898 CSKYV2_ISA_1E2),
2899 OP32 ("xtrb1",
2900 OPCODE_INFO2 (0xc4007040,
2901 (0_4, AREG, OPRND_SHIFT_0_BIT),
2902 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2903 CSKYV2_ISA_1E2),
2904 OP32 ("xtrb2",
2905 OPCODE_INFO2 (0xc4007080,
2906 (0_4, AREG, OPRND_SHIFT_0_BIT),
2907 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2908 CSKYV2_ISA_1E2),
2909 OP32 ("xtrb3",
2910 OPCODE_INFO2 (0xc4007100,
2911 (0_4, AREG, OPRND_SHIFT_0_BIT),
2912 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2913 CSKYV2_ISA_1E2),
2914 OP32 ("ff0",
2915 OPCODE_INFO2 (0xc4007c20,
2916 (0_4, AREG, OPRND_SHIFT_0_BIT),
2917 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2918 CSKYV2_ISA_1E2),
2919 DOP32 ("ff1",
2920 OPCODE_INFO2 (0xc4007c40,
2921 (0_4, AREG, OPRND_SHIFT_0_BIT),
2922 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2923 OPCODE_INFO1 (0xc4007c40,
2924 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
2925 CSKYV2_ISA_1E2),
2926 OP32 ("mulu",
2927 OPCODE_INFO2 (0xc4008820,
2928 (16_20, AREG, OPRND_SHIFT_0_BIT),
2929 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2930 CSKY_ISA_DSP),
2931 OP32 ("mulua",
2932 OPCODE_INFO2 (0xc4008840,
2933 (16_20, AREG, OPRND_SHIFT_0_BIT),
2934 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2935 CSKY_ISA_DSP),
2936 OP32 ("mulus",
2937 OPCODE_INFO2 (0xc4008880,
2938 (16_20, AREG, OPRND_SHIFT_0_BIT),
2939 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2940 CSKY_ISA_DSP),
2941 OP32 ("muls",
2942 OPCODE_INFO2 (0xc4008c20,
2943 (16_20, AREG, OPRND_SHIFT_0_BIT),
2944 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2945 CSKY_ISA_DSP),
2946 OP32 ("mulsa",
2947 OPCODE_INFO2 (0xc4008c40,
2948 (16_20, AREG, OPRND_SHIFT_0_BIT),
2949 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2950 CSKY_ISA_DSP),
2951 OP32 ("mulss",
2952 OPCODE_INFO2 (0xc4008c80,
2953 (16_20, AREG, OPRND_SHIFT_0_BIT),
2954 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2955 CSKY_ISA_DSP),
2956 OP32 ("mulsha",
2957 OPCODE_INFO2 (0xc4009040,
2958 (16_20, AREG, OPRND_SHIFT_0_BIT),
2959 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2960 CSKY_ISA_DSP),
2961 OP32 ("mulshs",
2962 OPCODE_INFO2 (0xc4009080,
2963 (16_20, AREG, OPRND_SHIFT_0_BIT),
2964 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2965 CSKY_ISA_DSP),
2966 OP32 ("mulswa",
2967 OPCODE_INFO2 (0xc4009440,
2968 (16_20, AREG, OPRND_SHIFT_0_BIT),
2969 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2970 CSKY_ISA_DSP),
2971 OP32 ("mulsws",
8119cc38 2972 OPCODE_INFO2 (0xc4009500,
b8891f8d
AJ
2973 (16_20, AREG, OPRND_SHIFT_0_BIT),
2974 (21_25, AREG, OPRND_SHIFT_0_BIT)),
2975 CSKY_ISA_DSP),
2976 OP32 ("mfhis",
2977 OPCODE_INFO1 (0xc4009820,
2978 (0_4, AREG, OPRND_SHIFT_0_BIT)),
2979 CSKY_ISA_DSP),
2980 OP32 ("mflos",
2981 OPCODE_INFO1 (0xc4009880,
2982 (0_4, AREG, OPRND_SHIFT_0_BIT)),
2983 CSKY_ISA_DSP),
2984 OP32 ("mvtc",
2985 OPCODE_INFO0 (0xc4009a00),
6a1ed910 2986 CSKY_ISA_DSPE60),
b8891f8d
AJ
2987 OP32 ("mfhi",
2988 OPCODE_INFO1 (0xc4009c20,
2989 (0_4, AREG, OPRND_SHIFT_0_BIT)),
2990 CSKY_ISA_DSP),
2991 OP32 ("mthi",
2992 OPCODE_INFO1 (0xc4009c40,
2993 (16_20, AREG, OPRND_SHIFT_0_BIT)),
2994 CSKY_ISA_DSP),
2995 OP32 ("mflo",
2996 OPCODE_INFO1 (0xc4009c80,
2997 (0_4, AREG, OPRND_SHIFT_0_BIT)),
2998 CSKY_ISA_DSP),
2999 OP32 ("mtlo",
3000 OPCODE_INFO1 (0xc4009d00,
3001 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3002 CSKY_ISA_DSP),
3003 OP32 ("vmulsh",
3004 OPCODE_INFO2 (0xc400b020,
3005 (16_20, AREG, OPRND_SHIFT_0_BIT),
3006 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3007 CSKY_ISA_DSP_1E2),
3008 OP32 ("vmulsha",
3009 OPCODE_INFO2 (0xc400b040,
3010 (16_20, AREG, OPRND_SHIFT_0_BIT),
3011 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3012 CSKY_ISA_DSP_1E2),
3013 OP32 ("vmulshs",
3014 OPCODE_INFO2 (0xc400b080,
3015 (16_20, AREG, OPRND_SHIFT_0_BIT),
3016 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3017 CSKY_ISA_DSP_1E2),
3018 OP32 ("vmulsw",
3019 OPCODE_INFO2 (0xc400b420,
3020 (16_20, AREG, OPRND_SHIFT_0_BIT),
3021 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3022 CSKY_ISA_DSP_1E2),
3023 OP32 ("vmulswa",
3024 OPCODE_INFO2 (0xc400b440,
3025 (16_20, AREG, OPRND_SHIFT_0_BIT),
3026 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3027 CSKY_ISA_DSP_1E2),
3028 OP32 ("vmulsws",
3029 OPCODE_INFO2 (0xc400b480,
3030 (16_20, AREG, OPRND_SHIFT_0_BIT),
3031 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3032 CSKY_ISA_DSP_1E2),
3033 OP32 ("ldr.b",
3034 SOPCODE_INFO2 (0xd0000000,
3035 (0_4, AREG, OPRND_SHIFT_0_BIT),
3036 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3037 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
3038 CSKYV2_ISA_2E3),
3039 OP32 ("ldr.bs",
3040 SOPCODE_INFO2 (0xd0001000,
3041 (0_4, AREG, OPRND_SHIFT_0_BIT),
3042 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3043 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
3044 CSKYV2_ISA_2E3),
3045 OP32 ("ldr.h",
3046 SOPCODE_INFO2 (0xd0000400,
3047 (0_4, AREG, OPRND_SHIFT_0_BIT),
3048 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3049 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
3050 CSKYV2_ISA_2E3),
3051 OP32 ("ldr.hs",
3052 SOPCODE_INFO2 (0xd0001400,
3053 (0_4, AREG, OPRND_SHIFT_0_BIT),
3054 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3055 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
3056 CSKYV2_ISA_2E3),
3057 OP32 ("ldr.w",
3058 SOPCODE_INFO2 (0xd0000800,
3059 (0_4, AREG, OPRND_SHIFT_0_BIT),
3060 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3061 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
3062 CSKYV2_ISA_2E3),
3063 OP32 ("ldm",
3064 OPCODE_INFO2 (0xd0001c20,
3065 (0_4or21_25, REGLIST_DASH, OPRND_SHIFT_0_BIT),
3066 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3067 CSKYV2_ISA_1E2),
3068 OP32 ("ldq",
3069 OPCODE_INFO2 (0xd0801c23,
3070 (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
3071 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3072 CSKYV2_ISA_2E3),
3073 OP32 ("str.b",
3074 SOPCODE_INFO2 (0xd4000000,
3075 (0_4, AREG, OPRND_SHIFT_0_BIT),
3076 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3077 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
3078 CSKYV2_ISA_2E3),
3079 OP32 ("str.h",
3080 SOPCODE_INFO2 (0xd4000400,
3081 (0_4, AREG, OPRND_SHIFT_0_BIT),
3082 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3083 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
3084 CSKYV2_ISA_2E3),
3085 OP32 ("str.w",
3086 SOPCODE_INFO2 (0xd4000800,
3087 (0_4, AREG, OPRND_SHIFT_0_BIT),
3088 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3089 (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))),
3090 CSKYV2_ISA_2E3),
3091 OP32 ("stm",
3092 OPCODE_INFO2 (0xd4001c20,
3093 (0_4or21_25, REGLIST_DASH, OPRND_SHIFT_0_BIT),
3094 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3095 CSKYV2_ISA_1E2),
3096 OP32 ("stq",
3097 OPCODE_INFO2 (0xd4801c23,
3098 (NONE, REGr4_r7, OPRND_SHIFT_0_BIT),
3099 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3100 CSKYV2_ISA_2E3),
3101 OP32 ("ld.bs",
3102 SOPCODE_INFO2 (0xd8004000,
3103 (21_25, AREG, OPRND_SHIFT_0_BIT),
3104 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3105 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
3106 CSKYV2_ISA_1E2),
3107 OP32 ("ldbs",
3108 SOPCODE_INFO2 (0xd8004000,
3109 (21_25, AREG, OPRND_SHIFT_0_BIT),
3110 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3111 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
3112 CSKYV2_ISA_1E2),
3113 OP32 ("ld.hs",
3114 SOPCODE_INFO2 (0xd8005000,
3115 (21_25, AREG, OPRND_SHIFT_0_BIT),
3116 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3117 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
3118 CSKYV2_ISA_1E2),
3119 OP32 ("ldhs",
3120 SOPCODE_INFO2 (0xd8005000,
3121 (21_25, AREG, OPRND_SHIFT_0_BIT),
3122 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3123 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
3124 CSKYV2_ISA_1E2),
3125 OP32 ("ld.d",
3126 SOPCODE_INFO2 (0xd8003000,
3127 (21_25, AREG, OPRND_SHIFT_0_BIT),
3128 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3129 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3130 CSKYV2_ISA_3E7),
3131 OP32 ("ldex.w",
3132 SOPCODE_INFO2 (0xd8007000,
3133 (21_25, AREG, OPRND_SHIFT_0_BIT),
3134 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3135 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3136 CSKY_ISA_MP_1E2),
3137 OP32 ("ldexw",
3138 SOPCODE_INFO2 (0xd8007000,
3139 (21_25, AREG, OPRND_SHIFT_0_BIT),
3140 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3141 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3142 CSKY_ISA_MP_1E2),
3143 OP32 ("ldex",
3144 SOPCODE_INFO2 (0xd8007000,
3145 (21_25, AREG, OPRND_SHIFT_0_BIT),
3146 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3147 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3148 CSKY_ISA_MP_1E2),
3149 OP32 ("st.d",
3150 SOPCODE_INFO2 (0xdc003000,
3151 (21_25, AREG, OPRND_SHIFT_0_BIT),
3152 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3153 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3154 CSKYV2_ISA_3E7),
3155 OP32 ("stex.w",
3156 SOPCODE_INFO2 (0xdc007000,
3157 (21_25, AREG, OPRND_SHIFT_0_BIT),
3158 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3159 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3160 CSKY_ISA_MP_1E2),
3161 OP32 ("stexw",
3162 SOPCODE_INFO2 (0xdc007000,
3163 (21_25, AREG, OPRND_SHIFT_0_BIT),
3164 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3165 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3166 CSKY_ISA_MP_1E2),
3167 OP32 ("stex",
3168 SOPCODE_INFO2 (0xdc007000,
3169 (21_25, AREG, OPRND_SHIFT_0_BIT),
3170 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3171 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3172 CSKY_ISA_MP_1E2),
3173 DOP32 ("andi",
3174 OPCODE_INFO3 (0xe4002000,
3175 (21_25, AREG, OPRND_SHIFT_0_BIT),
3176 (16_20, AREG, OPRND_SHIFT_0_BIT),
3177 (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
3178 OPCODE_INFO2 (0xe4002000,
3179 (16_20or21_25, DUP_AREG, OPRND_SHIFT_0_BIT),
3180 (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
3181 CSKYV2_ISA_1E2),
3182 OP32 ("andni",
3183 OPCODE_INFO3 (0xe4003000,
3184 (21_25, AREG, OPRND_SHIFT_0_BIT),
3185 (16_20, AREG, OPRND_SHIFT_0_BIT),
3186 (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
3187 CSKYV2_ISA_1E2),
3188 OP32 ("xori",
3189 OPCODE_INFO3 (0xe4004000,
3190 (21_25, AREG, OPRND_SHIFT_0_BIT),
3191 (16_20, AREG, OPRND_SHIFT_0_BIT),
3192 (0_11, IMM12b, OPRND_SHIFT_0_BIT)),
3193 CSKYV2_ISA_1E2),
3194 OP32 ("ins",
3195 OPCODE_INFO4 (0xc4005c00,
3196 (21_25, AREG, OPRND_SHIFT_0_BIT),
3197 (16_20, AREG, OPRND_SHIFT_0_BIT),
3198 (5_9, MSB2SIZE, OPRND_SHIFT_0_BIT),
3199 (0_4, LSB2SIZE, OPRND_SHIFT_0_BIT)),
3200 CSKYV2_ISA_2E3),
3201#undef _TRANSFER
3202#undef _RELOC32
3203#define _TRANSFER 1
3204#define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4
3205 OP32 ("jmpi",
3206 OPCODE_INFO1 (0xeac00000,
3207 (0_15, OFF16b, OPRND_SHIFT_2_BIT)),
3208 CSKYV2_ISA_2E3),
3209#undef _TRANSFER
3210#undef _RELOC32
3211#define _TRANSFER 0
3212#define _RELOC32 0
3213
3214 OP32 ("fadds",
3215 OPCODE_INFO3 (0xf4000000,
3216 (0_3, FREG, OPRND_SHIFT_0_BIT),
3217 (16_19, FREG, OPRND_SHIFT_0_BIT),
3218 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3219 CSKY_ISA_FLOAT_E1),
3220 OP32 ("fsubs",
3221 OPCODE_INFO3 (0xf4000020,
3222 (0_3, FREG, OPRND_SHIFT_0_BIT),
3223 (16_19, FREG, OPRND_SHIFT_0_BIT),
3224 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3225 CSKY_ISA_FLOAT_E1),
3226 OP32 ("fmovs",
3227 OPCODE_INFO2 (0xf4000080,
3228 (0_3, FREG, OPRND_SHIFT_0_BIT),
3229 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3230 CSKY_ISA_FLOAT_E1),
3231 OP32 ("fabss",
3232 OPCODE_INFO2 (0xf40000c0,
3233 (0_3, FREG, OPRND_SHIFT_0_BIT),
3234 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3235 CSKY_ISA_FLOAT_E1),
3236 OP32 ("fnegs",
3237 OPCODE_INFO2 (0xf40000e0,
3238 (0_3, FREG, OPRND_SHIFT_0_BIT),
3239 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3240 CSKY_ISA_FLOAT_E1),
3241 OP32 ("fcmpzhss",
3242 OPCODE_INFO1 (0xf4000100,
3243 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3244 CSKY_ISA_FLOAT_E1),
3245 OP32 ("fcmpzlss",
3246 OPCODE_INFO1 (0xf4000120,
3247 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3248 CSKY_ISA_FLOAT_E1),
3249 OP32 ("fcmpznes",
3250 OPCODE_INFO1 (0xf4000140,
3251 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3252 CSKY_ISA_FLOAT_E1),
3253 OP32 ("fcmpzuos",
3254 OPCODE_INFO1 (0xf4000160,
3255 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3256 CSKY_ISA_FLOAT_E1),
3257 OP32 ("fcmphss",
3258 OPCODE_INFO2 (0xf4000180,
3259 (16_19, FREG, OPRND_SHIFT_0_BIT),
3260 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3261 CSKY_ISA_FLOAT_E1),
3262 OP32 ("fcmplts",
3263 OPCODE_INFO2 (0xf40001a0,
3264 (16_19, FREG, OPRND_SHIFT_0_BIT),
3265 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3266 CSKY_ISA_FLOAT_E1),
3267 OP32 ("fcmpnes",
3268 OPCODE_INFO2 (0xf40001c0,
3269 (16_19, FREG, OPRND_SHIFT_0_BIT),
3270 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3271 CSKY_ISA_FLOAT_E1),
3272 OP32 ("fcmpuos",
3273 OPCODE_INFO2 (0xf40001e0,
3274 (16_19, FREG, OPRND_SHIFT_0_BIT),
3275 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3276 CSKY_ISA_FLOAT_E1),
3277 OP32 ("fmuls",
3278 OPCODE_INFO3 (0xf4000200,
3279 (0_3, FREG, OPRND_SHIFT_0_BIT),
3280 (16_19, FREG, OPRND_SHIFT_0_BIT),
3281 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3282 CSKY_ISA_FLOAT_E1),
3283 OP32 ("fmacs",
3284 OPCODE_INFO3 (0xf4000280,
3285 (0_3, FREG, OPRND_SHIFT_0_BIT),
3286 (16_19, FREG, OPRND_SHIFT_0_BIT),
3287 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3288 CSKY_ISA_FLOAT_E1),
3289 OP32 ("fmscs",
3290 OPCODE_INFO3 (0xf40002a0,
3291 (0_3, FREG, OPRND_SHIFT_0_BIT),
3292 (16_19, FREG, OPRND_SHIFT_0_BIT),
3293 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3294 CSKY_ISA_FLOAT_E1),
3295 OP32 ("fnmacs",
3296 OPCODE_INFO3 (0xf40002c0,
3297 (0_3, FREG, OPRND_SHIFT_0_BIT),
3298 (16_19, FREG, OPRND_SHIFT_0_BIT),
3299 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3300 CSKY_ISA_FLOAT_E1),
3301 OP32 ("fnmscs",
3302 OPCODE_INFO3 (0xf40002e0,
3303 (0_3, FREG, OPRND_SHIFT_0_BIT),
3304 (16_19, FREG, OPRND_SHIFT_0_BIT),
3305 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3306 CSKY_ISA_FLOAT_E1),
3307 OP32 ("fnmuls",
3308 OPCODE_INFO3 (0xf4000220,
3309 (0_3, FREG, OPRND_SHIFT_0_BIT),
3310 (16_19, FREG, OPRND_SHIFT_0_BIT),
3311 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3312 CSKY_ISA_FLOAT_E1),
3313 OP32 ("fdivs",
3314 OPCODE_INFO3 (0xf4000300,
3315 (0_3, FREG, OPRND_SHIFT_0_BIT),
3316 (16_19, FREG, OPRND_SHIFT_0_BIT),
3317 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3318 CSKY_ISA_FLOAT_E1),
3319 OP32 ("frecips",
3320 OPCODE_INFO2 (0xf4000320,
3321 (0_3, FREG, OPRND_SHIFT_0_BIT),
3322 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3323 CSKY_ISA_FLOAT_E1),
3324 OP32 ("fsqrts",
3325 OPCODE_INFO2 (0xf4000340,
3326 (0_3, FREG, OPRND_SHIFT_0_BIT),
3327 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3328 CSKY_ISA_FLOAT_E1),
3329 OP32 ("faddd",
3330 OPCODE_INFO3 (0xf4000800,
3331 (0_3, FREG, OPRND_SHIFT_0_BIT),
3332 (16_19, FREG, OPRND_SHIFT_0_BIT),
3333 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3334 CSKY_ISA_FLOAT_1E2),
3335 OP32 ("fsubd",
3336 OPCODE_INFO3 (0xf4000820,
3337 (0_3, FREG, OPRND_SHIFT_0_BIT),
3338 (16_19, FREG, OPRND_SHIFT_0_BIT),
3339 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3340 CSKY_ISA_FLOAT_1E2),
3341 OP32 ("fmovd",
3342 OPCODE_INFO2 (0xf4000880,
3343 (0_3, FREG, OPRND_SHIFT_0_BIT),
3344 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3345 CSKY_ISA_FLOAT_1E2),
3346 OP32 ("fabsd",
3347 OPCODE_INFO2 (0xf40008c0,
3348 (0_3, FREG, OPRND_SHIFT_0_BIT),
3349 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3350 CSKY_ISA_FLOAT_1E2),
3351 OP32 ("fnegd",
3352 OPCODE_INFO2 (0xf40008e0,
3353 (0_3, FREG, OPRND_SHIFT_0_BIT),
3354 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3355 CSKY_ISA_FLOAT_1E2),
3356 OP32 ("fcmpzhsd",
3357 OPCODE_INFO1 (0xf4000900,
3358 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3359 CSKY_ISA_FLOAT_1E2),
3360 OP32 ("fcmpzlsd",
3361 OPCODE_INFO1 (0xf4000920,
3362 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3363 CSKY_ISA_FLOAT_1E2),
3364 OP32 ("fcmpzned",
3365 OPCODE_INFO1 (0xf4000940,
3366 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3367 CSKY_ISA_FLOAT_1E2),
3368 OP32 ("fcmpzuod",
3369 OPCODE_INFO1 (0xf4000960,
3370 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3371 CSKY_ISA_FLOAT_1E2),
3372 OP32 ("fcmphsd",
3373 OPCODE_INFO2 (0xf4000980,
3374 (16_19, FREG, OPRND_SHIFT_0_BIT),
3375 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3376 CSKY_ISA_FLOAT_1E2),
3377 OP32 ("fcmpltd",
3378 OPCODE_INFO2 (0xf40009a0,
3379 (16_19, FREG, OPRND_SHIFT_0_BIT),
3380 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3381 CSKY_ISA_FLOAT_1E2),
3382 OP32 ("fcmpned",
3383 OPCODE_INFO2 (0xf40009c0,
3384 (16_19, FREG, OPRND_SHIFT_0_BIT),
3385 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3386 CSKY_ISA_FLOAT_1E2),
3387 OP32 ("fcmpuod",
3388 OPCODE_INFO2 (0xf40009e0,
3389 (16_19, FREG, OPRND_SHIFT_0_BIT),
3390 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3391 CSKY_ISA_FLOAT_1E2),
3392 OP32 ("fmuld",
3393 OPCODE_INFO3 (0xf4000a00,
3394 (0_3, FREG, OPRND_SHIFT_0_BIT),
3395 (16_19, FREG, OPRND_SHIFT_0_BIT),
3396 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3397 CSKY_ISA_FLOAT_1E2),
3398 OP32 ("fnmuld",
3399 OPCODE_INFO3 (0xf4000a20,
3400 (0_3, FREG, OPRND_SHIFT_0_BIT),
3401 (16_19, FREG, OPRND_SHIFT_0_BIT),
3402 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3403 CSKY_ISA_FLOAT_1E2),
3404 OP32 ("fmacd",
3405 OPCODE_INFO3 (0xf4000a80,
3406 (0_3, FREG, OPRND_SHIFT_0_BIT),
3407 (16_19, FREG, OPRND_SHIFT_0_BIT),
3408 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3409 CSKY_ISA_FLOAT_1E2),
3410 OP32 ("fmscd",
3411 OPCODE_INFO3 (0xf4000aa0,
3412 (0_3, FREG, OPRND_SHIFT_0_BIT),
3413 (16_19, FREG, OPRND_SHIFT_0_BIT),
3414 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3415 CSKY_ISA_FLOAT_1E2),
3416 OP32 ("fnmacd",
3417 OPCODE_INFO3 (0xf4000ac0,
3418 (0_3, FREG, OPRND_SHIFT_0_BIT),
3419 (16_19, FREG, OPRND_SHIFT_0_BIT),
3420 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3421 CSKY_ISA_FLOAT_1E2),
3422 OP32 ("fnmscd",
3423 OPCODE_INFO3 (0xf4000ae0,
3424 (0_3, FREG, OPRND_SHIFT_0_BIT),
3425 (16_19, FREG, OPRND_SHIFT_0_BIT),
3426 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3427 CSKY_ISA_FLOAT_1E2),
3428 OP32 ("fdivd",
3429 OPCODE_INFO3 (0xf4000b00,
3430 (0_3, FREG, OPRND_SHIFT_0_BIT),
3431 (16_19, FREG, OPRND_SHIFT_0_BIT),
3432 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3433 CSKY_ISA_FLOAT_1E2),
3434 OP32 ("frecipd",
3435 OPCODE_INFO2 (0xf4000b20,
3436 (0_3, FREG, OPRND_SHIFT_0_BIT),
3437 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3438 CSKY_ISA_FLOAT_1E2),
3439 OP32 ("fsqrtd",
3440 OPCODE_INFO2 (0xf4000b40,
3441 (0_3, FREG, OPRND_SHIFT_0_BIT),
3442 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3443 CSKY_ISA_FLOAT_1E2),
3444 OP32 ("faddm",
3445 OPCODE_INFO3 (0xf4001000,
3446 (0_3, FREG, OPRND_SHIFT_0_BIT),
3447 (16_19, FREG, OPRND_SHIFT_0_BIT),
3448 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3449 CSKY_ISA_FLOAT_1E2),
3450 OP32 ("fsubm",
3451 OPCODE_INFO3 (0xf4001020,
3452 (0_3, FREG, OPRND_SHIFT_0_BIT),
3453 (16_19, FREG, OPRND_SHIFT_0_BIT),
3454 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3455 CSKY_ISA_FLOAT_1E2),
3456 OP32 ("fmovm",
3457 OPCODE_INFO2 (0xf4001080,
3458 (0_3, FREG, OPRND_SHIFT_0_BIT),
3459 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3460 CSKY_ISA_FLOAT_1E2),
3461 OP32 ("fabsm",
3462 OPCODE_INFO2 (0xf40010c0,
3463 (0_3, FREG, OPRND_SHIFT_0_BIT),
3464 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3465 CSKY_ISA_FLOAT_1E2),
3466 OP32 ("fnegm",
3467 OPCODE_INFO2 (0xf40010e0,
3468 (0_3, FREG, OPRND_SHIFT_0_BIT),
3469 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3470 CSKY_ISA_FLOAT_1E2),
3471 OP32 ("fmulm",
3472 OPCODE_INFO3 (0xf4001200,
3473 (0_3, FREG, OPRND_SHIFT_0_BIT),
3474 (16_19, FREG, OPRND_SHIFT_0_BIT),
3475 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3476 CSKY_ISA_FLOAT_1E2),
3477 OP32 ("fnmulm",
3478 OPCODE_INFO3 (0xf4001220,
3479 (0_3, FREG, OPRND_SHIFT_0_BIT),
3480 (16_19, FREG, OPRND_SHIFT_0_BIT),
3481 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3482 CSKY_ISA_FLOAT_1E2),
3483 OP32 ("fmacm",
3484 OPCODE_INFO3 (0xf4001280,
3485 (0_3, FREG, OPRND_SHIFT_0_BIT),
3486 (16_19, FREG, OPRND_SHIFT_0_BIT),
3487 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3488 CSKY_ISA_FLOAT_1E2),
3489 OP32 ("fmscm",
3490 OPCODE_INFO3 (0xf40012a0,
3491 (0_3, FREG, OPRND_SHIFT_0_BIT),
3492 (16_19, FREG, OPRND_SHIFT_0_BIT),
3493 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3494 CSKY_ISA_FLOAT_1E2),
3495 OP32 ("fnmacm",
3496 OPCODE_INFO3 (0xf40012c0,
3497 (0_3, FREG, OPRND_SHIFT_0_BIT),
3498 (16_19, FREG, OPRND_SHIFT_0_BIT),
3499 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3500 CSKY_ISA_FLOAT_1E2),
3501 OP32 ("fnmscm",
3502 OPCODE_INFO3 (0xf40012e0,
3503 (0_3, FREG, OPRND_SHIFT_0_BIT),
3504 (16_19, FREG, OPRND_SHIFT_0_BIT),
3505 (21_24, FREG, OPRND_SHIFT_0_BIT)),
3506 CSKY_ISA_FLOAT_1E2),
3507 OP32 ("fstosi.rn",
3508 OPCODE_INFO2 (0xf4001800,
3509 (0_3, FREG, OPRND_SHIFT_0_BIT),
3510 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3511 CSKY_ISA_FLOAT_E1),
3512 OP32 ("fstosi.rz",
3513 OPCODE_INFO2 (0xf4001820,
3514 (0_3, FREG, OPRND_SHIFT_0_BIT),
3515 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3516 CSKY_ISA_FLOAT_E1),
3517 OP32 ("fstosi.rpi",
3518 OPCODE_INFO2 (0xf4001840,
3519 (0_3, FREG, OPRND_SHIFT_0_BIT),
3520 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3521 CSKY_ISA_FLOAT_E1),
3522 OP32 ("fstosi.rni",
3523 OPCODE_INFO2 (0xf4001860,
3524 (0_3, FREG, OPRND_SHIFT_0_BIT),
3525 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3526 CSKY_ISA_FLOAT_E1),
3527 OP32 ("fstoui.rn",
3528 OPCODE_INFO2 (0xf4001880,
3529 (0_3, FREG, OPRND_SHIFT_0_BIT),
3530 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3531 CSKY_ISA_FLOAT_E1),
3532 OP32 ("fstoui.rz",
3533 OPCODE_INFO2 (0xf40018a0,
3534 (0_3, FREG, OPRND_SHIFT_0_BIT),
3535 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3536 CSKY_ISA_FLOAT_E1),
3537 OP32 ("fstoui.rpi",
3538 OPCODE_INFO2 (0xf40018c0,
3539 (0_3, FREG, OPRND_SHIFT_0_BIT),
3540 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3541 CSKY_ISA_FLOAT_E1),
3542 OP32 ("fstoui.rni",
3543 OPCODE_INFO2 (0xf40018e0,
3544 (0_3, FREG, OPRND_SHIFT_0_BIT),
3545 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3546 CSKY_ISA_FLOAT_E1),
3547 OP32 ("fdtosi.rn",
3548 OPCODE_INFO2 (0xf4001900,
3549 (0_3, FREG, OPRND_SHIFT_0_BIT),
3550 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3551 CSKY_ISA_FLOAT_1E2),
3552 OP32 ("fdtosi.rz",
3553 OPCODE_INFO2 (0xf4001920,
3554 (0_3, FREG, OPRND_SHIFT_0_BIT),
3555 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3556 CSKY_ISA_FLOAT_1E2),
3557 OP32 ("fdtosi.rpi",
3558 OPCODE_INFO2 (0xf4001940,
3559 (0_3, FREG, OPRND_SHIFT_0_BIT),
3560 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3561 CSKY_ISA_FLOAT_1E2),
3562 OP32 ("fdtosi.rni",
3563 OPCODE_INFO2 (0xf4001960,
3564 (0_3, FREG, OPRND_SHIFT_0_BIT),
3565 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3566 CSKY_ISA_FLOAT_1E2),
3567 OP32 ("fdtoui.rn",
3568 OPCODE_INFO2 (0xf4001980,
3569 (0_3, FREG, OPRND_SHIFT_0_BIT),
3570 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3571 CSKY_ISA_FLOAT_1E2),
3572 OP32 ("fdtoui.rz",
3573 OPCODE_INFO2 (0xf40019a0,
3574 (0_3, FREG, OPRND_SHIFT_0_BIT),
3575 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3576 CSKY_ISA_FLOAT_1E2),
3577 OP32 ("fdtoui.rpi",
3578 OPCODE_INFO2 (0xf40019c0,
3579 (0_3, FREG, OPRND_SHIFT_0_BIT),
3580 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3581 CSKY_ISA_FLOAT_1E2),
3582 OP32 ("fdtoui.rni",
3583 OPCODE_INFO2 (0xf40019e0,
3584 (0_3, FREG, OPRND_SHIFT_0_BIT),
3585 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3586 CSKY_ISA_FLOAT_1E2),
3587 OP32 ("fsitos",
3588 OPCODE_INFO2 (0xf4001a00,
3589 (0_3, FREG, OPRND_SHIFT_0_BIT),
3590 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3591 CSKY_ISA_FLOAT_E1),
3592 OP32 ("fuitos",
3593 OPCODE_INFO2 (0xf4001a20,
3594 (0_3, FREG, OPRND_SHIFT_0_BIT),
3595 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3596 CSKY_ISA_FLOAT_E1),
3597 OP32 ("fsitod",
3598 OPCODE_INFO2 (0xf4001a80,
3599 (0_3, FREG, OPRND_SHIFT_0_BIT),
3600 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3601 CSKY_ISA_FLOAT_1E2),
3602 OP32 ("fuitod",
3603 OPCODE_INFO2 (0xf4001aa0,
3604 (0_3, FREG, OPRND_SHIFT_0_BIT),
3605 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3606 CSKY_ISA_FLOAT_1E2),
3607 OP32 ("fdtos",
3608 OPCODE_INFO2 (0xf4001ac0,
3609 (0_3, FREG, OPRND_SHIFT_0_BIT),
3610 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3611 CSKY_ISA_FLOAT_1E2),
3612 OP32 ("fstod",
3613 OPCODE_INFO2 (0xf4001ae0,
3614 (0_3, FREG, OPRND_SHIFT_0_BIT),
3615 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3616 CSKY_ISA_FLOAT_1E2),
3617 OP32 ("fmfvrh",
3618 OPCODE_INFO2 (0xf4001b00,
3619 (0_4, AREG, OPRND_SHIFT_0_BIT),
3620 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3621 CSKY_ISA_FLOAT_1E2),
3622 OP32 ("fmfvrl",
3623 OPCODE_INFO2 (0xf4001b20,
3624 (0_4, AREG, OPRND_SHIFT_0_BIT),
3625 (16_19, FREG, OPRND_SHIFT_0_BIT)),
3626 CSKY_ISA_FLOAT_E1),
3627 OP32 ("fmtvrh",
3628 OPCODE_INFO2 (0xf4001b40,
3629 (0_3, FREG, OPRND_SHIFT_0_BIT),
3630 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3631 CSKY_ISA_FLOAT_1E2),
3632 OP32 ("fmtvrl",
3633 OPCODE_INFO2 (0xf4001b60,
3634 (0_3, FREG, OPRND_SHIFT_0_BIT),
3635 (16_20, AREG, OPRND_SHIFT_0_BIT)),
3636 CSKY_ISA_FLOAT_E1),
3637 OP32 ("flds",
3638 SOPCODE_INFO2 (0xf4002000,
3639 (0_3, FREG, OPRND_SHIFT_0_BIT),
3640 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3641 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
3642 CSKY_ISA_FLOAT_E1),
3643 OP32 ("fldd",
3644 SOPCODE_INFO2 (0xf4002100,
3645 (0_3, FREG, OPRND_SHIFT_0_BIT),
3646 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3647 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
3648 CSKY_ISA_FLOAT_1E2),
3649 OP32 ("fldm",
3650 SOPCODE_INFO2 (0xf4002200,
3651 (0_3, FREG, OPRND_SHIFT_0_BIT),
3652 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3653 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
3654 CSKY_ISA_FLOAT_1E2),
3655 OP32 ("fsts",
3656 SOPCODE_INFO2 (0xf4002400,
3657 (0_3, FREG, OPRND_SHIFT_0_BIT),
3658 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3659 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
3660 CSKY_ISA_FLOAT_E1),
3661 OP32 ("fstd",
3662 SOPCODE_INFO2 (0xf4002500,
3663 (0_3, FREG, OPRND_SHIFT_0_BIT),
3664 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3665 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))),
3666 CSKY_ISA_FLOAT_1E2),
3667 OP32 ("fstm",
3668 SOPCODE_INFO2 (0xf4002600,
3669 (0_3, FREG, OPRND_SHIFT_0_BIT),
3670 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3671 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
3672 CSKY_ISA_FLOAT_1E2),
3673 OP32 ("fldrs",
3674 SOPCODE_INFO2 (0xf4002800,
3675 (0_3, FREG, OPRND_SHIFT_0_BIT),
3676 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3677 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3678 CSKY_ISA_FLOAT_E1),
3679 OP32 ("fstrs",
3680 SOPCODE_INFO2 (0xf4002c00,
3681 (0_3, FREG, OPRND_SHIFT_0_BIT),
3682 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3683 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3684 CSKY_ISA_FLOAT_E1),
3685 OP32 ("fldrd",
3686 SOPCODE_INFO2 (0xf4002900,
3687 (0_3, FREG, OPRND_SHIFT_0_BIT),
3688 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3689 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3690 CSKY_ISA_FLOAT_1E2),
3691 OP32 ("fldrm",
3692 SOPCODE_INFO2 (0xf4002a00,
3693 (0_3, FREG, OPRND_SHIFT_0_BIT),
3694 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3695 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3696 CSKY_ISA_FLOAT_1E2),
3697 OP32 ("fstrd",
3698 SOPCODE_INFO2 (0xf4002d00,
3699 (0_3, FREG, OPRND_SHIFT_0_BIT),
3700 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3701 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3702 CSKY_ISA_FLOAT_1E2),
3703 OP32 ("fstrm",
3704 SOPCODE_INFO2 (0xf4002e00,
3705 (0_3, FREG, OPRND_SHIFT_0_BIT),
3706 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3707 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
3708 CSKY_ISA_FLOAT_1E2),
3709 OP32 ("fldms",
3710 OPCODE_INFO2 (0xf4003000,
3711 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3712 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3713 CSKY_ISA_FLOAT_E1),
3714 OP32 ("fldmd",
3715 OPCODE_INFO2 (0xf4003100,
3716 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3717 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3718 CSKY_ISA_FLOAT_1E2),
3719 OP32 ("fldmm",
3720 OPCODE_INFO2 (0xf4003200,
3721 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3722 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3723 CSKY_ISA_FLOAT_1E2),
3724 OP32 ("fstms",
3725 OPCODE_INFO2 (0xf4003400,
3726 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3727 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3728 CSKY_ISA_FLOAT_E1),
3729 OP32 ("fstmd",
3730 OPCODE_INFO2 (0xf4003500,
3731 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3732 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3733 CSKY_ISA_FLOAT_1E2),
3734 OP32 ("fstmm",
3735 OPCODE_INFO2 (0xf4003600,
3736 (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
3737 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
3738 CSKY_ISA_FLOAT_1E2),
b8891f8d
AJ
3739 DOP32 ("idly",
3740 OPCODE_INFO1 (0xc0001c20,
3741 (21_25, OIMM5b_IDLY, OPRND_SHIFT_0_BIT)),
3742 OPCODE_INFO0 (0xc0601c20),
3743 CSKYV2_ISA_E1),
3744
3745#undef _RELOC32
3746#define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM18BY2
3747 OP32 ("grs",
3748 OPCODE_INFO2 (0xcc0c0000,
3749 (21_25, AREG, OPRND_SHIFT_0_BIT),
3750 (0_17, IMM_OFF18b, OPRND_SHIFT_1_BIT)),
3751 CSKYV2_ISA_2E3),
3752#undef _RELOC32
3753#define _RELOC32 0
3754 DOP32 ("ixh",
3755 OPCODE_INFO3 (0xc4000820,
3756 (0_4, AREG, OPRND_SHIFT_0_BIT),
3757 (16_20, AREG, OPRND_SHIFT_0_BIT),
3758 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3759 OPCODE_INFO2 (0xc4000820,
3760 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3761 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3762 CSKYV2_ISA_1E2),
3763 DOP32 ("ixw",
3764 OPCODE_INFO3 (0xc4000840,
3765 (0_4, AREG, OPRND_SHIFT_0_BIT),
3766 (16_20, AREG, OPRND_SHIFT_0_BIT),
3767 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3768 OPCODE_INFO2 (0xc4000840,
3769 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3770 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3771 CSKYV2_ISA_1E2),
3772 OP32 ("ixd",
3773 OPCODE_INFO3 (0xc4000880,
3774 (0_4, AREG, OPRND_SHIFT_0_BIT),
3775 (16_20, AREG, OPRND_SHIFT_0_BIT),
3776 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3777 CSKYV2_ISA_2E3),
3778 DOP32 ("divu",
3779 OPCODE_INFO3 (0xc4008020,
3780 (0_4, AREG, OPRND_SHIFT_0_BIT),
3781 (16_20, AREG, OPRND_SHIFT_0_BIT),
3782 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3783 OPCODE_INFO2 (0xc4008020,
3784 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3785 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3786 CSKYV2_ISA_2E3),
3787 DOP32 ("divs",
3788 OPCODE_INFO3 (0xc4008040,
3789 (0_4, AREG, OPRND_SHIFT_0_BIT),
3790 (16_20, AREG, OPRND_SHIFT_0_BIT),
3791 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3792 OPCODE_INFO2 (0xc4008040,
3793 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3794 (21_25, AREG, OPRND_SHIFT_0_BIT)),
3795 CSKYV2_ISA_2E3),
3796 OP32 ("pldr",
3797 SOPCODE_INFO1 (0xd8006000,
3798 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3799 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3800 CSKY_ISA_CACHE),
3801 OP32 ("pldw",
3802 SOPCODE_INFO1 (0xdc006000,
3803 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
3804 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
3805 CSKY_ISA_CACHE),
3806 OP32 ("cprgr",
3807 SOPCODE_INFO2 (0xfc000000,
3808 (16_20, AREG, OPRND_SHIFT_0_BIT),
3809 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3810 (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
3811 CSKYV2_ISA_E1),
3812 OP32 ("cpwgr",
3813 SOPCODE_INFO2 (0xfc001000,
3814 (16_20, AREG, OPRND_SHIFT_0_BIT),
3815 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3816 (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
3817 CSKYV2_ISA_E1),
3818 OP32 ("cprcr",
3819 SOPCODE_INFO2 (0xfc002000,
3820 (16_20, AREG, OPRND_SHIFT_0_BIT),
3821 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3822 (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
3823 CSKYV2_ISA_E1),
3824 OP32 ("cpwcr",
3825 SOPCODE_INFO2 (0xfc003000,
3826 (16_20, AREG, OPRND_SHIFT_0_BIT),
3827 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3828 (0_11 , IMM12b, OPRND_SHIFT_0_BIT))),
3829 CSKYV2_ISA_E1),
3830 OP32 ("cprc",
3831 SOPCODE_INFO1 (0xfc004000,
3832 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3833 (0_11, IMM12b, OPRND_SHIFT_0_BIT))),
3834 CSKYV2_ISA_E1),
3835 OP32 ("cpop",
3836 SOPCODE_INFO1 (0xfc008000,
3837 ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT),
3838 (0_14or16_20 , IMM15b, OPRND_SHIFT_0_BIT))),
3839 CSKYV2_ISA_E1),
3840
3841 OP16_OP32 ("push",
3842 OPCODE_INFO_LIST (0x14c0,
3843 (0_4, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
3844 CSKYV2_ISA_E1,
3845 OPCODE_INFO_LIST (0xebe00000,
3846 (0_8, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
3847 CSKYV2_ISA_2E3),
3848#undef _TRANSFER
3849#define _TRANSFER 2
3850 OP16_OP32 ("pop",
3851 OPCODE_INFO_LIST (0x1480,
3852 (0_4, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
3853 CSKYV2_ISA_E1,
3854 OPCODE_INFO_LIST (0xebc00000,
3855 (0_8, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)),
3856 CSKYV2_ISA_2E3),
3857#undef _TRANSFER
3858#define _TRANSFER 0
3859 OP16_OP32 ("movi",
3860 OPCODE_INFO2 (0x3000,
3861 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3862 (0_7, IMM8b, OPRND_SHIFT_0_BIT)),
3863 CSKYV2_ISA_E1,
3864 OPCODE_INFO2 (0xea000000,
3865 (16_20, AREG, OPRND_SHIFT_0_BIT),
3866 (0_15, IMM16b, OPRND_SHIFT_0_BIT)),
3867 CSKYV2_ISA_1E2),
3868 /* bmaski will transfer to movi when imm < 17. */
3869 OP16_OP32 ("bmaski",
3870 OPCODE_INFO2 (0x3000,
3871 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3872 (0_7, IMM8b_BMASKI, OPRND_SHIFT_0_BIT)),
3873 CSKYV2_ISA_1E2,
3874 OPCODE_INFO2 (0xc4005020,
3875 (0_4, AREG, OPRND_SHIFT_0_BIT),
3876 (21_25, OIMM5b_BMASKI, OPRND_SHIFT_0_BIT)),
3877 CSKYV2_ISA_1E2),
3878 OP16_OP32 ("cmphsi",
3879 OPCODE_INFO2 (0x3800,
3880 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3881 (0_4, OIMM5b, OPRND_SHIFT_0_BIT)),
3882 CSKYV2_ISA_E1,
3883 OPCODE_INFO2 (0xeb000000,
3884 (16_20, AREG, OPRND_SHIFT_0_BIT),
3885 (0_15, OIMM16b, OPRND_SHIFT_0_BIT)),
3886 CSKYV2_ISA_1E2),
3887 OP16_OP32 ("cmplti",
3888 OPCODE_INFO2 (0x3820,
3889 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3890 (0_4, OIMM5b, OPRND_SHIFT_0_BIT)),
3891 CSKYV2_ISA_E1,
3892 OPCODE_INFO2 (0xeb200000,
3893 (16_20, AREG, OPRND_SHIFT_0_BIT),
3894 (0_15, OIMM16b, OPRND_SHIFT_0_BIT)),
3895 CSKYV2_ISA_1E2),
3896 OP16_OP32 ("cmpnei",
3897 OPCODE_INFO2 (0x3840,
3898 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3899 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3900 CSKYV2_ISA_E1,
3901 OPCODE_INFO2 (0xeb400000,
3902 (16_20, AREG, OPRND_SHIFT_0_BIT),
3903 (0_15, IMM16b, OPRND_SHIFT_0_BIT)),
3904 CSKYV2_ISA_1E2),
3905#undef _TRANSFER
3906#define _TRANSFER 1
3907 OP16_OP32 ("jmpix",
3908 OPCODE_INFO2 (0x38e0,
3909 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3910 (0_1, IMM2b_JMPIX, OPRND_SHIFT_0_BIT)),
3911 CSKY_ISA_JAVA,
3912 OPCODE_INFO2 (0xe9e00000,
3913 (16_20, GREG0_7, OPRND_SHIFT_0_BIT),
3914 (0_1, IMM2b_JMPIX, OPRND_SHIFT_0_BIT)),
3915 CSKY_ISA_JAVA),
3916#undef _TRANSFER
3917#define _TRANSFER 0
3918 DOP16_DOP32 ("bclri",
afdcafe8 3919 OPCODE_INFO2 (0x3880,
b8891f8d 3920 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
b8891f8d 3921 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
afdcafe8 3922 OPCODE_INFO3 (0x3880,
b8891f8d 3923 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
afdcafe8 3924 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
3925 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3926 CSKYV2_ISA_E1,
3927 OPCODE_INFO3 (0xc4002820,
3928 (0_4, AREG, OPRND_SHIFT_0_BIT),
3929 (16_20, AREG, OPRND_SHIFT_0_BIT),
3930 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3931 OPCODE_INFO2 (0xc4002820,
3932 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3933 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3934 CSKYV2_ISA_1E2),
3935 DOP16_DOP32 ("bseti",
afdcafe8 3936 OPCODE_INFO2 (0x38a0,
b8891f8d 3937 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
b8891f8d 3938 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
afdcafe8 3939 OPCODE_INFO3 (0x38a0,
b8891f8d 3940 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
afdcafe8 3941 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
3942 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3943 CSKYV2_ISA_E1,
3944 OPCODE_INFO3 (0xc4002840,
3945 (0_4, AREG, OPRND_SHIFT_0_BIT),
3946 (16_20, AREG, OPRND_SHIFT_0_BIT),
3947 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3948 OPCODE_INFO2 (0xc4002840,
3949 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3950 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3951 CSKYV2_ISA_1E2),
3952 OP16_OP32_WITH_WORK ("btsti",
3953 OPCODE_INFO2 (0x38c0,
3954 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3955 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3956 CSKYV2_ISA_E1,
3957 OPCODE_INFO2 (0xc4002880,
3958 (16_20, AREG, OPRND_SHIFT_0_BIT),
3959 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3960 CSKYV2_ISA_1E2, v2_work_btsti),
3961 DOP16_DOP32 ("lsli",
3962 OPCODE_INFO3 (0x4000,
3963 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
3964 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3965 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3966 OPCODE_INFO2 (0x4000,
3967 (5_7or8_10, DUP_GREG0_7, OPRND_SHIFT_0_BIT),
3968 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3969 CSKYV2_ISA_E1,
3970 OPCODE_INFO3 (0xc4004820,
3971 (0_4, AREG, OPRND_SHIFT_0_BIT),
3972 (16_20, AREG, OPRND_SHIFT_0_BIT),
3973 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3974 OPCODE_INFO2 (0xc4004820,
3975 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3976 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3977 CSKYV2_ISA_1E2),
3978 DOP16_DOP32 ("lsri",
3979 OPCODE_INFO3 (0x4800,
3980 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
3981 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3982 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3983 OPCODE_INFO2 (0x4800,
3984 (5_7or8_10, DUP_GREG0_7, OPRND_SHIFT_0_BIT),
3985 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
3986 CSKYV2_ISA_E1,
3987 OPCODE_INFO3 (0xc4004840,
3988 (0_4, AREG, OPRND_SHIFT_0_BIT),
3989 (16_20, AREG, OPRND_SHIFT_0_BIT),
3990 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3991 OPCODE_INFO2 (0xc4004840,
3992 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
3993 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
3994 CSKYV2_ISA_1E2),
3995 OP16_OP32 ("asri",
3996 OPCODE_INFO3 (0x5000,
3997 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
3998 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
3999 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
4000 CSKYV2_ISA_E1,
4001 OPCODE_INFO3 (0xc4004880,
4002 (0_4, AREG, OPRND_SHIFT_0_BIT),
4003 (16_20, AREG, OPRND_SHIFT_0_BIT),
4004 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
4005 CSKYV2_ISA_1E2),
afdcafe8
CQ
4006 DOP16_DOP32_WITH_WORK ("addc",
4007 OPCODE_INFO2 (0x6001,
4008 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4009 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4010 OPCODE_INFO3 (0x6001,
4011 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4012 (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
4013 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4014 CSKYV2_ISA_E1,
4015 OPCODE_INFO3 (0xc4000040,
4016 (0_4, AREG, OPRND_SHIFT_0_BIT),
4017 (16_20, AREG, OPRND_SHIFT_0_BIT),
4018 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4019 OPCODE_INFO2 (0xc4000040,
4020 (0_4or16_20, AREG, OPRND_SHIFT_0_BIT),
4021 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4022 CSKYV2_ISA_1E2,
4023 v2_work_addc),
b8891f8d
AJ
4024 DOP16_DOP32 ("subc",
4025 OPCODE_INFO2 (0x6003,
4026 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4027 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4028 OPCODE_INFO3 (0x6003,
4029 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4030 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
4031 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4032 CSKYV2_ISA_E1,
4033 OPCODE_INFO3 (0xc4000100,
4034 (0_4, AREG, OPRND_SHIFT_0_BIT),
4035 (16_20, AREG, OPRND_SHIFT_0_BIT),
4036 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4037 OPCODE_INFO2 (0xc4000100,
4038 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4039 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4040 CSKYV2_ISA_1E2),
4041 OP16_OP32 ("cmphs",
4042 OPCODE_INFO2 (0x6400,
4043 (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
4044 (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
4045 CSKYV2_ISA_E1,
4046 OPCODE_INFO2 (0xc4000420,
4047 (16_20, AREG, OPRND_SHIFT_0_BIT),
4048 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4049 CSKYV2_ISA_2E3),
4050 OP16_OP32 ("cmplt",
4051 OPCODE_INFO2 (0x6401,
4052 (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
4053 (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
4054 CSKYV2_ISA_E1,
4055 OPCODE_INFO2 (0xc4000440,
4056 (16_20, AREG, OPRND_SHIFT_0_BIT),
4057 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4058 CSKYV2_ISA_2E3),
4059 OP16_OP32 ("cmpne",
4060 OPCODE_INFO2 (0x6402,
4061 (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
4062 (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
4063 CSKYV2_ISA_E1,
4064 OPCODE_INFO2 (0xc4000480,
4065 (16_20, AREG, OPRND_SHIFT_0_BIT),
4066 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4067 CSKYV2_ISA_2E3),
4068 OP16_OP32 ("mvcv",
4069 OPCODE_INFO1 (0x6403,
4070 (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
4071 CSKYV2_ISA_E1,
4072 OPCODE_INFO1 (0xc4000600,
4073 (0_4, AREG, OPRND_SHIFT_0_BIT)),
4074 CSKYV2_ISA_2E3),
4075 DOP16_DOP32 ("and",
4076 OPCODE_INFO2 (0x6800,
4077 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4078 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4079 OPCODE_INFO3 (0x6800,
4080 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4081 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
4082 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
4083 CSKYV2_ISA_E1,
4084 OPCODE_INFO3 (0xc4002020,
4085 (0_4, AREG, OPRND_SHIFT_0_BIT),
4086 (16_20, AREG, OPRND_SHIFT_0_BIT),
4087 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4088 OPCODE_INFO2 (0xc4002020,
4089 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4090 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4091 CSKYV2_ISA_1E2),
4092 DOP16_DOP32 ("andn",
4093 OPCODE_INFO2 (0x6801,
4094 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4095 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4096 OPCODE_INFO3 (0x6801,
4097 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4098 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
4099 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4100 CSKYV2_ISA_E1,
4101 OPCODE_INFO3 (0xc4002040,
4102 (0_4, AREG, OPRND_SHIFT_0_BIT),
4103 (16_20, AREG, OPRND_SHIFT_0_BIT),
4104 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4105 OPCODE_INFO2 (0xc4002040,
4106 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4107 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4108 CSKYV2_ISA_1E2),
4109 OP16_OP32 ("tst",
4110 OPCODE_INFO2 (0x6802,
4111 (2_5, GREG0_15, OPRND_SHIFT_0_BIT),
4112 (6_9, GREG0_15, OPRND_SHIFT_0_BIT)),
4113 CSKYV2_ISA_E1,
4114 OPCODE_INFO2 (0xc4002080,
4115 (16_20, AREG, OPRND_SHIFT_0_BIT),
4116 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4117 CSKYV2_ISA_2E3),
4118 OP16_OP32 ("tstnbz",
4119 OPCODE_INFO1 (0x6803,
4120 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4121 CSKYV2_ISA_E1,
4122 OPCODE_INFO1 (0xc4002100,
4123 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4124 CSKYV2_ISA_2E3),
4125 DOP16_DOP32 ("or",
4126 OPCODE_INFO2 (0x6c00,
4127 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4128 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4129 OPCODE_INFO3 (0x6c00,
4130 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4131 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
4132 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
4133 CSKYV2_ISA_E1,
4134 OPCODE_INFO3 (0xc4002420,
4135 (0_4, AREG, OPRND_SHIFT_0_BIT),
4136 (16_20, AREG, OPRND_SHIFT_0_BIT),
4137 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4138 OPCODE_INFO2 (0xc4002420,
4139 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4140 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4141 CSKYV2_ISA_1E2),
4142 DOP16_DOP32 ("xor",
4143 OPCODE_INFO2 (0x6c01,
4144 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4145 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4146 OPCODE_INFO3 (0x6c01,
4147 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4148 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
4149 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
4150 CSKYV2_ISA_E1,
4151 OPCODE_INFO3 (0xc4002440,
4152 (0_4, AREG, OPRND_SHIFT_0_BIT),
4153 (16_20, AREG, OPRND_SHIFT_0_BIT),
4154 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4155 OPCODE_INFO2 (0xc4002440,
4156 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4157 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4158 CSKYV2_ISA_1E2),
4159 DOP16_DOP32 ("nor",
4160 OPCODE_INFO2 (0x6c02,
4161 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4162 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4163 OPCODE_INFO3 (0x6c02,
4164 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4165 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
4166 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
4167 CSKYV2_ISA_E1,
4168 OPCODE_INFO3 (0xc4002480,
4169 (0_4, AREG, OPRND_SHIFT_0_BIT),
4170 (16_20, AREG, OPRND_SHIFT_0_BIT),
4171 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4172 OPCODE_INFO2 (0xc4002480,
4173 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4174 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4175 CSKYV2_ISA_1E2),
4176 OP16_OP32 ("mov",
4177 OPCODE_INFO2 (0x6c03,
4178 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4179 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4180 CSKYV2_ISA_E1,
4181 OPCODE_INFO2 (0xc4004820,
4182 (0_4, AREG, OPRND_SHIFT_0_BIT),
4183 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4184 CSKYV2_ISA_1E2),
4185 OP16_OP32 ("nop",
4186 OPCODE_INFO0 (0x6c03),
4187 CSKYV2_ISA_E1,
4188 OPCODE_INFO0 (0xc4004820),
4189 CSKYV2_ISA_E1),
4190 DOP16_DOP32 ("lsl",
4191 OPCODE_INFO2 (0x7000,
4192 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4193 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4194 OPCODE_INFO3 (0x7000,
4195 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4196 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
4197 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4198 CSKYV2_ISA_E1,
4199 OPCODE_INFO3 (0xc4004020,
4200 (0_4, AREG, OPRND_SHIFT_0_BIT),
4201 (16_20, AREG, OPRND_SHIFT_0_BIT),
4202 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4203 OPCODE_INFO2 (0xc4004020,
4204 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4205 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4206 CSKYV2_ISA_1E2),
4207 DOP16_DOP32 ("lsr",
4208 OPCODE_INFO2 (0x7001,
4209 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4210 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4211 OPCODE_INFO3 (0x7001,
4212 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4213 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
4214 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4215 CSKYV2_ISA_E1,
4216 OPCODE_INFO3 (0xc4004040,
4217 (0_4, AREG, OPRND_SHIFT_0_BIT),
4218 (16_20, AREG, OPRND_SHIFT_0_BIT),
4219 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4220 OPCODE_INFO2 (0xc4004040,
4221 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4222 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4223 CSKYV2_ISA_1E2),
4224 DOP16_DOP32 ("asr",
4225 OPCODE_INFO2 (0x7002,
4226 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4227 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4228 OPCODE_INFO3 (0x7002,
4229 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4230 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
4231 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4232 CSKYV2_ISA_E1,
4233 OPCODE_INFO3 (0xc4004080,
4234 (0_4, AREG, OPRND_SHIFT_0_BIT),
4235 (16_20, AREG, OPRND_SHIFT_0_BIT),
4236 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4237 OPCODE_INFO2 (0xc4004080,
4238 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4239 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4240 CSKYV2_ISA_1E2),
4241 DOP16_DOP32 ("rotl",
4242 OPCODE_INFO2 (0x7003,
4243 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4244 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4245 OPCODE_INFO3 (0x7003,
4246 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4247 (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT),
4248 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4249 CSKYV2_ISA_E1,
4250 OPCODE_INFO3 (0xc4004100,
4251 (0_4, AREG, OPRND_SHIFT_0_BIT),
4252 (16_20, AREG, OPRND_SHIFT_0_BIT),
4253 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4254 OPCODE_INFO2 (0xc4004100,
4255 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4256 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4257 CSKYV2_ISA_1E2),
4258 DOP16_DOP32 ("zextb",
4259 OPCODE_INFO2 (0x7400,
4260 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4261 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4262 OPCODE_INFO1 (0x7400,
4263 (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
4264 CSKYV2_ISA_E1,
4265 OPCODE_INFO2 (0xc40054e0,
4266 (0_4, AREG, OPRND_SHIFT_0_BIT),
4267 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4268 OPCODE_INFO1 (0xc40054e0,
4269 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
4270 CSKYV2_ISA_2E3),
4271 DOP16_DOP32 ("zexth",
4272 OPCODE_INFO2 (0x7401,
4273 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4274 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4275 OPCODE_INFO1 (0x7401,
4276 (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
4277 CSKYV2_ISA_E1,
4278 OPCODE_INFO2 (0xc40055e0,
4279 (0_4, AREG, OPRND_SHIFT_0_BIT),
4280 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4281 OPCODE_INFO1 (0xc40055e0,
4282 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
4283 CSKYV2_ISA_2E3),
4284 DOP16_DOP32 ("sextb",
4285 OPCODE_INFO2 (0x7402,
4286 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4287 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4288 OPCODE_INFO1 (0x7402,
4289 (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
4290 CSKYV2_ISA_E1,
4291 OPCODE_INFO2 (0xc40058e0,
4292 (0_4, AREG, OPRND_SHIFT_0_BIT),
4293 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4294 OPCODE_INFO1 (0xc40058e0,
4295 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
4296 CSKYV2_ISA_2E3),
4297 DOP16_DOP32 ("sexth",
4298 OPCODE_INFO2 (0x7403,
4299 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4300 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4301 OPCODE_INFO1 (0x7403,
4302 (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)),
4303 CSKYV2_ISA_E1,
4304 OPCODE_INFO2 (0xc40059e0,
4305 (0_4, AREG, OPRND_SHIFT_0_BIT),
4306 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4307 OPCODE_INFO1 (0xc40059e0,
4308 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
4309 CSKYV2_ISA_2E3),
4310 OP32 ("zext",
4311 OPCODE_INFO4 (0xc4005400,
4312 (0_4, AREG, OPRND_SHIFT_0_BIT),
4313 (16_20, AREG, OPRND_SHIFT_0_BIT),
4314 (5_9, IMM5b, OPRND_SHIFT_0_BIT),
afdcafe8 4315 (21_25, IMM5b_LS, OPRND_SHIFT_0_BIT)),
b8891f8d
AJ
4316 CSKYV2_ISA_2E3),
4317 OP32 ("sext",
4318 OPCODE_INFO4 (0xc4005800,
4319 (0_4, AREG, OPRND_SHIFT_0_BIT),
4320 (16_20, AREG, OPRND_SHIFT_0_BIT),
4321 (5_9, IMM5b, OPRND_SHIFT_0_BIT),
afdcafe8 4322 (21_25, IMM5b_LS, OPRND_SHIFT_0_BIT)),
b8891f8d
AJ
4323 CSKYV2_ISA_2E3),
4324#undef _TRANSFER
4325#define _TRANSFER 2
4326 OP16_OP32 ("rts",
4327 OPCODE_INFO0 (0x783c),
4328 CSKYV2_ISA_E1,
4329 OPCODE_INFO0 (0xe8cf0000),
4330 CSKYV2_ISA_E1),
4331#undef _TRANSFER
4332#define _TRANSFER 1
4333 OP16_OP32 ("jmp",
4334 OPCODE_INFO1 (0x7800,
4335 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4336 CSKYV2_ISA_E1,
4337 OPCODE_INFO1 (0xe8c00000,
4338 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4339 CSKYV2_ISA_2E3),
4340#undef _TRANSFER
4341#define _TRANSFER 0
4342 OP16_OP32 ("revb",
4343 OPCODE_INFO2 (0x7802,
4344 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4345 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4346 CSKYV2_ISA_1E2,
4347 OPCODE_INFO2 (0xc4006080,
4348 (0_4, AREG, OPRND_SHIFT_0_BIT),
4349 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4350 CSKYV2_ISA_2E3),
4351 OP16_OP32 ("revh",
4352 OPCODE_INFO2 (0x7803,
4353 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4354 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4355 CSKYV2_ISA_1E2,
4356 OPCODE_INFO2 (0xc4006100,
4357 (0_4, AREG, OPRND_SHIFT_0_BIT),
4358 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4359 CSKYV2_ISA_2E3),
4360 OP16_OP32 ("jsr",
4361 OPCODE_INFO1 (0x7bc1,
4362 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4363 CSKYV2_ISA_E1,
4364 OPCODE_INFO1 (0xe8e00000,
4365 (16_20, AREG, OPRND_SHIFT_0_BIT)),
4366 CSKYV2_ISA_2E3),
4367 DOP16_DOP32 ("mult",
4368 OPCODE_INFO2 (0x7c00,
4369 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4370 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4371 OPCODE_INFO3 (0x7c00,
4372 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4373 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
4374 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
4375 CSKYV2_ISA_E1,
4376 OPCODE_INFO3 (0xc4008420,
4377 (0_4, AREG, OPRND_SHIFT_0_BIT),
4378 (16_20, AREG, OPRND_SHIFT_0_BIT),
4379 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4380 OPCODE_INFO2 (0xc4008420,
4381 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4382 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4383 CSKYV2_ISA_1E2),
4384 OP16 ("mul",
4385 OPCODE_INFO2 (0x7c00,
4386 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4387 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4388 CSKYV2_ISA_E1),
4389 DOP16_DOP32 ("mulsh",
4390 OPCODE_INFO2 (0x7c01,
4391 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4392 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4393 OPCODE_INFO3 (0x7c01,
4394 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4395 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT),
4396 (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)),
4397 CSKYV2_ISA_2E3,
4398 OPCODE_INFO3 (0xc4009020,
4399 (0_4, AREG, OPRND_SHIFT_0_BIT),
4400 (16_20, AREG, OPRND_SHIFT_0_BIT),
4401 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4402 OPCODE_INFO2 (0xc4009020,
4403 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4404 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4405 CSKYV2_ISA_2E3),
4406 OP16 ("muls.h",
4407 OPCODE_INFO2 (0x7c01,
4408 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4409 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4410 CSKYV2_ISA_2E3),
4411 DOP32 ("mulsw",
4412 OPCODE_INFO3 (0xc4009420,
4413 (0_4, AREG, OPRND_SHIFT_0_BIT),
4414 (16_20, AREG, OPRND_SHIFT_0_BIT),
4415 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4416 OPCODE_INFO2 (0xc4009420,
4417 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4418 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6a1ed910 4419 CSKY_ISA_DSPE60),
b8891f8d
AJ
4420 OP16_OP32 ("ld.b",
4421 SOPCODE_INFO2 (0x8000,
4422 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4423 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4424 (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
4425 CSKYV2_ISA_E1,
4426 SOPCODE_INFO2 (0xd8000000,
4427 (21_25, AREG, OPRND_SHIFT_0_BIT),
4428 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4429 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
4430 CSKYV2_ISA_E1),
4431 OP16_OP32 ("ldb",
4432 SOPCODE_INFO2 (0x8000,
4433 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4434 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4435 (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
4436 CSKYV2_ISA_E1,
4437 SOPCODE_INFO2 (0xd8000000,
4438 (21_25, AREG, OPRND_SHIFT_0_BIT),
4439 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4440 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
4441 CSKYV2_ISA_E1),
4442 OP16_OP32 ("st.b",
4443 SOPCODE_INFO2 (0xa000,
4444 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4445 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4446 (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
4447 CSKYV2_ISA_E1,
4448 SOPCODE_INFO2 (0xdc000000,
4449 (21_25, AREG, OPRND_SHIFT_0_BIT),
4450 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4451 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
4452 CSKYV2_ISA_E1),
4453 OP16_OP32 ("stb",
4454 SOPCODE_INFO2 (0xa000,
4455 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4456 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4457 (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
4458 CSKYV2_ISA_E1,
4459 SOPCODE_INFO2 (0xdc000000,
4460 (21_25, AREG, OPRND_SHIFT_0_BIT),
4461 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4462 (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))),
4463 CSKYV2_ISA_E1),
4464
4465 OP16_OP32 ("ld.h",
4466 SOPCODE_INFO2 (0x8800,
4467 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4468 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4469 (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
4470 CSKYV2_ISA_E1,
4471 SOPCODE_INFO2 (0xd8001000,
4472 (21_25, AREG, OPRND_SHIFT_0_BIT),
4473 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4474 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
4475 CSKYV2_ISA_E1),
4476 OP16_OP32 ("ldh",
4477 SOPCODE_INFO2 (0x8800,
4478 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4479 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4480 (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
4481 CSKYV2_ISA_E1,
4482 SOPCODE_INFO2 (0xd8001000,
4483 (21_25, AREG, OPRND_SHIFT_0_BIT),
4484 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4485 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
4486 CSKYV2_ISA_E1),
4487 OP16_OP32 ("st.h",
4488 SOPCODE_INFO2 (0xa800,
4489 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4490 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4491 (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
4492 CSKYV2_ISA_E1,
4493 SOPCODE_INFO2 (0xdc001000,
4494 (21_25, AREG, OPRND_SHIFT_0_BIT),
4495 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4496 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
4497 CSKYV2_ISA_E1),
4498 OP16_OP32 ("sth",
4499 SOPCODE_INFO2 (0xa800,
4500 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4501 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4502 (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))),
4503 CSKYV2_ISA_E1,
4504 SOPCODE_INFO2 (0xdc001000,
4505 (21_25, AREG, OPRND_SHIFT_0_BIT),
4506 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4507 (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))),
4508 CSKYV2_ISA_E1),
4509 DOP16_OP32 ("ld.w",
4510 SOPCODE_INFO2 (0x9000,
4511 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4512 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4513 (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
4514 SOPCODE_INFO2 (0x9800,
4515 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4516 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4517 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4518 CSKYV2_ISA_E1,
4519 SOPCODE_INFO2 (0xd8002000,
4520 (21_25, AREG, OPRND_SHIFT_0_BIT),
4521 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4522 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4523 CSKYV2_ISA_E1),
4524 DOP16_OP32 ("ldw",
4525 SOPCODE_INFO2 (0x9000,
4526 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4527 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4528 (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
4529 SOPCODE_INFO2 (0x9800,
4530 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4531 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4532 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4533 CSKYV2_ISA_E1,
4534 SOPCODE_INFO2 (0xd8002000,
4535 (21_25, AREG, OPRND_SHIFT_0_BIT),
4536 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4537 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4538 CSKYV2_ISA_E1),
4539 DOP16_OP32 ("ld",
4540 SOPCODE_INFO2 (0x9000,
4541 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4542 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4543 (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))),
4544 SOPCODE_INFO2 (0x9800,
4545 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4546 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4547 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4548 CSKYV2_ISA_E1,
4549 SOPCODE_INFO2 (0xd8002000,
4550 (21_25, AREG, OPRND_SHIFT_0_BIT),
4551 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4552 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4553 CSKYV2_ISA_E1),
4554 DOP16_OP32 ("st.w",
4555 SOPCODE_INFO2 (0xb000,
4556 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4557 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4558 (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
4559 SOPCODE_INFO2 (0xb800,
4560 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4561 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4562 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4563 CSKYV2_ISA_E1,
4564 SOPCODE_INFO2 (0xdc002000,
4565 (21_25, AREG, OPRND_SHIFT_0_BIT),
4566 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4567 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4568 CSKYV2_ISA_E1),
4569 DOP16_OP32 ("stw",
4570 SOPCODE_INFO2 (0xb000,
4571 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4572 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4573 (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
4574 SOPCODE_INFO2 (0xb800,
4575 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4576 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4577 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4578 CSKYV2_ISA_E1,
4579 SOPCODE_INFO2 (0xdc002000,
4580 (21_25, AREG, OPRND_SHIFT_0_BIT),
4581 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4582 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4583 CSKYV2_ISA_E1),
4584 DOP16_OP32 ("st",
4585 SOPCODE_INFO2 (0xb000,
4586 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4587 BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4588 (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))),
4589 SOPCODE_INFO2 (0xb800,
4590 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4591 BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT),
4592 (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))),
4593 CSKYV2_ISA_E1,
4594 SOPCODE_INFO2 (0xdc002000,
4595 (21_25, AREG, OPRND_SHIFT_0_BIT),
4596 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
4597 (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))),
4598 CSKYV2_ISA_E1),
4599#ifdef BUILD_AS
4600 DOP16_DOP32_WITH_WORK ("addi",
4601 OPCODE_INFO2 (0x2000,
4602 (NONE, AREG, OPRND_SHIFT_0_BIT),
4603 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4604 OPCODE_INFO3 (0x2000,
4605 (NONE, AREG, OPRND_SHIFT_0_BIT),
4606 (NONE, AREG, OPRND_SHIFT_0_BIT),
4607 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4608 CSKYV2_ISA_E1,
4609 OPCODE_INFO2 (0xe4000000,
4610 (NONE, AREG, OPRND_SHIFT_0_BIT),
4611 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4612 OPCODE_INFO3 (0xe4000000,
4613 (NONE, AREG, OPRND_SHIFT_0_BIT),
4614 (NONE, AREG, OPRND_SHIFT_0_BIT),
4615 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4616 CSKYV2_ISA_1E2,
4617 v2_work_addi),
4618#else
4619 DOP16 ("addi",
4620 OPCODE_INFO2 (0x2000,
4621 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4622 (0_7, OIMM8b, OPRND_SHIFT_0_BIT)),
4623 OPCODE_INFO3 (0x5802,
4624 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4625 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4626 (2_4, OIMM3b, OPRND_SHIFT_0_BIT)),
4627 CSKYV2_ISA_E1),
4628 DOP16 ("addi",
4629 OPCODE_INFO3 (0x1800,
4630 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4631 (NONE, REGsp, OPRND_SHIFT_0_BIT),
4632 (0_7, IMM8b_LS2, OPRND_SHIFT_0_BIT)),
4633 OPCODE_INFO3 (0x1400,
4634 (NONE, REGsp, OPRND_SHIFT_0_BIT),
4635 (NONE, REGsp, OPRND_SHIFT_0_BIT),
4636 (0_4or8_9, IMM7b_LS2, OPRND_SHIFT_0_BIT)),
4637 CSKYV2_ISA_E1),
4638 DOP32 ("addi",
4639 OPCODE_INFO3 (0xe4000000,
4640 (21_25, AREG, OPRND_SHIFT_0_BIT),
4641 (16_20, AREG, OPRND_SHIFT_0_BIT),
4642 (0_11, OIMM12b, OPRND_SHIFT_0_BIT)),
4643 OPCODE_INFO3 (0xcc1c0000,
4644 (21_25, AREG, OPRND_SHIFT_0_BIT),
4645 (NONE, REG_r28, OPRND_SHIFT_0_BIT),
4646 (0_17, OIMM18b, OPRND_SHIFT_0_BIT)),
4647 CSKYV2_ISA_1E2),
4648#endif
4649#ifdef BUILD_AS
4650 DOP16_DOP32_WITH_WORK ("subi",
4651 OPCODE_INFO2 (0x2800,
4652 (NONE, AREG, OPRND_SHIFT_0_BIT),
4653 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4654 OPCODE_INFO3 (0x2800,
4655 (NONE, AREG, OPRND_SHIFT_0_BIT),
4656 (NONE, AREG, OPRND_SHIFT_0_BIT),
4657 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4658 CSKYV2_ISA_E1,
4659 OPCODE_INFO2 (0xe4001000,
4660 (NONE, AREG, OPRND_SHIFT_0_BIT),
4661 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4662 OPCODE_INFO3 (0xe4001000,
4663 (NONE, AREG, OPRND_SHIFT_0_BIT),
4664 (NONE, AREG, OPRND_SHIFT_0_BIT),
4665 (NONE, IMM32b, OPRND_SHIFT_0_BIT)),
4666 CSKYV2_ISA_1E2, v2_work_subi),
4667#else
4668 DOP16 ("subi",
4669 OPCODE_INFO2 (0x2800,
4670 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4671 (0_7, OIMM8b, OPRND_SHIFT_0_BIT)),
4672 OPCODE_INFO3 (0x5803,
4673 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4674 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4675 (2_4, OIMM3b, OPRND_SHIFT_0_BIT)),
4676 CSKYV2_ISA_E1),
4677 OP32 ("subi",
4678 OPCODE_INFO3 (0xe4001000,
4679 (21_25, AREG, OPRND_SHIFT_0_BIT),
4680 (16_20, AREG, OPRND_SHIFT_0_BIT),
4681 (0_11, OIMM12b, OPRND_SHIFT_0_BIT)),
4682 CSKYV2_ISA_1E2),
4683 OP16 ("subi",
4684 OPCODE_INFO3 (0x1420,
4685 (NONE, REGsp, OPRND_SHIFT_0_BIT),
4686 (NONE, REGsp, OPRND_SHIFT_0_BIT),
4687 (0_4or8_9, IMM7b_LS2, OPRND_SHIFT_0_BIT)),
4688 CSKYV2_ISA_E1),
4689#endif
4690 DOP16_DOP32_WITH_WORK ("addu",
4691 OPCODE_INFO2 (0x6000,
4692 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4693 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4694 OPCODE_INFO3 (0x5800,
4695 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4696 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4697 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
4698 CSKYV2_ISA_E1,
4699 OPCODE_INFO3 (0xc4000020,
4700 (0_4, AREG, OPRND_SHIFT_0_BIT),
4701 (16_20, AREG, OPRND_SHIFT_0_BIT),
4702 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4703 OPCODE_INFO2 (0xc4000020,
4704 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4705 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4706 CSKYV2_ISA_E1,
4707 v2_work_add_sub),
4708 DOP16_DOP32_WITH_WORK ("add",
4709 OPCODE_INFO2 (0x6000,
4710 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4711 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4712 OPCODE_INFO3 (0x5800,
4713 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4714 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4715 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
4716 CSKYV2_ISA_E1,
4717 OPCODE_INFO3 (0xc4000020,
4718 (0_4, AREG, OPRND_SHIFT_0_BIT),
4719 (16_20, AREG, OPRND_SHIFT_0_BIT),
4720 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4721 OPCODE_INFO2 (0xc4000020,
4722 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4723 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4724 CSKYV2_ISA_E1,
4725 v2_work_add_sub),
4726 DOP16_DOP32_WITH_WORK ("subu",
4727 OPCODE_INFO2 (0x6002,
4728 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4729 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4730 OPCODE_INFO3 (0x5801,
4731 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4732 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4733 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
4734 CSKYV2_ISA_E1,
4735 OPCODE_INFO3 (0xc4000080,
4736 (0_4, AREG, OPRND_SHIFT_0_BIT),
4737 (16_20, AREG, OPRND_SHIFT_0_BIT),
4738 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4739 OPCODE_INFO2 (0xc4000080,
4740 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4741 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4742 CSKYV2_ISA_E1,
4743 v2_work_add_sub),
4744 DOP16_DOP32_WITH_WORK ("sub",
4745 OPCODE_INFO2 (0x6002,
4746 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
4747 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
4748 OPCODE_INFO3 (0x5801,
4749 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4750 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
4751 (2_4, GREG0_7, OPRND_SHIFT_0_BIT)),
4752 CSKYV2_ISA_E1,
4753 OPCODE_INFO3 (0xc4000080,
4754 (0_4, AREG, OPRND_SHIFT_0_BIT),
4755 (16_20, AREG, OPRND_SHIFT_0_BIT),
4756 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4757 OPCODE_INFO2 (0xc4000080,
4758 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
4759 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4760 CSKYV2_ISA_E1,
4761 v2_work_add_sub),
4762 OP32_WITH_WORK ("fmovis",
4763 OPCODE_INFO2 (0xf4001c00,
4764 (0_3, FREG, OPRND_SHIFT_0_BIT),
4765 (4_7or16_24, SFLOAT, OPRND_SHIFT_2_BIT)),
4766 CSKY_ISA_FLOAT_1E3,
4767 float_work_fmovi),
4768 OP32_WITH_WORK ("fmovid",
4769 OPCODE_INFO2 (0xf4001e00,
4770 (0_3, FREG, OPRND_SHIFT_0_BIT),
4771 (4_7or16_24, DFLOAT, OPRND_SHIFT_2_BIT)),
4772 CSKY_ISA_FLOAT_3E4,
4773 float_work_fmovi),
4774#undef _RELOC32
4775#define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM26BY2
4776 OP32 ("bsr",
4777 OPCODE_INFO1 (0xe0000000,
4778 (0_25, OFF26b, OPRND_SHIFT_1_BIT)),
4779 CSKYV2_ISA_E1),
4780#undef _RELOC32
4781#define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18
4782 OP32 ("lrs.b",
4783 OPCODE_INFO2 (0xcc000000,
4784 (21_25, AREG, OPRND_SHIFT_0_BIT),
4785 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4786 CSKYV2_ISA_2E3),
4787 OP32 ("srs.b",
4788 OPCODE_INFO2 (0xcc100000,
4789 (21_25, AREG, OPRND_SHIFT_0_BIT),
4790 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4791 CSKYV2_ISA_2E3),
4792#undef _RELOC32
4793#define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18BY2
4794 OP32 ("lrs.h",
4795 OPCODE_INFO2 (0xcc040000,
4796 (21_25, AREG, OPRND_SHIFT_0_BIT),
4797 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4798 CSKYV2_ISA_2E3),
4799 OP32 ("srs.h",
4800 OPCODE_INFO2 (0xcc140000,
4801 (21_25, AREG, OPRND_SHIFT_0_BIT),
4802 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4803 CSKYV2_ISA_2E3),
4804#undef _RELOC32
4805#define _RELOC32 BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4
4806 OP32 ("flrws",
4807 OPCODE_INFO2 (0xf4003800,
4808 (0_3, FREG, OPRND_SHIFT_0_BIT),
4809 (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
4810 CSKY_ISA_FLOAT_1E3),
4811 OP32 ("flrwd",
4812 OPCODE_INFO2 (0xf4003900,
4813 (0_3, FREG, OPRND_SHIFT_0_BIT),
4814 (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
4815 CSKY_ISA_FLOAT_3E4),
4816#undef _RELOC32
4817#define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18BY4
4818 OP32_WITH_WORK ("lrs.w",
4819 OPCODE_INFO2 (0xcc080000,
4820 (21_25, AREG, OPRND_SHIFT_0_BIT),
4821 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4822 CSKYV2_ISA_2E3,
4823 v2_work_lrsrsw),
4824 OP32_WITH_WORK ("srs.w",
4825 OPCODE_INFO2 (0xcc180000,
4826 (21_25, AREG, OPRND_SHIFT_0_BIT),
4827 (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
4828 CSKYV2_ISA_2E3,
4829 v2_work_lrsrsw),
4830
4831#undef _RELOC32
4832#define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4
4833 OP32_WITH_WORK ("jsri",
4834 OPCODE_INFO1 (0xeae00000,
4835 (0_15, OFF16b, OPRND_SHIFT_2_BIT)),
4836 CSKYV2_ISA_2E3,
4837 v2_work_jsri),
4838#undef _RELOC32
4839#define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY2
4840 OP32 ("bez",
4841 OPCODE_INFO2 (0xe9000000,
4842 (16_20, AREG, OPRND_SHIFT_0_BIT),
4843 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4844 CSKYV2_ISA_2E3),
4845 OP32 ("bnez",
4846 OPCODE_INFO2 (0xe9200000,
4847 (16_20, AREG, OPRND_SHIFT_0_BIT),
4848 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4849 CSKYV2_ISA_2E3),
4850 OP32 ("bhz",
4851 OPCODE_INFO2 (0xe9400000,
4852 (16_20, AREG, OPRND_SHIFT_0_BIT),
4853 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4854 CSKYV2_ISA_2E3),
4855 OP32 ("blsz",
4856 OPCODE_INFO2 (0xe9600000,
4857 (16_20, AREG, OPRND_SHIFT_0_BIT),
4858 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4859 CSKYV2_ISA_2E3),
4860 OP32 ("blz",
4861 OPCODE_INFO2 (0xe9800000,
4862 (16_20, AREG, OPRND_SHIFT_0_BIT),
4863 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4864 CSKYV2_ISA_2E3),
4865 OP32 ("bhsz",
4866 OPCODE_INFO2 (0xe9a00000,
4867 (16_20, AREG, OPRND_SHIFT_0_BIT),
4868 (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)),
4869 CSKYV2_ISA_2E3),
4870#undef _RELAX
4871#undef _RELOC16
4872#undef _TRANSFER
4873#define _TRANSFER 1
4874#define _RELAX 1
4875#define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM10BY2
4876 OP16_OP32 ("br",
4877 OPCODE_INFO1 (0x0400,
4878 (0_9, UNCOND10b, OPRND_SHIFT_1_BIT)),
4879 CSKYV2_ISA_E1,
4880 OPCODE_INFO1 (0xe8000000,
4881 (0_15, UNCOND16b, OPRND_SHIFT_1_BIT)),
4882 CSKYV2_ISA_E1),
4883#undef _TRANSFER
4884#define _TRANSFER 0
4885 OP16_OP32 ("bt",
4886 OPCODE_INFO1 (0x0800,
4887 (0_9, COND10b, OPRND_SHIFT_1_BIT)),
4888 CSKYV2_ISA_E1,
4889 OPCODE_INFO1 (0xe8600000,
4890 (0_15, COND16b, OPRND_SHIFT_1_BIT)),
4891 CSKYV2_ISA_1E2),
4892 OP16_OP32 ("bf",
4893 OPCODE_INFO1 (0x0c00,
4894 (0_9, COND10b, OPRND_SHIFT_1_BIT)),
4895 CSKYV2_ISA_E1,
4896 OPCODE_INFO1 (0xe8400000,
4897 (0_15, COND16b, OPRND_SHIFT_1_BIT)),
4898 CSKYV2_ISA_1E2),
d04aee0f
CQ
4899#undef _RELAX
4900#undef _RELOC16
4901#define _RELAX 0
4902#define _RELOC16 0
4903 OP32 ("bnezad",
4904 OPCODE_INFO2 (0xe8200000,
4905 (16_20, AREG, OPRND_SHIFT_0_BIT),
4906 (0_15, COND16b, OPRND_SHIFT_1_BIT)),
4907 CSKYV2_ISA_3E3R2),
b8891f8d
AJ
4908#undef _RELOC16
4909#undef _RELOC32
b8891f8d
AJ
4910#define _RELOC16 0
4911#define _RELOC32 0
b8891f8d
AJ
4912#undef _TRANSFER
4913#define _TRANSFER 1
4914 OP16_WITH_WORK ("jbr",
4915 OPCODE_INFO1 (0x0400,
4916 (0_10, UNCOND10b, OPRND_SHIFT_1_BIT)),
4917 CSKYV2_ISA_E1,
4918 v2_work_jbr),
4919#undef _TRANSFER
4920#define _TRANSFER 0
4921 OP16_WITH_WORK ("jbt",
4922 OPCODE_INFO1 (0x0800,
4923 (0_10, COND10b, OPRND_SHIFT_1_BIT)),
4924 CSKYV2_ISA_E1,
4925 v2_work_jbtf),
4926 OP16_WITH_WORK ("jbf",
4927 OPCODE_INFO1 (0x0c00,
4928 (0_10, COND10b, OPRND_SHIFT_1_BIT)),
4929 CSKYV2_ISA_E1,
4930 v2_work_jbtf),
4931 OP32_WITH_WORK ("jbsr",
4932 OPCODE_INFO1 (0xe0000000,
4933 (0_25, OFF26b, OPRND_SHIFT_1_BIT)),
4934 CSKYV2_ISA_E1,
4935 v2_work_jbsr),
4936 OP32_WITH_WORK ("movih",
4937 OPCODE_INFO2 (0xea200000,
4938 (16_20, AREG, OPRND_SHIFT_0_BIT),
4939 (0_15, IMM16b_MOVIH, OPRND_SHIFT_0_BIT)),
4940 CSKYV2_ISA_1E2,
4941 v2_work_movih),
4942 OP32_WITH_WORK ("ori",
4943 OPCODE_INFO3 (0xec000000,
4944 (21_25, AREG, OPRND_SHIFT_0_BIT),
4945 (16_20, AREG, OPRND_SHIFT_0_BIT),
4946 (0_15, IMM16b_ORI, OPRND_SHIFT_0_BIT)),
4947 CSKYV2_ISA_1E2,
4948 v2_work_ori),
4949 DOP32_WITH_WORK ("bgeni",
4950 OPCODE_INFO2 (0xea000000,
4951 (16_20, AREG, OPRND_SHIFT_0_BIT),
4952 (0_4, IMM4b, OPRND_SHIFT_0_BIT)),
4953 OPCODE_INFO2 (0xea200000,
4954 (16_20, AREG, OPRND_SHIFT_0_BIT),
4955 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
4956 CSKYV2_ISA_E1,
4957 v2_work_bgeni),
4958#undef _RELOC16
4959#undef _RELOC32
4960#define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM7BY4
4961#define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4
4962 DOP16_OP32_WITH_WORK ("lrw",
4963 OPCODE_INFO2 (0x1000,
4964 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4965 (0_4or8_9, CONSTANT, OPRND_SHIFT_2_BIT)),
4966 OPCODE_INFO2 (0x0000,
4967 (5_7, GREG0_7, OPRND_SHIFT_0_BIT),
4968 (0_4or8_9, ELRW_CONSTANT, OPRND_SHIFT_2_BIT)),
4969 CSKYV2_ISA_E1,
4970 OPCODE_INFO2 (0xea800000,
4971 (16_20, AREG, OPRND_SHIFT_0_BIT),
4972 (0_15, CONSTANT, OPRND_SHIFT_2_BIT)),
4973 CSKYV2_ISA_E1,
4974 v2_work_lrw),
4975#undef _RELOC16
4976#undef _RELOC32
4977#define _RELOC16 0
4978#define _RELOC32 0
4979
4980#undef _RELAX
4981#define _RELAX 1
4982 OP32 ("jbez",
4983 OPCODE_INFO2 (0xe9000000,
4984 (16_20, AREG, OPRND_SHIFT_0_BIT),
4985 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
4986 CSKYV2_ISA_2E3),
4987 OP32 ("jbnez",
4988 OPCODE_INFO2 (0xe9200000,
4989 (16_20, AREG, OPRND_SHIFT_0_BIT),
4990 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
4991 CSKYV2_ISA_2E3),
4992 OP32 ("jbhz",
4993 OPCODE_INFO2 (0xe9400000,
4994 (16_20, AREG, OPRND_SHIFT_0_BIT),
4995 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
4996 CSKYV2_ISA_2E3),
4997 OP32 ("jblsz",
4998 OPCODE_INFO2 (0xe9600000,
4999 (16_20, AREG, OPRND_SHIFT_0_BIT),
5000 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
5001 CSKYV2_ISA_2E3),
5002 OP32 ("jblz",
5003 OPCODE_INFO2 (0xe9800000,
5004 (16_20, AREG, OPRND_SHIFT_0_BIT),
5005 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
5006 CSKYV2_ISA_2E3),
5007 OP32 ("jbhsz",
5008 OPCODE_INFO2 (0xe9a00000,
5009 (16_20, AREG, OPRND_SHIFT_0_BIT),
5010 (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)),
5011 CSKYV2_ISA_2E3),
5012#undef _RELAX
5013#define _RELAX 0
5014
531c73a3 5015 /* CK860 instructions. */
79c8d443
CQ
5016 OP32 ("sync.is",
5017 OPCODE_INFO0 (0xc2200420),
5018 CSKYV2_ISA_10E60),
5019 OP32 ("sync.i",
5020 OPCODE_INFO0 (0xc0200420),
5021 CSKYV2_ISA_10E60),
5022 OP32 ("sync.s",
5023 OPCODE_INFO0 (0xc2000420),
5024 CSKYV2_ISA_10E60),
5025 OP32 ("bar.brwarw",
5026 OPCODE_INFO0 (0xc000842f),
5027 CSKYV2_ISA_10E60),
5028 OP32 ("bar.brwarws",
5029 OPCODE_INFO0 (0xc200842f),
5030 CSKYV2_ISA_10E60),
5031 OP32 ("bar.brar",
5032 OPCODE_INFO0 (0xc0008425),
5033 CSKYV2_ISA_10E60),
5034 OP32 ("bar.brars",
5035 OPCODE_INFO0 (0xc2008425),
5036 CSKYV2_ISA_10E60),
5037 OP32 ("bar.bwaw",
5038 OPCODE_INFO0 (0xc000842a),
5039 CSKYV2_ISA_10E60),
5040 OP32 ("bar.bwaws",
5041 OPCODE_INFO0 (0xc200842a),
5042 CSKYV2_ISA_10E60),
5043 OP32 ("icache.iall",
5044 OPCODE_INFO0 (0xc1009020),
5045 CSKYV2_ISA_10E60),
5046 OP32 ("icache.ialls",
5047 OPCODE_INFO0 (0xc3009020),
5048 CSKYV2_ISA_10E60),
5049 OP32 ("l2cache.iall",
5050 OPCODE_INFO0 (0xc1009820),
5051 CSKYV2_ISA_10E60),
5052 OP32 ("l2cache.call",
5053 OPCODE_INFO0 (0xc0809820),
5054 CSKYV2_ISA_10E60),
5055 OP32 ("l2cache.ciall",
5056 OPCODE_INFO0 (0xc1809820),
5057 CSKYV2_ISA_10E60),
5058 OP32 ("icache.iva",
5059 OPCODE_INFO1 (0xc1609020,
5060 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5061 CSKYV2_ISA_10E60),
5062 OP32 ("dcache.iall",
5063 OPCODE_INFO0 (0xc1009420),
5064 CSKYV2_ISA_10E60),
5065 OP32 ("dcache.iva",
5066 OPCODE_INFO1 (0xc1609420,
5067 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5068 CSKYV2_ISA_10E60),
5069 OP32 ("dcache.isw",
5070 OPCODE_INFO1 (0xc1409420,
5071 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5072 CSKYV2_ISA_10E60),
5073 OP32 ("dcache.call",
5074 OPCODE_INFO0 (0xc0809420),
5075 CSKYV2_ISA_10E60),
5076 OP32 ("dcache.cva",
5077 OPCODE_INFO1 (0xc0e09420,
5078 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5079 CSKYV2_ISA_10E60),
5080 OP32 ("dcache.cval1",
5081 OPCODE_INFO1 (0xc2e09420,
5082 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5083 CSKYV2_ISA_10E60),
5084 OP32 ("dcache.csw",
5085 OPCODE_INFO1 (0xc0c09420,
5086 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5087 CSKYV2_ISA_10E60),
5088 OP32 ("dcache.ciall",
5089 OPCODE_INFO0 (0xc1809420),
5090 CSKYV2_ISA_10E60),
5091 OP32 ("dcache.civa",
5092 OPCODE_INFO1 (0xc1e09420,
5093 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5094 CSKYV2_ISA_10E60),
5095 OP32 ("dcache.cisw",
5096 OPCODE_INFO1 (0xc1c09420,
5097 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5098 CSKYV2_ISA_10E60),
5099 OP32 ("tlbi.vaa",
5100 OPCODE_INFO1 (0xc0408820,
5101 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5102 CSKYV2_ISA_10E60),
5103 OP32 ("tlbi.vaas",
5104 OPCODE_INFO1 (0xc2408820,
5105 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5106 CSKYV2_ISA_10E60),
5107 OP32 ("tlbi.asid",
5108 OPCODE_INFO1 (0xc0208820,
5109 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5110 CSKYV2_ISA_10E60),
5111 OP32 ("tlbi.asids",
5112 OPCODE_INFO1 (0xc2208820,
5113 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5114 CSKYV2_ISA_10E60),
5115 OP32 ("tlbi.va",
5116 OPCODE_INFO1 (0xc0608820,
5117 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5118 CSKYV2_ISA_10E60),
5119 OP32 ("tlbi.vas",
5120 OPCODE_INFO1 (0xc2608820,
5121 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5122 CSKYV2_ISA_10E60),
5123 OP32 ("tlbi.all",
5124 OPCODE_INFO0 (0xc0008820),
5125 CSKYV2_ISA_10E60),
5126 OP32 ("tlbi.alls",
5127 OPCODE_INFO0 (0xc2008820),
5128 CSKYV2_ISA_10E60),
5129 DOP32 ("sync",
5130 OPCODE_INFO0 (0xc0000420),
5131 OPCODE_INFO1 (0xc0000420,
5132 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
5133 CSKYV2_ISA_E1),
531c73a3 5134
b8891f8d 5135 /* The followings are enhance DSP instructions. */
d285ba8d
CQ
5136 DOP32_WITH_WORK ("bloop",
5137 OPCODE_INFO3 (0xe9c00000,
b8891f8d
AJ
5138 (16_20, AREG, OPRND_SHIFT_0_BIT),
5139 (0_11, BLOOP_OFF12b, OPRND_SHIFT_1_BIT),
5140 (12_15, BLOOP_OFF4b, OPRND_SHIFT_1_BIT)),
d285ba8d
CQ
5141 OPCODE_INFO2 (0xe9c00000,
5142 (16_20, AREG, OPRND_SHIFT_0_BIT),
5143 (0_11, BLOOP_OFF12b, OPRND_SHIFT_1_BIT)),
5144 CSKY_ISA_DSP_ENHANCE,
5145 dsp_work_bloop),
b8891f8d
AJ
5146 /* The followings are ld/st instructions. */
5147 OP32 ("ldbi.b",
5148 OPCODE_INFO2 (0xd0008000,
5149 (0_4, AREG, OPRND_SHIFT_0_BIT),
5150 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
5151 CSKY_ISA_DSP_ENHANCE),
5152 OP32 ("ldbi.h",
5153 OPCODE_INFO2 (0xd0008400,
5154 (0_4, AREG, OPRND_SHIFT_0_BIT),
5155 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
5156 CSKY_ISA_DSP_ENHANCE),
5157 OP32 ("ldbi.w",
5158 OPCODE_INFO2 (0xd0008800,
5159 (0_4, AREG, OPRND_SHIFT_0_BIT),
5160 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
5161 CSKY_ISA_DSP_ENHANCE),
5162 OP32 ("pldbi.d",
5163 OPCODE_INFO2 (0xd0008c00,
5164 (0_4, AREG, OPRND_SHIFT_0_BIT),
5165 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
5166 CSKY_ISA_DSP_ENHANCE),
5167 OP32 ("ldbi.hs",
5168 OPCODE_INFO2 (0xd0009000,
5169 (0_4, AREG, OPRND_SHIFT_0_BIT),
5170 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
5171 CSKY_ISA_DSP_ENHANCE),
5172 OP32 ("ldbi.bs",
5173 OPCODE_INFO2 (0xd0009400,
5174 (0_4, AREG, OPRND_SHIFT_0_BIT),
5175 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
5176 CSKY_ISA_DSP_ENHANCE),
5177 OP32 ("stbi.b",
5178 OPCODE_INFO2 (0xd4008000,
5179 (0_4, AREG, OPRND_SHIFT_0_BIT),
5180 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
5181 CSKY_ISA_DSP_ENHANCE),
5182 OP32 ("stbi.h",
5183 OPCODE_INFO2 (0xd4008400,
5184 (0_4, AREG, OPRND_SHIFT_0_BIT),
5185 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
5186 CSKY_ISA_DSP_ENHANCE),
5187 OP32 ("stbi.w",
5188 OPCODE_INFO2 (0xd4008800,
5189 (0_4, AREG, OPRND_SHIFT_0_BIT),
5190 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)),
5191 CSKY_ISA_DSP_ENHANCE),
5192 OP32 ("ldbir.b",
5193 OPCODE_INFO3 (0xd000a000,
5194 (0_4, AREG, OPRND_SHIFT_0_BIT),
5195 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
5196 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5197 CSKY_ISA_DSP_ENHANCE),
5198 OP32 ("ldbir.h",
5199 OPCODE_INFO3 (0xd000a400,
5200 (0_4, AREG, OPRND_SHIFT_0_BIT),
5201 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
5202 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5203 CSKY_ISA_DSP_ENHANCE),
5204 OP32 ("ldbir.w",
5205 OPCODE_INFO3 (0xd000a800,
5206 (0_4, AREG, OPRND_SHIFT_0_BIT),
5207 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
5208 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5209 CSKY_ISA_DSP_ENHANCE),
5210 OP32 ("pldbir.d",
5211 OPCODE_INFO3 (0xd000ac00,
5212 (0_4, AREG, OPRND_SHIFT_0_BIT),
5213 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
5214 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5215 CSKY_ISA_DSP_ENHANCE),
5216 OP32 ("ldbir.bs",
5217 OPCODE_INFO3 (0xd000b000,
5218 (0_4, AREG, OPRND_SHIFT_0_BIT),
5219 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
5220 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5221 CSKY_ISA_DSP_ENHANCE),
5222 OP32 ("ldbir.hs",
5223 OPCODE_INFO3 (0xd000b400,
5224 (0_4, AREG, OPRND_SHIFT_0_BIT),
5225 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
5226 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5227 CSKY_ISA_DSP_ENHANCE),
5228 OP32 ("stbir.b",
5229 OPCODE_INFO3 (0xd400a000,
5230 (0_4, AREG, OPRND_SHIFT_0_BIT),
5231 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
5232 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5233 CSKY_ISA_DSP_ENHANCE),
5234 OP32 ("stbir.h",
5235 OPCODE_INFO3 (0xd400a400,
5236 (0_4, AREG, OPRND_SHIFT_0_BIT),
5237 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
5238 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5239 CSKY_ISA_DSP_ENHANCE),
5240 OP32 ("stbir.w",
5241 OPCODE_INFO3 (0xd400a800,
5242 (0_4, AREG, OPRND_SHIFT_0_BIT),
5243 (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT),
5244 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5245 CSKY_ISA_DSP_ENHANCE),
5246 /* The followings are add/sub instructions. */
5247 OP32 ("padd.8",
5248 OPCODE_INFO3 (0xf800c040,
5249 (0_4, AREG, OPRND_SHIFT_0_BIT),
5250 (16_20, AREG, OPRND_SHIFT_0_BIT),
5251 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5252 CSKY_ISA_DSP_ENHANCE),
5253 OP32 ("padd.16",
5254 OPCODE_INFO3 (0xf800c000,
5255 (0_4, AREG, OPRND_SHIFT_0_BIT),
5256 (16_20, AREG, OPRND_SHIFT_0_BIT),
5257 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5258 CSKY_ISA_DSP_ENHANCE),
5259 OP32 ("padd.u8.s",
5260 OPCODE_INFO3 (0xf800c140,
5261 (0_4, AREG, OPRND_SHIFT_0_BIT),
5262 (16_20, AREG, OPRND_SHIFT_0_BIT),
5263 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5264 CSKY_ISA_DSP_ENHANCE),
5265 OP32 ("padd.s8.s",
5266 OPCODE_INFO3 (0xf800c1c0,
5267 (0_4, AREG, OPRND_SHIFT_0_BIT),
5268 (16_20, AREG, OPRND_SHIFT_0_BIT),
5269 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5270 CSKY_ISA_DSP_ENHANCE),
5271 OP32 ("padd.u16.s",
5272 OPCODE_INFO3 (0xf800c100,
5273 (0_4, AREG, OPRND_SHIFT_0_BIT),
5274 (16_20, AREG, OPRND_SHIFT_0_BIT),
5275 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5276 CSKY_ISA_DSP_ENHANCE),
5277 OP32 ("padd.s16.s",
5278 OPCODE_INFO3 (0xf800c180,
5279 (0_4, AREG, OPRND_SHIFT_0_BIT),
5280 (16_20, AREG, OPRND_SHIFT_0_BIT),
5281 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5282 CSKY_ISA_DSP_ENHANCE),
5283 OP32 ("add.u32.s",
5284 OPCODE_INFO3 (0xf800c120,
5285 (0_4, AREG, OPRND_SHIFT_0_BIT),
5286 (16_20, AREG, OPRND_SHIFT_0_BIT),
5287 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5288 CSKY_ISA_DSP_ENHANCE),
5289 OP32 ("add.s32.s",
5290 OPCODE_INFO3 (0xf800c1a0,
5291 (0_4, AREG, OPRND_SHIFT_0_BIT),
5292 (16_20, AREG, OPRND_SHIFT_0_BIT),
5293 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5294 CSKY_ISA_DSP_ENHANCE),
5295 OP32 ("psub.8",
5296 OPCODE_INFO3 (0xf800c440,
5297 (0_4, AREG, OPRND_SHIFT_0_BIT),
5298 (16_20, AREG, OPRND_SHIFT_0_BIT),
5299 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5300 CSKY_ISA_DSP_ENHANCE),
5301 OP32 ("psub.16",
5302 OPCODE_INFO3 (0xf800c400,
5303 (0_4, AREG, OPRND_SHIFT_0_BIT),
5304 (16_20, AREG, OPRND_SHIFT_0_BIT),
5305 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5306 CSKY_ISA_DSP_ENHANCE),
5307 OP32 ("psub.u8.s",
5308 OPCODE_INFO3 (0xf800c540,
5309 (0_4, AREG, OPRND_SHIFT_0_BIT),
5310 (16_20, AREG, OPRND_SHIFT_0_BIT),
5311 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5312 CSKY_ISA_DSP_ENHANCE),
5313 OP32 ("psub.s8.s",
5314 OPCODE_INFO3 (0xf800c5c0,
5315 (0_4, AREG, OPRND_SHIFT_0_BIT),
5316 (16_20, AREG, OPRND_SHIFT_0_BIT),
5317 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5318 CSKY_ISA_DSP_ENHANCE),
5319 OP32 ("psub.u16.s",
5320 OPCODE_INFO3 (0xf800c500,
5321 (0_4, AREG, OPRND_SHIFT_0_BIT),
5322 (16_20, AREG, OPRND_SHIFT_0_BIT),
5323 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5324 CSKY_ISA_DSP_ENHANCE),
5325 OP32 ("psub.s16.s",
5326 OPCODE_INFO3 (0xf800c580,
5327 (0_4, AREG, OPRND_SHIFT_0_BIT),
5328 (16_20, AREG, OPRND_SHIFT_0_BIT),
5329 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5330 CSKY_ISA_DSP_ENHANCE),
5331 OP32 ("sub.u32.s",
5332 OPCODE_INFO3 (0xf800c520,
5333 (0_4, AREG, OPRND_SHIFT_0_BIT),
5334 (16_20, AREG, OPRND_SHIFT_0_BIT),
5335 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5336 CSKY_ISA_DSP_ENHANCE),
5337 OP32 ("sub.s32.s",
5338 OPCODE_INFO3 (0xf800c5a0,
5339 (0_4, AREG, OPRND_SHIFT_0_BIT),
5340 (16_20, AREG, OPRND_SHIFT_0_BIT),
5341 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5342 CSKY_ISA_DSP_ENHANCE),
5343 OP32 ("paddh.u8",
5344 OPCODE_INFO3 (0xf800c240,
5345 (0_4, AREG, OPRND_SHIFT_0_BIT),
5346 (16_20, AREG, OPRND_SHIFT_0_BIT),
5347 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5348 CSKY_ISA_DSP_ENHANCE),
5349 OP32 ("paddh.s8",
5350 OPCODE_INFO3 (0xf800c2c0,
5351 (0_4, AREG, OPRND_SHIFT_0_BIT),
5352 (16_20, AREG, OPRND_SHIFT_0_BIT),
5353 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5354 CSKY_ISA_DSP_ENHANCE),
5355 OP32 ("paddh.u16",
5356 OPCODE_INFO3 (0xf800c200,
5357 (0_4, AREG, OPRND_SHIFT_0_BIT),
5358 (16_20, AREG, OPRND_SHIFT_0_BIT),
5359 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5360 CSKY_ISA_DSP_ENHANCE),
5361 OP32 ("paddh.s16",
5362 OPCODE_INFO3 (0xf800c280,
5363 (0_4, AREG, OPRND_SHIFT_0_BIT),
5364 (16_20, AREG, OPRND_SHIFT_0_BIT),
5365 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5366 CSKY_ISA_DSP_ENHANCE),
5367 OP32 ("addh.u32",
5368 OPCODE_INFO3 (0xf800c220,
5369 (0_4, AREG, OPRND_SHIFT_0_BIT),
5370 (16_20, AREG, OPRND_SHIFT_0_BIT),
5371 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5372 CSKY_ISA_DSP_ENHANCE),
5373 OP32 ("addh.s32",
5374 OPCODE_INFO3 (0xf800c2a0,
5375 (0_4, AREG, OPRND_SHIFT_0_BIT),
5376 (16_20, AREG, OPRND_SHIFT_0_BIT),
5377 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5378 CSKY_ISA_DSP_ENHANCE),
5379 OP32 ("psubh.u8",
5380 OPCODE_INFO3 (0xf800c640,
5381 (0_4, AREG, OPRND_SHIFT_0_BIT),
5382 (16_20, AREG, OPRND_SHIFT_0_BIT),
5383 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5384 CSKY_ISA_DSP_ENHANCE),
5385 OP32 ("psubh.s8",
5386 OPCODE_INFO3 (0xf800c6c0,
5387 (0_4, AREG, OPRND_SHIFT_0_BIT),
5388 (16_20, AREG, OPRND_SHIFT_0_BIT),
5389 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5390 CSKY_ISA_DSP_ENHANCE),
5391 OP32 ("psubh.u16",
5392 OPCODE_INFO3 (0xf800c600,
5393 (0_4, AREG, OPRND_SHIFT_0_BIT),
5394 (16_20, AREG, OPRND_SHIFT_0_BIT),
5395 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5396 CSKY_ISA_DSP_ENHANCE),
5397 OP32 ("psubh.s16",
5398 OPCODE_INFO3 (0xf800c680,
5399 (0_4, AREG, OPRND_SHIFT_0_BIT),
5400 (16_20, AREG, OPRND_SHIFT_0_BIT),
5401 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5402 CSKY_ISA_DSP_ENHANCE),
5403 OP32 ("subh.u32",
5404 OPCODE_INFO3 (0xf800c620,
5405 (0_4, AREG, OPRND_SHIFT_0_BIT),
5406 (16_20, AREG, OPRND_SHIFT_0_BIT),
5407 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5408 CSKY_ISA_DSP_ENHANCE),
5409 OP32 ("subh.s32",
5410 OPCODE_INFO3 (0xf800c6a0,
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 ("add.64",
5416 OPCODE_INFO3 (0xf800c060,
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 ("sub.64",
5422 OPCODE_INFO3 (0xf800c460,
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 ("add.u64.s",
5428 OPCODE_INFO3 (0xf800c160,
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 ("add.s64.s",
5434 OPCODE_INFO3 (0xf800c1e0,
5435 (0_4, AREG, OPRND_SHIFT_0_BIT),
5436 (16_20, AREG, OPRND_SHIFT_0_BIT),
5437 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5438 CSKY_ISA_DSP_ENHANCE),
5439 OP32 ("sub.u64.s",
5440 OPCODE_INFO3 (0xf800c560,
5441 (0_4, AREG, OPRND_SHIFT_0_BIT),
5442 (16_20, AREG, OPRND_SHIFT_0_BIT),
5443 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5444 CSKY_ISA_DSP_ENHANCE),
5445 OP32 ("sub.s64.s",
5446 OPCODE_INFO3 (0xf800c5e0,
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 /* The following are comparison instructions. */
5452 OP32 ("pasx.16",
5453 OPCODE_INFO3 (0xf800c860,
5454 (0_4, AREG, OPRND_SHIFT_0_BIT),
5455 (16_20, AREG, OPRND_SHIFT_0_BIT),
5456 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5457 CSKY_ISA_DSP_ENHANCE),
5458 OP32 ("psax.16",
5459 OPCODE_INFO3 (0xf800cc60,
5460 (0_4, AREG, OPRND_SHIFT_0_BIT),
5461 (16_20, AREG, OPRND_SHIFT_0_BIT),
5462 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5463 CSKY_ISA_DSP_ENHANCE),
5464 OP32 ("pasx.u16.s",
5465 OPCODE_INFO3 (0xf800c960,
5466 (0_4, AREG, OPRND_SHIFT_0_BIT),
5467 (16_20, AREG, OPRND_SHIFT_0_BIT),
5468 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5469 CSKY_ISA_DSP_ENHANCE),
5470 OP32 ("pasx.s16.s",
5471 OPCODE_INFO3 (0xf800c9e0,
5472 (0_4, AREG, OPRND_SHIFT_0_BIT),
5473 (16_20, AREG, OPRND_SHIFT_0_BIT),
5474 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5475 CSKY_ISA_DSP_ENHANCE),
5476 OP32 ("psax.u16.s",
5477 OPCODE_INFO3 (0xf800cd60,
5478 (0_4, AREG, OPRND_SHIFT_0_BIT),
5479 (16_20, AREG, OPRND_SHIFT_0_BIT),
5480 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5481 CSKY_ISA_DSP_ENHANCE),
5482 OP32 ("psax.s16.s",
5483 OPCODE_INFO3 (0xf800cde0,
5484 (0_4, AREG, OPRND_SHIFT_0_BIT),
5485 (16_20, AREG, OPRND_SHIFT_0_BIT),
5486 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5487 CSKY_ISA_DSP_ENHANCE),
5488 OP32 ("pasxh.u16",
5489 OPCODE_INFO3 (0xf800ca60,
5490 (0_4, AREG, OPRND_SHIFT_0_BIT),
5491 (16_20, AREG, OPRND_SHIFT_0_BIT),
5492 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5493 CSKY_ISA_DSP_ENHANCE),
5494 OP32 ("pasxh.s16",
5495 OPCODE_INFO3 (0xf800cae0,
5496 (0_4, AREG, OPRND_SHIFT_0_BIT),
5497 (16_20, AREG, OPRND_SHIFT_0_BIT),
5498 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5499 CSKY_ISA_DSP_ENHANCE),
5500 OP32 ("psaxh.u16",
5501 OPCODE_INFO3 (0xf800ce60,
5502 (0_4, AREG, OPRND_SHIFT_0_BIT),
5503 (16_20, AREG, OPRND_SHIFT_0_BIT),
5504 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5505 CSKY_ISA_DSP_ENHANCE),
5506 OP32 ("psaxh.s16",
5507 OPCODE_INFO3 (0xf800cee0,
5508 (0_4, AREG, OPRND_SHIFT_0_BIT),
5509 (16_20, AREG, OPRND_SHIFT_0_BIT),
5510 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5511 CSKY_ISA_DSP_ENHANCE),
5512 OP32 ("pcmpne.8",
5513 OPCODE_INFO3 (0xf800c840,
5514 (0_4, AREG, OPRND_SHIFT_0_BIT),
5515 (16_20, AREG, OPRND_SHIFT_0_BIT),
5516 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5517 CSKY_ISA_DSP_ENHANCE),
5518 OP32 ("pcmpne.16",
5519 OPCODE_INFO3 (0xf800c800,
5520 (0_4, AREG, OPRND_SHIFT_0_BIT),
5521 (16_20, AREG, OPRND_SHIFT_0_BIT),
5522 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5523 CSKY_ISA_DSP_ENHANCE),
5524 OP32 ("pcmphs.u8",
5525 OPCODE_INFO3 (0xf800c940,
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 CSKY_ISA_DSP_ENHANCE),
5530 OP32 ("pcmphs.s8",
5531 OPCODE_INFO3 (0xf800c9c0,
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 CSKY_ISA_DSP_ENHANCE),
5536 OP32 ("pcmphs.u16",
5537 OPCODE_INFO3 (0xf800c900,
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 CSKY_ISA_DSP_ENHANCE),
5542 OP32 ("pcmphs.s16",
5543 OPCODE_INFO3 (0xf800c980,
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 CSKY_ISA_DSP_ENHANCE),
5548 OP32 ("pcmplt.u8",
5549 OPCODE_INFO3 (0xf800ca40,
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 CSKY_ISA_DSP_ENHANCE),
5554 OP32 ("pcmplt.s8",
5555 OPCODE_INFO3 (0xf800cac0,
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 CSKY_ISA_DSP_ENHANCE),
5560 OP32 ("pcmplt.u16",
5561 OPCODE_INFO3 (0xf800ca00,
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 ("pcmplt.s16",
5567 OPCODE_INFO3 (0xf800ca80,
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 ("pmax.u8",
5573 OPCODE_INFO3 (0xf800cc40,
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 ("pmax.s8",
5579 OPCODE_INFO3 (0xf800ccc0,
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 ("pmax.u16",
5585 OPCODE_INFO3 (0xf800cc00,
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 ("pmax.s16",
5591 OPCODE_INFO3 (0xf800cc80,
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 ("max.u32",
5597 OPCODE_INFO3 (0xf800cc20,
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 ("max.s32",
5603 OPCODE_INFO3 (0xf800cca0,
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 ("pmin.u8",
5609 OPCODE_INFO3 (0xf800cd40,
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 ("pmin.s8",
5615 OPCODE_INFO3 (0xf800cdc0,
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 ("pmin.u16",
5621 OPCODE_INFO3 (0xf800cd00,
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 ("pmin.s16",
5627 OPCODE_INFO3 (0xf800cd80,
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 ("min.u32",
5633 OPCODE_INFO3 (0xf800cd20,
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 ("min.s32",
5639 OPCODE_INFO3 (0xf800cda0,
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 ("sel",
5645 OPCODE_INFO4 (0xf8009000,
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 (5_9, AREG, OPRND_SHIFT_0_BIT)),
5650 CSKY_ISA_DSP_ENHANCE),
5651 /* The followings are miscs. */
5652 OP32 ("psabsa.u8",
5653 OPCODE_INFO3 (0xf800e040,
5654 (0_4, AREG, OPRND_SHIFT_0_BIT),
5655 (16_20, AREG, OPRND_SHIFT_0_BIT),
5656 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5657 CSKY_ISA_DSP_ENHANCE),
5658 OP32 ("psabsaa.u8",
5659 OPCODE_INFO3 (0xf800e140,
5660 (0_4, AREG, OPRND_SHIFT_0_BIT),
5661 (16_20, AREG, OPRND_SHIFT_0_BIT),
5662 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5663 CSKY_ISA_DSP_ENHANCE),
5664 OP32 ("divul",
5665 OPCODE_INFO3 (0xf800e260,
5666 (0_4, AREG, OPRND_SHIFT_0_BIT),
5667 (16_20, AREG, OPRND_SHIFT_0_BIT),
5668 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4211a340 5669 CSKYV2_ISA_3E3R3),
b8891f8d
AJ
5670 OP32 ("divsl",
5671 OPCODE_INFO3 (0xf800e2e0,
5672 (0_4, AREG, OPRND_SHIFT_0_BIT),
5673 (16_20, AREG, OPRND_SHIFT_0_BIT),
5674 (21_25, AREG, OPRND_SHIFT_0_BIT)),
4211a340 5675 CSKYV2_ISA_3E3R3),
b8891f8d
AJ
5676 OP32 ("mulaca.s8",
5677 OPCODE_INFO3 (0xf800e4c0,
5678 (0_4, AREG, OPRND_SHIFT_0_BIT),
5679 (16_20, AREG, OPRND_SHIFT_0_BIT),
5680 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5681 CSKY_ISA_DSP_ENHANCE),
5682 /* The followings are shift instructions. */
5683 OP32 ("asri.s32.r",
5684 OPCODE_INFO3 (0xf800d1a0,
5685 (0_4, AREG, OPRND_SHIFT_0_BIT),
5686 (16_20, AREG, OPRND_SHIFT_0_BIT),
5687 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
5688 CSKY_ISA_DSP_ENHANCE),
5689 OP32 ("asr.s32.r",
5690 OPCODE_INFO3 (0xf800d1e0,
5691 (0_4, AREG, OPRND_SHIFT_0_BIT),
5692 (16_20, AREG, OPRND_SHIFT_0_BIT),
5693 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5694 CSKY_ISA_DSP_ENHANCE),
5695 OP32 ("lsri.u32.r",
5696 OPCODE_INFO3 (0xf800d320,
5697 (0_4, AREG, OPRND_SHIFT_0_BIT),
5698 (16_20, AREG, OPRND_SHIFT_0_BIT),
5699 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
5700 CSKY_ISA_DSP_ENHANCE),
5701 OP32 ("lsr.u32.r",
5702 OPCODE_INFO3 (0xf800d360,
5703 (0_4, AREG, OPRND_SHIFT_0_BIT),
5704 (16_20, AREG, OPRND_SHIFT_0_BIT),
5705 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5706 CSKY_ISA_DSP_ENHANCE),
5707 OP32 ("lsli.u32.s",
5708 OPCODE_INFO3 (0xf800d520,
5709 (0_4, AREG, OPRND_SHIFT_0_BIT),
5710 (16_20, AREG, OPRND_SHIFT_0_BIT),
5711 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
5712 CSKY_ISA_DSP_ENHANCE),
5713 OP32 ("lsli.s32.s",
5714 OPCODE_INFO3 (0xf800d5a0,
5715 (0_4, AREG, OPRND_SHIFT_0_BIT),
5716 (16_20, AREG, OPRND_SHIFT_0_BIT),
5717 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
5718 CSKY_ISA_DSP_ENHANCE),
5719 OP32 ("lsl.u32.s",
5720 OPCODE_INFO3 (0xf800d560,
5721 (0_4, AREG, OPRND_SHIFT_0_BIT),
5722 (16_20, AREG, OPRND_SHIFT_0_BIT),
5723 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5724 CSKY_ISA_DSP_ENHANCE),
5725 OP32 ("lsl.s32.s",
5726 OPCODE_INFO3 (0xf800d5e0,
5727 (0_4, AREG, OPRND_SHIFT_0_BIT),
5728 (16_20, AREG, OPRND_SHIFT_0_BIT),
5729 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5730 CSKY_ISA_DSP_ENHANCE),
5731 OP32 ("pasri.s16",
5732 OPCODE_INFO3 (0xf800d080,
5733 (0_4, AREG, OPRND_SHIFT_0_BIT),
5734 (16_20, AREG, OPRND_SHIFT_0_BIT),
5735 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5736 CSKY_ISA_DSP_ENHANCE),
5737 OP32 ("pasr.s16",
5738 OPCODE_INFO3 (0xf800d0c0,
5739 (0_4, AREG, OPRND_SHIFT_0_BIT),
5740 (16_20, AREG, OPRND_SHIFT_0_BIT),
5741 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5742 CSKY_ISA_DSP_ENHANCE),
5743 OP32 ("pasri.s16.r",
5744 OPCODE_INFO3 (0xf800d180,
5745 (0_4, AREG, OPRND_SHIFT_0_BIT),
5746 (16_20, AREG, OPRND_SHIFT_0_BIT),
5747 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5748 CSKY_ISA_DSP_ENHANCE),
5749 OP32 ("pasr.s16.r",
5750 OPCODE_INFO3 (0xf800d1c0,
5751 (0_4, AREG, OPRND_SHIFT_0_BIT),
5752 (16_20, AREG, OPRND_SHIFT_0_BIT),
5753 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5754 CSKY_ISA_DSP_ENHANCE),
5755 OP32 ("plsri.u16",
5756 OPCODE_INFO3 (0xf800d200,
5757 (0_4, AREG, OPRND_SHIFT_0_BIT),
5758 (16_20, AREG, OPRND_SHIFT_0_BIT),
5759 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5760 CSKY_ISA_DSP_ENHANCE),
5761 OP32 ("plsr.u16",
5762 OPCODE_INFO3 (0xf800d240,
5763 (0_4, AREG, OPRND_SHIFT_0_BIT),
5764 (16_20, AREG, OPRND_SHIFT_0_BIT),
5765 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5766 CSKY_ISA_DSP_ENHANCE),
5767 OP32 ("plsri.u16.r",
5768 OPCODE_INFO3 (0xf800d300,
5769 (0_4, AREG, OPRND_SHIFT_0_BIT),
5770 (16_20, AREG, OPRND_SHIFT_0_BIT),
5771 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5772 CSKY_ISA_DSP_ENHANCE),
5773 OP32 ("plsr.u16.r",
5774 OPCODE_INFO3 (0xf800d340,
5775 (0_4, AREG, OPRND_SHIFT_0_BIT),
5776 (16_20, AREG, OPRND_SHIFT_0_BIT),
5777 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5778 CSKY_ISA_DSP_ENHANCE),
531c73a3 5779 OP32 ("plsli.16",
b8891f8d
AJ
5780 OPCODE_INFO3 (0xf800d400,
5781 (0_4, AREG, OPRND_SHIFT_0_BIT),
5782 (16_20, AREG, OPRND_SHIFT_0_BIT),
5783 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5784 CSKY_ISA_DSP_ENHANCE),
eae61d61 5785 OP32 ("plsl.16",
b8891f8d
AJ
5786 OPCODE_INFO3 (0xf800d440,
5787 (0_4, AREG, OPRND_SHIFT_0_BIT),
5788 (16_20, AREG, OPRND_SHIFT_0_BIT),
5789 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5790 CSKY_ISA_DSP_ENHANCE),
5791 OP32 ("plsli.u16.s",
5792 OPCODE_INFO3 (0xf800d500,
5793 (0_4, AREG, OPRND_SHIFT_0_BIT),
5794 (16_20, AREG, OPRND_SHIFT_0_BIT),
5795 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5796 CSKY_ISA_DSP_ENHANCE),
5797 OP32 ("plsli.s16.s",
5798 OPCODE_INFO3 (0xf800d580,
5799 (0_4, AREG, OPRND_SHIFT_0_BIT),
5800 (16_20, AREG, OPRND_SHIFT_0_BIT),
5801 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5802 CSKY_ISA_DSP_ENHANCE),
5803 OP32 ("plsl.u16.s",
5804 OPCODE_INFO3 (0xf800d540,
5805 (0_4, AREG, OPRND_SHIFT_0_BIT),
5806 (16_20, AREG, OPRND_SHIFT_0_BIT),
5807 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5808 CSKY_ISA_DSP_ENHANCE),
5809 OP32 ("plsl.s16.s",
5810 OPCODE_INFO3 (0xf800d5c0,
5811 (0_4, AREG, OPRND_SHIFT_0_BIT),
5812 (16_20, AREG, OPRND_SHIFT_0_BIT),
5813 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5814 CSKY_ISA_DSP_ENHANCE),
5815 /* The following are package & unpackage instructions. */
5816 OP32 ("pkg",
5817 OPCODE_INFO5 (0xf800a000,
5818 (0_4, AREG, OPRND_SHIFT_0_BIT),
5819 (16_20, AREG, OPRND_SHIFT_0_BIT),
5820 (5_8, IMM4b, OPRND_SHIFT_0_BIT),
5821 (21_25, AREG, OPRND_SHIFT_0_BIT),
5822 (9_12, OIMM4b, OPRND_SHIFT_0_BIT)),
5823 CSKY_ISA_DSP_ENHANCE),
5824 OP32 ("dexti",
5825 OPCODE_INFO4 (0xf8009800,
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 (5_9, IMM5b, OPRND_SHIFT_0_BIT)),
5830 CSKY_ISA_DSP_ENHANCE),
5831 OP32 ("dext",
5832 OPCODE_INFO4 (0xf8009c00,
5833 (0_4, AREG, OPRND_SHIFT_0_BIT),
5834 (16_20, AREG, OPRND_SHIFT_0_BIT),
5835 (21_25, AREG, OPRND_SHIFT_0_BIT),
5836 (5_9, AREG, OPRND_SHIFT_0_BIT)),
5837 CSKY_ISA_DSP_ENHANCE),
5838 OP32 ("pkgll",
5839 OPCODE_INFO3 (0xf800d840,
5840 (0_4, AREG, OPRND_SHIFT_0_BIT),
5841 (16_20, AREG, OPRND_SHIFT_0_BIT),
5842 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5843 CSKY_ISA_DSP_ENHANCE),
5844 OP32 ("pkghh",
5845 OPCODE_INFO3 (0xf800d860,
5846 (0_4, AREG, OPRND_SHIFT_0_BIT),
5847 (16_20, AREG, OPRND_SHIFT_0_BIT),
5848 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5849 CSKY_ISA_DSP_ENHANCE),
5850 OP32 ("pext.u8.e",
5851 OPCODE_INFO2 (0xf800d900,
5852 (0_4, AREG, OPRND_SHIFT_0_BIT),
5853 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5854 CSKY_ISA_DSP_ENHANCE),
5855 OP32 ("pext.s8.e",
5856 OPCODE_INFO2 (0xf800d980,
5857 (0_4, AREG, OPRND_SHIFT_0_BIT),
5858 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5859 CSKY_ISA_DSP_ENHANCE),
5860 OP32 ("pextx.u8.e",
5861 OPCODE_INFO2 (0xf800d920,
5862 (0_4, AREG, OPRND_SHIFT_0_BIT),
5863 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5864 CSKY_ISA_DSP_ENHANCE),
5865 OP32 ("pextx.s8.e",
5866 OPCODE_INFO2 (0xf800d9a0,
5867 (0_4, AREG, OPRND_SHIFT_0_BIT),
5868 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5869 CSKY_ISA_DSP_ENHANCE),
5870 OP32 ("narl",
5871 OPCODE_INFO3 (0xf800da00,
5872 (0_4, AREG, OPRND_SHIFT_0_BIT),
5873 (16_20, AREG, OPRND_SHIFT_0_BIT),
5874 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5875 CSKY_ISA_DSP_ENHANCE),
5876 OP32 ("narh",
5877 OPCODE_INFO3 (0xf800da20,
5878 (0_4, AREG, OPRND_SHIFT_0_BIT),
5879 (16_20, AREG, OPRND_SHIFT_0_BIT),
5880 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5881 CSKY_ISA_DSP_ENHANCE),
5882 OP32 ("narlx",
5883 OPCODE_INFO3 (0xf800da40,
5884 (0_4, AREG, OPRND_SHIFT_0_BIT),
5885 (16_20, AREG, OPRND_SHIFT_0_BIT),
5886 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5887 CSKY_ISA_DSP_ENHANCE),
5888 OP32 ("narhx",
5889 OPCODE_INFO3 (0xf800da60,
5890 (0_4, AREG, OPRND_SHIFT_0_BIT),
5891 (16_20, AREG, OPRND_SHIFT_0_BIT),
5892 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5893 CSKY_ISA_DSP_ENHANCE),
5894 OP32 ("clipi.u32",
5895 OPCODE_INFO3 (0xf800db00,
5896 (0_4, AREG, OPRND_SHIFT_0_BIT),
5897 (16_20, AREG, OPRND_SHIFT_0_BIT),
5898 (21_25, IMM5b, OPRND_SHIFT_0_BIT)),
5899 CSKY_ISA_DSP_ENHANCE),
5900 OP32 ("clipi.s32",
5901 OPCODE_INFO3 (0xf800db80,
5902 (0_4, AREG, OPRND_SHIFT_0_BIT),
5903 (16_20, AREG, OPRND_SHIFT_0_BIT),
5904 (21_25, OIMM5b, OPRND_SHIFT_0_BIT)),
5905 CSKY_ISA_DSP_ENHANCE),
5906 OP32 ("clip.u32",
5907 OPCODE_INFO3 (0xf800db20,
5908 (0_4, AREG, OPRND_SHIFT_0_BIT),
5909 (16_20, AREG, OPRND_SHIFT_0_BIT),
5910 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5911 CSKY_ISA_DSP_ENHANCE),
5912 OP32 ("clip.s32",
5913 OPCODE_INFO3 (0xf800dba0,
5914 (0_4, AREG, OPRND_SHIFT_0_BIT),
5915 (16_20, AREG, OPRND_SHIFT_0_BIT),
5916 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5917 CSKY_ISA_DSP_ENHANCE),
5918 OP32 ("pclipi.u16",
5919 OPCODE_INFO3 (0xf800db40,
5920 (0_4, AREG, OPRND_SHIFT_0_BIT),
5921 (16_20, AREG, OPRND_SHIFT_0_BIT),
5922 (21_25, IMM4b, OPRND_SHIFT_0_BIT)),
5923 CSKY_ISA_DSP_ENHANCE),
5924 OP32 ("pclipi.s16",
5925 OPCODE_INFO3 (0xf800dbc0,
5926 (0_4, AREG, OPRND_SHIFT_0_BIT),
5927 (16_20, AREG, OPRND_SHIFT_0_BIT),
5928 (21_25, OIMM4b, OPRND_SHIFT_0_BIT)),
5929 CSKY_ISA_DSP_ENHANCE),
5930 OP32 ("pclip.u16",
5931 OPCODE_INFO3 (0xf800db60,
5932 (0_4, AREG, OPRND_SHIFT_0_BIT),
5933 (16_20, AREG, OPRND_SHIFT_0_BIT),
5934 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5935 CSKY_ISA_DSP_ENHANCE),
5936 OP32 ("pclip.s16",
5937 OPCODE_INFO3 (0xf800dbe0,
5938 (0_4, AREG, OPRND_SHIFT_0_BIT),
5939 (16_20, AREG, OPRND_SHIFT_0_BIT),
5940 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5941 CSKY_ISA_DSP_ENHANCE),
5942 OP32 ("pabs.s8.s",
5943 OPCODE_INFO2 (0xf800dc80,
5944 (0_4, AREG, OPRND_SHIFT_0_BIT),
5945 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5946 CSKY_ISA_DSP_ENHANCE),
5947 OP32 ("pabs.s16.s",
5948 OPCODE_INFO2 (0xf800dca0,
5949 (0_4, AREG, OPRND_SHIFT_0_BIT),
5950 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5951 CSKY_ISA_DSP_ENHANCE),
5952 OP32 ("abs.s32.s",
5953 OPCODE_INFO2 (0xf800dcc0,
5954 (0_4, AREG, OPRND_SHIFT_0_BIT),
5955 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5956 CSKY_ISA_DSP_ENHANCE),
5957 OP32 ("pneg.s8.s",
5958 OPCODE_INFO2 (0xf800dd80,
5959 (0_4, AREG, OPRND_SHIFT_0_BIT),
5960 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5961 CSKY_ISA_DSP_ENHANCE),
5962 OP32 ("pneg.s16.s",
5963 OPCODE_INFO2 (0xf800dda0,
5964 (0_4, AREG, OPRND_SHIFT_0_BIT),
5965 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5966 CSKY_ISA_DSP_ENHANCE),
5967 OP32 ("neg.s32.s",
5968 OPCODE_INFO2 (0xf800ddc0,
5969 (0_4, AREG, OPRND_SHIFT_0_BIT),
5970 (16_20, AREG, OPRND_SHIFT_0_BIT)),
5971 CSKY_ISA_DSP_ENHANCE),
5972 OP32 ("dup.8",
5973 OPCODE_INFO3 (0xf800de00,
5974 (0_4, AREG, OPRND_SHIFT_0_BIT),
5975 (16_20, AREG, OPRND_SHIFT_0_BIT),
5976 (5_6, IMM2b, OPRND_SHIFT_0_BIT)),
5977 CSKY_ISA_DSP_ENHANCE),
5978 OP32 ("dup.16",
5979 OPCODE_INFO3 (0xf800df00,
5980 (0_4, AREG, OPRND_SHIFT_0_BIT),
5981 (16_20, AREG, OPRND_SHIFT_0_BIT),
5982 (5_6, IMM1b, OPRND_SHIFT_0_BIT)),
5983 CSKY_ISA_DSP_ENHANCE),
5984 /* The followings are multiplication instructions. */
5985 OP32 ("mul.u32",
5986 OPCODE_INFO3 (0xf8008000,
5987 (0_4, AREG, OPRND_SHIFT_0_BIT),
5988 (16_20, AREG, OPRND_SHIFT_0_BIT),
5989 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5990 CSKYV2_ISA_3E3R1),
5991 OP32 ("mul.s32",
5992 OPCODE_INFO3 (0xf8008200,
5993 (0_4, AREG, OPRND_SHIFT_0_BIT),
5994 (16_20, AREG, OPRND_SHIFT_0_BIT),
5995 (21_25, AREG, OPRND_SHIFT_0_BIT)),
5996 CSKYV2_ISA_3E3R1),
5997 OP32 ("mula.u32",
5998 OPCODE_INFO3 (0xf8008080,
5999 (0_4, AREG, OPRND_SHIFT_0_BIT),
6000 (16_20, AREG, OPRND_SHIFT_0_BIT),
6001 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6002 CSKYV2_ISA_3E3R1),
6003 OP32 ("mula.s32",
6004 OPCODE_INFO3 (0xf8008280,
6005 (0_4, AREG, OPRND_SHIFT_0_BIT),
6006 (16_20, AREG, OPRND_SHIFT_0_BIT),
6007 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6008 CSKYV2_ISA_3E3R1),
6009 OP32 ("mula.32.l",
6010 OPCODE_INFO3 (0xf8008440,
6011 (0_4, AREG, OPRND_SHIFT_0_BIT),
6012 (16_20, AREG, OPRND_SHIFT_0_BIT),
6013 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6014 CSKYV2_ISA_3E3R1),
6015 OP32 ("mulall.s16.s",
6016 OPCODE_INFO3 (0xf80081a0,
6017 (0_4, AREG, OPRND_SHIFT_0_BIT),
6018 (16_20, AREG, OPRND_SHIFT_0_BIT),
6019 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6020 CSKYV2_ISA_3E3R1),
6021 OP32 ("muls.u32",
6022 OPCODE_INFO3 (0xf80080c0,
6023 (0_4, AREG, OPRND_SHIFT_0_BIT),
6024 (16_20, AREG, OPRND_SHIFT_0_BIT),
6025 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6026 CSKY_ISA_DSP_ENHANCE),
6027 OP32 ("muls.s32",
6028 OPCODE_INFO3 (0xf80082c0,
6029 (0_4, AREG, OPRND_SHIFT_0_BIT),
6030 (16_20, AREG, OPRND_SHIFT_0_BIT),
6031 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6032 CSKY_ISA_DSP_ENHANCE),
6033 OP32 ("mula.u32.s",
6034 OPCODE_INFO3 (0xf8008180,
6035 (0_4, AREG, OPRND_SHIFT_0_BIT),
6036 (16_20, AREG, OPRND_SHIFT_0_BIT),
6037 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6038 CSKY_ISA_DSP_ENHANCE),
6039 OP32 ("mula.s32.s",
6040 OPCODE_INFO3 (0xf8008380,
6041 (0_4, AREG, OPRND_SHIFT_0_BIT),
6042 (16_20, AREG, OPRND_SHIFT_0_BIT),
6043 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6044 CSKY_ISA_DSP_ENHANCE),
6045 OP32 ("muls.u32.s",
6046 OPCODE_INFO3 (0xf80081c0,
6047 (0_4, AREG, OPRND_SHIFT_0_BIT),
6048 (16_20, AREG, OPRND_SHIFT_0_BIT),
6049 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6050 CSKY_ISA_DSP_ENHANCE),
6051 OP32 ("muls.s32.s",
6052 OPCODE_INFO3 (0xf80083c0,
6053 (0_4, AREG, OPRND_SHIFT_0_BIT),
6054 (16_20, AREG, OPRND_SHIFT_0_BIT),
6055 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6056 CSKY_ISA_DSP_ENHANCE),
6057 OP32 ("mul.s32.h",
6058 OPCODE_INFO3 (0xf8008400,
6059 (0_4, AREG, OPRND_SHIFT_0_BIT),
6060 (16_20, AREG, OPRND_SHIFT_0_BIT),
6061 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6062 CSKY_ISA_DSP_ENHANCE),
6063 OP32 ("mul.s32.rh",
6064 OPCODE_INFO3 (0xf8008600,
6065 (0_4, AREG, OPRND_SHIFT_0_BIT),
6066 (16_20, AREG, OPRND_SHIFT_0_BIT),
6067 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6068 CSKY_ISA_DSP_ENHANCE),
6069 OP32 ("rmul.s32.h",
6070 OPCODE_INFO3 (0xf8008500,
6071 (0_4, AREG, OPRND_SHIFT_0_BIT),
6072 (16_20, AREG, OPRND_SHIFT_0_BIT),
6073 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6074 CSKY_ISA_DSP_ENHANCE),
6075 OP32 ("rmul.s32.rh",
6076 OPCODE_INFO3 (0xf8008700,
6077 (0_4, AREG, OPRND_SHIFT_0_BIT),
6078 (16_20, AREG, OPRND_SHIFT_0_BIT),
6079 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6080 CSKY_ISA_DSP_ENHANCE),
6081 OP32 ("mula.s32.hs",
6082 OPCODE_INFO3 (0xf8008580,
6083 (0_4, AREG, OPRND_SHIFT_0_BIT),
6084 (16_20, AREG, OPRND_SHIFT_0_BIT),
6085 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6086 CSKY_ISA_DSP_ENHANCE),
6087 OP32 ("muls.s32.hs",
6088 OPCODE_INFO3 (0xf80085c0,
6089 (0_4, AREG, OPRND_SHIFT_0_BIT),
6090 (16_20, AREG, OPRND_SHIFT_0_BIT),
6091 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6092 CSKY_ISA_DSP_ENHANCE),
6093 OP32 ("mula.s32.rhs",
6094 OPCODE_INFO3 (0xf8008780,
6095 (0_4, AREG, OPRND_SHIFT_0_BIT),
6096 (16_20, AREG, OPRND_SHIFT_0_BIT),
6097 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6098 CSKY_ISA_DSP_ENHANCE),
6099 OP32 ("muls.s32.rhs",
6100 OPCODE_INFO3 (0xf80087c0,
6101 (0_4, AREG, OPRND_SHIFT_0_BIT),
6102 (16_20, AREG, OPRND_SHIFT_0_BIT),
6103 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6104 CSKY_ISA_DSP_ENHANCE),
6105 OP32 ("mulxl.s32",
6106 OPCODE_INFO3 (0xf8008800,
6107 (0_4, AREG, OPRND_SHIFT_0_BIT),
6108 (16_20, AREG, OPRND_SHIFT_0_BIT),
6109 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6110 CSKY_ISA_DSP_ENHANCE),
6111 OP32 ("mulxl.s32.r",
6112 OPCODE_INFO3 (0xf8008a00,
6113 (0_4, AREG, OPRND_SHIFT_0_BIT),
6114 (16_20, AREG, OPRND_SHIFT_0_BIT),
6115 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6116 CSKY_ISA_DSP_ENHANCE),
6117 OP32 ("mulxh.s32",
6118 OPCODE_INFO3 (0xf8008c00,
6119 (0_4, AREG, OPRND_SHIFT_0_BIT),
6120 (16_20, AREG, OPRND_SHIFT_0_BIT),
6121 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6122 CSKY_ISA_DSP_ENHANCE),
6123 OP32 ("mulxh.s32.r",
6124 OPCODE_INFO3 (0xf8008e00,
6125 (0_4, AREG, OPRND_SHIFT_0_BIT),
6126 (16_20, AREG, OPRND_SHIFT_0_BIT),
6127 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6128 CSKY_ISA_DSP_ENHANCE),
6129 OP32 ("rmulxl.s32",
6130 OPCODE_INFO3 (0xf8008900,
6131 (0_4, AREG, OPRND_SHIFT_0_BIT),
6132 (16_20, AREG, OPRND_SHIFT_0_BIT),
6133 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6134 CSKY_ISA_DSP_ENHANCE),
6135 OP32 ("rmulxl.s32.r",
6136 OPCODE_INFO3 (0xf8008b00,
6137 (0_4, AREG, OPRND_SHIFT_0_BIT),
6138 (16_20, AREG, OPRND_SHIFT_0_BIT),
6139 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6140 CSKY_ISA_DSP_ENHANCE),
6141 OP32 ("rmulxh.s32",
6142 OPCODE_INFO3 (0xf8008d00,
6143 (0_4, AREG, OPRND_SHIFT_0_BIT),
6144 (16_20, AREG, OPRND_SHIFT_0_BIT),
6145 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6146 CSKY_ISA_DSP_ENHANCE),
6147 OP32 ("rmulxh.s32.r",
6148 OPCODE_INFO3 (0xf8008f00,
6149 (0_4, AREG, OPRND_SHIFT_0_BIT),
6150 (16_20, AREG, OPRND_SHIFT_0_BIT),
6151 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6152 CSKY_ISA_DSP_ENHANCE),
6153 OP32 ("mulaxl.s32.s",
6154 OPCODE_INFO3 (0xf8008980,
6155 (0_4, AREG, OPRND_SHIFT_0_BIT),
6156 (16_20, AREG, OPRND_SHIFT_0_BIT),
6157 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6158 CSKY_ISA_DSP_ENHANCE),
6159 OP32 ("mulaxl.s32.rs",
6160 OPCODE_INFO3 (0xf8008b80,
6161 (0_4, AREG, OPRND_SHIFT_0_BIT),
6162 (16_20, AREG, OPRND_SHIFT_0_BIT),
6163 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6164 CSKY_ISA_DSP_ENHANCE),
6165 OP32 ("mulaxh.s32.s",
6166 OPCODE_INFO3 (0xf8008d80,
6167 (0_4, AREG, OPRND_SHIFT_0_BIT),
6168 (16_20, AREG, OPRND_SHIFT_0_BIT),
6169 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6170 CSKY_ISA_DSP_ENHANCE),
6171 OP32 ("mulaxh.s32.rs",
6172 OPCODE_INFO3 (0xf8008f80,
6173 (0_4, AREG, OPRND_SHIFT_0_BIT),
6174 (16_20, AREG, OPRND_SHIFT_0_BIT),
6175 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6176 CSKY_ISA_DSP_ENHANCE),
6177 OP32 ("mulll.s16",
6178 OPCODE_INFO3 (0xf8008020,
6179 (0_4, AREG, OPRND_SHIFT_0_BIT),
6180 (16_20, AREG, OPRND_SHIFT_0_BIT),
6181 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6182 CSKY_ISA_DSP_ENHANCE),
6183 OP32 ("mulhh.s16",
6184 OPCODE_INFO3 (0xf8008260,
6185 (0_4, AREG, OPRND_SHIFT_0_BIT),
6186 (16_20, AREG, OPRND_SHIFT_0_BIT),
6187 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6188 CSKY_ISA_DSP_ENHANCE),
6189 OP32 ("mulhl.s16",
6190 OPCODE_INFO3 (0xf8008220,
6191 (0_4, AREG, OPRND_SHIFT_0_BIT),
6192 (16_20, AREG, OPRND_SHIFT_0_BIT),
6193 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6194 CSKY_ISA_DSP_ENHANCE),
6195 OP32 ("rmulll.s16",
6196 OPCODE_INFO3 (0xf8008120,
6197 (0_4, AREG, OPRND_SHIFT_0_BIT),
6198 (16_20, AREG, OPRND_SHIFT_0_BIT),
6199 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6200 CSKY_ISA_DSP_ENHANCE),
6201 OP32 ("rmulhh.s16",
6202 OPCODE_INFO3 (0xf8008360,
6203 (0_4, AREG, OPRND_SHIFT_0_BIT),
6204 (16_20, AREG, OPRND_SHIFT_0_BIT),
6205 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6206 CSKY_ISA_DSP_ENHANCE),
6207 OP32 ("rmulhl.s16",
6208 OPCODE_INFO3 (0xf8008320,
6209 (0_4, AREG, OPRND_SHIFT_0_BIT),
6210 (16_20, AREG, OPRND_SHIFT_0_BIT),
6211 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6212 CSKY_ISA_DSP_ENHANCE),
6213 OP32 ("mulahh.s16.s",
6214 OPCODE_INFO3 (0xf80083e0,
6215 (0_4, AREG, OPRND_SHIFT_0_BIT),
6216 (16_20, AREG, OPRND_SHIFT_0_BIT),
6217 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6218 CSKY_ISA_DSP_ENHANCE),
6219 OP32 ("mulahl.s16.s",
6220 OPCODE_INFO3 (0xf80083a0,
6221 (0_4, AREG, OPRND_SHIFT_0_BIT),
6222 (16_20, AREG, OPRND_SHIFT_0_BIT),
6223 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6224 CSKY_ISA_DSP_ENHANCE),
6225 OP32 ("mulall.s16.e",
6226 OPCODE_INFO3 (0xf80080a0,
6227 (0_4, AREG, OPRND_SHIFT_0_BIT),
6228 (16_20, AREG, OPRND_SHIFT_0_BIT),
6229 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6230 CSKY_ISA_DSP_ENHANCE),
6231 OP32 ("mulahh.s16.e",
6232 OPCODE_INFO3 (0xf80082e0,
6233 (0_4, AREG, OPRND_SHIFT_0_BIT),
6234 (16_20, AREG, OPRND_SHIFT_0_BIT),
6235 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6236 CSKY_ISA_DSP_ENHANCE),
6237 OP32 ("mulahl.s16.e",
6238 OPCODE_INFO3 (0xf80080e0,
6239 (0_4, AREG, OPRND_SHIFT_0_BIT),
6240 (16_20, AREG, OPRND_SHIFT_0_BIT),
6241 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6242 CSKY_ISA_DSP_ENHANCE),
6243 OP32 ("pmul.u16",
6244 OPCODE_INFO3 (0xf80084a0,
6245 (0_4, AREG, OPRND_SHIFT_0_BIT),
6246 (16_20, AREG, OPRND_SHIFT_0_BIT),
6247 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6248 CSKY_ISA_DSP_ENHANCE),
6249 OP32 ("pmulx.u16",
6250 OPCODE_INFO3 (0xf80084e0,
6251 (0_4, AREG, OPRND_SHIFT_0_BIT),
6252 (16_20, AREG, OPRND_SHIFT_0_BIT),
6253 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6254 CSKY_ISA_DSP_ENHANCE),
6255 OP32 ("pmul.s16",
6256 OPCODE_INFO3 (0xf8008420,
6257 (0_4, AREG, OPRND_SHIFT_0_BIT),
6258 (16_20, AREG, OPRND_SHIFT_0_BIT),
6259 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6260 CSKY_ISA_DSP_ENHANCE),
6261 OP32 ("pmulx.s16",
6262 OPCODE_INFO3 (0xf8008460,
6263 (0_4, AREG, OPRND_SHIFT_0_BIT),
6264 (16_20, AREG, OPRND_SHIFT_0_BIT),
6265 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6266 CSKY_ISA_DSP_ENHANCE),
6267 OP32 ("prmul.s16",
6268 OPCODE_INFO3 (0xf8008520,
6269 (0_4, AREG, OPRND_SHIFT_0_BIT),
6270 (16_20, AREG, OPRND_SHIFT_0_BIT),
6271 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6272 CSKY_ISA_DSP_ENHANCE),
6273 OP32 ("prmulx.s16",
6274 OPCODE_INFO3 (0xf8008560,
6275 (0_4, AREG, OPRND_SHIFT_0_BIT),
6276 (16_20, AREG, OPRND_SHIFT_0_BIT),
6277 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6278 CSKY_ISA_DSP_ENHANCE),
6279 OP32 ("prmul.s16.h",
6280 OPCODE_INFO3 (0xf80085a0,
6281 (0_4, AREG, OPRND_SHIFT_0_BIT),
6282 (16_20, AREG, OPRND_SHIFT_0_BIT),
6283 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6284 CSKY_ISA_DSP_ENHANCE),
6285 OP32 ("prmul.s16.rh",
6286 OPCODE_INFO3 (0xf80087a0,
6287 (0_4, AREG, OPRND_SHIFT_0_BIT),
6288 (16_20, AREG, OPRND_SHIFT_0_BIT),
6289 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6290 CSKY_ISA_DSP_ENHANCE),
6291 OP32 ("prmulx.s16.h",
6292 OPCODE_INFO3 (0xf80085e0,
6293 (0_4, AREG, OPRND_SHIFT_0_BIT),
6294 (16_20, AREG, OPRND_SHIFT_0_BIT),
6295 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6296 CSKY_ISA_DSP_ENHANCE),
6297 OP32 ("prmulx.s16.rh",
6298 OPCODE_INFO3 (0xf80087e0,
6299 (0_4, AREG, OPRND_SHIFT_0_BIT),
6300 (16_20, AREG, OPRND_SHIFT_0_BIT),
6301 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6302 CSKY_ISA_DSP_ENHANCE),
6303 OP32 ("mulca.s16.s",
6304 OPCODE_INFO3 (0xf8008920,
6305 (0_4, AREG, OPRND_SHIFT_0_BIT),
6306 (16_20, AREG, OPRND_SHIFT_0_BIT),
6307 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6308 CSKY_ISA_DSP_ENHANCE),
6309 OP32 ("mulcax.s16.s",
6310 OPCODE_INFO3 (0xf8008960,
6311 (0_4, AREG, OPRND_SHIFT_0_BIT),
6312 (16_20, AREG, OPRND_SHIFT_0_BIT),
6313 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6314 CSKY_ISA_DSP_ENHANCE),
6315 OP32 ("mulcs.s16",
6316 OPCODE_INFO3 (0xf8008a20,
6317 (0_4, AREG, OPRND_SHIFT_0_BIT),
6318 (16_20, AREG, OPRND_SHIFT_0_BIT),
6319 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6320 CSKY_ISA_DSP_ENHANCE),
6321 OP32 ("mulcsr.s16",
6322 OPCODE_INFO3 (0xf8008a60,
6323 (0_4, AREG, OPRND_SHIFT_0_BIT),
6324 (16_20, AREG, OPRND_SHIFT_0_BIT),
6325 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6326 CSKY_ISA_DSP_ENHANCE),
6327 OP32 ("mulcsx.s16",
6328 OPCODE_INFO3 (0xf8008c20,
6329 (0_4, AREG, OPRND_SHIFT_0_BIT),
6330 (16_20, AREG, OPRND_SHIFT_0_BIT),
6331 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6332 CSKY_ISA_DSP_ENHANCE),
6333 OP32 ("mulaca.s16.s",
6334 OPCODE_INFO3 (0xf80089a0,
6335 (0_4, AREG, OPRND_SHIFT_0_BIT),
6336 (16_20, AREG, OPRND_SHIFT_0_BIT),
6337 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6338 CSKY_ISA_DSP_ENHANCE),
6339 OP32 ("mulacax.s16.s",
6340 OPCODE_INFO3 (0xf80089e0,
6341 (0_4, AREG, OPRND_SHIFT_0_BIT),
6342 (16_20, AREG, OPRND_SHIFT_0_BIT),
6343 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6344 CSKY_ISA_DSP_ENHANCE),
6345 OP32 ("mulacs.s16.s",
6346 OPCODE_INFO3 (0xf8008ba0,
6347 (0_4, AREG, OPRND_SHIFT_0_BIT),
6348 (16_20, AREG, OPRND_SHIFT_0_BIT),
6349 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6350 CSKY_ISA_DSP_ENHANCE),
6351 OP32 ("mulacsr.s16.s",
6352 OPCODE_INFO3 (0xf8008be0,
6353 (0_4, AREG, OPRND_SHIFT_0_BIT),
6354 (16_20, AREG, OPRND_SHIFT_0_BIT),
6355 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6356 CSKY_ISA_DSP_ENHANCE),
6357 OP32 ("mulacsx.s16.s",
6358 OPCODE_INFO3 (0xf8008da0,
6359 (0_4, AREG, OPRND_SHIFT_0_BIT),
6360 (16_20, AREG, OPRND_SHIFT_0_BIT),
6361 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6362 CSKY_ISA_DSP_ENHANCE),
6363 OP32 ("mulsca.s16.s",
6364 OPCODE_INFO3 (0xf8008de0,
6365 (0_4, AREG, OPRND_SHIFT_0_BIT),
6366 (16_20, AREG, OPRND_SHIFT_0_BIT),
6367 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6368 CSKY_ISA_DSP_ENHANCE),
6369 OP32 ("mulscax.s16.s",
6370 OPCODE_INFO3 (0xf8008fa0,
6371 (0_4, AREG, OPRND_SHIFT_0_BIT),
6372 (16_20, AREG, OPRND_SHIFT_0_BIT),
6373 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6374 CSKY_ISA_DSP_ENHANCE),
6375 OP32 ("mulaca.s16.e",
6376 OPCODE_INFO3 (0xf80088a0,
6377 (0_4, AREG, OPRND_SHIFT_0_BIT),
6378 (16_20, AREG, OPRND_SHIFT_0_BIT),
6379 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6380 CSKY_ISA_DSP_ENHANCE),
6381 OP32 ("mulacax.s16.e",
6382 OPCODE_INFO3 (0xf80088e0,
6383 (0_4, AREG, OPRND_SHIFT_0_BIT),
6384 (16_20, AREG, OPRND_SHIFT_0_BIT),
6385 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6386 CSKY_ISA_DSP_ENHANCE),
6387 OP32 ("mulacs.s16.e",
6388 OPCODE_INFO3 (0xf8008aa0,
6389 (0_4, AREG, OPRND_SHIFT_0_BIT),
6390 (16_20, AREG, OPRND_SHIFT_0_BIT),
6391 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6392 CSKY_ISA_DSP_ENHANCE),
6393 OP32 ("mulacsr.s16.e",
6394 OPCODE_INFO3 (0xf8008ae0,
6395 (0_4, AREG, OPRND_SHIFT_0_BIT),
6396 (16_20, AREG, OPRND_SHIFT_0_BIT),
6397 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6398 CSKY_ISA_DSP_ENHANCE),
6399 OP32 ("mulacsx.s16.e",
6400 OPCODE_INFO3 (0xf8008ca0,
6401 (0_4, AREG, OPRND_SHIFT_0_BIT),
6402 (16_20, AREG, OPRND_SHIFT_0_BIT),
6403 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6404 CSKY_ISA_DSP_ENHANCE),
6405 OP32 ("mulsca.s16.e",
6406 OPCODE_INFO3 (0xf8008ce0,
6407 (0_4, AREG, OPRND_SHIFT_0_BIT),
6408 (16_20, AREG, OPRND_SHIFT_0_BIT),
6409 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6410 CSKY_ISA_DSP_ENHANCE),
6411 OP32 ("mulscax.s16.e",
6412 OPCODE_INFO3 (0xf8008ea0,
6413 (0_4, AREG, OPRND_SHIFT_0_BIT),
6414 (16_20, AREG, OPRND_SHIFT_0_BIT),
6415 (21_25, AREG, OPRND_SHIFT_0_BIT)),
6416 CSKY_ISA_DSP_ENHANCE),
6417
6418 /* The followings are vdsp instructions for ck810. */
6419 OP32 ("vdup.8",
6420 OPCODE_INFO2 (0xf8000e80,
039dac29
CQ
6421 (0_3, VREG, OPRND_SHIFT_0_BIT),
6422 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
b8891f8d
AJ
6423 CSKY_ISA_VDSP),
6424 OP32 ("vdup.16",
6425 OPCODE_INFO2 (0xf8100e80,
039dac29
CQ
6426 (0_3, VREG, OPRND_SHIFT_0_BIT),
6427 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
b8891f8d
AJ
6428 CSKY_ISA_VDSP),
6429 OP32 ("vdup.32",
6430 OPCODE_INFO2 (0xfa000e80,
039dac29
CQ
6431 (0_3, VREG, OPRND_SHIFT_0_BIT),
6432 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
b8891f8d
AJ
6433 CSKY_ISA_VDSP),
6434 OP32 ("vmfvr.u8",
6435 OPCODE_INFO2 (0xf8001200,
6436 (0_4, AREG, OPRND_SHIFT_0_BIT),
039dac29 6437 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
b8891f8d
AJ
6438 CSKY_ISA_VDSP),
6439 OP32 ("vmfvr.u16",
6440 OPCODE_INFO2 (0xf8001220,
6441 (0_4, AREG, OPRND_SHIFT_0_BIT),
039dac29 6442 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
b8891f8d
AJ
6443 CSKY_ISA_VDSP),
6444 OP32 ("vmfvr.u32",
6445 OPCODE_INFO2 (0xf8001240,
6446 (0_4, AREG, OPRND_SHIFT_0_BIT),
039dac29 6447 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
b8891f8d
AJ
6448 CSKY_ISA_VDSP),
6449 OP32 ("vmfvr.s8",
6450 OPCODE_INFO2 (0xf8001280,
6451 (0_4, AREG, OPRND_SHIFT_0_BIT),
039dac29 6452 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
b8891f8d
AJ
6453 CSKY_ISA_VDSP),
6454 OP32 ("vmfvr.s16",
6455 OPCODE_INFO2 (0xf80012a0,
6456 (0_4, AREG, OPRND_SHIFT_0_BIT),
039dac29 6457 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
b8891f8d
AJ
6458 CSKY_ISA_VDSP),
6459 OP32 ("vmtvr.u8",
6460 OPCODE_INFO2 (0xf8001300,
039dac29 6461 (0_3or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6462 (16_20, AREG, OPRND_SHIFT_0_BIT)),
6463 CSKY_ISA_VDSP),
6464 OP32 ("vmtvr.u16",
6465 OPCODE_INFO2 (0xf8001320,
039dac29 6466 (0_3or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6467 (16_20, AREG, OPRND_SHIFT_0_BIT)),
6468 CSKY_ISA_VDSP),
039dac29
CQ
6469 OP32 ("vins.8",
6470 OPCODE_INFO2 (0xf8001400,
6471 (0_3or5_8, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
6472 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
6473 CSKY_ISA_VDSP),
6474 OP32 ("vins.16",
6475 OPCODE_INFO2 (0xf8101400,
6476 (0_3or5_8, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
6477 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
6478 CSKY_ISA_VDSP),
6479 OP32 ("vins.32",
6480 OPCODE_INFO2 (0xfa001400,
6481 (0_3or5_8, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
6482 (16_19or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT)),
6483 CSKY_ISA_VDSP),
b8891f8d
AJ
6484 OP32 ("vmtvr.u32",
6485 OPCODE_INFO2 (0xf8001340,
039dac29 6486 (0_3or21_24, VREG_WITH_INDEX, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6487 (16_20, AREG, OPRND_SHIFT_0_BIT)),
6488 CSKY_ISA_VDSP),
6489 OP32 ("vldd.8",
6490 SOPCODE_INFO2 (0xf8002000,
039dac29 6491 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6492 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6493 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6494 CSKY_ISA_VDSP),
6495 OP32 ("vldd.16",
6496 SOPCODE_INFO2 (0xf8002100,
039dac29 6497 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6498 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6499 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6500 CSKY_ISA_VDSP),
6501 OP32 ("vldd.32",
6502 SOPCODE_INFO2 (0xf8002200,
039dac29 6503 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6504 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6505 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6506 CSKY_ISA_VDSP),
6507 OP32 ("vldq.8",
6508 SOPCODE_INFO2 (0xf8002400,
039dac29 6509 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6510 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6511 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6512 CSKY_ISA_VDSP),
6513 OP32 ("vldq.16",
6514 SOPCODE_INFO2 (0xf8002500,
039dac29 6515 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6516 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6517 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6518 CSKY_ISA_VDSP),
6519 OP32 ("vldq.32",
6520 SOPCODE_INFO2 (0xf8002600,
039dac29 6521 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6522 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6523 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6524 CSKY_ISA_VDSP),
6525 OP32 ("vstd.8",
6526 SOPCODE_INFO2 (0xf8002800,
039dac29 6527 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6528 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6529 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6530 CSKY_ISA_VDSP),
6531 OP32 ("vstd.16",
6532 SOPCODE_INFO2 (0xf8002900,
039dac29 6533 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6534 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6535 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6536 CSKY_ISA_VDSP),
6537 OP32 ("vstd.32",
6538 SOPCODE_INFO2 (0xf8002a00,
039dac29 6539 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6540 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6541 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))),
6542 CSKY_ISA_VDSP),
6543 OP32 ("vstq.8",
6544 SOPCODE_INFO2 (0xf8002c00,
039dac29 6545 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6546 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6547 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6548 CSKY_ISA_VDSP),
6549 OP32 ("vstq.16",
6550 SOPCODE_INFO2 (0xf8002d00,
039dac29 6551 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6552 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6553 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6554 CSKY_ISA_VDSP),
6555 OP32 ("vstq.32",
6556 SOPCODE_INFO2 (0xf8002e00,
039dac29 6557 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6558 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6559 (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))),
6560 CSKY_ISA_VDSP),
6561 OP32 ("vldrd.8",
6562 SOPCODE_INFO2 (0xf8003000,
039dac29 6563 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6564 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6565 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6566 CSKY_ISA_VDSP),
6567 OP32 ("vldrd.16",
6568 SOPCODE_INFO2 (0xf8003100,
039dac29 6569 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6570 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6571 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6572 CSKY_ISA_VDSP),
6573 OP32 ("vldrd.32",
6574 SOPCODE_INFO2 (0xf8003200,
039dac29 6575 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6576 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6577 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6578 CSKY_ISA_VDSP),
6579 OP32 ("vldrq.8",
6580 SOPCODE_INFO2 (0xf8003400,
039dac29 6581 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6582 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6583 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6584 CSKY_ISA_VDSP),
6585 OP32 ("vldrq.16",
6586 SOPCODE_INFO2 (0xf8003500,
039dac29 6587 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6588 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6589 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6590 CSKY_ISA_VDSP),
6591 OP32 ("vldrq.32",
6592 SOPCODE_INFO2 (0xf8003600,
039dac29 6593 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6594 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6595 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6596 CSKY_ISA_VDSP),
6597 OP32 ("vstrd.8",
6598 SOPCODE_INFO2 (0xf8003800,
039dac29 6599 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6600 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6601 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6602 CSKY_ISA_VDSP),
6603 OP32 ("vstrd.16",
6604 SOPCODE_INFO2 (0xf8003900,
039dac29 6605 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6606 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6607 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6608 CSKY_ISA_VDSP),
6609 OP32 ("vstrd.32",
6610 SOPCODE_INFO2 (0xf8003a00,
039dac29 6611 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6612 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6613 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6614 CSKY_ISA_VDSP),
6615 OP32 ("vstrq.8",
6616 SOPCODE_INFO2 (0xf8003c00,
039dac29 6617 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6618 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6619 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6620 CSKY_ISA_VDSP),
6621 OP32 ("vstrq.16",
6622 SOPCODE_INFO2 (0xf8003d00,
039dac29 6623 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6624 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6625 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6626 CSKY_ISA_VDSP),
6627 OP32 ("vstrq.32",
6628 SOPCODE_INFO2 (0xf8003e00,
039dac29 6629 (0_3, VREG, OPRND_SHIFT_0_BIT),
b8891f8d
AJ
6630 BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT),
6631 (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))),
6632 CSKY_ISA_VDSP),
6633 OP32 ("vmov",
6634 OPCODE_INFO2 (0xf8000c00,
6635 (0_3, VREG, OPRND_SHIFT_0_BIT),
6636 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6637 CSKY_ISA_VDSP),
6638 OP32 ("vcadd.eu8",
6639 OPCODE_INFO2 (0xf8000060,
6640 (0_3, VREG, OPRND_SHIFT_0_BIT),
6641 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6642 CSKY_ISA_VDSP),
6643 OP32 ("vcadd.eu16",
6644 OPCODE_INFO2 (0xf8100060,
6645 (0_3, VREG, OPRND_SHIFT_0_BIT),
6646 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6647 CSKY_ISA_VDSP),
6648 OP32 ("vcadd.es8",
6649 OPCODE_INFO2 (0xf8000070,
6650 (0_3, VREG, OPRND_SHIFT_0_BIT),
6651 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6652 CSKY_ISA_VDSP),
6653 OP32 ("vcadd.es16",
6654 OPCODE_INFO2 (0xf8100070,
6655 (0_3, VREG, OPRND_SHIFT_0_BIT),
6656 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6657 CSKY_ISA_VDSP),
6658 OP32 ("vmov.eu8",
6659 OPCODE_INFO2 (0xf8000c20,
6660 (0_3, VREG, OPRND_SHIFT_0_BIT),
6661 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6662 CSKY_ISA_VDSP),
6663 OP32 ("vmov.eu16",
6664 OPCODE_INFO2 (0xf8100c20,
6665 (0_3, VREG, OPRND_SHIFT_0_BIT),
6666 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6667 CSKY_ISA_VDSP),
6668 OP32 ("vmov.es8",
6669 OPCODE_INFO2 (0xf8000c30,
6670 (0_3, VREG, OPRND_SHIFT_0_BIT),
6671 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6672 CSKY_ISA_VDSP),
6673 OP32 ("vmov.es16",
6674 OPCODE_INFO2 (0xf8100c30,
6675 (0_3, VREG, OPRND_SHIFT_0_BIT),
6676 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6677 CSKY_ISA_VDSP),
6678 OP32 ("vmov.u16.l",
6679 OPCODE_INFO2 (0xf8100d00,
6680 (0_3, VREG, OPRND_SHIFT_0_BIT),
6681 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6682 CSKY_ISA_VDSP),
6683 OP32 ("vmov.u32.l",
6684 OPCODE_INFO2 (0xfa000d00,
6685 (0_3, VREG, OPRND_SHIFT_0_BIT),
6686 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6687 CSKY_ISA_VDSP),
6688 OP32 ("vmov.s16.l",
6689 OPCODE_INFO2 (0xf8100d10,
6690 (0_3, VREG, OPRND_SHIFT_0_BIT),
6691 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6692 CSKY_ISA_VDSP),
6693 OP32 ("vmov.s32.l",
6694 OPCODE_INFO2 (0xfa000d10,
6695 (0_3, VREG, OPRND_SHIFT_0_BIT),
6696 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6697 CSKY_ISA_VDSP),
6698 OP32 ("vmov.u16.sl",
6699 OPCODE_INFO2 (0xf8100d40,
6700 (0_3, VREG, OPRND_SHIFT_0_BIT),
6701 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6702 CSKY_ISA_VDSP),
6703 OP32 ("vmov.u32.sl",
6704 OPCODE_INFO2 (0xfa000d40,
6705 (0_3, VREG, OPRND_SHIFT_0_BIT),
6706 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6707 CSKY_ISA_VDSP),
6708 OP32 ("vmov.s16.sl",
6709 OPCODE_INFO2 (0xf8100d50,
6710 (0_3, VREG, OPRND_SHIFT_0_BIT),
6711 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6712 CSKY_ISA_VDSP),
6713 OP32 ("vmov.s32.sl",
6714 OPCODE_INFO2 (0xfa000d50,
6715 (0_3, VREG, OPRND_SHIFT_0_BIT),
6716 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6717 CSKY_ISA_VDSP),
6718 OP32 ("vmov.u16.h",
6719 OPCODE_INFO2 (0xf8100d60,
6720 (0_3, VREG, OPRND_SHIFT_0_BIT),
6721 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6722 CSKY_ISA_VDSP),
6723 OP32 ("vmov.u32.h",
6724 OPCODE_INFO2 (0xfa000d60,
6725 (0_3, VREG, OPRND_SHIFT_0_BIT),
6726 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6727 CSKY_ISA_VDSP),
6728 OP32 ("vmov.s16.h",
6729 OPCODE_INFO2 (0xf8100d70,
6730 (0_3, VREG, OPRND_SHIFT_0_BIT),
6731 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6732 CSKY_ISA_VDSP),
6733 OP32 ("vmov.s32.h",
6734 OPCODE_INFO2 (0xfa000d70,
6735 (0_3, VREG, OPRND_SHIFT_0_BIT),
6736 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6737 CSKY_ISA_VDSP),
6738 OP32 ("vmov.u16.rh",
6739 OPCODE_INFO2 (0xf8100d80,
6740 (0_3, VREG, OPRND_SHIFT_0_BIT),
6741 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6742 CSKY_ISA_VDSP),
6743 OP32 ("vmov.u32.rh",
6744 OPCODE_INFO2 (0xfa000d80,
6745 (0_3, VREG, OPRND_SHIFT_0_BIT),
6746 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6747 CSKY_ISA_VDSP),
6748 OP32 ("vmov.s16.rh",
6749 OPCODE_INFO2 (0xf8100d90,
6750 (0_3, VREG, OPRND_SHIFT_0_BIT),
6751 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6752 CSKY_ISA_VDSP),
6753 OP32 ("vmov.s32.rh",
6754 OPCODE_INFO2 (0xfa000d90,
6755 (0_3, VREG, OPRND_SHIFT_0_BIT),
6756 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6757 CSKY_ISA_VDSP),
6758 OP32 ("vstou.u16.sl",
6759 OPCODE_INFO2 (0xf8100dc0,
6760 (0_3, VREG, OPRND_SHIFT_0_BIT),
6761 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6762 CSKY_ISA_VDSP),
6763 OP32 ("vstou.u32.sl",
6764 OPCODE_INFO2 (0xfa000dc0,
6765 (0_3, VREG, OPRND_SHIFT_0_BIT),
6766 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6767 CSKY_ISA_VDSP),
6768 OP32 ("vstou.s16.sl",
6769 OPCODE_INFO2 (0xf8100dd0,
6770 (0_3, VREG, OPRND_SHIFT_0_BIT),
6771 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6772 CSKY_ISA_VDSP),
6773 OP32 ("vstou.s32.sl",
6774 OPCODE_INFO2 (0xfa000dd0,
6775 (0_3, VREG, OPRND_SHIFT_0_BIT),
6776 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6777 CSKY_ISA_VDSP),
6778 OP32 ("vrev.8",
6779 OPCODE_INFO2 (0xf8000e60,
6780 (0_3, VREG, OPRND_SHIFT_0_BIT),
6781 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6782 CSKY_ISA_VDSP),
6783 OP32 ("vrev.16",
6784 OPCODE_INFO2 (0xf8100e60,
6785 (0_3, VREG, OPRND_SHIFT_0_BIT),
6786 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6787 CSKY_ISA_VDSP),
6788 OP32 ("vrev.32",
6789 OPCODE_INFO2 (0xfa000e60,
6790 (0_3, VREG, OPRND_SHIFT_0_BIT),
6791 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6792 CSKY_ISA_VDSP),
6793 OP32 ("vcnt1.8",
6794 OPCODE_INFO2 (0xf8000ea0,
6795 (0_3, VREG, OPRND_SHIFT_0_BIT),
6796 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6797 CSKY_ISA_VDSP),
6798 OP32 ("vclz.8",
6799 OPCODE_INFO2 (0xf8000ec0,
6800 (0_3, VREG, OPRND_SHIFT_0_BIT),
6801 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6802 CSKY_ISA_VDSP),
6803 OP32 ("vclz.16",
6804 OPCODE_INFO2 (0xf8100ec0,
6805 (0_3, VREG, OPRND_SHIFT_0_BIT),
6806 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6807 CSKY_ISA_VDSP),
6808 OP32 ("vclz.32",
6809 OPCODE_INFO2 (0xfa000ec0,
6810 (0_3, VREG, OPRND_SHIFT_0_BIT),
6811 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6812 CSKY_ISA_VDSP),
6813 OP32 ("vcls.u8",
6814 OPCODE_INFO2 (0xf8000ee0,
6815 (0_3, VREG, OPRND_SHIFT_0_BIT),
6816 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6817 CSKY_ISA_VDSP),
6818 OP32 ("vcls.u16",
6819 OPCODE_INFO2 (0xf8100ee0,
6820 (0_3, VREG, OPRND_SHIFT_0_BIT),
6821 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6822 CSKY_ISA_VDSP),
6823 OP32 ("vcls.u32",
6824 OPCODE_INFO2 (0xfa000ee0,
6825 (0_3, VREG, OPRND_SHIFT_0_BIT),
6826 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6827 CSKY_ISA_VDSP),
6828 OP32 ("vcls.s8",
6829 OPCODE_INFO2 (0xf8000ef0,
6830 (0_3, VREG, OPRND_SHIFT_0_BIT),
6831 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6832 CSKY_ISA_VDSP),
6833 OP32 ("vcls.s16",
6834 OPCODE_INFO2 (0xf8100ef0,
6835 (0_3, VREG, OPRND_SHIFT_0_BIT),
6836 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6837 CSKY_ISA_VDSP),
6838 OP32 ("vcls.s32",
6839 OPCODE_INFO2 (0xfa000ef0,
6840 (0_3, VREG, OPRND_SHIFT_0_BIT),
6841 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6842 CSKY_ISA_VDSP),
6843 OP32 ("vabs.s8",
6844 OPCODE_INFO2 (0xf8001010,
6845 (0_3, VREG, OPRND_SHIFT_0_BIT),
6846 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6847 CSKY_ISA_VDSP),
6848 OP32 ("vabs.s16",
6849 OPCODE_INFO2 (0xf8101010,
6850 (0_3, VREG, OPRND_SHIFT_0_BIT),
6851 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6852 CSKY_ISA_VDSP),
6853 OP32 ("vabs.s32",
6854 OPCODE_INFO2 (0xfa001010,
6855 (0_3, VREG, OPRND_SHIFT_0_BIT),
6856 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6857 CSKY_ISA_VDSP),
6858 OP32 ("vabs.u8.s",
6859 OPCODE_INFO2 (0xf8001040,
6860 (0_3, VREG, OPRND_SHIFT_0_BIT),
6861 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6862 CSKY_ISA_VDSP),
6863 OP32 ("vabs.u16.s",
6864 OPCODE_INFO2 (0xf8101040,
6865 (0_3, VREG, OPRND_SHIFT_0_BIT),
6866 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6867 CSKY_ISA_VDSP),
6868 OP32 ("vabs.u32.s",
6869 OPCODE_INFO2 (0xfa001040,
6870 (0_3, VREG, OPRND_SHIFT_0_BIT),
6871 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6872 CSKY_ISA_VDSP),
6873 OP32 ("vabs.s8.s",
6874 OPCODE_INFO2 (0xf8001050,
6875 (0_3, VREG, OPRND_SHIFT_0_BIT),
6876 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6877 CSKY_ISA_VDSP),
6878 OP32 ("vabs.s16.s",
6879 OPCODE_INFO2 (0xf8101050,
6880 (0_3, VREG, OPRND_SHIFT_0_BIT),
6881 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6882 CSKY_ISA_VDSP),
6883 OP32 ("vabs.s32.s",
6884 OPCODE_INFO2 (0xfa001050,
6885 (0_3, VREG, OPRND_SHIFT_0_BIT),
6886 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6887 CSKY_ISA_VDSP),
6888 OP32 ("vneg.u8",
6889 OPCODE_INFO2 (0xf8001080,
6890 (0_3, VREG, OPRND_SHIFT_0_BIT),
6891 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6892 CSKY_ISA_VDSP),
6893 OP32 ("vneg.u16",
6894 OPCODE_INFO2 (0xf8101080,
6895 (0_3, VREG, OPRND_SHIFT_0_BIT),
6896 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6897 CSKY_ISA_VDSP),
6898 OP32 ("vneg.u32",
6899 OPCODE_INFO2 (0xfa001080,
6900 (0_3, VREG, OPRND_SHIFT_0_BIT),
6901 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6902 CSKY_ISA_VDSP),
6903 OP32 ("vneg.s8",
6904 OPCODE_INFO2 (0xf8001090,
6905 (0_3, VREG, OPRND_SHIFT_0_BIT),
6906 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6907 CSKY_ISA_VDSP),
6908 OP32 ("vneg.s16",
6909 OPCODE_INFO2 (0xf8101090,
6910 (0_3, VREG, OPRND_SHIFT_0_BIT),
6911 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6912 CSKY_ISA_VDSP),
6913 OP32 ("vneg.s32",
6914 OPCODE_INFO2 (0xfa001090,
6915 (0_3, VREG, OPRND_SHIFT_0_BIT),
6916 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6917 CSKY_ISA_VDSP),
6918 OP32 ("vneg.u8.s",
6919 OPCODE_INFO2 (0xf80010c0,
6920 (0_3, VREG, OPRND_SHIFT_0_BIT),
6921 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6922 CSKY_ISA_VDSP),
6923 OP32 ("vneg.u16.s",
6924 OPCODE_INFO2 (0xf81010c0,
6925 (0_3, VREG, OPRND_SHIFT_0_BIT),
6926 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6927 CSKY_ISA_VDSP),
6928 OP32 ("vneg.u32.s",
6929 OPCODE_INFO2 (0xfa0010c0,
6930 (0_3, VREG, OPRND_SHIFT_0_BIT),
6931 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6932 CSKY_ISA_VDSP),
6933 OP32 ("vneg.s8.s",
6934 OPCODE_INFO2 (0xf80010d0,
6935 (0_3, VREG, OPRND_SHIFT_0_BIT),
6936 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6937 CSKY_ISA_VDSP),
6938 OP32 ("vneg.s16.s",
6939 OPCODE_INFO2 (0xf81010d0,
6940 (0_3, VREG, OPRND_SHIFT_0_BIT),
6941 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6942 CSKY_ISA_VDSP),
6943 OP32 ("vneg.s32.s",
6944 OPCODE_INFO2 (0xfa0010d0,
6945 (0_3, VREG, OPRND_SHIFT_0_BIT),
6946 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6947 CSKY_ISA_VDSP),
6948 OP32 ("vcmphsz.u8",
6949 OPCODE_INFO2 (0xf8000880,
6950 (0_3, VREG, OPRND_SHIFT_0_BIT),
6951 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6952 CSKY_ISA_VDSP),
6953 OP32 ("vcmphsz.u16",
6954 OPCODE_INFO2 (0xf8100880,
6955 (0_3, VREG, OPRND_SHIFT_0_BIT),
6956 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6957 CSKY_ISA_VDSP),
6958 OP32 ("vcmphsz.u32",
6959 OPCODE_INFO2 (0xfa000880,
6960 (0_3, VREG, OPRND_SHIFT_0_BIT),
6961 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6962 CSKY_ISA_VDSP),
6963 OP32 ("vcmphsz.s8",
6964 OPCODE_INFO2 (0xf8000890,
6965 (0_3, VREG, OPRND_SHIFT_0_BIT),
6966 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6967 CSKY_ISA_VDSP),
6968 OP32 ("vcmphsz.s16",
6969 OPCODE_INFO2 (0xf8100890,
6970 (0_3, VREG, OPRND_SHIFT_0_BIT),
6971 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6972 CSKY_ISA_VDSP),
6973 OP32 ("vcmphsz.s32",
6974 OPCODE_INFO2 (0xfa000890,
6975 (0_3, VREG, OPRND_SHIFT_0_BIT),
6976 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6977 CSKY_ISA_VDSP),
6978 OP32 ("vcmpltz.u8",
6979 OPCODE_INFO2 (0xf80008a0,
6980 (0_3, VREG, OPRND_SHIFT_0_BIT),
6981 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6982 CSKY_ISA_VDSP),
6983 OP32 ("vcmpltz.u16",
6984 OPCODE_INFO2 (0xf81008a0,
6985 (0_3, VREG, OPRND_SHIFT_0_BIT),
6986 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6987 CSKY_ISA_VDSP),
6988 OP32 ("vcmpltz.u32",
6989 OPCODE_INFO2 (0xfa0008a0,
6990 (0_3, VREG, OPRND_SHIFT_0_BIT),
6991 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6992 CSKY_ISA_VDSP),
6993 OP32 ("vcmpltz.s8",
6994 OPCODE_INFO2 (0xf80008b0,
6995 (0_3, VREG, OPRND_SHIFT_0_BIT),
6996 (16_19, VREG, OPRND_SHIFT_0_BIT)),
6997 CSKY_ISA_VDSP),
6998 OP32 ("vcmpltz.s16",
6999 OPCODE_INFO2 (0xf81008b0,
7000 (0_3, VREG, OPRND_SHIFT_0_BIT),
7001 (16_19, VREG, OPRND_SHIFT_0_BIT)),
7002 CSKY_ISA_VDSP),
7003 OP32 ("vcmpltz.s32",
7004 OPCODE_INFO2 (0xfa0008b0,
7005 (0_3, VREG, OPRND_SHIFT_0_BIT),
7006 (16_19, VREG, OPRND_SHIFT_0_BIT)),
7007 CSKY_ISA_VDSP),
7008 OP32 ("vcmpnez.u8",
7009 OPCODE_INFO2 (0xf80008c0,
7010 (0_3, VREG, OPRND_SHIFT_0_BIT),
7011 (16_19, VREG, OPRND_SHIFT_0_BIT)),
7012 CSKY_ISA_VDSP),
7013 OP32 ("vcmpnez.u16",
7014 OPCODE_INFO2 (0xf81008c0,
7015 (0_3, VREG, OPRND_SHIFT_0_BIT),
7016 (16_19, VREG, OPRND_SHIFT_0_BIT)),
7017 CSKY_ISA_VDSP),
7018 OP32 ("vcmpnez.u32",
7019 OPCODE_INFO2 (0xfa0008c0,
7020 (0_3, VREG, OPRND_SHIFT_0_BIT),
7021 (16_19, VREG, OPRND_SHIFT_0_BIT)),
7022 CSKY_ISA_VDSP),
7023 OP32 ("vcmpnez.s8",
7024 OPCODE_INFO2 (0xf80008d0,
7025 (0_3, VREG, OPRND_SHIFT_0_BIT),
7026 (16_19, VREG, OPRND_SHIFT_0_BIT)),
7027 CSKY_ISA_VDSP),
7028 OP32 ("vcmpnez.s16",
7029 OPCODE_INFO2 (0xf81008d0,
7030 (0_3, VREG, OPRND_SHIFT_0_BIT),
7031 (16_19, VREG, OPRND_SHIFT_0_BIT)),
7032 CSKY_ISA_VDSP),
7033 OP32 ("vcmpnez.s32",
7034 OPCODE_INFO2 (0xfa0008d0,
7035 (0_3, VREG, OPRND_SHIFT_0_BIT),
7036 (16_19, VREG, OPRND_SHIFT_0_BIT)),
7037 CSKY_ISA_VDSP),
7038 OP32 ("vtrch.8",
7039 OPCODE_INFO3 (0xf8000f40,
7040 (0_3, VREG, OPRND_SHIFT_0_BIT),
7041 (16_19, VREG, OPRND_SHIFT_0_BIT),
7042 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7043 CSKY_ISA_VDSP),
7044 OP32 ("vtrch.16",
7045 OPCODE_INFO3 (0xf8100f40,
7046 (0_3, VREG, OPRND_SHIFT_0_BIT),
7047 (16_19, VREG, OPRND_SHIFT_0_BIT),
7048 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7049 CSKY_ISA_VDSP),
7050 OP32 ("vtrch.32",
7051 OPCODE_INFO3 (0xfa000f40,
7052 (0_3, VREG, OPRND_SHIFT_0_BIT),
7053 (16_19, VREG, OPRND_SHIFT_0_BIT),
7054 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7055 CSKY_ISA_VDSP),
7056 OP32 ("vtrcl.8",
7057 OPCODE_INFO3 (0xf8000f60,
7058 (0_3, VREG, OPRND_SHIFT_0_BIT),
7059 (16_19, VREG, OPRND_SHIFT_0_BIT),
7060 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7061 CSKY_ISA_VDSP),
7062 OP32 ("vtrcl.16",
7063 OPCODE_INFO3 (0xf8100f60,
7064 (0_3, VREG, OPRND_SHIFT_0_BIT),
7065 (16_19, VREG, OPRND_SHIFT_0_BIT),
7066 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7067 CSKY_ISA_VDSP),
7068 OP32 ("vtrcl.32",
7069 OPCODE_INFO3 (0xfa000f60,
7070 (0_3, VREG, OPRND_SHIFT_0_BIT),
7071 (16_19, VREG, OPRND_SHIFT_0_BIT),
7072 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7073 CSKY_ISA_VDSP),
7074 OP32 ("vadd.u8",
7075 OPCODE_INFO3 (0xf8000000,
7076 (0_3, VREG, OPRND_SHIFT_0_BIT),
7077 (16_19, VREG, OPRND_SHIFT_0_BIT),
7078 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7079 CSKY_ISA_VDSP),
7080 OP32 ("vadd.u16",
7081 OPCODE_INFO3 (0xf8100000,
7082 (0_3, VREG, OPRND_SHIFT_0_BIT),
7083 (16_19, VREG, OPRND_SHIFT_0_BIT),
7084 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7085 CSKY_ISA_VDSP),
7086 OP32 ("vadd.u32",
7087 OPCODE_INFO3 (0xfa000000,
7088 (0_3, VREG, OPRND_SHIFT_0_BIT),
7089 (16_19, VREG, OPRND_SHIFT_0_BIT),
7090 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7091 CSKY_ISA_VDSP),
7092 OP32 ("vadd.s8",
7093 OPCODE_INFO3 (0xf8000010,
7094 (0_3, VREG, OPRND_SHIFT_0_BIT),
7095 (16_19, VREG, OPRND_SHIFT_0_BIT),
7096 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7097 CSKY_ISA_VDSP),
7098 OP32 ("vadd.s16",
7099 OPCODE_INFO3 (0xf8100010,
7100 (0_3, VREG, OPRND_SHIFT_0_BIT),
7101 (16_19, VREG, OPRND_SHIFT_0_BIT),
7102 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7103 CSKY_ISA_VDSP),
7104 OP32 ("vadd.s32",
7105 OPCODE_INFO3 (0xfa000010,
7106 (0_3, VREG, OPRND_SHIFT_0_BIT),
7107 (16_19, VREG, OPRND_SHIFT_0_BIT),
7108 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7109 CSKY_ISA_VDSP),
7110 OP32 ("vadd.eu8",
7111 OPCODE_INFO3 (0xf8000020,
7112 (0_3, VREG, OPRND_SHIFT_0_BIT),
7113 (16_19, VREG, OPRND_SHIFT_0_BIT),
7114 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7115 CSKY_ISA_VDSP),
7116 OP32 ("vadd.eu16",
7117 OPCODE_INFO3 (0xf8100020,
7118 (0_3, VREG, OPRND_SHIFT_0_BIT),
7119 (16_19, VREG, OPRND_SHIFT_0_BIT),
7120 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7121 CSKY_ISA_VDSP),
7122 OP32 ("vadd.es8",
7123 OPCODE_INFO3 (0xf8000030,
7124 (0_3, VREG, OPRND_SHIFT_0_BIT),
7125 (16_19, VREG, OPRND_SHIFT_0_BIT),
7126 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7127 CSKY_ISA_VDSP),
7128 OP32 ("vadd.es16",
7129 OPCODE_INFO3 (0xf8100030,
7130 (0_3, VREG, OPRND_SHIFT_0_BIT),
7131 (16_19, VREG, OPRND_SHIFT_0_BIT),
7132 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7133 CSKY_ISA_VDSP),
7134 OP32 ("vcadd.u8",
7135 OPCODE_INFO3 (0xf8000040,
7136 (0_3, VREG, OPRND_SHIFT_0_BIT),
7137 (16_19, VREG, OPRND_SHIFT_0_BIT),
7138 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7139 CSKY_ISA_VDSP),
7140 OP32 ("vcadd.u16",
7141 OPCODE_INFO3 (0xf8100040,
7142 (0_3, VREG, OPRND_SHIFT_0_BIT),
7143 (16_19, VREG, OPRND_SHIFT_0_BIT),
7144 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7145 CSKY_ISA_VDSP),
7146 OP32 ("vcadd.u32",
7147 OPCODE_INFO3 (0xfa000040,
7148 (0_3, VREG, OPRND_SHIFT_0_BIT),
7149 (16_19, VREG, OPRND_SHIFT_0_BIT),
7150 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7151 CSKY_ISA_VDSP),
7152 OP32 ("vcadd.s8",
7153 OPCODE_INFO3 (0xf8000050,
7154 (0_3, VREG, OPRND_SHIFT_0_BIT),
7155 (16_19, VREG, OPRND_SHIFT_0_BIT),
7156 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7157 CSKY_ISA_VDSP),
7158 OP32 ("vcadd.s16",
7159 OPCODE_INFO3 (0xf8100050,
7160 (0_3, VREG, OPRND_SHIFT_0_BIT),
7161 (16_19, VREG, OPRND_SHIFT_0_BIT),
7162 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7163 CSKY_ISA_VDSP),
7164 OP32 ("vcadd.s32",
7165 OPCODE_INFO3 (0xfa000050,
7166 (0_3, VREG, OPRND_SHIFT_0_BIT),
7167 (16_19, VREG, OPRND_SHIFT_0_BIT),
7168 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7169 CSKY_ISA_VDSP),
7170 OP32 ("vadd.xu16.sl",
7171 OPCODE_INFO3 (0xf8100140,
7172 (0_3, VREG, OPRND_SHIFT_0_BIT),
7173 (16_19, VREG, OPRND_SHIFT_0_BIT),
7174 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7175 CSKY_ISA_VDSP),
7176 OP32 ("vadd.xu32.sl",
7177 OPCODE_INFO3 (0xfa000140,
7178 (0_3, VREG, OPRND_SHIFT_0_BIT),
7179 (16_19, VREG, OPRND_SHIFT_0_BIT),
7180 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7181 CSKY_ISA_VDSP),
7182 OP32 ("vadd.xs16.sl",
7183 OPCODE_INFO3 (0xf8100150,
7184 (0_3, VREG, OPRND_SHIFT_0_BIT),
7185 (16_19, VREG, OPRND_SHIFT_0_BIT),
7186 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7187 CSKY_ISA_VDSP),
7188 OP32 ("vadd.xs32.sl",
7189 OPCODE_INFO3 (0xfa000150,
7190 (0_3, VREG, OPRND_SHIFT_0_BIT),
7191 (16_19, VREG, OPRND_SHIFT_0_BIT),
7192 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7193 CSKY_ISA_VDSP),
7194 OP32 ("vadd.xu16",
7195 OPCODE_INFO3 (0xf8100160,
7196 (0_3, VREG, OPRND_SHIFT_0_BIT),
7197 (16_19, VREG, OPRND_SHIFT_0_BIT),
7198 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7199 CSKY_ISA_VDSP),
7200 OP32 ("vadd.xu32",
7201 OPCODE_INFO3 (0xfa000160,
7202 (0_3, VREG, OPRND_SHIFT_0_BIT),
7203 (16_19, VREG, OPRND_SHIFT_0_BIT),
7204 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7205 CSKY_ISA_VDSP),
7206 OP32 ("vadd.xs16",
7207 OPCODE_INFO3 (0xf8100170,
7208 (0_3, VREG, OPRND_SHIFT_0_BIT),
7209 (16_19, VREG, OPRND_SHIFT_0_BIT),
7210 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7211 CSKY_ISA_VDSP),
7212 OP32 ("vadd.xs32",
7213 OPCODE_INFO3 (0xfa000170,
7214 (0_3, VREG, OPRND_SHIFT_0_BIT),
7215 (16_19, VREG, OPRND_SHIFT_0_BIT),
7216 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7217 CSKY_ISA_VDSP),
7218 OP32 ("vaddh.u8",
7219 OPCODE_INFO3 (0xf8000180,
7220 (0_3, VREG, OPRND_SHIFT_0_BIT),
7221 (16_19, VREG, OPRND_SHIFT_0_BIT),
7222 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7223 CSKY_ISA_VDSP),
7224 OP32 ("vaddh.u16",
7225 OPCODE_INFO3 (0xf8100180,
7226 (0_3, VREG, OPRND_SHIFT_0_BIT),
7227 (16_19, VREG, OPRND_SHIFT_0_BIT),
7228 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7229 CSKY_ISA_VDSP),
7230 OP32 ("vaddh.u32",
7231 OPCODE_INFO3 (0xfa000180,
7232 (0_3, VREG, OPRND_SHIFT_0_BIT),
7233 (16_19, VREG, OPRND_SHIFT_0_BIT),
7234 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7235 CSKY_ISA_VDSP),
7236 OP32 ("vaddh.s8",
7237 OPCODE_INFO3 (0xf8000190,
7238 (0_3, VREG, OPRND_SHIFT_0_BIT),
7239 (16_19, VREG, OPRND_SHIFT_0_BIT),
7240 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7241 CSKY_ISA_VDSP),
7242 OP32 ("vaddh.s16",
7243 OPCODE_INFO3 (0xf8100190,
7244 (0_3, VREG, OPRND_SHIFT_0_BIT),
7245 (16_19, VREG, OPRND_SHIFT_0_BIT),
7246 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7247 CSKY_ISA_VDSP),
7248 OP32 ("vaddh.s32",
7249 OPCODE_INFO3 (0xfa000190,
7250 (0_3, VREG, OPRND_SHIFT_0_BIT),
7251 (16_19, VREG, OPRND_SHIFT_0_BIT),
7252 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7253 CSKY_ISA_VDSP),
7254 OP32 ("vaddh.u8.r",
7255 OPCODE_INFO3 (0xf80001a0,
7256 (0_3, VREG, OPRND_SHIFT_0_BIT),
7257 (16_19, VREG, OPRND_SHIFT_0_BIT),
7258 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7259 CSKY_ISA_VDSP),
7260 OP32 ("vaddh.u16.r",
7261 OPCODE_INFO3 (0xf81001a0,
7262 (0_3, VREG, OPRND_SHIFT_0_BIT),
7263 (16_19, VREG, OPRND_SHIFT_0_BIT),
7264 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7265 CSKY_ISA_VDSP),
7266 OP32 ("vaddh.u32.r",
7267 OPCODE_INFO3 (0xfa0001a0,
7268 (0_3, VREG, OPRND_SHIFT_0_BIT),
7269 (16_19, VREG, OPRND_SHIFT_0_BIT),
7270 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7271 CSKY_ISA_VDSP),
7272 OP32 ("vaddh.s8.r",
7273 OPCODE_INFO3 (0xf80001b0,
7274 (0_3, VREG, OPRND_SHIFT_0_BIT),
7275 (16_19, VREG, OPRND_SHIFT_0_BIT),
7276 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7277 CSKY_ISA_VDSP),
7278 OP32 ("vaddh.s16.r",
7279 OPCODE_INFO3 (0xf81001b0,
7280 (0_3, VREG, OPRND_SHIFT_0_BIT),
7281 (16_19, VREG, OPRND_SHIFT_0_BIT),
7282 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7283 CSKY_ISA_VDSP),
7284 OP32 ("vaddh.s32.r",
7285 OPCODE_INFO3 (0xfa0001b0,
7286 (0_3, VREG, OPRND_SHIFT_0_BIT),
7287 (16_19, VREG, OPRND_SHIFT_0_BIT),
7288 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7289 CSKY_ISA_VDSP),
7290 OP32 ("vadd.u8.s",
7291 OPCODE_INFO3 (0xf80001c0,
7292 (0_3, VREG, OPRND_SHIFT_0_BIT),
7293 (16_19, VREG, OPRND_SHIFT_0_BIT),
7294 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7295 CSKY_ISA_VDSP),
7296 OP32 ("vadd.u16.s",
7297 OPCODE_INFO3 (0xf81001c0,
7298 (0_3, VREG, OPRND_SHIFT_0_BIT),
7299 (16_19, VREG, OPRND_SHIFT_0_BIT),
7300 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7301 CSKY_ISA_VDSP),
7302 OP32 ("vadd.u32.s",
7303 OPCODE_INFO3 (0xfa0001c0,
7304 (0_3, VREG, OPRND_SHIFT_0_BIT),
7305 (16_19, VREG, OPRND_SHIFT_0_BIT),
7306 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7307 CSKY_ISA_VDSP),
7308 OP32 ("vadd.s8.s",
7309 OPCODE_INFO3 (0xf80001d0,
7310 (0_3, VREG, OPRND_SHIFT_0_BIT),
7311 (16_19, VREG, OPRND_SHIFT_0_BIT),
7312 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7313 CSKY_ISA_VDSP),
7314 OP32 ("vadd.s16.s",
7315 OPCODE_INFO3 (0xf81001d0,
7316 (0_3, VREG, OPRND_SHIFT_0_BIT),
7317 (16_19, VREG, OPRND_SHIFT_0_BIT),
7318 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7319 CSKY_ISA_VDSP),
7320 OP32 ("vadd.s32.s",
7321 OPCODE_INFO3 (0xfa0001d0,
7322 (0_3, VREG, OPRND_SHIFT_0_BIT),
7323 (16_19, VREG, OPRND_SHIFT_0_BIT),
7324 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7325 CSKY_ISA_VDSP),
7326 OP32 ("vsub.u8",
7327 OPCODE_INFO3 (0xf8000200,
7328 (0_3, VREG, OPRND_SHIFT_0_BIT),
7329 (16_19, VREG, OPRND_SHIFT_0_BIT),
7330 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7331 CSKY_ISA_VDSP),
7332 OP32 ("vsub.u16",
7333 OPCODE_INFO3 (0xf8100200,
7334 (0_3, VREG, OPRND_SHIFT_0_BIT),
7335 (16_19, VREG, OPRND_SHIFT_0_BIT),
7336 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7337 CSKY_ISA_VDSP),
7338 OP32 ("vsub.u32",
7339 OPCODE_INFO3 (0xfa000200,
7340 (0_3, VREG, OPRND_SHIFT_0_BIT),
7341 (16_19, VREG, OPRND_SHIFT_0_BIT),
7342 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7343 CSKY_ISA_VDSP),
7344 OP32 ("vsub.s8",
7345 OPCODE_INFO3 (0xf8000210,
7346 (0_3, VREG, OPRND_SHIFT_0_BIT),
7347 (16_19, VREG, OPRND_SHIFT_0_BIT),
7348 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7349 CSKY_ISA_VDSP),
7350 OP32 ("vsub.s16",
7351 OPCODE_INFO3 (0xf8100210,
7352 (0_3, VREG, OPRND_SHIFT_0_BIT),
7353 (16_19, VREG, OPRND_SHIFT_0_BIT),
7354 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7355 CSKY_ISA_VDSP),
7356 OP32 ("vsub.s32",
7357 OPCODE_INFO3 (0xfa000210,
7358 (0_3, VREG, OPRND_SHIFT_0_BIT),
7359 (16_19, VREG, OPRND_SHIFT_0_BIT),
7360 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7361 CSKY_ISA_VDSP),
7362 OP32 ("vsub.eu8",
7363 OPCODE_INFO3 (0xf8000220,
7364 (0_3, VREG, OPRND_SHIFT_0_BIT),
7365 (16_19, VREG, OPRND_SHIFT_0_BIT),
7366 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7367 CSKY_ISA_VDSP),
7368 OP32 ("vsub.eu16",
7369 OPCODE_INFO3 (0xf8100220,
7370 (0_3, VREG, OPRND_SHIFT_0_BIT),
7371 (16_19, VREG, OPRND_SHIFT_0_BIT),
7372 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7373 CSKY_ISA_VDSP),
7374 OP32 ("vsub.eu32",
7375 OPCODE_INFO3 (0xfa000220,
7376 (0_3, VREG, OPRND_SHIFT_0_BIT),
7377 (16_19, VREG, OPRND_SHIFT_0_BIT),
7378 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7379 CSKY_ISA_VDSP),
7380 OP32 ("vsub.es8",
7381 OPCODE_INFO3 (0xf8000230,
7382 (0_3, VREG, OPRND_SHIFT_0_BIT),
7383 (16_19, VREG, OPRND_SHIFT_0_BIT),
7384 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7385 CSKY_ISA_VDSP),
7386 OP32 ("vsub.es16",
7387 OPCODE_INFO3 (0xf8100230,
7388 (0_3, VREG, OPRND_SHIFT_0_BIT),
7389 (16_19, VREG, OPRND_SHIFT_0_BIT),
7390 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7391 CSKY_ISA_VDSP),
7392 OP32 ("vsub.es32",
7393 OPCODE_INFO3 (0xfa000230,
7394 (0_3, VREG, OPRND_SHIFT_0_BIT),
7395 (16_19, VREG, OPRND_SHIFT_0_BIT),
7396 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7397 CSKY_ISA_VDSP),
7398 OP32 ("vsabs.u8",
7399 OPCODE_INFO3 (0xf8000240,
7400 (0_3, VREG, OPRND_SHIFT_0_BIT),
7401 (16_19, VREG, OPRND_SHIFT_0_BIT),
7402 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7403 CSKY_ISA_VDSP),
7404 OP32 ("vsabs.u16",
7405 OPCODE_INFO3 (0xf8100240,
7406 (0_3, VREG, OPRND_SHIFT_0_BIT),
7407 (16_19, VREG, OPRND_SHIFT_0_BIT),
7408 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7409 CSKY_ISA_VDSP),
7410 OP32 ("vsabs.u32",
7411 OPCODE_INFO3 (0xfa000240,
7412 (0_3, VREG, OPRND_SHIFT_0_BIT),
7413 (16_19, VREG, OPRND_SHIFT_0_BIT),
7414 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7415 CSKY_ISA_VDSP),
7416 OP32 ("vsabs.s8",
7417 OPCODE_INFO3 (0xf8000250,
7418 (0_3, VREG, OPRND_SHIFT_0_BIT),
7419 (16_19, VREG, OPRND_SHIFT_0_BIT),
7420 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7421 CSKY_ISA_VDSP),
7422 OP32 ("vsabs.s16",
7423 OPCODE_INFO3 (0xf8100250,
7424 (0_3, VREG, OPRND_SHIFT_0_BIT),
7425 (16_19, VREG, OPRND_SHIFT_0_BIT),
7426 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7427 CSKY_ISA_VDSP),
7428 OP32 ("vsabs.s32",
7429 OPCODE_INFO3 (0xfa000250,
7430 (0_3, VREG, OPRND_SHIFT_0_BIT),
7431 (16_19, VREG, OPRND_SHIFT_0_BIT),
7432 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7433 CSKY_ISA_VDSP),
7434 OP32 ("vsabs.eu8",
7435 OPCODE_INFO3 (0xf8000260,
7436 (0_3, VREG, OPRND_SHIFT_0_BIT),
7437 (16_19, VREG, OPRND_SHIFT_0_BIT),
7438 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7439 CSKY_ISA_VDSP),
7440 OP32 ("vsabs.eu16",
7441 OPCODE_INFO3 (0xf8100260,
7442 (0_3, VREG, OPRND_SHIFT_0_BIT),
7443 (16_19, VREG, OPRND_SHIFT_0_BIT),
7444 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7445 CSKY_ISA_VDSP),
7446 OP32 ("vsabs.es8",
7447 OPCODE_INFO3 (0xf8000270,
7448 (0_3, VREG, OPRND_SHIFT_0_BIT),
7449 (16_19, VREG, OPRND_SHIFT_0_BIT),
7450 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7451 CSKY_ISA_VDSP),
7452 OP32 ("vsabs.es16",
7453 OPCODE_INFO3 (0xf8100270,
7454 (0_3, VREG, OPRND_SHIFT_0_BIT),
7455 (16_19, VREG, OPRND_SHIFT_0_BIT),
7456 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7457 CSKY_ISA_VDSP),
7458 OP32 ("vsabsa.u8",
7459 OPCODE_INFO3 (0xf8000280,
7460 (0_3, VREG, OPRND_SHIFT_0_BIT),
7461 (16_19, VREG, OPRND_SHIFT_0_BIT),
7462 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7463 CSKY_ISA_VDSP),
7464 OP32 ("vsabsa.u16",
7465 OPCODE_INFO3 (0xf8100280,
7466 (0_3, VREG, OPRND_SHIFT_0_BIT),
7467 (16_19, VREG, OPRND_SHIFT_0_BIT),
7468 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7469 CSKY_ISA_VDSP),
7470 OP32 ("vsabsa.u32",
7471 OPCODE_INFO3 (0xfa000280,
7472 (0_3, VREG, OPRND_SHIFT_0_BIT),
7473 (16_19, VREG, OPRND_SHIFT_0_BIT),
7474 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7475 CSKY_ISA_VDSP),
7476 OP32 ("vsabsa.s8",
7477 OPCODE_INFO3 (0xf8000290,
7478 (0_3, VREG, OPRND_SHIFT_0_BIT),
7479 (16_19, VREG, OPRND_SHIFT_0_BIT),
7480 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7481 CSKY_ISA_VDSP),
7482 OP32 ("vsabsa.s16",
7483 OPCODE_INFO3 (0xf8100290,
7484 (0_3, VREG, OPRND_SHIFT_0_BIT),
7485 (16_19, VREG, OPRND_SHIFT_0_BIT),
7486 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7487 CSKY_ISA_VDSP),
7488 OP32 ("vsabsa.s32",
7489 OPCODE_INFO3 (0xfa000290,
7490 (0_3, VREG, OPRND_SHIFT_0_BIT),
7491 (16_19, VREG, OPRND_SHIFT_0_BIT),
7492 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7493 CSKY_ISA_VDSP),
7494 OP32 ("vsabsa.eu8",
7495 OPCODE_INFO3 (0xf80002a0,
7496 (0_3, VREG, OPRND_SHIFT_0_BIT),
7497 (16_19, VREG, OPRND_SHIFT_0_BIT),
7498 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7499 CSKY_ISA_VDSP),
7500 OP32 ("vsabsa.eu16",
7501 OPCODE_INFO3 (0xf81002a0,
7502 (0_3, VREG, OPRND_SHIFT_0_BIT),
7503 (16_19, VREG, OPRND_SHIFT_0_BIT),
7504 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7505 CSKY_ISA_VDSP),
7506 OP32 ("vsabsa.es8",
7507 OPCODE_INFO3 (0xf80002b0,
7508 (0_3, VREG, OPRND_SHIFT_0_BIT),
7509 (16_19, VREG, OPRND_SHIFT_0_BIT),
7510 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7511 CSKY_ISA_VDSP),
7512 OP32 ("vsabsa.es16",
7513 OPCODE_INFO3 (0xf81002b0,
7514 (0_3, VREG, OPRND_SHIFT_0_BIT),
7515 (16_19, VREG, OPRND_SHIFT_0_BIT),
7516 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7517 CSKY_ISA_VDSP),
7518 OP32 ("vsub.xu16",
7519 OPCODE_INFO3 (0xf8100360,
7520 (0_3, VREG, OPRND_SHIFT_0_BIT),
7521 (16_19, VREG, OPRND_SHIFT_0_BIT),
7522 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7523 CSKY_ISA_VDSP),
7524 OP32 ("vsub.xu32",
7525 OPCODE_INFO3 (0xfa000360,
7526 (0_3, VREG, OPRND_SHIFT_0_BIT),
7527 (16_19, VREG, OPRND_SHIFT_0_BIT),
7528 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7529 CSKY_ISA_VDSP),
7530 OP32 ("vsub.xs16",
7531 OPCODE_INFO3 (0xf8100370,
7532 (0_3, VREG, OPRND_SHIFT_0_BIT),
7533 (16_19, VREG, OPRND_SHIFT_0_BIT),
7534 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7535 CSKY_ISA_VDSP),
7536 OP32 ("vsub.xs32",
7537 OPCODE_INFO3 (0xfa000370,
7538 (0_3, VREG, OPRND_SHIFT_0_BIT),
7539 (16_19, VREG, OPRND_SHIFT_0_BIT),
7540 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7541 CSKY_ISA_VDSP),
7542 OP32 ("vsubh.u8",
7543 OPCODE_INFO3 (0xf8000380,
7544 (0_3, VREG, OPRND_SHIFT_0_BIT),
7545 (16_19, VREG, OPRND_SHIFT_0_BIT),
7546 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7547 CSKY_ISA_VDSP),
7548 OP32 ("vsubh.u16",
7549 OPCODE_INFO3 (0xf8100380,
7550 (0_3, VREG, OPRND_SHIFT_0_BIT),
7551 (16_19, VREG, OPRND_SHIFT_0_BIT),
7552 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7553 CSKY_ISA_VDSP),
7554 OP32 ("vsubh.u32",
7555 OPCODE_INFO3 (0xfa000380,
7556 (0_3, VREG, OPRND_SHIFT_0_BIT),
7557 (16_19, VREG, OPRND_SHIFT_0_BIT),
7558 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7559 CSKY_ISA_VDSP),
7560 OP32 ("vsubh.s8",
7561 OPCODE_INFO3 (0xf8000390,
7562 (0_3, VREG, OPRND_SHIFT_0_BIT),
7563 (16_19, VREG, OPRND_SHIFT_0_BIT),
7564 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7565 CSKY_ISA_VDSP),
7566 OP32 ("vsubh.s16",
7567 OPCODE_INFO3 (0xf8100390,
7568 (0_3, VREG, OPRND_SHIFT_0_BIT),
7569 (16_19, VREG, OPRND_SHIFT_0_BIT),
7570 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7571 CSKY_ISA_VDSP),
7572 OP32 ("vsubh.s32",
7573 OPCODE_INFO3 (0xfa000390,
7574 (0_3, VREG, OPRND_SHIFT_0_BIT),
7575 (16_19, VREG, OPRND_SHIFT_0_BIT),
7576 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7577 CSKY_ISA_VDSP),
7578 OP32 ("vsubh.u8.r",
7579 OPCODE_INFO3 (0xf80003a0,
7580 (0_3, VREG, OPRND_SHIFT_0_BIT),
7581 (16_19, VREG, OPRND_SHIFT_0_BIT),
7582 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7583 CSKY_ISA_VDSP),
7584 OP32 ("vsubh.u16.r",
7585 OPCODE_INFO3 (0xf81003a0,
7586 (0_3, VREG, OPRND_SHIFT_0_BIT),
7587 (16_19, VREG, OPRND_SHIFT_0_BIT),
7588 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7589 CSKY_ISA_VDSP),
7590 OP32 ("vsubh.u32.r",
7591 OPCODE_INFO3 (0xfa0003a0,
7592 (0_3, VREG, OPRND_SHIFT_0_BIT),
7593 (16_19, VREG, OPRND_SHIFT_0_BIT),
7594 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7595 CSKY_ISA_VDSP),
7596 OP32 ("vsubh.s8.r",
7597 OPCODE_INFO3 (0xf80003b0,
7598 (0_3, VREG, OPRND_SHIFT_0_BIT),
7599 (16_19, VREG, OPRND_SHIFT_0_BIT),
7600 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7601 CSKY_ISA_VDSP),
7602 OP32 ("vsubh.s16.r",
7603 OPCODE_INFO3 (0xf81003b0,
7604 (0_3, VREG, OPRND_SHIFT_0_BIT),
7605 (16_19, VREG, OPRND_SHIFT_0_BIT),
7606 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7607 CSKY_ISA_VDSP),
7608 OP32 ("vsubh.s32.r",
7609 OPCODE_INFO3 (0xfa0003b0,
7610 (0_3, VREG, OPRND_SHIFT_0_BIT),
7611 (16_19, VREG, OPRND_SHIFT_0_BIT),
7612 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7613 CSKY_ISA_VDSP),
7614 OP32 ("vsub.u8.s",
7615 OPCODE_INFO3 (0xf80003c0,
7616 (0_3, VREG, OPRND_SHIFT_0_BIT),
7617 (16_19, VREG, OPRND_SHIFT_0_BIT),
7618 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7619 CSKY_ISA_VDSP),
7620 OP32 ("vsub.u16.s",
7621 OPCODE_INFO3 (0xf81003c0,
7622 (0_3, VREG, OPRND_SHIFT_0_BIT),
7623 (16_19, VREG, OPRND_SHIFT_0_BIT),
7624 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7625 CSKY_ISA_VDSP),
7626 OP32 ("vsub.u32.s",
7627 OPCODE_INFO3 (0xfa0003c0,
7628 (0_3, VREG, OPRND_SHIFT_0_BIT),
7629 (16_19, VREG, OPRND_SHIFT_0_BIT),
7630 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7631 CSKY_ISA_VDSP),
7632 OP32 ("vsub.s8.s",
7633 OPCODE_INFO3 (0xf80003d0,
7634 (0_3, VREG, OPRND_SHIFT_0_BIT),
7635 (16_19, VREG, OPRND_SHIFT_0_BIT),
7636 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7637 CSKY_ISA_VDSP),
7638 OP32 ("vsub.s16.s",
7639 OPCODE_INFO3 (0xf81003d0,
7640 (0_3, VREG, OPRND_SHIFT_0_BIT),
7641 (16_19, VREG, OPRND_SHIFT_0_BIT),
7642 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7643 CSKY_ISA_VDSP),
7644 OP32 ("vsub.s32.s",
7645 OPCODE_INFO3 (0xfa0003d0,
7646 (0_3, VREG, OPRND_SHIFT_0_BIT),
7647 (16_19, VREG, OPRND_SHIFT_0_BIT),
7648 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7649 CSKY_ISA_VDSP),
7650 OP32 ("vmul.u8",
7651 OPCODE_INFO3 (0xf8000400,
7652 (0_3, VREG, OPRND_SHIFT_0_BIT),
7653 (16_19, VREG, OPRND_SHIFT_0_BIT),
7654 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7655 CSKY_ISA_VDSP),
7656 OP32 ("vmul.u16",
7657 OPCODE_INFO3 (0xf8100400,
7658 (0_3, VREG, OPRND_SHIFT_0_BIT),
7659 (16_19, VREG, OPRND_SHIFT_0_BIT),
7660 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7661 CSKY_ISA_VDSP),
7662 OP32 ("vmul.u32",
7663 OPCODE_INFO3 (0xfa000400,
7664 (0_3, VREG, OPRND_SHIFT_0_BIT),
7665 (16_19, VREG, OPRND_SHIFT_0_BIT),
7666 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7667 CSKY_ISA_VDSP),
7668 OP32 ("vmul.s8",
7669 OPCODE_INFO3 (0xf8000410,
7670 (0_3, VREG, OPRND_SHIFT_0_BIT),
7671 (16_19, VREG, OPRND_SHIFT_0_BIT),
7672 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7673 CSKY_ISA_VDSP),
7674 OP32 ("vmul.s16",
7675 OPCODE_INFO3 (0xf8100410,
7676 (0_3, VREG, OPRND_SHIFT_0_BIT),
7677 (16_19, VREG, OPRND_SHIFT_0_BIT),
7678 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7679 CSKY_ISA_VDSP),
7680 OP32 ("vmul.s32",
7681 OPCODE_INFO3 (0xfa000410,
7682 (0_3, VREG, OPRND_SHIFT_0_BIT),
7683 (16_19, VREG, OPRND_SHIFT_0_BIT),
7684 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7685 CSKY_ISA_VDSP),
7686 OP32 ("vmul.eu8",
7687 OPCODE_INFO3 (0xf8000420,
7688 (0_3, VREG, OPRND_SHIFT_0_BIT),
7689 (16_19, VREG, OPRND_SHIFT_0_BIT),
7690 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7691 CSKY_ISA_VDSP),
7692 OP32 ("vmul.eu16",
7693 OPCODE_INFO3 (0xf8100420,
7694 (0_3, VREG, OPRND_SHIFT_0_BIT),
7695 (16_19, VREG, OPRND_SHIFT_0_BIT),
7696 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7697 CSKY_ISA_VDSP),
7698 OP32 ("vmul.es8",
7699 OPCODE_INFO3 (0xf8000430,
7700 (0_3, VREG, OPRND_SHIFT_0_BIT),
7701 (16_19, VREG, OPRND_SHIFT_0_BIT),
7702 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7703 CSKY_ISA_VDSP),
7704 OP32 ("vmul.es16",
7705 OPCODE_INFO3 (0xf8100430,
7706 (0_3, VREG, OPRND_SHIFT_0_BIT),
7707 (16_19, VREG, OPRND_SHIFT_0_BIT),
7708 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7709 CSKY_ISA_VDSP),
7710 OP32 ("vmula.u8",
7711 OPCODE_INFO3 (0xf8000440,
7712 (0_3, VREG, OPRND_SHIFT_0_BIT),
7713 (16_19, VREG, OPRND_SHIFT_0_BIT),
7714 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7715 CSKY_ISA_VDSP),
7716 OP32 ("vmula.u16",
7717 OPCODE_INFO3 (0xf8100440,
7718 (0_3, VREG, OPRND_SHIFT_0_BIT),
7719 (16_19, VREG, OPRND_SHIFT_0_BIT),
7720 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7721 CSKY_ISA_VDSP),
7722 OP32 ("vmula.u32",
7723 OPCODE_INFO3 (0xfa000440,
7724 (0_3, VREG, OPRND_SHIFT_0_BIT),
7725 (16_19, VREG, OPRND_SHIFT_0_BIT),
7726 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7727 CSKY_ISA_VDSP),
7728 OP32 ("vmula.s8",
7729 OPCODE_INFO3 (0xf8000450,
7730 (0_3, VREG, OPRND_SHIFT_0_BIT),
7731 (16_19, VREG, OPRND_SHIFT_0_BIT),
7732 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7733 CSKY_ISA_VDSP),
7734 OP32 ("vmula.s16",
7735 OPCODE_INFO3 (0xf8100450,
7736 (0_3, VREG, OPRND_SHIFT_0_BIT),
7737 (16_19, VREG, OPRND_SHIFT_0_BIT),
7738 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7739 CSKY_ISA_VDSP),
7740 OP32 ("vmula.s32",
7741 OPCODE_INFO3 (0xfa000450,
7742 (0_3, VREG, OPRND_SHIFT_0_BIT),
7743 (16_19, VREG, OPRND_SHIFT_0_BIT),
7744 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7745 CSKY_ISA_VDSP),
7746 OP32 ("vmula.eu8",
7747 OPCODE_INFO3 (0xf8000460,
7748 (0_3, VREG, OPRND_SHIFT_0_BIT),
7749 (16_19, VREG, OPRND_SHIFT_0_BIT),
7750 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7751 CSKY_ISA_VDSP),
7752 OP32 ("vmula.eu16",
7753 OPCODE_INFO3 (0xf8100460,
7754 (0_3, VREG, OPRND_SHIFT_0_BIT),
7755 (16_19, VREG, OPRND_SHIFT_0_BIT),
7756 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7757 CSKY_ISA_VDSP),
7758 OP32 ("vmula.eu32",
7759 OPCODE_INFO3 (0xfa000460,
7760 (0_3, VREG, OPRND_SHIFT_0_BIT),
7761 (16_19, VREG, OPRND_SHIFT_0_BIT),
7762 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7763 CSKY_ISA_VDSP),
7764 OP32 ("vmula.es8",
7765 OPCODE_INFO3 (0xf8000470,
7766 (0_3, VREG, OPRND_SHIFT_0_BIT),
7767 (16_19, VREG, OPRND_SHIFT_0_BIT),
7768 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7769 CSKY_ISA_VDSP),
7770 OP32 ("vmula.es16",
7771 OPCODE_INFO3 (0xf8100470,
7772 (0_3, VREG, OPRND_SHIFT_0_BIT),
7773 (16_19, VREG, OPRND_SHIFT_0_BIT),
7774 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7775 CSKY_ISA_VDSP),
7776 OP32 ("vmula.es32",
7777 OPCODE_INFO3 (0xfa000470,
7778 (0_3, VREG, OPRND_SHIFT_0_BIT),
7779 (16_19, VREG, OPRND_SHIFT_0_BIT),
7780 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7781 CSKY_ISA_VDSP),
7782 OP32 ("vmuls.u8",
7783 OPCODE_INFO3 (0xf8000480,
7784 (0_3, VREG, OPRND_SHIFT_0_BIT),
7785 (16_19, VREG, OPRND_SHIFT_0_BIT),
7786 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7787 CSKY_ISA_VDSP),
7788 OP32 ("vmuls.u16",
7789 OPCODE_INFO3 (0xf8100480,
7790 (0_3, VREG, OPRND_SHIFT_0_BIT),
7791 (16_19, VREG, OPRND_SHIFT_0_BIT),
7792 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7793 CSKY_ISA_VDSP),
7794 OP32 ("vmuls.u32",
7795 OPCODE_INFO3 (0xfa000480,
7796 (0_3, VREG, OPRND_SHIFT_0_BIT),
7797 (16_19, VREG, OPRND_SHIFT_0_BIT),
7798 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7799 CSKY_ISA_VDSP),
7800 OP32 ("vmuls.s8",
7801 OPCODE_INFO3 (0xf8000490,
7802 (0_3, VREG, OPRND_SHIFT_0_BIT),
7803 (16_19, VREG, OPRND_SHIFT_0_BIT),
7804 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7805 CSKY_ISA_VDSP),
7806 OP32 ("vmuls.s16",
7807 OPCODE_INFO3 (0xf8100490,
7808 (0_3, VREG, OPRND_SHIFT_0_BIT),
7809 (16_19, VREG, OPRND_SHIFT_0_BIT),
7810 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7811 CSKY_ISA_VDSP),
7812 OP32 ("vmuls.s32",
7813 OPCODE_INFO3 (0xfa000490,
7814 (0_3, VREG, OPRND_SHIFT_0_BIT),
7815 (16_19, VREG, OPRND_SHIFT_0_BIT),
7816 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7817 CSKY_ISA_VDSP),
7818 OP32 ("vmuls.eu8",
7819 OPCODE_INFO3 (0xf80004a0,
7820 (0_3, VREG, OPRND_SHIFT_0_BIT),
7821 (16_19, VREG, OPRND_SHIFT_0_BIT),
7822 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7823 CSKY_ISA_VDSP),
7824 OP32 ("vmuls.eu16",
7825 OPCODE_INFO3 (0xf81004a0,
7826 (0_3, VREG, OPRND_SHIFT_0_BIT),
7827 (16_19, VREG, OPRND_SHIFT_0_BIT),
7828 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7829 CSKY_ISA_VDSP),
7830 OP32 ("vmuls.es8",
7831 OPCODE_INFO3 (0xf80004b0,
7832 (0_3, VREG, OPRND_SHIFT_0_BIT),
7833 (16_19, VREG, OPRND_SHIFT_0_BIT),
7834 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7835 CSKY_ISA_VDSP),
7836 OP32 ("vmuls.es16",
7837 OPCODE_INFO3 (0xf81004b0,
7838 (0_3, VREG, OPRND_SHIFT_0_BIT),
7839 (16_19, VREG, OPRND_SHIFT_0_BIT),
7840 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7841 CSKY_ISA_VDSP),
7842 OP32 ("vshr.u8",
7843 OPCODE_INFO3 (0xf8000680,
7844 (0_3, VREG, OPRND_SHIFT_0_BIT),
7845 (16_19, VREG, OPRND_SHIFT_0_BIT),
7846 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7847 CSKY_ISA_VDSP),
7848 OP32 ("vshr.u16",
7849 OPCODE_INFO3 (0xf8100680,
7850 (0_3, VREG, OPRND_SHIFT_0_BIT),
7851 (16_19, VREG, OPRND_SHIFT_0_BIT),
7852 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7853 CSKY_ISA_VDSP),
7854 OP32 ("vshr.u32",
7855 OPCODE_INFO3 (0xfa000680,
7856 (0_3, VREG, OPRND_SHIFT_0_BIT),
7857 (16_19, VREG, OPRND_SHIFT_0_BIT),
7858 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7859 CSKY_ISA_VDSP),
7860 OP32 ("vshr.s8",
7861 OPCODE_INFO3 (0xf8000690,
7862 (0_3, VREG, OPRND_SHIFT_0_BIT),
7863 (16_19, VREG, OPRND_SHIFT_0_BIT),
7864 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7865 CSKY_ISA_VDSP),
7866 OP32 ("vshr.s16",
7867 OPCODE_INFO3 (0xf8100690,
7868 (0_3, VREG, OPRND_SHIFT_0_BIT),
7869 (16_19, VREG, OPRND_SHIFT_0_BIT),
7870 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7871 CSKY_ISA_VDSP),
7872 OP32 ("vshr.s32",
7873 OPCODE_INFO3 (0xfa000690,
7874 (0_3, VREG, OPRND_SHIFT_0_BIT),
7875 (16_19, VREG, OPRND_SHIFT_0_BIT),
7876 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7877 CSKY_ISA_VDSP),
7878 OP32 ("vshr.u8.r",
7879 OPCODE_INFO3 (0xf80006c0,
7880 (0_3, VREG, OPRND_SHIFT_0_BIT),
7881 (16_19, VREG, OPRND_SHIFT_0_BIT),
7882 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7883 CSKY_ISA_VDSP),
7884 OP32 ("vshr.u16.r",
7885 OPCODE_INFO3 (0xf81006c0,
7886 (0_3, VREG, OPRND_SHIFT_0_BIT),
7887 (16_19, VREG, OPRND_SHIFT_0_BIT),
7888 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7889 CSKY_ISA_VDSP),
7890 OP32 ("vshr.u32.r",
7891 OPCODE_INFO3 (0xfa0006c0,
7892 (0_3, VREG, OPRND_SHIFT_0_BIT),
7893 (16_19, VREG, OPRND_SHIFT_0_BIT),
7894 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7895 CSKY_ISA_VDSP),
7896 OP32 ("vshr.s8.r",
7897 OPCODE_INFO3 (0xf80006d0,
7898 (0_3, VREG, OPRND_SHIFT_0_BIT),
7899 (16_19, VREG, OPRND_SHIFT_0_BIT),
7900 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7901 CSKY_ISA_VDSP),
7902 OP32 ("vshr.s16.r",
7903 OPCODE_INFO3 (0xf81006d0,
7904 (0_3, VREG, OPRND_SHIFT_0_BIT),
7905 (16_19, VREG, OPRND_SHIFT_0_BIT),
7906 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7907 CSKY_ISA_VDSP),
039dac29
CQ
7908 OP32 ("vshri.u8",
7909 OPCODE_INFO3 (0xf8000600,
7910 (0_3, VREG, OPRND_SHIFT_0_BIT),
7911 (16_19, VREG, OPRND_SHIFT_0_BIT),
7912 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7913 CSKY_ISA_VDSP),
7914 OP32 ("vshri.u16",
7915 OPCODE_INFO3 (0xf8100600,
7916 (0_3, VREG, OPRND_SHIFT_0_BIT),
7917 (16_19, VREG, OPRND_SHIFT_0_BIT),
7918 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7919 CSKY_ISA_VDSP),
7920 OP32 ("vshri.u32",
7921 OPCODE_INFO3 (0xfa000600,
7922 (0_3, VREG, OPRND_SHIFT_0_BIT),
7923 (16_19, VREG, OPRND_SHIFT_0_BIT),
7924 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7925 CSKY_ISA_VDSP),
7926 OP32 ("vshri.s8",
7927 OPCODE_INFO3 (0xf8000610,
7928 (0_3, VREG, OPRND_SHIFT_0_BIT),
7929 (16_19, VREG, OPRND_SHIFT_0_BIT),
7930 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7931 CSKY_ISA_VDSP),
7932 OP32 ("vshri.s16",
7933 OPCODE_INFO3 (0xf8100610,
7934 (0_3, VREG, OPRND_SHIFT_0_BIT),
7935 (16_19, VREG, OPRND_SHIFT_0_BIT),
7936 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7937 CSKY_ISA_VDSP),
7938 OP32 ("vshri.s32",
7939 OPCODE_INFO3 (0xfa000610,
7940 (0_3, VREG, OPRND_SHIFT_0_BIT),
7941 (16_19, VREG, OPRND_SHIFT_0_BIT),
7942 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7943 CSKY_ISA_VDSP),
7944 OP32 ("vshri.u8.r",
7945 OPCODE_INFO3 (0xf8000640,
7946 (0_3, VREG, OPRND_SHIFT_0_BIT),
7947 (16_19, VREG, OPRND_SHIFT_0_BIT),
7948 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7949 CSKY_ISA_VDSP),
7950 OP32 ("vshri.u16.r",
7951 OPCODE_INFO3 (0xf8100640,
7952 (0_3, VREG, OPRND_SHIFT_0_BIT),
7953 (16_19, VREG, OPRND_SHIFT_0_BIT),
7954 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7955 CSKY_ISA_VDSP),
7956 OP32 ("vshri.u32.r",
7957 OPCODE_INFO3 (0xfa000640,
7958 (0_3, VREG, OPRND_SHIFT_0_BIT),
7959 (16_19, VREG, OPRND_SHIFT_0_BIT),
7960 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7961 CSKY_ISA_VDSP),
7962 OP32 ("vshri.s8.r",
7963 OPCODE_INFO3 (0xf8000650,
7964 (0_3, VREG, OPRND_SHIFT_0_BIT),
7965 (16_19, VREG, OPRND_SHIFT_0_BIT),
7966 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7967 CSKY_ISA_VDSP),
7968 OP32 ("vshri.s16.r",
7969 OPCODE_INFO3 (0xf8100650,
7970 (0_3, VREG, OPRND_SHIFT_0_BIT),
7971 (16_19, VREG, OPRND_SHIFT_0_BIT),
7972 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7973 CSKY_ISA_VDSP),
7974 OP32 ("vshri.s32.r",
7975 OPCODE_INFO3 (0xfa000650,
7976 (0_3, VREG, OPRND_SHIFT_0_BIT),
7977 (16_19, VREG, OPRND_SHIFT_0_BIT),
7978 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
7979 CSKY_ISA_VDSP),
7980 OP32 ("vshr.s32.r",
7981 OPCODE_INFO3 (0xfa0006d0,
7982 (0_3, VREG, OPRND_SHIFT_0_BIT),
7983 (16_19, VREG, OPRND_SHIFT_0_BIT),
7984 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7985 CSKY_ISA_VDSP),
b8891f8d
AJ
7986 OP32 ("vshr.s32.r",
7987 OPCODE_INFO3 (0xfa0006d0,
7988 (0_3, VREG, OPRND_SHIFT_0_BIT),
7989 (16_19, VREG, OPRND_SHIFT_0_BIT),
7990 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7991 CSKY_ISA_VDSP),
7992 OP32 ("vshl.u8",
7993 OPCODE_INFO3 (0xf8000780,
7994 (0_3, VREG, OPRND_SHIFT_0_BIT),
7995 (16_19, VREG, OPRND_SHIFT_0_BIT),
7996 (21_24, VREG, OPRND_SHIFT_0_BIT)),
7997 CSKY_ISA_VDSP),
7998 OP32 ("vshl.u16",
7999 OPCODE_INFO3 (0xf8100780,
8000 (0_3, VREG, OPRND_SHIFT_0_BIT),
8001 (16_19, VREG, OPRND_SHIFT_0_BIT),
8002 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8003 CSKY_ISA_VDSP),
8004 OP32 ("vshl.u32",
8005 OPCODE_INFO3 (0xfa000780,
8006 (0_3, VREG, OPRND_SHIFT_0_BIT),
8007 (16_19, VREG, OPRND_SHIFT_0_BIT),
8008 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8009 CSKY_ISA_VDSP),
8010 OP32 ("vshl.s8",
8011 OPCODE_INFO3 (0xf8000790,
8012 (0_3, VREG, OPRND_SHIFT_0_BIT),
8013 (16_19, VREG, OPRND_SHIFT_0_BIT),
8014 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8015 CSKY_ISA_VDSP),
8016 OP32 ("vshl.s16",
8017 OPCODE_INFO3 (0xf8100790,
8018 (0_3, VREG, OPRND_SHIFT_0_BIT),
8019 (16_19, VREG, OPRND_SHIFT_0_BIT),
8020 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8021 CSKY_ISA_VDSP),
8022 OP32 ("vshl.s32",
8023 OPCODE_INFO3 (0xfa000790,
8024 (0_3, VREG, OPRND_SHIFT_0_BIT),
8025 (16_19, VREG, OPRND_SHIFT_0_BIT),
8026 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8027 CSKY_ISA_VDSP),
8028 OP32 ("vshl.u8.s",
8029 OPCODE_INFO3 (0xf80007c0,
8030 (0_3, VREG, OPRND_SHIFT_0_BIT),
8031 (16_19, VREG, OPRND_SHIFT_0_BIT),
8032 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8033 CSKY_ISA_VDSP),
8034 OP32 ("vshl.u16.s",
8035 OPCODE_INFO3 (0xf81007c0,
8036 (0_3, VREG, OPRND_SHIFT_0_BIT),
8037 (16_19, VREG, OPRND_SHIFT_0_BIT),
8038 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8039 CSKY_ISA_VDSP),
8040 OP32 ("vshl.u32.s",
8041 OPCODE_INFO3 (0xfa0007c0,
8042 (0_3, VREG, OPRND_SHIFT_0_BIT),
8043 (16_19, VREG, OPRND_SHIFT_0_BIT),
8044 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8045 CSKY_ISA_VDSP),
8046 OP32 ("vshl.s8.s",
8047 OPCODE_INFO3 (0xf80007d0,
8048 (0_3, VREG, OPRND_SHIFT_0_BIT),
8049 (16_19, VREG, OPRND_SHIFT_0_BIT),
8050 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8051 CSKY_ISA_VDSP),
8052 OP32 ("vshl.s16.s",
8053 OPCODE_INFO3 (0xf81007d0,
8054 (0_3, VREG, OPRND_SHIFT_0_BIT),
8055 (16_19, VREG, OPRND_SHIFT_0_BIT),
8056 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8057 CSKY_ISA_VDSP),
8058 OP32 ("vshl.s32.s",
8059 OPCODE_INFO3 (0xfa0007d0,
8060 (0_3, VREG, OPRND_SHIFT_0_BIT),
8061 (16_19, VREG, OPRND_SHIFT_0_BIT),
8062 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8063 CSKY_ISA_VDSP),
039dac29
CQ
8064 OP32 ("vshli.u8",
8065 OPCODE_INFO3 (0xf8000700,
8066 (0_3, VREG, OPRND_SHIFT_0_BIT),
8067 (16_19, VREG, OPRND_SHIFT_0_BIT),
8068 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8069 CSKY_ISA_VDSP),
8070 OP32 ("vshli.u16",
8071 OPCODE_INFO3 (0xf8100700,
8072 (0_3, VREG, OPRND_SHIFT_0_BIT),
8073 (16_19, VREG, OPRND_SHIFT_0_BIT),
8074 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8075 CSKY_ISA_VDSP),
8076 OP32 ("vshli.u32",
8077 OPCODE_INFO3 (0xfa000700,
8078 (0_3, VREG, OPRND_SHIFT_0_BIT),
8079 (16_19, VREG, OPRND_SHIFT_0_BIT),
8080 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8081 CSKY_ISA_VDSP),
8082 OP32 ("vshli.s8",
8083 OPCODE_INFO3 (0xf8000710,
8084 (0_3, VREG, OPRND_SHIFT_0_BIT),
8085 (16_19, VREG, OPRND_SHIFT_0_BIT),
8086 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8087 CSKY_ISA_VDSP),
8088 OP32 ("vshli.s16",
8089 OPCODE_INFO3 (0xf8100710,
8090 (0_3, VREG, OPRND_SHIFT_0_BIT),
8091 (16_19, VREG, OPRND_SHIFT_0_BIT),
8092 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8093 CSKY_ISA_VDSP),
8094 OP32 ("vshli.s32",
8095 OPCODE_INFO3 (0xfa000710,
8096 (0_3, VREG, OPRND_SHIFT_0_BIT),
8097 (16_19, VREG, OPRND_SHIFT_0_BIT),
8098 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8099 CSKY_ISA_VDSP),
8100 OP32 ("vshli.u8.s",
8101 OPCODE_INFO3 (0xf8000740,
8102 (0_3, VREG, OPRND_SHIFT_0_BIT),
8103 (16_19, VREG, OPRND_SHIFT_0_BIT),
8104 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8105 CSKY_ISA_VDSP),
8106 OP32 ("vshli.u16.s",
8107 OPCODE_INFO3 (0xf8100740,
8108 (0_3, VREG, OPRND_SHIFT_0_BIT),
8109 (16_19, VREG, OPRND_SHIFT_0_BIT),
8110 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8111 CSKY_ISA_VDSP),
8112 OP32 ("vshli.u32.s",
8113 OPCODE_INFO3 (0xfa000740,
8114 (0_3, VREG, OPRND_SHIFT_0_BIT),
8115 (16_19, VREG, OPRND_SHIFT_0_BIT),
8116 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8117 CSKY_ISA_VDSP),
8118 OP32 ("vshli.s8.s",
8119 OPCODE_INFO3 (0xf8000750,
8120 (0_3, VREG, OPRND_SHIFT_0_BIT),
8121 (16_19, VREG, OPRND_SHIFT_0_BIT),
8122 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8123 CSKY_ISA_VDSP),
8124 OP32 ("vshli.s16.s",
8125 OPCODE_INFO3 (0xf8100750,
8126 (0_3, VREG, OPRND_SHIFT_0_BIT),
8127 (16_19, VREG, OPRND_SHIFT_0_BIT),
8128 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8129 CSKY_ISA_VDSP),
8130 OP32 ("vshli.s32.s",
8131 OPCODE_INFO3 (0xfa000750,
8132 (0_3, VREG, OPRND_SHIFT_0_BIT),
8133 (16_19, VREG, OPRND_SHIFT_0_BIT),
8134 (5or21_24, IMM5b_VSH, OPRND_SHIFT_0_BIT)),
8135 CSKY_ISA_VDSP),
b8891f8d
AJ
8136 OP32 ("vcmphs.u8",
8137 OPCODE_INFO3 (0xf8000800,
8138 (0_3, VREG, OPRND_SHIFT_0_BIT),
8139 (16_19, VREG, OPRND_SHIFT_0_BIT),
8140 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8141 CSKY_ISA_VDSP),
8142 OP32 ("vcmphs.u16",
8143 OPCODE_INFO3 (0xf8100800,
8144 (0_3, VREG, OPRND_SHIFT_0_BIT),
8145 (16_19, VREG, OPRND_SHIFT_0_BIT),
8146 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8147 CSKY_ISA_VDSP),
8148 OP32 ("vcmphs.u32",
8149 OPCODE_INFO3 (0xfa000800,
8150 (0_3, VREG, OPRND_SHIFT_0_BIT),
8151 (16_19, VREG, OPRND_SHIFT_0_BIT),
8152 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8153 CSKY_ISA_VDSP),
8154 OP32 ("vcmphs.s8",
8155 OPCODE_INFO3 (0xf8000810,
8156 (0_3, VREG, OPRND_SHIFT_0_BIT),
8157 (16_19, VREG, OPRND_SHIFT_0_BIT),
8158 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8159 CSKY_ISA_VDSP),
8160 OP32 ("vcmphs.s16",
8161 OPCODE_INFO3 (0xf8100810,
8162 (0_3, VREG, OPRND_SHIFT_0_BIT),
8163 (16_19, VREG, OPRND_SHIFT_0_BIT),
8164 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8165 CSKY_ISA_VDSP),
8166 OP32 ("vcmphs.s32",
8167 OPCODE_INFO3 (0xfa000810,
8168 (0_3, VREG, OPRND_SHIFT_0_BIT),
8169 (16_19, VREG, OPRND_SHIFT_0_BIT),
8170 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8171 CSKY_ISA_VDSP),
8172 OP32 ("vcmplt.u8",
8173 OPCODE_INFO3 (0xf8000820,
8174 (0_3, VREG, OPRND_SHIFT_0_BIT),
8175 (16_19, VREG, OPRND_SHIFT_0_BIT),
8176 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8177 CSKY_ISA_VDSP),
8178 OP32 ("vcmplt.u16",
8179 OPCODE_INFO3 (0xf8100820,
8180 (0_3, VREG, OPRND_SHIFT_0_BIT),
8181 (16_19, VREG, OPRND_SHIFT_0_BIT),
8182 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8183 CSKY_ISA_VDSP),
8184 OP32 ("vcmplt.u32",
8185 OPCODE_INFO3 (0xfa000820,
8186 (0_3, VREG, OPRND_SHIFT_0_BIT),
8187 (16_19, VREG, OPRND_SHIFT_0_BIT),
8188 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8189 CSKY_ISA_VDSP),
8190 OP32 ("vcmplt.s8",
8191 OPCODE_INFO3 (0xf8000830,
8192 (0_3, VREG, OPRND_SHIFT_0_BIT),
8193 (16_19, VREG, OPRND_SHIFT_0_BIT),
8194 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8195 CSKY_ISA_VDSP),
8196 OP32 ("vcmplt.s16",
8197 OPCODE_INFO3 (0xf8100830,
8198 (0_3, VREG, OPRND_SHIFT_0_BIT),
8199 (16_19, VREG, OPRND_SHIFT_0_BIT),
8200 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8201 CSKY_ISA_VDSP),
8202 OP32 ("vcmplt.s32",
8203 OPCODE_INFO3 (0xfa000830,
8204 (0_3, VREG, OPRND_SHIFT_0_BIT),
8205 (16_19, VREG, OPRND_SHIFT_0_BIT),
8206 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8207 CSKY_ISA_VDSP),
8208 OP32 ("vcmpne.u8",
8209 OPCODE_INFO3 (0xf8000840,
8210 (0_3, VREG, OPRND_SHIFT_0_BIT),
8211 (16_19, VREG, OPRND_SHIFT_0_BIT),
8212 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8213 CSKY_ISA_VDSP),
8214 OP32 ("vcmpne.u16",
8215 OPCODE_INFO3 (0xf8100840,
8216 (0_3, VREG, OPRND_SHIFT_0_BIT),
8217 (16_19, VREG, OPRND_SHIFT_0_BIT),
8218 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8219 CSKY_ISA_VDSP),
8220 OP32 ("vcmpne.u32",
8221 OPCODE_INFO3 (0xfa000840,
8222 (0_3, VREG, OPRND_SHIFT_0_BIT),
8223 (16_19, VREG, OPRND_SHIFT_0_BIT),
8224 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8225 CSKY_ISA_VDSP),
8226 OP32 ("vcmpne.s8",
8227 OPCODE_INFO3 (0xf8000850,
8228 (0_3, VREG, OPRND_SHIFT_0_BIT),
8229 (16_19, VREG, OPRND_SHIFT_0_BIT),
8230 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8231 CSKY_ISA_VDSP),
8232 OP32 ("vcmpne.s16",
8233 OPCODE_INFO3 (0xf8100850,
8234 (0_3, VREG, OPRND_SHIFT_0_BIT),
8235 (16_19, VREG, OPRND_SHIFT_0_BIT),
8236 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8237 CSKY_ISA_VDSP),
8238 OP32 ("vcmpne.s32",
8239 OPCODE_INFO3 (0xfa000850,
8240 (0_3, VREG, OPRND_SHIFT_0_BIT),
8241 (16_19, VREG, OPRND_SHIFT_0_BIT),
8242 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8243 CSKY_ISA_VDSP),
8244 OP32 ("vmax.u8",
8245 OPCODE_INFO3 (0xf8000900,
8246 (0_3, VREG, OPRND_SHIFT_0_BIT),
8247 (16_19, VREG, OPRND_SHIFT_0_BIT),
8248 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8249 CSKY_ISA_VDSP),
8250 OP32 ("vmax.u16",
8251 OPCODE_INFO3 (0xf8100900,
8252 (0_3, VREG, OPRND_SHIFT_0_BIT),
8253 (16_19, VREG, OPRND_SHIFT_0_BIT),
8254 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8255 CSKY_ISA_VDSP),
8256 OP32 ("vmax.u32",
8257 OPCODE_INFO3 (0xfa000900,
8258 (0_3, VREG, OPRND_SHIFT_0_BIT),
8259 (16_19, VREG, OPRND_SHIFT_0_BIT),
8260 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8261 CSKY_ISA_VDSP),
8262 OP32 ("vmax.s8",
8263 OPCODE_INFO3 (0xf8000910,
8264 (0_3, VREG, OPRND_SHIFT_0_BIT),
8265 (16_19, VREG, OPRND_SHIFT_0_BIT),
8266 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8267 CSKY_ISA_VDSP),
8268 OP32 ("vmax.s16",
8269 OPCODE_INFO3 (0xf8100910,
8270 (0_3, VREG, OPRND_SHIFT_0_BIT),
8271 (16_19, VREG, OPRND_SHIFT_0_BIT),
8272 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8273 CSKY_ISA_VDSP),
8274 OP32 ("vmax.s32",
8275 OPCODE_INFO3 (0xfa000910,
8276 (0_3, VREG, OPRND_SHIFT_0_BIT),
8277 (16_19, VREG, OPRND_SHIFT_0_BIT),
8278 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8279 CSKY_ISA_VDSP),
8280 OP32 ("vmin.u8",
8281 OPCODE_INFO3 (0xf8000920,
8282 (0_3, VREG, OPRND_SHIFT_0_BIT),
8283 (16_19, VREG, OPRND_SHIFT_0_BIT),
8284 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8285 CSKY_ISA_VDSP),
8286 OP32 ("vmin.u16",
8287 OPCODE_INFO3 (0xf8100920,
8288 (0_3, VREG, OPRND_SHIFT_0_BIT),
8289 (16_19, VREG, OPRND_SHIFT_0_BIT),
8290 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8291 CSKY_ISA_VDSP),
8292 OP32 ("vmin.u32",
8293 OPCODE_INFO3 (0xfa000920,
8294 (0_3, VREG, OPRND_SHIFT_0_BIT),
8295 (16_19, VREG, OPRND_SHIFT_0_BIT),
8296 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8297 CSKY_ISA_VDSP),
8298 OP32 ("vmin.s8",
8299 OPCODE_INFO3 (0xf8000930,
8300 (0_3, VREG, OPRND_SHIFT_0_BIT),
8301 (16_19, VREG, OPRND_SHIFT_0_BIT),
8302 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8303 CSKY_ISA_VDSP),
8304 OP32 ("vmin.s16",
8305 OPCODE_INFO3 (0xf8100930,
8306 (0_3, VREG, OPRND_SHIFT_0_BIT),
8307 (16_19, VREG, OPRND_SHIFT_0_BIT),
8308 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8309 CSKY_ISA_VDSP),
8310 OP32 ("vmin.s32",
8311 OPCODE_INFO3 (0xfa000930,
8312 (0_3, VREG, OPRND_SHIFT_0_BIT),
8313 (16_19, VREG, OPRND_SHIFT_0_BIT),
8314 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8315 CSKY_ISA_VDSP),
8316 OP32 ("vcmax.u8",
8317 OPCODE_INFO3 (0xf8000980,
8318 (0_3, VREG, OPRND_SHIFT_0_BIT),
8319 (16_19, VREG, OPRND_SHIFT_0_BIT),
8320 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8321 CSKY_ISA_VDSP),
8322 OP32 ("vcmax.u16",
8323 OPCODE_INFO3 (0xf8100980,
8324 (0_3, VREG, OPRND_SHIFT_0_BIT),
8325 (16_19, VREG, OPRND_SHIFT_0_BIT),
8326 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8327 CSKY_ISA_VDSP),
8328 OP32 ("vcmax.u32",
8329 OPCODE_INFO3 (0xfa000980,
8330 (0_3, VREG, OPRND_SHIFT_0_BIT),
8331 (16_19, VREG, OPRND_SHIFT_0_BIT),
8332 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8333 CSKY_ISA_VDSP),
8334 OP32 ("vcmax.s8",
8335 OPCODE_INFO3 (0xf8000990,
8336 (0_3, VREG, OPRND_SHIFT_0_BIT),
8337 (16_19, VREG, OPRND_SHIFT_0_BIT),
8338 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8339 CSKY_ISA_VDSP),
8340 OP32 ("vcmax.s16",
8341 OPCODE_INFO3 (0xf8100990,
8342 (0_3, VREG, OPRND_SHIFT_0_BIT),
8343 (16_19, VREG, OPRND_SHIFT_0_BIT),
8344 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8345 CSKY_ISA_VDSP),
8346 OP32 ("vcmax.s32",
8347 OPCODE_INFO3 (0xfa000990,
8348 (0_3, VREG, OPRND_SHIFT_0_BIT),
8349 (16_19, VREG, OPRND_SHIFT_0_BIT),
8350 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8351 CSKY_ISA_VDSP),
8352 OP32 ("vcmin.u8",
8353 OPCODE_INFO3 (0xf80009a0,
8354 (0_3, VREG, OPRND_SHIFT_0_BIT),
8355 (16_19, VREG, OPRND_SHIFT_0_BIT),
8356 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8357 CSKY_ISA_VDSP),
8358 OP32 ("vcmin.u16",
8359 OPCODE_INFO3 (0xf81009a0,
8360 (0_3, VREG, OPRND_SHIFT_0_BIT),
8361 (16_19, VREG, OPRND_SHIFT_0_BIT),
8362 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8363 CSKY_ISA_VDSP),
8364 OP32 ("vcmin.u32",
8365 OPCODE_INFO3 (0xfa0009a0,
8366 (0_3, VREG, OPRND_SHIFT_0_BIT),
8367 (16_19, VREG, OPRND_SHIFT_0_BIT),
8368 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8369 CSKY_ISA_VDSP),
8370 OP32 ("vcmin.s8",
8371 OPCODE_INFO3 (0xf80009b0,
8372 (0_3, VREG, OPRND_SHIFT_0_BIT),
8373 (16_19, VREG, OPRND_SHIFT_0_BIT),
8374 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8375 CSKY_ISA_VDSP),
8376 OP32 ("vcmin.s16",
8377 OPCODE_INFO3 (0xf81009b0,
8378 (0_3, VREG, OPRND_SHIFT_0_BIT),
8379 (16_19, VREG, OPRND_SHIFT_0_BIT),
8380 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8381 CSKY_ISA_VDSP),
8382 OP32 ("vcmin.s32",
8383 OPCODE_INFO3 (0xfa0009b0,
8384 (0_3, VREG, OPRND_SHIFT_0_BIT),
8385 (16_19, VREG, OPRND_SHIFT_0_BIT),
8386 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8387 CSKY_ISA_VDSP),
8388 OP32 ("vand.8",
8389 OPCODE_INFO3 (0xf8000a00,
8390 (0_3, VREG, OPRND_SHIFT_0_BIT),
8391 (16_19, VREG, OPRND_SHIFT_0_BIT),
8392 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8393 CSKY_ISA_VDSP),
8394 OP32 ("vand.16",
8395 OPCODE_INFO3 (0xf8100a00,
8396 (0_3, VREG, OPRND_SHIFT_0_BIT),
8397 (16_19, VREG, OPRND_SHIFT_0_BIT),
8398 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8399 CSKY_ISA_VDSP),
8400 OP32 ("vand.32",
8401 OPCODE_INFO3 (0xfa000a00,
8402 (0_3, VREG, OPRND_SHIFT_0_BIT),
8403 (16_19, VREG, OPRND_SHIFT_0_BIT),
8404 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8405 CSKY_ISA_VDSP),
8406 OP32 ("vandn.8",
8407 OPCODE_INFO3 (0xf8000a20,
8408 (0_3, VREG, OPRND_SHIFT_0_BIT),
8409 (16_19, VREG, OPRND_SHIFT_0_BIT),
8410 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8411 CSKY_ISA_VDSP),
8412 OP32 ("vandn.16",
8413 OPCODE_INFO3 (0xf8100a20,
8414 (0_3, VREG, OPRND_SHIFT_0_BIT),
8415 (16_19, VREG, OPRND_SHIFT_0_BIT),
8416 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8417 CSKY_ISA_VDSP),
8418 OP32 ("vandn.32",
8419 OPCODE_INFO3 (0xfa000a20,
8420 (0_3, VREG, OPRND_SHIFT_0_BIT),
8421 (16_19, VREG, OPRND_SHIFT_0_BIT),
8422 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8423 CSKY_ISA_VDSP),
8424 OP32 ("vor.8",
8425 OPCODE_INFO3 (0xf8000a40,
8426 (0_3, VREG, OPRND_SHIFT_0_BIT),
8427 (16_19, VREG, OPRND_SHIFT_0_BIT),
8428 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8429 CSKY_ISA_VDSP),
8430 OP32 ("vor.16",
8431 OPCODE_INFO3 (0xf8100a40,
8432 (0_3, VREG, OPRND_SHIFT_0_BIT),
8433 (16_19, VREG, OPRND_SHIFT_0_BIT),
8434 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8435 CSKY_ISA_VDSP),
8436 OP32 ("vor.32",
8437 OPCODE_INFO3 (0xfa000a40,
8438 (0_3, VREG, OPRND_SHIFT_0_BIT),
8439 (16_19, VREG, OPRND_SHIFT_0_BIT),
8440 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8441 CSKY_ISA_VDSP),
8442 OP32 ("vnor.8",
8443 OPCODE_INFO3 (0xf8000a60,
8444 (0_3, VREG, OPRND_SHIFT_0_BIT),
8445 (16_19, VREG, OPRND_SHIFT_0_BIT),
8446 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8447 CSKY_ISA_VDSP),
8448 OP32 ("vnor.16",
8449 OPCODE_INFO3 (0xf8100a60,
8450 (0_3, VREG, OPRND_SHIFT_0_BIT),
8451 (16_19, VREG, OPRND_SHIFT_0_BIT),
8452 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8453 CSKY_ISA_VDSP),
8454 OP32 ("vnor.32",
8455 OPCODE_INFO3 (0xfa000a60,
8456 (0_3, VREG, OPRND_SHIFT_0_BIT),
8457 (16_19, VREG, OPRND_SHIFT_0_BIT),
8458 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8459 CSKY_ISA_VDSP),
8460 OP32 ("vxor.8",
8461 OPCODE_INFO3 (0xf8000a80,
8462 (0_3, VREG, OPRND_SHIFT_0_BIT),
8463 (16_19, VREG, OPRND_SHIFT_0_BIT),
8464 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8465 CSKY_ISA_VDSP),
8466 OP32 ("vxor.16",
8467 OPCODE_INFO3 (0xf8100a80,
8468 (0_3, VREG, OPRND_SHIFT_0_BIT),
8469 (16_19, VREG, OPRND_SHIFT_0_BIT),
8470 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8471 CSKY_ISA_VDSP),
8472 OP32 ("vxor.32",
8473 OPCODE_INFO3 (0xfa000a80,
8474 (0_3, VREG, OPRND_SHIFT_0_BIT),
8475 (16_19, VREG, OPRND_SHIFT_0_BIT),
8476 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8477 CSKY_ISA_VDSP),
8478 OP32 ("vtst.8",
8479 OPCODE_INFO3 (0xf8000b20,
8480 (0_3, VREG, OPRND_SHIFT_0_BIT),
8481 (16_19, VREG, OPRND_SHIFT_0_BIT),
8482 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8483 CSKY_ISA_VDSP),
8484 OP32 ("vtst.16",
8485 OPCODE_INFO3 (0xf8100b20,
8486 (0_3, VREG, OPRND_SHIFT_0_BIT),
8487 (16_19, VREG, OPRND_SHIFT_0_BIT),
8488 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8489 CSKY_ISA_VDSP),
8490 OP32 ("vtst.32",
8491 OPCODE_INFO3 (0xfa000b20,
8492 (0_3, VREG, OPRND_SHIFT_0_BIT),
8493 (16_19, VREG, OPRND_SHIFT_0_BIT),
8494 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8495 CSKY_ISA_VDSP),
8496 OP32 ("vbpermz.8",
8497 OPCODE_INFO3 (0xf8000f00,
8498 (0_3, VREG, OPRND_SHIFT_0_BIT),
8499 (16_19, VREG, OPRND_SHIFT_0_BIT),
8500 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8501 CSKY_ISA_VDSP),
8502 OP32 ("vbpermz.16",
8503 OPCODE_INFO3 (0xf8100f00,
8504 (0_3, VREG, OPRND_SHIFT_0_BIT),
8505 (16_19, VREG, OPRND_SHIFT_0_BIT),
8506 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8507 CSKY_ISA_VDSP),
8508 OP32 ("vbpermz.32",
8509 OPCODE_INFO3 (0xfa000f00,
8510 (0_3, VREG, OPRND_SHIFT_0_BIT),
8511 (16_19, VREG, OPRND_SHIFT_0_BIT),
8512 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8513 CSKY_ISA_VDSP),
8514 OP32 ("vbperm.8",
8515 OPCODE_INFO3 (0xf8000f20,
8516 (0_3, VREG, OPRND_SHIFT_0_BIT),
8517 (16_19, VREG, OPRND_SHIFT_0_BIT),
8518 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8519 CSKY_ISA_VDSP),
8520 OP32 ("vbperm.16",
8521 OPCODE_INFO3 (0xf8100f20,
8522 (0_3, VREG, OPRND_SHIFT_0_BIT),
8523 (16_19, VREG, OPRND_SHIFT_0_BIT),
8524 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8525 CSKY_ISA_VDSP),
8526 OP32 ("vbperm.32",
8527 OPCODE_INFO3 (0xfa000f20,
8528 (0_3, VREG, OPRND_SHIFT_0_BIT),
8529 (16_19, VREG, OPRND_SHIFT_0_BIT),
8530 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8531 CSKY_ISA_VDSP),
8532 OP32 ("vdch.8",
8533 OPCODE_INFO3 (0xf8000fc0,
8534 (0_3, VREG, OPRND_SHIFT_0_BIT),
8535 (16_19, VREG, OPRND_SHIFT_0_BIT),
8536 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8537 CSKY_ISA_VDSP),
8538 OP32 ("vdch.16",
8539 OPCODE_INFO3 (0xf8100fc0,
8540 (0_3, VREG, OPRND_SHIFT_0_BIT),
8541 (16_19, VREG, OPRND_SHIFT_0_BIT),
8542 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8543 CSKY_ISA_VDSP),
8544 OP32 ("vdch.32",
8545 OPCODE_INFO3 (0xfa000fc0,
8546 (0_3, VREG, OPRND_SHIFT_0_BIT),
8547 (16_19, VREG, OPRND_SHIFT_0_BIT),
8548 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8549 CSKY_ISA_VDSP),
8550 OP32 ("vdcl.8",
8551 OPCODE_INFO3 (0xf8000fe0,
8552 (0_3, VREG, OPRND_SHIFT_0_BIT),
8553 (16_19, VREG, OPRND_SHIFT_0_BIT),
8554 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8555 CSKY_ISA_VDSP),
8556 OP32 ("vdcl.16",
8557 OPCODE_INFO3 (0xf8100fe0,
8558 (0_3, VREG, OPRND_SHIFT_0_BIT),
8559 (16_19, VREG, OPRND_SHIFT_0_BIT),
8560 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8561 CSKY_ISA_VDSP),
8562 OP32 ("vdcl.32",
8563 OPCODE_INFO3 (0xfa000fe0,
8564 (0_3, VREG, OPRND_SHIFT_0_BIT),
8565 (16_19, VREG, OPRND_SHIFT_0_BIT),
8566 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8567 CSKY_ISA_VDSP),
8568 OP32 ("vich.8",
8569 OPCODE_INFO3 (0xf8000f80,
8570 (0_3, VREG, OPRND_SHIFT_0_BIT),
8571 (16_19, VREG, OPRND_SHIFT_0_BIT),
8572 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8573 CSKY_ISA_VDSP),
8574 OP32 ("vich.16",
8575 OPCODE_INFO3 (0xf8100f80,
8576 (0_3, VREG, OPRND_SHIFT_0_BIT),
8577 (16_19, VREG, OPRND_SHIFT_0_BIT),
8578 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8579 CSKY_ISA_VDSP),
8580 OP32 ("vich.32",
8581 OPCODE_INFO3 (0xfa000f80,
8582 (0_3, VREG, OPRND_SHIFT_0_BIT),
8583 (16_19, VREG, OPRND_SHIFT_0_BIT),
8584 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8585 CSKY_ISA_VDSP),
8586 OP32 ("vicl.8",
8587 OPCODE_INFO3 (0xf8000fa0,
8588 (0_3, VREG, OPRND_SHIFT_0_BIT),
8589 (16_19, VREG, OPRND_SHIFT_0_BIT),
8590 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8591 CSKY_ISA_VDSP),
8592 OP32 ("vicl.16",
8593 OPCODE_INFO3 (0xf8100fa0,
8594 (0_3, VREG, OPRND_SHIFT_0_BIT),
8595 (16_19, VREG, OPRND_SHIFT_0_BIT),
8596 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8597 CSKY_ISA_VDSP),
8598 OP32 ("vicl.32",
8599 OPCODE_INFO3 (0xfa000fa0,
8600 (0_3, VREG, OPRND_SHIFT_0_BIT),
8601 (16_19, VREG, OPRND_SHIFT_0_BIT),
8602 (21_24, VREG, OPRND_SHIFT_0_BIT)),
8603 CSKY_ISA_VDSP),
8604
1feede9b
CQ
8605#define OPRND_SHIFT0(mask, type) (mask, type, OPRND_SHIFT_0_BIT)
8606#define OPRND_SHIFT1(mask, type) (mask, type, OPRND_SHIFT_1_BIT)
8607#define OPRND_SHIFT2(mask, type) (mask, type, OPRND_SHIFT_2_BIT)
8608#define OPRND_SHIFT3(mask, type) (mask, type, OPRND_SHIFT_3_BIT)
8609#define OPRND_SHIFT4(mask, type) (mask, type, OPRND_SHIFT_4_BIT)
8610
8611/* The followings are 860 floating instructions. */
8612 OP32 ("fadd.16",
8613 OPCODE_INFO3 (0xf400c800,
8614 OPRND_SHIFT0 (0_4, FREG),
8615 OPRND_SHIFT0 (16_20, FREG),
8616 OPRND_SHIFT0 (21_25, FREG)),
8617 CSKY_ISA_FLOAT_7E60),
8618 OP32 ("faddh",
8619 OPCODE_INFO3 (0xf400c800,
8620 OPRND_SHIFT0 (0_4, FREG),
8621 OPRND_SHIFT0 (16_20, FREG),
8622 OPRND_SHIFT0 (21_25, FREG)),
8623 CSKY_ISA_FLOAT_7E60),
8624 OP32 ("fsub.16",
8625 OPCODE_INFO3 (0xf400c820,
8626 OPRND_SHIFT0 (0_4, FREG),
8627 OPRND_SHIFT0 (16_20, FREG),
8628 OPRND_SHIFT0 (21_25, FREG)),
8629 CSKY_ISA_FLOAT_7E60),
8630 OP32 ("fsubh",
8631 OPCODE_INFO3 (0xf400c820,
8632 OPRND_SHIFT0 (0_4, FREG),
8633 OPRND_SHIFT0 (16_20, FREG),
8634 OPRND_SHIFT0 (21_25, FREG)),
8635 CSKY_ISA_FLOAT_7E60),
8636 OP32 ("fmov.16",
8637 OPCODE_INFO2 (0xf400c880,
8638 OPRND_SHIFT0 (0_4, FREG),
8639 OPRND_SHIFT0 (16_20, FREG)),
8640 CSKY_ISA_FLOAT_7E60),
8641 OP32 ("fmovh",
8642 OPCODE_INFO2 (0xf400c880,
8643 OPRND_SHIFT0 (0_4, FREG),
8644 OPRND_SHIFT0 (16_20, FREG)),
8645 CSKY_ISA_FLOAT_7E60),
8646 OP32 ("fabs.16",
8647 OPCODE_INFO2 (0xf400c8c0,
8648 OPRND_SHIFT0 (0_4, FREG),
8649 OPRND_SHIFT0 (16_20, FREG)),
8650 CSKY_ISA_FLOAT_7E60),
8651 OP32 ("fabsh",
8652 OPCODE_INFO2 (0xf400c8c0,
8653 OPRND_SHIFT0 (0_4, FREG),
8654 OPRND_SHIFT0 (16_20, FREG)),
8655 CSKY_ISA_FLOAT_7E60),
8656 OP32 ("fneg.16",
8657 OPCODE_INFO2 (0xf400c8e0,
8658 OPRND_SHIFT0 (0_4, FREG),
8659 OPRND_SHIFT0 (16_20, FREG)),
8660 CSKY_ISA_FLOAT_7E60),
8661 OP32 ("fnegh",
8662 OPCODE_INFO2 (0xf400c8e0,
8663 OPRND_SHIFT0 (0_4, FREG),
8664 OPRND_SHIFT0 (16_20, FREG)),
8665 CSKY_ISA_FLOAT_7E60),
8666 OP32 ("fcmphsz.16",
8667 OPCODE_INFO1 (0xf400c900,
8668 OPRND_SHIFT0 (16_20, FREG)),
8669 CSKY_ISA_FLOAT_7E60),
8670 OP32 ("fcmpzhsh",
8671 OPCODE_INFO1 (0xf400c900,
8672 OPRND_SHIFT0 (16_20, FREG)),
8673 CSKY_ISA_FLOAT_7E60),
8674 OP32 ("fcmpltz.16",
8675 OPCODE_INFO1 (0xf400c920,
8676 OPRND_SHIFT0 (16_20, FREG)),
8677 CSKY_ISA_FLOAT_7E60),
8678 OP32 ("fcmpzlth",
8679 OPCODE_INFO1 (0xf400c920,
8680 OPRND_SHIFT0 (16_20, FREG)),
8681 CSKY_ISA_FLOAT_7E60),
8682 OP32 ("fcmpnez.16",
8683 OPCODE_INFO1 (0xf400c940,
8684 OPRND_SHIFT0 (16_20, FREG)),
8685 CSKY_ISA_FLOAT_7E60),
8686 OP32 ("fcmpzneh",
8687 OPCODE_INFO1 (0xf400c940,
8688 OPRND_SHIFT0 (16_20, FREG)),
8689 CSKY_ISA_FLOAT_7E60),
8690 OP32 ("fcmpuoz.16",
8691 OPCODE_INFO1 (0xf400c960,
8692 OPRND_SHIFT0 (16_20, FREG)),
8693 CSKY_ISA_FLOAT_7E60),
8694 OP32 ("fcmpzuoh",
8695 OPCODE_INFO1 (0xf400c960,
8696 OPRND_SHIFT0 (16_20, FREG)),
8697 CSKY_ISA_FLOAT_7E60),
8698 OP32 ("fcmphs.16",
8699 OPCODE_INFO2 (0xf400c980,
8700 OPRND_SHIFT0 (16_20, FREG),
8701 OPRND_SHIFT0 (21_25, FREG)),
8702 CSKY_ISA_FLOAT_7E60),
8703 OP32 ("fcmphsh",
8704 OPCODE_INFO2 (0xf400c980,
8705 OPRND_SHIFT0 (16_20, FREG),
8706 OPRND_SHIFT0 (21_25, FREG)),
8707 CSKY_ISA_FLOAT_7E60),
8708 OP32 ("fcmplt.16",
8709 OPCODE_INFO2 (0xf400c9a0,
8710 OPRND_SHIFT0 (16_20, FREG),
8711 OPRND_SHIFT0 (21_25, FREG)),
8712 CSKY_ISA_FLOAT_7E60),
8713 OP32 ("fcmpne.16",
8714 OPCODE_INFO2 (0xf400c9c0,
8715 OPRND_SHIFT0 (16_20, FREG),
8716 OPRND_SHIFT0 (21_25, FREG)),
8717 CSKY_ISA_FLOAT_7E60),
8718 OP32 ("fcmpneh",
8719 OPCODE_INFO2 (0xf400c9c0,
8720 OPRND_SHIFT0 (16_20, FREG),
8721 OPRND_SHIFT0 (21_25, FREG)),
8722 CSKY_ISA_FLOAT_7E60),
8723 OP32 ("fcmpuo.16",
8724 OPCODE_INFO2 (0xf400c9e0,
8725 OPRND_SHIFT0 (16_20, FREG),
8726 OPRND_SHIFT0 (21_25, FREG)),
8727 CSKY_ISA_FLOAT_7E60),
8728 OP32 ("fcmpuoh",
8729 OPCODE_INFO2 (0xf400c9e0,
8730 OPRND_SHIFT0 (16_20, FREG),
8731 OPRND_SHIFT0 (21_25, FREG)),
8732 CSKY_ISA_FLOAT_7E60),
8733 OP32 ("fmaxnm.16",
8734 OPCODE_INFO3 (0xf400cd00,
8735 OPRND_SHIFT0 (0_4, FREG),
8736 OPRND_SHIFT0 (16_20, FREG),
8737 OPRND_SHIFT0 (21_25, FREG)),
8738 CSKY_ISA_FLOAT_7E60),
8739 OP32 ("fminnm.16",
8740 OPCODE_INFO3 (0xf400cd20,
8741 OPRND_SHIFT0 (0_4, FREG),
8742 OPRND_SHIFT0 (16_20, FREG),
8743 OPRND_SHIFT0 (21_25, FREG)),
8744 CSKY_ISA_FLOAT_7E60),
8745 OP32 ("fcmphz.16",
8746 OPCODE_INFO1 (0xf400cd40,
8747 OPRND_SHIFT0 (16_20, FREG)),
8748 CSKY_ISA_FLOAT_7E60),
8749 OP32 ("fcmplsz.16",
8750 OPCODE_INFO1 (0xf400cd60,
8751 OPRND_SHIFT0 (16_20, FREG)),
8752 CSKY_ISA_FLOAT_7E60),
8753 OP32 ("fmul.16",
8754 OPCODE_INFO3 (0xf400ca00,
8755 OPRND_SHIFT0 (0_4, FREG),
8756 OPRND_SHIFT0 (16_20, FREG),
8757 OPRND_SHIFT0 (21_25, FREG)),
8758 CSKY_ISA_FLOAT_7E60),
8759 OP32 ("fmulh",
8760 OPCODE_INFO3 (0xf400ca00,
8761 OPRND_SHIFT0 (0_4, FREG),
8762 OPRND_SHIFT0 (16_20, FREG),
8763 OPRND_SHIFT0 (21_25, FREG)),
8764 CSKY_ISA_FLOAT_7E60),
8765 OP32 ("fnmul.16",
8766 OPCODE_INFO3 (0xf400ca20,
8767 OPRND_SHIFT0 (0_4, FREG),
8768 OPRND_SHIFT0 (16_20, FREG),
8769 OPRND_SHIFT0 (21_25, FREG)),
8770 CSKY_ISA_FLOAT_7E60),
8771 OP32 ("fnmulh",
8772 OPCODE_INFO3 (0xf400ca20,
8773 OPRND_SHIFT0 (0_4, FREG),
8774 OPRND_SHIFT0 (16_20, FREG),
8775 OPRND_SHIFT0 (21_25, FREG)),
8776 CSKY_ISA_FLOAT_7E60),
8777 OP32 ("fmula.16",
8778 OPCODE_INFO3 (0xf400ca80,
8779 OPRND_SHIFT0 (0_4, FREG),
8780 OPRND_SHIFT0 (16_20, FREG),
8781 OPRND_SHIFT0 (21_25, FREG)),
8782 CSKY_ISA_FLOAT_7E60),
8783 OP32 ("fmach",
8784 OPCODE_INFO3 (0xf400ca80,
8785 OPRND_SHIFT0 (0_4, FREG),
8786 OPRND_SHIFT0 (16_20, FREG),
8787 OPRND_SHIFT0 (21_25, FREG)),
8788 CSKY_ISA_FLOAT_7E60),
8789 OP32 ("fnmuls.16",
8790 OPCODE_INFO3 (0xf400caa0,
8791 OPRND_SHIFT0 (0_4, FREG),
8792 OPRND_SHIFT0 (16_20, FREG),
8793 OPRND_SHIFT0 (21_25, FREG)),
8794 CSKY_ISA_FLOAT_7E60),
8795 OP32 ("fmsch",
8796 OPCODE_INFO3 (0xf400caa0,
8797 OPRND_SHIFT0 (0_4, FREG),
8798 OPRND_SHIFT0 (16_20, FREG),
8799 OPRND_SHIFT0 (21_25, FREG)),
8800 CSKY_ISA_FLOAT_7E60),
8801 OP32 ("fmuls.16",
8802 OPCODE_INFO3 (0xf400cac0,
8803 OPRND_SHIFT0 (0_4, FREG),
8804 OPRND_SHIFT0 (16_20, FREG),
8805 OPRND_SHIFT0 (21_25, FREG)),
8806 CSKY_ISA_FLOAT_7E60),
8807 OP32 ("fnmach",
8808 OPCODE_INFO3 (0xf400cac0,
8809 OPRND_SHIFT0 (0_4, FREG),
8810 OPRND_SHIFT0 (16_20, FREG),
8811 OPRND_SHIFT0 (21_25, FREG)),
8812 CSKY_ISA_FLOAT_7E60),
8813 OP32 ("fnmula.16",
8814 OPCODE_INFO3 (0xf400cae0,
8815 OPRND_SHIFT0 (0_4, FREG),
8816 OPRND_SHIFT0 (16_20, FREG),
8817 OPRND_SHIFT0 (21_25, FREG)),
8818 CSKY_ISA_FLOAT_7E60),
8819 OP32 ("fnmsch",
8820 OPCODE_INFO3 (0xf400cae0,
8821 OPRND_SHIFT0 (0_4, FREG),
8822 OPRND_SHIFT0 (16_20, FREG),
8823 OPRND_SHIFT0 (21_25, FREG)),
8824 CSKY_ISA_FLOAT_7E60),
8825 OP32 ("ffmula.16",
8826 OPCODE_INFO3 (0xf400ce00,
8827 OPRND_SHIFT0 (0_4, FREG),
8828 OPRND_SHIFT0 (16_20, FREG),
8829 OPRND_SHIFT0 (21_25, FREG)),
8830 CSKY_ISA_FLOAT_7E60),
8831 OP32 ("ffmuls.16",
8832 OPCODE_INFO3 (0xf400ce20,
8833 OPRND_SHIFT0 (0_4, FREG),
8834 OPRND_SHIFT0 (16_20, FREG),
8835 OPRND_SHIFT0 (21_25, FREG)),
8836 CSKY_ISA_FLOAT_7E60),
8837 OP32 ("ffnmula.16",
8838 OPCODE_INFO3 (0xf400ce40,
8839 OPRND_SHIFT0 (0_4, FREG),
8840 OPRND_SHIFT0 (16_20, FREG),
8841 OPRND_SHIFT0 (21_25, FREG)),
8842 CSKY_ISA_FLOAT_7E60),
8843 OP32 ("ffnmuls.16",
8844 OPCODE_INFO3 (0xf400ce60,
8845 OPRND_SHIFT0 (0_4, FREG),
8846 OPRND_SHIFT0 (16_20, FREG),
8847 OPRND_SHIFT0 (21_25, FREG)),
8848 CSKY_ISA_FLOAT_7E60),
8849 OP32 ("fdivh",
8850 OPCODE_INFO3 (0xf400cb00,
8851 OPRND_SHIFT0 (0_4, FREG),
8852 OPRND_SHIFT0 (16_20, FREG),
8853 OPRND_SHIFT0 (21_25, FREG)),
8854 CSKY_ISA_FLOAT_7E60),
8855 OP32 ("fdiv.16",
8856 OPCODE_INFO3 (0xf400cb00,
8857 OPRND_SHIFT0 (0_4, FREG),
8858 OPRND_SHIFT0 (16_20, FREG),
8859 OPRND_SHIFT0 (21_25, FREG)),
8860 CSKY_ISA_FLOAT_7E60),
8861 OP32 ("freciph",
8862 OPCODE_INFO2 (0xf400cb20,
8863 OPRND_SHIFT0 (0_4, FREG),
8864 OPRND_SHIFT0 (16_20, FREG)),
8865 CSKY_ISA_FLOAT_7E60),
8866 OP32 ("frecip.16",
8867 OPCODE_INFO2 (0xf400cb20,
8868 OPRND_SHIFT0 (0_4, FREG),
8869 OPRND_SHIFT0 (16_20, FREG)),
8870 CSKY_ISA_FLOAT_7E60),
8871 OP32 ("fsqrt.16",
8872 OPCODE_INFO2 (0xf400cb40,
8873 OPRND_SHIFT0 (0_4, FREG),
8874 OPRND_SHIFT0 (16_20, FREG)),
8875 CSKY_ISA_FLOAT_7E60),
8876 OP32 ("fsqrth",
8877 OPCODE_INFO2 (0xf400cb40,
8878 OPRND_SHIFT0 (0_4, FREG),
8879 OPRND_SHIFT0 (16_20, FREG)),
8880 CSKY_ISA_FLOAT_7E60),
8881 OP32 ("fsel.16",
8882 OPCODE_INFO3 (0xf400cf20,
8883 OPRND_SHIFT0 (0_4, FREG),
8884 OPRND_SHIFT0 (16_20, FREG),
8885 OPRND_SHIFT0 (21_25, FREG)),
8886 CSKY_ISA_FLOAT_7E60),
8887 /* Single floating. */
8888 OP32 ("fadd.32",
8889 OPCODE_INFO3 (0xf4000000,
8890 OPRND_SHIFT0 (0_4, FREG),
8891 OPRND_SHIFT0 (16_20, FREG),
8892 OPRND_SHIFT0 (21_25, FREG)),
8893 CSKY_ISA_FLOAT_7E60),
8894 OP32 ("fadds",
8895 OPCODE_INFO3 (0xf4000000,
8896 OPRND_SHIFT0 (0_4, FREG),
8897 OPRND_SHIFT0 (16_20, FREG),
8898 OPRND_SHIFT0 (21_25, FREG)),
8899 CSKY_ISA_FLOAT_7E60),
8900 OP32 ("fsub.32",
8901 OPCODE_INFO3 (0xf4000020,
8902 OPRND_SHIFT0 (0_4, FREG),
8903 OPRND_SHIFT0 (16_20, FREG),
8904 OPRND_SHIFT0 (21_25, FREG)),
8905 CSKY_ISA_FLOAT_7E60),
8906 OP32 ("fsubs",
8907 OPCODE_INFO3 (0xf4000020,
8908 OPRND_SHIFT0 (0_4, FREG),
8909 OPRND_SHIFT0 (16_20, FREG),
8910 OPRND_SHIFT0 (21_25, FREG)),
8911 CSKY_ISA_FLOAT_7E60),
8912 OP32 ("fmov.32",
8913 OPCODE_INFO2 (0xf4000080,
8914 OPRND_SHIFT0 (0_4, FREG),
8915 OPRND_SHIFT0 (16_20, FREG)),
8916 CSKY_ISA_FLOAT_7E60),
8917 OP32 ("fmovs",
8918 OPCODE_INFO2 (0xf4000080,
8919 OPRND_SHIFT0 (0_4, FREG),
8920 OPRND_SHIFT0 (16_20, FREG)),
8921 CSKY_ISA_FLOAT_7E60),
8922 OP32 ("fabs.32",
8923 OPCODE_INFO2 (0xf40000c0,
8924 OPRND_SHIFT0 (0_4, FREG),
8925 OPRND_SHIFT0 (16_20, FREG)),
8926 CSKY_ISA_FLOAT_7E60),
8927 OP32 ("fabss",
8928 OPCODE_INFO2 (0xf40000c0,
8929 OPRND_SHIFT0 (0_4, FREG),
8930 OPRND_SHIFT0 (16_20, FREG)),
8931 CSKY_ISA_FLOAT_7E60),
8932 OP32 ("fneg.32",
8933 OPCODE_INFO2 (0xf40000e0,
8934 OPRND_SHIFT0 (0_4, FREG),
8935 OPRND_SHIFT0 (16_20, FREG)),
8936 CSKY_ISA_FLOAT_7E60),
8937 OP32 ("fnegs",
8938 OPCODE_INFO2 (0xf40000e0,
8939 OPRND_SHIFT0 (0_4, FREG),
8940 OPRND_SHIFT0 (16_20, FREG)),
8941 CSKY_ISA_FLOAT_7E60),
8942 OP32 ("fcmphsz.32",
8943 OPCODE_INFO1 (0xf4000100,
8944 OPRND_SHIFT0 (16_20, FREG)),
8945 CSKY_ISA_FLOAT_7E60),
8946 OP32 ("fcmpzhss",
8947 OPCODE_INFO1 (0xf4000100,
8948 OPRND_SHIFT0 (16_20, FREG)),
8949 CSKY_ISA_FLOAT_7E60),
8950 OP32 ("fcmpltz.32",
8951 OPCODE_INFO1 (0xf4000120,
8952 OPRND_SHIFT0 (16_20, FREG)),
8953 CSKY_ISA_FLOAT_7E60),
8954 OP32 ("fcmpzlts",
8955 OPCODE_INFO1 (0xf4000120,
8956 OPRND_SHIFT0 (16_20, FREG)),
8957 CSKY_ISA_FLOAT_7E60),
8958 OP32 ("fcmpnez.32",
8959 OPCODE_INFO1 (0xf4000140,
8960 OPRND_SHIFT0 (16_20, FREG)),
8961 CSKY_ISA_FLOAT_7E60),
8962 OP32 ("fcmpznes",
8963 OPCODE_INFO1 (0xf4000140,
8964 OPRND_SHIFT0 (16_20, FREG)),
8965 CSKY_ISA_FLOAT_7E60),
8966 OP32 ("fcmpuoz.32",
8967 OPCODE_INFO1 (0xf4000160,
8968 OPRND_SHIFT0 (16_20, FREG)),
8969 CSKY_ISA_FLOAT_7E60),
8970 OP32 ("fcmpzuos",
8971 OPCODE_INFO1 (0xf4000160,
8972 OPRND_SHIFT0 (16_20, FREG)),
8973 CSKY_ISA_FLOAT_7E60),
8974 OP32 ("fcmphs.32",
8975 OPCODE_INFO2 (0xf4000180,
8976 OPRND_SHIFT0 (16_20, FREG),
8977 OPRND_SHIFT0 (21_25, FREG)),
8978 CSKY_ISA_FLOAT_7E60),
8979 OP32 ("fcmphss",
8980 OPCODE_INFO2 (0xf4000180,
8981 OPRND_SHIFT0 (16_20, FREG),
8982 OPRND_SHIFT0 (21_25, FREG)),
8983 CSKY_ISA_FLOAT_7E60),
8984 OP32 ("fcmplt.32",
8985 OPCODE_INFO2 (0xf40001a0,
8986 OPRND_SHIFT0 (16_20, FREG),
8987 OPRND_SHIFT0 (21_25, FREG)),
8988 CSKY_ISA_FLOAT_7E60),
8989 OP32 ("fcmplts",
8990 OPCODE_INFO2 (0xf40001a0,
8991 OPRND_SHIFT0 (16_20, FREG),
8992 OPRND_SHIFT0 (21_25, FREG)),
8993 CSKY_ISA_FLOAT_7E60),
8994 OP32 ("fcmpne.32",
8995 OPCODE_INFO2 (0xf40001c0,
8996 OPRND_SHIFT0 (16_20, FREG),
8997 OPRND_SHIFT0 (21_25, FREG)),
8998 CSKY_ISA_FLOAT_7E60),
8999 OP32 ("fcmpnes",
9000 OPCODE_INFO2 (0xf40001c0,
9001 OPRND_SHIFT0 (16_20, FREG),
9002 OPRND_SHIFT0 (21_25, FREG)),
9003 CSKY_ISA_FLOAT_7E60),
9004 OP32 ("fcmpuo.32",
9005 OPCODE_INFO2 (0xf40001e0,
9006 OPRND_SHIFT0 (16_20, FREG),
9007 OPRND_SHIFT0 (21_25, FREG)),
9008 CSKY_ISA_FLOAT_7E60),
9009 OP32 ("fcmpuos",
9010 OPCODE_INFO2 (0xf40001e0,
9011 OPRND_SHIFT0 (16_20, FREG),
9012 OPRND_SHIFT0 (21_25, FREG)),
9013 CSKY_ISA_FLOAT_7E60),
9014 OP32 ("fmaxnm.32",
9015 OPCODE_INFO3 (0xf4000500,
9016 OPRND_SHIFT0 (0_4, FREG),
9017 OPRND_SHIFT0 (16_20, FREG),
9018 OPRND_SHIFT0 (21_25, FREG)),
9019 CSKY_ISA_FLOAT_7E60),
9020 OP32 ("fminnm.32",
9021 OPCODE_INFO3 (0xf4000520,
9022 OPRND_SHIFT0 (0_4, FREG),
9023 OPRND_SHIFT0 (16_20, FREG),
9024 OPRND_SHIFT0 (21_25, FREG)),
9025 CSKY_ISA_FLOAT_7E60),
9026 OP32 ("fcmphz.32",
9027 OPCODE_INFO1 (0xf4000540,
9028 OPRND_SHIFT0 (16_20, FREG)),
9029 CSKY_ISA_FLOAT_7E60),
9030 OP32 ("fcmplsz.32",
9031 OPCODE_INFO1 (0xf4000560,
9032 OPRND_SHIFT0 (16_20, FREG)),
9033 CSKY_ISA_FLOAT_7E60),
9034 OP32 ("fmul.32",
9035 OPCODE_INFO3 (0xf4000200,
9036 OPRND_SHIFT0 (0_4, FREG),
9037 OPRND_SHIFT0 (16_20, FREG),
9038 OPRND_SHIFT0 (21_25, FREG)),
9039 CSKY_ISA_FLOAT_7E60),
9040 OP32 ("fmuls",
9041 OPCODE_INFO3 (0xf4000200,
9042 OPRND_SHIFT0 (0_4, FREG),
9043 OPRND_SHIFT0 (16_20, FREG),
9044 OPRND_SHIFT0 (21_25, FREG)),
9045 CSKY_ISA_FLOAT_7E60),
9046 OP32 ("fnmul.32",
9047 OPCODE_INFO3 (0xf4000220,
9048 OPRND_SHIFT0 (0_4, FREG),
9049 OPRND_SHIFT0 (16_20, FREG),
9050 OPRND_SHIFT0 (21_25, FREG)),
9051 CSKY_ISA_FLOAT_7E60),
9052 OP32 ("fnmuls",
9053 OPCODE_INFO3 (0xf4000220,
9054 OPRND_SHIFT0 (0_4, FREG),
9055 OPRND_SHIFT0 (16_20, FREG),
9056 OPRND_SHIFT0 (21_25, FREG)),
9057 CSKY_ISA_FLOAT_7E60),
9058 OP32 ("fmula.32",
9059 OPCODE_INFO3 (0xf4000280,
9060 OPRND_SHIFT0 (0_4, FREG),
9061 OPRND_SHIFT0 (16_20, FREG),
9062 OPRND_SHIFT0 (21_25, FREG)),
9063 CSKY_ISA_FLOAT_7E60),
9064 OP32 ("fmacs",
9065 OPCODE_INFO3 (0xf4000280,
9066 OPRND_SHIFT0 (0_4, FREG),
9067 OPRND_SHIFT0 (16_20, FREG),
9068 OPRND_SHIFT0 (21_25, FREG)),
9069 CSKY_ISA_FLOAT_7E60),
9070 OP32 ("fnmuls.32",
9071 OPCODE_INFO3 (0xf40002a0,
9072 OPRND_SHIFT0 (0_4, FREG),
9073 OPRND_SHIFT0 (16_20, FREG),
9074 OPRND_SHIFT0 (21_25, FREG)),
9075 CSKY_ISA_FLOAT_7E60),
9076 OP32 ("fmscs",
9077 OPCODE_INFO3 (0xf40002a0,
9078 OPRND_SHIFT0 (0_4, FREG),
9079 OPRND_SHIFT0 (16_20, FREG),
9080 OPRND_SHIFT0 (21_25, FREG)),
9081 CSKY_ISA_FLOAT_7E60),
9082 OP32 ("fmuls.32",
9083 OPCODE_INFO3 (0xf40002c0,
9084 OPRND_SHIFT0 (0_4, FREG),
9085 OPRND_SHIFT0 (16_20, FREG),
9086 OPRND_SHIFT0 (21_25, FREG)),
9087 CSKY_ISA_FLOAT_7E60),
9088 OP32 ("fnmacs",
9089 OPCODE_INFO3 (0xf40002c0,
9090 OPRND_SHIFT0 (0_4, FREG),
9091 OPRND_SHIFT0 (16_20, FREG),
9092 OPRND_SHIFT0 (21_25, FREG)),
9093 CSKY_ISA_FLOAT_7E60),
9094 OP32 ("fnmula.32",
9095 OPCODE_INFO3 (0xf40002e0,
9096 OPRND_SHIFT0 (0_4, FREG),
9097 OPRND_SHIFT0 (16_20, FREG),
9098 OPRND_SHIFT0 (21_25, FREG)),
9099 CSKY_ISA_FLOAT_7E60),
9100 OP32 ("fnmscs",
9101 OPCODE_INFO3 (0xf40002e0,
9102 OPRND_SHIFT0 (0_4, FREG),
9103 OPRND_SHIFT0 (16_20, FREG),
9104 OPRND_SHIFT0 (21_25, FREG)),
9105 CSKY_ISA_FLOAT_7E60),
9106 OP32 ("ffmula.32",
9107 OPCODE_INFO3 (0xf4000600,
9108 OPRND_SHIFT0 (0_4, FREG),
9109 OPRND_SHIFT0 (16_20, FREG),
9110 OPRND_SHIFT0 (21_25, FREG)),
9111 CSKY_ISA_FLOAT_7E60),
9112 OP32 ("ffmuls.32",
9113 OPCODE_INFO3 (0xf4000620,
9114 OPRND_SHIFT0 (0_4, FREG),
9115 OPRND_SHIFT0 (16_20, FREG),
9116 OPRND_SHIFT0 (21_25, FREG)),
9117 CSKY_ISA_FLOAT_7E60),
9118 OP32 ("ffnmula.32",
9119 OPCODE_INFO3 (0xf4000640,
9120 OPRND_SHIFT0 (0_4, FREG),
9121 OPRND_SHIFT0 (16_20, FREG),
9122 OPRND_SHIFT0 (21_25, FREG)),
9123 CSKY_ISA_FLOAT_7E60),
9124 OP32 ("ffnmuls.32",
9125 OPCODE_INFO3 (0xf4000660,
9126 OPRND_SHIFT0 (0_4, FREG),
9127 OPRND_SHIFT0 (16_20, FREG),
9128 OPRND_SHIFT0 (21_25, FREG)),
9129 CSKY_ISA_FLOAT_7E60),
9130 OP32 ("fdiv.32",
9131 OPCODE_INFO3 (0xf4000300,
9132 OPRND_SHIFT0 (0_4, FREG),
9133 OPRND_SHIFT0 (16_20, FREG),
9134 OPRND_SHIFT0 (21_25, FREG)),
9135 CSKY_ISA_FLOAT_7E60),
9136 OP32 ("fdivs",
9137 OPCODE_INFO3 (0xf4000300,
9138 OPRND_SHIFT0 (0_4, FREG),
9139 OPRND_SHIFT0 (16_20, FREG),
9140 OPRND_SHIFT0 (21_25, FREG)),
9141 CSKY_ISA_FLOAT_7E60),
9142 OP32 ("frecip.32",
9143 OPCODE_INFO2 (0xf4000320,
9144 OPRND_SHIFT0 (0_4, FREG),
9145 OPRND_SHIFT0 (16_20, FREG)),
9146 CSKY_ISA_FLOAT_7E60),
9147 OP32 ("frecips",
9148 OPCODE_INFO2 (0xf4000320,
9149 OPRND_SHIFT0 (0_4, FREG),
9150 OPRND_SHIFT0 (16_20, FREG)),
9151 CSKY_ISA_FLOAT_7E60),
9152 OP32 ("fsqrt.32",
9153 OPCODE_INFO2 (0xf4000340,
9154 OPRND_SHIFT0 (0_4, FREG),
9155 OPRND_SHIFT0 (16_20, FREG)),
9156 CSKY_ISA_FLOAT_7E60),
9157 OP32 ("fsqrts",
9158 OPCODE_INFO2 (0xf4000340,
9159 OPRND_SHIFT0 (0_4, FREG),
9160 OPRND_SHIFT0 (16_20, FREG)),
9161 CSKY_ISA_FLOAT_7E60),
9162 OP32 ("fsel.32",
9163 OPCODE_INFO3 (0xf4000720,
9164 OPRND_SHIFT0 (0_4, FREG),
9165 OPRND_SHIFT0 (16_20, FREG),
9166 OPRND_SHIFT0 (21_25, FREG)),
9167 CSKY_ISA_FLOAT_7E60),
9168 /* Double floating. */
9169 OP32 ("fadd.64",
9170 OPCODE_INFO3 (0xf4000800,
9171 OPRND_SHIFT0 (0_4, FREG),
9172 OPRND_SHIFT0 (16_20, FREG),
9173 OPRND_SHIFT0 (21_25, FREG)),
9174 CSKY_ISA_FLOAT_7E60),
9175 OP32 ("faddd",
9176 OPCODE_INFO3 (0xf4000800,
9177 OPRND_SHIFT0 (0_4, FREG),
9178 OPRND_SHIFT0 (16_20, FREG),
9179 OPRND_SHIFT0 (21_25, FREG)),
9180 CSKY_ISA_FLOAT_7E60),
9181 OP32 ("fsub.64",
9182 OPCODE_INFO3 (0xf4000820,
9183 OPRND_SHIFT0 (0_4, FREG),
9184 OPRND_SHIFT0 (16_20, FREG),
9185 OPRND_SHIFT0 (21_25, FREG)),
9186 CSKY_ISA_FLOAT_7E60),
9187 OP32 ("fsubd",
9188 OPCODE_INFO3 (0xf4000820,
9189 OPRND_SHIFT0 (0_4, FREG),
9190 OPRND_SHIFT0 (16_20, FREG),
9191 OPRND_SHIFT0 (21_25, FREG)),
9192 CSKY_ISA_FLOAT_7E60),
9193 OP32 ("fmov.64",
9194 OPCODE_INFO2 (0xf4000880,
9195 OPRND_SHIFT0 (0_4, FREG),
9196 OPRND_SHIFT0 (16_20, FREG)),
9197 CSKY_ISA_FLOAT_7E60),
9198 OP32 ("fmovd",
9199 OPCODE_INFO2 (0xf4000880,
9200 OPRND_SHIFT0 (0_4, FREG),
9201 OPRND_SHIFT0 (16_20, FREG)),
9202 CSKY_ISA_FLOAT_7E60),
9203 OP32 ("fmovx.32",
9204 OPCODE_INFO2 (0xf40008a0,
9205 OPRND_SHIFT0 (0_4, FREG),
9206 OPRND_SHIFT0 (16_20, FREG)),
9207 CSKY_ISA_FLOAT_7E60),
9208 OP32 ("fabs.64",
9209 OPCODE_INFO2 (0xf40008c0,
9210 OPRND_SHIFT0 (0_4, FREG),
9211 OPRND_SHIFT0 (16_20, FREG)),
9212 CSKY_ISA_FLOAT_7E60),
9213 OP32 ("fabsd",
9214 OPCODE_INFO2 (0xf40008c0,
9215 OPRND_SHIFT0 (0_4, FREG),
9216 OPRND_SHIFT0 (16_20, FREG)),
9217 CSKY_ISA_FLOAT_7E60),
9218 OP32 ("fneg.64",
9219 OPCODE_INFO2 (0xf40008e0,
9220 OPRND_SHIFT0 (0_4, FREG),
9221 OPRND_SHIFT0 (16_20, FREG)),
9222 CSKY_ISA_FLOAT_7E60),
9223 OP32 ("fnegd",
9224 OPCODE_INFO2 (0xf40008e0,
9225 OPRND_SHIFT0 (0_4, FREG),
9226 OPRND_SHIFT0 (16_20, FREG)),
9227 CSKY_ISA_FLOAT_7E60),
9228 OP32 ("fcmphsz.64",
9229 OPCODE_INFO1 (0xf4000900,
9230 OPRND_SHIFT0 (16_20, FREG)),
9231 CSKY_ISA_FLOAT_7E60),
9232 OP32 ("fcmpzhsd",
9233 OPCODE_INFO1 (0xf4000900,
9234 OPRND_SHIFT0 (16_20, FREG)),
9235 CSKY_ISA_FLOAT_7E60),
9236 OP32 ("fcmpltz.64",
9237 OPCODE_INFO1 (0xf4000920,
9238 OPRND_SHIFT0 (16_20, FREG)),
9239 CSKY_ISA_FLOAT_7E60),
9240 OP32 ("fcmpzltd",
9241 OPCODE_INFO1 (0xf4000920,
9242 OPRND_SHIFT0 (16_20, FREG)),
9243 CSKY_ISA_FLOAT_7E60),
9244 OP32 ("fcmpnez.64",
9245 OPCODE_INFO1 (0xf4000940,
9246 OPRND_SHIFT0 (16_20, FREG)),
9247 CSKY_ISA_FLOAT_7E60),
9248 OP32 ("fcmpzned",
9249 OPCODE_INFO1 (0xf4000940,
9250 OPRND_SHIFT0 (16_20, FREG)),
9251 CSKY_ISA_FLOAT_7E60),
9252 OP32 ("fcmpuoz.64",
9253 OPCODE_INFO1 (0xf4000960,
9254 OPRND_SHIFT0 (16_20, FREG)),
9255 CSKY_ISA_FLOAT_7E60),
9256 OP32 ("fcmpzuod",
9257 OPCODE_INFO1 (0xf4000960,
9258 OPRND_SHIFT0 (16_20, FREG)),
9259 CSKY_ISA_FLOAT_7E60),
9260 OP32 ("fcmphs.64",
9261 OPCODE_INFO2 (0xf4000980,
9262 OPRND_SHIFT0 (16_20, FREG),
9263 OPRND_SHIFT0 (21_25, FREG)),
9264 CSKY_ISA_FLOAT_7E60),
9265 OP32 ("fcmphsd",
9266 OPCODE_INFO2 (0xf4000980,
9267 OPRND_SHIFT0 (16_20, FREG),
9268 OPRND_SHIFT0 (21_25, FREG)),
9269 CSKY_ISA_FLOAT_7E60),
9270 OP32 ("fcmplt.64",
9271 OPCODE_INFO2 (0xf40009a0,
9272 OPRND_SHIFT0 (16_20, FREG),
9273 OPRND_SHIFT0 (21_25, FREG)),
9274 CSKY_ISA_FLOAT_7E60),
9275 OP32 ("fcmpltd",
9276 OPCODE_INFO2 (0xf40009a0,
9277 OPRND_SHIFT0 (16_20, FREG),
9278 OPRND_SHIFT0 (21_25, FREG)),
9279 CSKY_ISA_FLOAT_7E60),
9280 OP32 ("fcmpne.64",
9281 OPCODE_INFO2 (0xf40009c0,
9282 OPRND_SHIFT0 (16_20, FREG),
9283 OPRND_SHIFT0 (21_25, FREG)),
9284 CSKY_ISA_FLOAT_7E60),
9285 OP32 ("fcmpned",
9286 OPCODE_INFO2 (0xf40009c0,
9287 OPRND_SHIFT0 (16_20, FREG),
9288 OPRND_SHIFT0 (21_25, FREG)),
9289 CSKY_ISA_FLOAT_7E60),
9290 OP32 ("fcmpuo.64",
9291 OPCODE_INFO2 (0xf40009e0,
9292 OPRND_SHIFT0 (16_20, FREG),
9293 OPRND_SHIFT0 (21_25, FREG)),
9294 CSKY_ISA_FLOAT_7E60),
9295 OP32 ("fcmpuod",
9296 OPCODE_INFO2 (0xf40009e0,
9297 OPRND_SHIFT0 (16_20, FREG),
9298 OPRND_SHIFT0 (21_25, FREG)),
9299 CSKY_ISA_FLOAT_7E60),
9300 OP32 ("fmaxnm.64",
9301 OPCODE_INFO3 (0xf4000d00,
9302 OPRND_SHIFT0 (0_4, FREG),
9303 OPRND_SHIFT0 (16_20, FREG),
9304 OPRND_SHIFT0 (21_25, FREG)),
9305 CSKY_ISA_FLOAT_7E60),
9306 OP32 ("fminnm.64",
9307 OPCODE_INFO3 (0xf4000d20,
9308 OPRND_SHIFT0 (0_4, FREG),
9309 OPRND_SHIFT0 (16_20, FREG),
9310 OPRND_SHIFT0 (21_25, FREG)),
9311 CSKY_ISA_FLOAT_7E60),
9312 OP32 ("fcmphz.64",
9313 OPCODE_INFO1 (0xf4000d40,
9314 OPRND_SHIFT0 (16_20, FREG)),
9315 CSKY_ISA_FLOAT_7E60),
9316 OP32 ("fcmplsz.64",
9317 OPCODE_INFO1 (0xf4000d60,
9318 OPRND_SHIFT0 (16_20, FREG)),
9319 CSKY_ISA_FLOAT_7E60),
9320 OP32 ("fmul.64",
9321 OPCODE_INFO3 (0xf4000a00,
9322 OPRND_SHIFT0 (0_4, FREG),
9323 OPRND_SHIFT0 (16_20, FREG),
9324 OPRND_SHIFT0 (21_25, FREG)),
9325 CSKY_ISA_FLOAT_7E60),
9326 OP32 ("fmuld",
9327 OPCODE_INFO3 (0xf4000a00,
9328 OPRND_SHIFT0 (0_4, FREG),
9329 OPRND_SHIFT0 (16_20, FREG),
9330 OPRND_SHIFT0 (21_25, FREG)),
9331 CSKY_ISA_FLOAT_7E60),
9332 OP32 ("fnmul.64",
9333 OPCODE_INFO3 (0xf4000a20,
9334 OPRND_SHIFT0 (0_4, FREG),
9335 OPRND_SHIFT0 (16_20, FREG),
9336 OPRND_SHIFT0 (21_25, FREG)),
9337 CSKY_ISA_FLOAT_7E60),
9338 OP32 ("fnmuld",
9339 OPCODE_INFO3 (0xf4000a20,
9340 OPRND_SHIFT0 (0_4, FREG),
9341 OPRND_SHIFT0 (16_20, FREG),
9342 OPRND_SHIFT0 (21_25, FREG)),
9343 CSKY_ISA_FLOAT_7E60),
9344 OP32 ("fmula.64",
9345 OPCODE_INFO3 (0xf4000a80,
9346 OPRND_SHIFT0 (0_4, FREG),
9347 OPRND_SHIFT0 (16_20, FREG),
9348 OPRND_SHIFT0 (21_25, FREG)),
9349 CSKY_ISA_FLOAT_7E60),
9350 OP32 ("fmacd",
9351 OPCODE_INFO3 (0xf4000a80,
9352 OPRND_SHIFT0 (0_4, FREG),
9353 OPRND_SHIFT0 (16_20, FREG),
9354 OPRND_SHIFT0 (21_25, FREG)),
9355 CSKY_ISA_FLOAT_7E60),
9356 OP32 ("fnmuls.64",
9357 OPCODE_INFO3 (0xf4000aa0,
9358 OPRND_SHIFT0 (0_4, FREG),
9359 OPRND_SHIFT0 (16_20, FREG),
9360 OPRND_SHIFT0 (21_25, FREG)),
9361 CSKY_ISA_FLOAT_7E60),
9362 OP32 ("fmscd",
9363 OPCODE_INFO3 (0xf4000aa0,
9364 OPRND_SHIFT0 (0_4, FREG),
9365 OPRND_SHIFT0 (16_20, FREG),
9366 OPRND_SHIFT0 (21_25, FREG)),
9367 CSKY_ISA_FLOAT_7E60),
9368 OP32 ("fmuls.64",
9369 OPCODE_INFO3 (0xf4000ac0,
9370 OPRND_SHIFT0 (0_4, FREG),
9371 OPRND_SHIFT0 (16_20, FREG),
9372 OPRND_SHIFT0 (21_25, FREG)),
9373 CSKY_ISA_FLOAT_7E60),
9374 OP32 ("fnmacd",
9375 OPCODE_INFO3 (0xf4000ac0,
9376 OPRND_SHIFT0 (0_4, FREG),
9377 OPRND_SHIFT0 (16_20, FREG),
9378 OPRND_SHIFT0 (21_25, FREG)),
9379 CSKY_ISA_FLOAT_7E60),
9380 OP32 ("fnmula.64",
9381 OPCODE_INFO3 (0xf4000ae0,
9382 OPRND_SHIFT0 (0_4, FREG),
9383 OPRND_SHIFT0 (16_20, FREG),
9384 OPRND_SHIFT0 (21_25, FREG)),
9385 CSKY_ISA_FLOAT_7E60),
9386 OP32 ("fnmscd",
9387 OPCODE_INFO3 (0xf4000ae0,
9388 OPRND_SHIFT0 (0_4, FREG),
9389 OPRND_SHIFT0 (16_20, FREG),
9390 OPRND_SHIFT0 (21_25, FREG)),
9391 CSKY_ISA_FLOAT_7E60),
9392 OP32 ("ffmula.64",
9393 OPCODE_INFO3 (0xf4000e00,
9394 OPRND_SHIFT0 (0_4, FREG),
9395 OPRND_SHIFT0 (16_20, FREG),
9396 OPRND_SHIFT0 (21_25, FREG)),
9397 CSKY_ISA_FLOAT_7E60),
9398 OP32 ("ffmuls.64",
9399 OPCODE_INFO3 (0xf4000e20,
9400 OPRND_SHIFT0 (0_4, FREG),
9401 OPRND_SHIFT0 (16_20, FREG),
9402 OPRND_SHIFT0 (21_25, FREG)),
9403 CSKY_ISA_FLOAT_7E60),
9404 OP32 ("ffnmula.64",
9405 OPCODE_INFO3 (0xf4000e40,
9406 OPRND_SHIFT0 (0_4, FREG),
9407 OPRND_SHIFT0 (16_20, FREG),
9408 OPRND_SHIFT0 (21_25, FREG)),
9409 CSKY_ISA_FLOAT_7E60),
9410 OP32 ("ffnmuls.64",
9411 OPCODE_INFO3 (0xf4000e60,
9412 OPRND_SHIFT0 (0_4, FREG),
9413 OPRND_SHIFT0 (16_20, FREG),
9414 OPRND_SHIFT0 (21_25, FREG)),
9415 CSKY_ISA_FLOAT_7E60),
9416 OP32 ("fdiv.64",
9417 OPCODE_INFO3 (0xf4000b00,
9418 OPRND_SHIFT0 (0_4, FREG),
9419 OPRND_SHIFT0 (16_20, FREG),
9420 OPRND_SHIFT0 (21_25, FREG)),
9421 CSKY_ISA_FLOAT_7E60),
9422 OP32 ("fdivd",
9423 OPCODE_INFO3 (0xf4000b00,
9424 OPRND_SHIFT0 (0_4, FREG),
9425 OPRND_SHIFT0 (16_20, FREG),
9426 OPRND_SHIFT0 (21_25, FREG)),
9427 CSKY_ISA_FLOAT_7E60),
9428 OP32 ("frecip.64",
9429 OPCODE_INFO2 (0xf4000b20,
9430 OPRND_SHIFT0 (0_4, FREG),
9431 OPRND_SHIFT0 (16_20, FREG)),
9432 CSKY_ISA_FLOAT_7E60),
9433 OP32 ("frecipd",
9434 OPCODE_INFO2 (0xf4000b20,
9435 OPRND_SHIFT0 (0_4, FREG),
9436 OPRND_SHIFT0 (16_20, FREG)),
9437 CSKY_ISA_FLOAT_7E60),
9438 OP32 ("fsqrt.64",
9439 OPCODE_INFO2 (0xf4000b40,
9440 OPRND_SHIFT0 (0_4, FREG),
9441 OPRND_SHIFT0 (16_20, FREG)),
9442 CSKY_ISA_FLOAT_7E60),
9443 OP32 ("fsqrtd",
9444 OPCODE_INFO2 (0xf4000b40,
9445 OPRND_SHIFT0 (0_4, FREG),
9446 OPRND_SHIFT0 (16_20, FREG)),
9447 CSKY_ISA_FLOAT_7E60),
9448 OP32 ("fins.32",
9449 OPCODE_INFO2 (0xf4000360,
9450 OPRND_SHIFT0 (0_4, FREG),
9451 OPRND_SHIFT0 (16_20, FREG)),
9452 CSKY_ISA_FLOAT_7E60),
9453 OP32 ("fsel.64",
9454 OPCODE_INFO3 (0xf4000f20,
9455 OPRND_SHIFT0 (0_4, FREG),
9456 OPRND_SHIFT0 (16_20, FREG),
9457 OPRND_SHIFT0 (21_25, FREG)),
9458 CSKY_ISA_FLOAT_7E60),
9459 /* SIMD floating. */
9460 OP32 ("fadd.f32",
9461 OPCODE_INFO3 (0xf4001000,
9462 OPRND_SHIFT0 (0_4, FREG),
9463 OPRND_SHIFT0 (16_20, FREG),
9464 OPRND_SHIFT0 (21_25, FREG)),
9465 CSKY_ISA_FLOAT_7E60),
9466 OP32 ("faddm",
9467 OPCODE_INFO3 (0xf4001000,
9468 OPRND_SHIFT0 (0_4, FREG),
9469 OPRND_SHIFT0 (16_20, FREG),
9470 OPRND_SHIFT0 (21_25, FREG)),
9471 CSKY_ISA_FLOAT_7E60),
9472 OP32 ("fsub.f32",
9473 OPCODE_INFO3 (0xf4001020,
9474 OPRND_SHIFT0 (0_4, FREG),
9475 OPRND_SHIFT0 (16_20, FREG),
9476 OPRND_SHIFT0 (21_25, FREG)),
9477 CSKY_ISA_FLOAT_7E60),
9478 OP32 ("fsubm",
9479 OPCODE_INFO3 (0xf4001020,
9480 OPRND_SHIFT0 (0_4, FREG),
9481 OPRND_SHIFT0 (16_20, FREG),
9482 OPRND_SHIFT0 (21_25, FREG)),
9483 CSKY_ISA_FLOAT_7E60),
9484 OP32 ("fmov.f32",
9485 OPCODE_INFO2 (0xf4001080,
9486 OPRND_SHIFT0 (0_4, FREG),
9487 OPRND_SHIFT0 (16_20, FREG)),
9488 CSKY_ISA_FLOAT_7E60),
9489 OP32 ("fmovm",
9490 OPCODE_INFO2 (0xf4001080,
9491 OPRND_SHIFT0 (0_4, FREG),
9492 OPRND_SHIFT0 (16_20, FREG)),
9493 CSKY_ISA_FLOAT_7E60),
9494 OP32 ("fabs.f32",
9495 OPCODE_INFO2 (0xf40010c0,
9496 OPRND_SHIFT0 (0_4, FREG),
9497 OPRND_SHIFT0 (16_20, FREG)),
9498 CSKY_ISA_FLOAT_7E60),
9499 OP32 ("fabsm",
9500 OPCODE_INFO2 (0xf40010c0,
9501 OPRND_SHIFT0 (0_4, FREG),
9502 OPRND_SHIFT0 (16_20, FREG)),
9503 CSKY_ISA_FLOAT_7E60),
9504 OP32 ("fneg.f32",
9505 OPCODE_INFO2 (0xf40010e0,
9506 OPRND_SHIFT0 (0_4, FREG),
9507 OPRND_SHIFT0 (16_20, FREG)),
9508 CSKY_ISA_FLOAT_7E60),
9509 OP32 ("fnegm",
9510 OPCODE_INFO2 (0xf40010e0,
9511 OPRND_SHIFT0 (0_4, FREG),
9512 OPRND_SHIFT0 (16_20, FREG)),
9513 CSKY_ISA_FLOAT_7E60),
9514 OP32 ("fmul.f32",
9515 OPCODE_INFO3 (0xf4001200,
9516 OPRND_SHIFT0 (0_4, FREG),
9517 OPRND_SHIFT0 (16_20, FREG),
9518 OPRND_SHIFT0 (21_25, FREG)),
9519 CSKY_ISA_FLOAT_7E60),
9520 OP32 ("fmulm",
9521 OPCODE_INFO3 (0xf4001200,
9522 OPRND_SHIFT0 (0_4, FREG),
9523 OPRND_SHIFT0 (16_20, FREG),
9524 OPRND_SHIFT0 (21_25, FREG)),
9525 CSKY_ISA_FLOAT_7E60),
9526 OP32 ("fmula.f32",
9527 OPCODE_INFO3 (0xf4001280,
9528 OPRND_SHIFT0 (0_4, FREG),
9529 OPRND_SHIFT0 (16_20, FREG),
9530 OPRND_SHIFT0 (21_25, FREG)),
9531 CSKY_ISA_FLOAT_7E60),
9532 OP32 ("fmuls.f32",
9533 OPCODE_INFO3 (0xf40012c0,
9534 OPRND_SHIFT0 (0_4, FREG),
9535 OPRND_SHIFT0 (16_20, FREG),
9536 OPRND_SHIFT0 (21_25, FREG)),
9537 CSKY_ISA_FLOAT_7E60),
9538 OP32 ("fnmacm",
9539 OPCODE_INFO3 (0xf40012c0,
9540 OPRND_SHIFT0 (0_4, FREG),
9541 OPRND_SHIFT0 (16_20, FREG),
9542 OPRND_SHIFT0 (21_25, FREG)),
9543 CSKY_ISA_FLOAT_7E60),
9544 /* floating formate. */
9545 OP32 ("fftoi.f32.s32.rn",
9546 OPCODE_INFO2 (0xf4001800,
9547 OPRND_SHIFT0 (0_4, FREG),
9548 OPRND_SHIFT0 (16_20, FREG)),
9549 CSKY_ISA_FLOAT_7E60),
9550 OP32 ("fstosi.rn",
9551 OPCODE_INFO2 (0xf4001800,
9552 OPRND_SHIFT0 (0_4, FREG),
9553 OPRND_SHIFT0 (16_20, FREG)),
9554 CSKY_ISA_FLOAT_7E60),
9555 OP32 ("fftoi.f32.s32.rz",
9556 OPCODE_INFO2 (0xf4001820,
9557 OPRND_SHIFT0 (0_4, FREG),
9558 OPRND_SHIFT0 (16_20, FREG)),
9559 CSKY_ISA_FLOAT_7E60),
9560 OP32 ("fstosi.rz",
9561 OPCODE_INFO2 (0xf4001820,
9562 OPRND_SHIFT0 (0_4, FREG),
9563 OPRND_SHIFT0 (16_20, FREG)),
9564 CSKY_ISA_FLOAT_7E60),
9565 OP32 ("fftoi.f32.s32.rpi",
9566 OPCODE_INFO2 (0xf4001840,
9567 OPRND_SHIFT0 (0_4, FREG),
9568 OPRND_SHIFT0 (16_20, FREG)),
9569 CSKY_ISA_FLOAT_7E60),
9570 OP32 ("fstosi.rpi",
9571 OPCODE_INFO2 (0xf4001840,
9572 OPRND_SHIFT0 (0_4, FREG),
9573 OPRND_SHIFT0 (16_20, FREG)),
9574 CSKY_ISA_FLOAT_7E60),
9575 OP32 ("fftoi.f32.s32.rni",
9576 OPCODE_INFO2 (0xf4001860,
9577 OPRND_SHIFT0 (0_4, FREG),
9578 OPRND_SHIFT0 (16_20, FREG)),
9579 CSKY_ISA_FLOAT_7E60),
9580 OP32 ("fstosi.rni",
9581 OPCODE_INFO2 (0xf4001860,
9582 OPRND_SHIFT0 (0_4, FREG),
9583 OPRND_SHIFT0 (16_20, FREG)),
9584 CSKY_ISA_FLOAT_7E60),
9585 OP32 ("fftoi.f32.u32.rn",
9586 OPCODE_INFO2 (0xf4001880,
9587 OPRND_SHIFT0 (0_4, FREG),
9588 OPRND_SHIFT0 (16_20, FREG)),
9589 CSKY_ISA_FLOAT_7E60),
9590 OP32 ("fstoui.rn",
9591 OPCODE_INFO2 (0xf4001880,
9592 OPRND_SHIFT0 (0_4, FREG),
9593 OPRND_SHIFT0 (16_20, FREG)),
9594 CSKY_ISA_FLOAT_7E60),
9595 OP32 ("fftoi.f32.u32.rz",
9596 OPCODE_INFO2 (0xf40018a0,
9597 OPRND_SHIFT0 (0_4, FREG),
9598 OPRND_SHIFT0 (16_20, FREG)),
9599 CSKY_ISA_FLOAT_7E60),
9600 OP32 ("fstoui.rz",
9601 OPCODE_INFO2 (0xf40018a0,
9602 OPRND_SHIFT0 (0_4, FREG),
9603 OPRND_SHIFT0 (16_20, FREG)),
9604 CSKY_ISA_FLOAT_7E60),
9605 OP32 ("fftoi.f32.u32.rpi",
9606 OPCODE_INFO2 (0xf40018c0,
9607 OPRND_SHIFT0 (0_4, FREG),
9608 OPRND_SHIFT0 (16_20, FREG)),
9609 CSKY_ISA_FLOAT_7E60),
9610 OP32 ("fstoui.rpi",
9611 OPCODE_INFO2 (0xf40018c0,
9612 OPRND_SHIFT0 (0_4, FREG),
9613 OPRND_SHIFT0 (16_20, FREG)),
9614 CSKY_ISA_FLOAT_7E60),
9615 OP32 ("fftoi.f32.u32.rni",
9616 OPCODE_INFO2 (0xf40018e0,
9617 OPRND_SHIFT0 (0_4, FREG),
9618 OPRND_SHIFT0 (16_20, FREG)),
9619 CSKY_ISA_FLOAT_7E60),
9620 OP32 ("fstoui.rni",
9621 OPCODE_INFO2 (0xf40018e0,
9622 OPRND_SHIFT0 (0_4, FREG),
9623 OPRND_SHIFT0 (16_20, FREG)),
9624 CSKY_ISA_FLOAT_7E60),
9625 OP32 ("fftoi.f64.s32.rn",
9626 OPCODE_INFO2 (0xf4001900,
9627 OPRND_SHIFT0 (0_4, FREG),
9628 OPRND_SHIFT0 (16_20, FREG)),
9629 CSKY_ISA_FLOAT_7E60),
9630 OP32 ("fdtosi.rn",
9631 OPCODE_INFO2 (0xf4001900,
9632 OPRND_SHIFT0 (0_4, FREG),
9633 OPRND_SHIFT0 (16_20, FREG)),
9634 CSKY_ISA_FLOAT_7E60),
9635 OP32 ("fftoi.f64.s32.rz",
9636 OPCODE_INFO2 (0xf4001920,
9637 OPRND_SHIFT0 (0_4, FREG),
9638 OPRND_SHIFT0 (16_20, FREG)),
9639 CSKY_ISA_FLOAT_7E60),
9640 OP32 ("fdtosi.rz",
9641 OPCODE_INFO2 (0xf4001920,
9642 OPRND_SHIFT0 (0_4, FREG),
9643 OPRND_SHIFT0 (16_20, FREG)),
9644 CSKY_ISA_FLOAT_7E60),
9645 OP32 ("fftoi.f64.s32.rpi",
9646 OPCODE_INFO2 (0xf4001940,
9647 OPRND_SHIFT0 (0_4, FREG),
9648 OPRND_SHIFT0 (16_20, FREG)),
9649 CSKY_ISA_FLOAT_7E60),
9650 OP32 ("fdtosi.rpi",
9651 OPCODE_INFO2 (0xf4001940,
9652 OPRND_SHIFT0 (0_4, FREG),
9653 OPRND_SHIFT0 (16_20, FREG)),
9654 CSKY_ISA_FLOAT_7E60),
9655 OP32 ("fftoi.f64.s32.rni",
9656 OPCODE_INFO2 (0xf4001960,
9657 OPRND_SHIFT0 (0_4, FREG),
9658 OPRND_SHIFT0 (16_20, FREG)),
9659 CSKY_ISA_FLOAT_7E60),
9660 OP32 ("fdtosi.rni",
9661 OPCODE_INFO2 (0xf4001960,
9662 OPRND_SHIFT0 (0_4, FREG),
9663 OPRND_SHIFT0 (16_20, FREG)),
9664 CSKY_ISA_FLOAT_7E60),
9665 OP32 ("fftoi.f64.u32.rn",
9666 OPCODE_INFO2 (0xf4001980,
9667 OPRND_SHIFT0 (0_4, FREG),
9668 OPRND_SHIFT0 (16_20, FREG)),
9669 CSKY_ISA_FLOAT_7E60),
9670 OP32 ("fdtoui.rn",
9671 OPCODE_INFO2 (0xf4001980,
9672 OPRND_SHIFT0 (0_4, FREG),
9673 OPRND_SHIFT0 (16_20, FREG)),
9674 CSKY_ISA_FLOAT_7E60),
9675 OP32 ("fftoi.f64.u32.rz",
9676 OPCODE_INFO2 (0xf40019a0,
9677 OPRND_SHIFT0 (0_4, FREG),
9678 OPRND_SHIFT0 (16_20, FREG)),
9679 CSKY_ISA_FLOAT_7E60),
9680 OP32 ("fdtoui.rz",
9681 OPCODE_INFO2 (0xf40019a0,
9682 OPRND_SHIFT0 (0_4, FREG),
9683 OPRND_SHIFT0 (16_20, FREG)),
9684 CSKY_ISA_FLOAT_7E60),
9685 OP32 ("fftoi.f64.u32.rpi",
9686 OPCODE_INFO2 (0xf40019c0,
9687 OPRND_SHIFT0 (0_4, FREG),
9688 OPRND_SHIFT0 (16_20, FREG)),
9689 CSKY_ISA_FLOAT_7E60),
9690 OP32 ("fdtoui.rpi",
9691 OPCODE_INFO2 (0xf40019c0,
9692 OPRND_SHIFT0 (0_4, FREG),
9693 OPRND_SHIFT0 (16_20, FREG)),
9694 CSKY_ISA_FLOAT_7E60),
9695 OP32 ("fftoi.f64.u32.rni",
9696 OPCODE_INFO2 (0xf40019e0,
9697 OPRND_SHIFT0 (0_4, FREG),
9698 OPRND_SHIFT0 (16_20, FREG)),
9699 CSKY_ISA_FLOAT_7E60),
9700 OP32 ("fdtoui.rni",
9701 OPCODE_INFO2 (0xf40019e0,
9702 OPRND_SHIFT0 (0_4, FREG),
9703 OPRND_SHIFT0 (16_20, FREG)),
9704 CSKY_ISA_FLOAT_7E60),
9705 OP32 ("fftoi.f16.s32.rn",
9706 OPCODE_INFO2 (0xf4001c00,
9707 OPRND_SHIFT0 (0_4, FREG),
9708 OPRND_SHIFT0 (16_20, FREG)),
9709 CSKY_ISA_FLOAT_7E60),
9710 OP32 ("fhtosi.rn",
9711 OPCODE_INFO2 (0xf4001c00,
9712 OPRND_SHIFT0 (0_4, FREG),
9713 OPRND_SHIFT0 (16_20, FREG)),
9714 CSKY_ISA_FLOAT_7E60),
9715 OP32 ("fftoi.f16.s32.rz",
9716 OPCODE_INFO2 (0xf4001c20,
9717 OPRND_SHIFT0 (0_4, FREG),
9718 OPRND_SHIFT0 (16_20, FREG)),
9719 CSKY_ISA_FLOAT_7E60),
9720 OP32 ("fhtosi.rz",
9721 OPCODE_INFO2 (0xf4001c20,
9722 OPRND_SHIFT0 (0_4, FREG),
9723 OPRND_SHIFT0 (16_20, FREG)),
9724 CSKY_ISA_FLOAT_7E60),
9725 OP32 ("fftoi.f16.s32.rpi",
9726 OPCODE_INFO2 (0xf4001c40,
9727 OPRND_SHIFT0 (0_4, FREG),
9728 OPRND_SHIFT0 (16_20, FREG)),
9729 CSKY_ISA_FLOAT_7E60),
9730 OP32 ("fhtosi.rpi",
9731 OPCODE_INFO2 (0xf4001c40,
9732 OPRND_SHIFT0 (0_4, FREG),
9733 OPRND_SHIFT0 (16_20, FREG)),
9734 CSKY_ISA_FLOAT_7E60),
9735 OP32 ("fftoi.f16.s32.rni",
9736 OPCODE_INFO2 (0xf4001c60,
9737 OPRND_SHIFT0 (0_4, FREG),
9738 OPRND_SHIFT0 (16_20, FREG)),
9739 CSKY_ISA_FLOAT_7E60),
9740 OP32 ("fhtosi.rni",
9741 OPCODE_INFO2 (0xf4001c60,
9742 OPRND_SHIFT0 (0_4, FREG),
9743 OPRND_SHIFT0 (16_20, FREG)),
9744 CSKY_ISA_FLOAT_7E60),
9745 OP32 ("fftoi.f16.u32.rn",
9746 OPCODE_INFO2 (0xf4001c80,
9747 OPRND_SHIFT0 (0_4, FREG),
9748 OPRND_SHIFT0 (16_20, FREG)),
9749 CSKY_ISA_FLOAT_7E60),
9750 OP32 ("fhtoui.rn",
9751 OPCODE_INFO2 (0xf4001c80,
9752 OPRND_SHIFT0 (0_4, FREG),
9753 OPRND_SHIFT0 (16_20, FREG)),
9754 CSKY_ISA_FLOAT_7E60),
9755 OP32 ("fftoi.f16.u32.rz",
9756 OPCODE_INFO2 (0xf4001ca0,
9757 OPRND_SHIFT0 (0_4, FREG),
9758 OPRND_SHIFT0 (16_20, FREG)),
9759 CSKY_ISA_FLOAT_7E60),
9760 OP32 ("fhtoui.rz",
9761 OPCODE_INFO2 (0xf4001ca0,
9762 OPRND_SHIFT0 (0_4, FREG),
9763 OPRND_SHIFT0 (16_20, FREG)),
9764 CSKY_ISA_FLOAT_7E60),
9765 OP32 ("fftoi.f16.u32.rpi",
9766 OPCODE_INFO2 (0xf4001cc0,
9767 OPRND_SHIFT0 (0_4, FREG),
9768 OPRND_SHIFT0 (16_20, FREG)),
9769 CSKY_ISA_FLOAT_7E60),
9770 OP32 ("fhtoui.rpi",
9771 OPCODE_INFO2 (0xf4001cc0,
9772 OPRND_SHIFT0 (0_4, FREG),
9773 OPRND_SHIFT0 (16_20, FREG)),
9774 CSKY_ISA_FLOAT_7E60),
9775 OP32 ("fftoi.f16.u32.rni",
9776 OPCODE_INFO2 (0xf4001ce0,
9777 OPRND_SHIFT0 (0_4, FREG),
9778 OPRND_SHIFT0 (16_20, FREG)),
9779 CSKY_ISA_FLOAT_7E60),
9780 OP32 ("fhtoui.rni",
9781 OPCODE_INFO2 (0xf4001ce0,
9782 OPRND_SHIFT0 (0_4, FREG),
9783 OPRND_SHIFT0 (16_20, FREG)),
9784 CSKY_ISA_FLOAT_7E60),
9785 OP32 ("fhtos",
9786 OPCODE_INFO2 (0xf4001a40,
9787 OPRND_SHIFT0 (0_4, FREG),
9788 OPRND_SHIFT0 (16_20, FREG)),
9789 CSKY_ISA_FLOAT_7E60),
9790 OP32 ("fhtos.f16",
9791 OPCODE_INFO2 (0xf4001a40,
9792 OPRND_SHIFT0 (0_4, FREG),
9793 OPRND_SHIFT0 (16_20, FREG)),
9794 CSKY_ISA_FLOAT_7E60),
9795 OP32 ("fstoh",
9796 OPCODE_INFO2 (0xf4001a60,
9797 OPRND_SHIFT0 (0_4, FREG),
9798 OPRND_SHIFT0 (16_20, FREG)),
9799 CSKY_ISA_FLOAT_7E60),
9800 OP32 ("fstoh.f32",
9801 OPCODE_INFO2 (0xf4001a60,
9802 OPRND_SHIFT0 (0_4, FREG),
9803 OPRND_SHIFT0 (16_20, FREG)),
9804 CSKY_ISA_FLOAT_7E60),
9805 OP32 ("fdtos",
9806 OPCODE_INFO2 (0xf4001ac0,
9807 OPRND_SHIFT0 (0_4, FREG),
9808 OPRND_SHIFT0 (16_20, FREG)),
9809 CSKY_ISA_FLOAT_7E60),
9810 OP32 ("fdtos.f64",
9811 OPCODE_INFO2 (0xf4001ac0,
9812 OPRND_SHIFT0 (0_4, FREG),
9813 OPRND_SHIFT0 (16_20, FREG)),
9814 CSKY_ISA_FLOAT_7E60),
9815 OP32 ("fstod",
9816 OPCODE_INFO2 (0xf4001ae0,
9817 OPRND_SHIFT0 (0_4, FREG),
9818 OPRND_SHIFT0 (16_20, FREG)),
9819 CSKY_ISA_FLOAT_7E60),
9820 OP32 ("fmfvrh",
9821 OPCODE_INFO2 (0xf4001b00,
9822 OPRND_SHIFT0 (0_4, AREG),
9823 OPRND_SHIFT0 (16_20, FREG)),
9824 CSKY_ISA_FLOAT_7E60),
9825 OP32 ("fmfvr.32.1",
9826 OPCODE_INFO2 (0xf4001b20,
9827 OPRND_SHIFT0 (0_4, AREG),
9828 OPRND_SHIFT0 (16_20, FREG)),
9829 CSKY_ISA_FLOAT_7E60),
9830 OP32 ("fmfvrl",
9831 OPCODE_INFO2 (0xf4001b20,
9832 OPRND_SHIFT0 (0_4, AREG),
9833 OPRND_SHIFT0 (16_20, FREG)),
9834 CSKY_ISA_FLOAT_7E60),
9835 OP32 ("fmtvr.16",
9836 OPCODE_INFO2 (0xf4001fa0,
9837 OPRND_SHIFT0 (0_4, FREG),
9838 OPRND_SHIFT0 (16_20, AREG)),
9839 CSKY_ISA_FLOAT_7E60),
9840 OP32 ("fmfvr.16",
9841 OPCODE_INFO2 (0xf4001f20,
9842 OPRND_SHIFT0 (0_4, AREG),
9843 OPRND_SHIFT0 (16_20, FREG)),
9844 CSKY_ISA_FLOAT_7E60),
9845 OP32 ("fmtvrh",
9846 OPCODE_INFO2 (0xf4001b40,
9847 OPRND_SHIFT0 (0_4, FREG),
9848 OPRND_SHIFT0 (16_20, AREG)),
9849 CSKY_ISA_FLOAT_7E60),
9850 OP32 ("fmtvr.32.1",
9851 OPCODE_INFO2 (0xf4001b60,
9852 OPRND_SHIFT0 (0_4, FREG),
9853 OPRND_SHIFT0 (16_20, AREG)),
9854 CSKY_ISA_FLOAT_7E60),
9855 OP32 ("fmtvrl",
9856 OPCODE_INFO2 (0xf4001b60,
9857 OPRND_SHIFT0 (0_4, FREG),
9858 OPRND_SHIFT0 (16_20, AREG)),
9859 CSKY_ISA_FLOAT_7E60),
9860 OP32 ("fmtvr.64",
9861 OPCODE_INFO3 (0xf4001f80,
9862 OPRND_SHIFT0 (0_4, FREG),
9863 OPRND_SHIFT0 (16_20, AREG),
9864 OPRND_SHIFT0 (21_25, AREG)),
9865 CSKY_ISA_FLOAT_7E60),
9866 OP32 ("fmfvr.64",
9867 OPCODE_INFO3 (0xf4001f00,
9868 OPRND_SHIFT0 (0_4, AREG),
9869 OPRND_SHIFT0 (21_25, AREG),
9870 OPRND_SHIFT0 (16_20, FREG)),
9871 CSKY_ISA_FLOAT_7E60),
9872 OP32 ("fmtvr.32.2",
9873 OPCODE_INFO3 (0xf4001fc0,
9874 OPRND_SHIFT0 (0_4, FREG),
9875 OPRND_SHIFT0 (16_20, AREG),
9876 OPRND_SHIFT0 (21_25, AREG)),
9877 CSKY_ISA_FLOAT_7E60),
9878 OP32 ("fmfvr.32.2",
9879 OPCODE_INFO3 (0xf4001f40,
9880 OPRND_SHIFT0 (0_4, AREG),
9881 OPRND_SHIFT0 (21_25, AREG),
9882 OPRND_SHIFT0 (16_20, FREG)),
9883 CSKY_ISA_FLOAT_7E60),
9884 /* flsu. */
9885 OP32 ("fld.16",
9886 SOPCODE_INFO2 (0xf4002300,
9887 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
9888 BRACKET_OPRND ((16_20,
9889 AREG,
9890 OPRND_SHIFT_0_BIT),
9891 (4_7or21_24,
9892 IMM_FLDST,
9893 OPRND_SHIFT_1_BIT))),
9894 CSKY_ISA_FLOAT_7E60),
9895 OP32 ("fldh",
9896 SOPCODE_INFO2 (0xf4002300,
9897 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
9898 BRACKET_OPRND ((16_20,
9899 AREG,
9900 OPRND_SHIFT_0_BIT),
9901 (4_7or21_24,
9902 IMM_FLDST,
9903 OPRND_SHIFT_1_BIT))),
9904 CSKY_ISA_FLOAT_7E60),
9905 OP32_WITH_WORK ("fst.16",
9906 SOPCODE_INFO2 (0xf4002700,
9907 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
9908 BRACKET_OPRND ((16_20,
9909 AREG,
9910 OPRND_SHIFT_0_BIT),
9911 (4_7or21_24,
9912 IMM_FLDST,
9913 OPRND_SHIFT_1_BIT))),
9914 CSKY_ISA_FLOAT_7E60,
9915 float_work_fpuv3_fstore),
9916 OP32_WITH_WORK ("fsth",
9917 SOPCODE_INFO2 (0xf4002700,
9918 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
9919 BRACKET_OPRND ((16_20,
9920 AREG,
9921 OPRND_SHIFT_0_BIT),
9922 (4_7or21_24,
9923 IMM_FLDST,
9924 OPRND_SHIFT_1_BIT))),
9925 CSKY_ISA_FLOAT_7E60,
9926 float_work_fpuv3_fstore),
9927 OP32 ("fldr16",
9928 SOPCODE_INFO2 (0xf4002b00,
9929 (0_4, FREG, OPRND_SHIFT_0_BIT),
9930 BRACKET_OPRND ((16_20,
9931 AREG,
9932 OPRND_SHIFT_0_BIT),
9933 (5_6or21_25,
9934 AREG_WITH_LSHIFT_FPU,
9935 OPRND_SHIFT_0_BIT))),
9936 CSKY_ISA_FLOAT_7E60),
9937 OP32 ("fldrh",
9938 SOPCODE_INFO2 (0xf4002b00,
9939 (0_4, FREG, OPRND_SHIFT_0_BIT),
9940 BRACKET_OPRND ((16_20,
9941 AREG,
9942 OPRND_SHIFT_0_BIT),
9943 (5_6or21_25,
9944 AREG_WITH_LSHIFT_FPU,
9945 OPRND_SHIFT_0_BIT))),
9946 CSKY_ISA_FLOAT_7E60),
9947 OP32_WITH_WORK ("fstr.16",
9948 SOPCODE_INFO2 (0xf4002f00,
9949 (0_4, FREG, OPRND_SHIFT_0_BIT),
9950 BRACKET_OPRND ((16_20,
9951 AREG,
9952 OPRND_SHIFT_0_BIT),
9953 (5_6or21_25,
9954 AREG_WITH_LSHIFT_FPU,
9955 OPRND_SHIFT_0_BIT))),
9956 CSKY_ISA_FLOAT_7E60,
9957 float_work_fpuv3_fstore),
9958 OP32_WITH_WORK ("fstrh",
9959 SOPCODE_INFO2 (0xf4002f00,
9960 (0_4, FREG, OPRND_SHIFT_0_BIT),
9961 BRACKET_OPRND ((16_20,
9962 AREG,
9963 OPRND_SHIFT_0_BIT),
9964 (5_6or21_25,
9965 AREG_WITH_LSHIFT_FPU,
9966 OPRND_SHIFT_0_BIT))),
9967 CSKY_ISA_FLOAT_7E60,
9968 float_work_fpuv3_fstore),
9969 OP32 ("fldm.16",
9970 OPCODE_INFO2 (0xf4003300,
9971 (0_4or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
9972 (16_20, AREG_WITH_BRACKET,OPRND_SHIFT_0_BIT)),
9973 CSKY_ISA_FLOAT_7E60),
9974 OP32 ("fldmh",
9975 OPCODE_INFO2 (0xf4003300,
9976 (0_4or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
9977 (16_20, AREG_WITH_BRACKET,OPRND_SHIFT_0_BIT)),
9978 CSKY_ISA_FLOAT_7E60),
9979 OP32_WITH_WORK ("fstm.16",
9980 OPCODE_INFO2 (0xf4003700,
9981 (0_4or21_24,
9982 FREGLIST_DASH,
9983 OPRND_SHIFT_0_BIT),
9984 (16_20,
9985 AREG_WITH_BRACKET,
9986 OPRND_SHIFT_0_BIT)),
9987 CSKY_ISA_FLOAT_7E60,
9988 float_work_fpuv3_fstore),
9989 OP32_WITH_WORK ("fstmh",
9990 OPCODE_INFO2 (0xf4003700,
9991 (0_4or21_24,
9992 FREGLIST_DASH,
9993 OPRND_SHIFT_0_BIT),
9994 (16_20,
9995 AREG_WITH_BRACKET,
9996 OPRND_SHIFT_0_BIT)),
9997 CSKY_ISA_FLOAT_7E60,
9998 float_work_fpuv3_fstore),
9999 OP32 ("fldmu.16",
10000 OPCODE_INFO2 (0xf4003380,
10001 OPRND_SHIFT0 (0_4or21_24, FREGLIST_DASH),
10002 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10003 CSKY_ISA_FLOAT_7E60),
10004 OP32 ("fldmu.h",
10005 OPCODE_INFO2 (0xf4003380,
10006 OPRND_SHIFT0 (0_4or21_24, FREGLIST_DASH),
10007 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10008 CSKY_ISA_FLOAT_7E60),
10009 OP32_WITH_WORK ("fstmu.16",
10010 OPCODE_INFO2 (0xf4003780,
10011 OPRND_SHIFT0 (0_4or21_24, FREGLIST_DASH),
10012 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10013 CSKY_ISA_FLOAT_7E60,
10014 float_work_fpuv3_fstore),
10015 OP32_WITH_WORK ("fstmu.h",
10016 OPCODE_INFO2 (0xf4003780,
10017 OPRND_SHIFT0 (0_4or21_24, FREGLIST_DASH),
10018 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10019 CSKY_ISA_FLOAT_7E60,
10020 float_work_fpuv3_fstore),
10021 OP32 ("fld.32",
10022 SOPCODE_INFO2 (0xf4002000,
10023 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10024 BRACKET_OPRND ((16_20,
10025 AREG,
10026 OPRND_SHIFT_0_BIT),
10027 (4_7or21_24,
10028 IMM_FLDST,
10029 OPRND_SHIFT_2_BIT))),
10030 CSKY_ISA_FLOAT_7E60),
10031 OP32 ("flds",
10032 SOPCODE_INFO2 (0xf4002000,
10033 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10034 BRACKET_OPRND ((16_20,
10035 AREG,
10036 OPRND_SHIFT_0_BIT),
10037 (4_7or21_24,
10038 IMM_FLDST,
10039 OPRND_SHIFT_2_BIT))),
10040 CSKY_ISA_FLOAT_7E60),
10041 OP32_WITH_WORK ("fst.32",
10042 SOPCODE_INFO2 (0xf4002400,
10043 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10044 BRACKET_OPRND ((16_20,
10045 AREG,
10046 OPRND_SHIFT_0_BIT),
10047 (4_7or21_24,
10048 IMM_FLDST,
10049 OPRND_SHIFT_2_BIT))),
10050 CSKY_ISA_FLOAT_7E60,
10051 float_work_fpuv3_fstore),
10052 OP32_WITH_WORK ("fsts",
10053 SOPCODE_INFO2 (0xf4002400,
10054 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10055 BRACKET_OPRND ((16_20,
10056 AREG,
10057 OPRND_SHIFT_0_BIT),
10058 (4_7or21_24,
10059 IMM_FLDST,
10060 OPRND_SHIFT_2_BIT))),
10061 CSKY_ISA_FLOAT_7E60,
10062 float_work_fpuv3_fstore),
10063 OP32 ("fldr.32",
10064 SOPCODE_INFO2 (0xf4002800,
10065 (0_4, FREG, OPRND_SHIFT_0_BIT),
10066 BRACKET_OPRND ((16_20,
10067 AREG,
10068 OPRND_SHIFT_0_BIT),
10069 (5_6or21_25,
10070 AREG_WITH_LSHIFT_FPU,
10071 OPRND_SHIFT_0_BIT))),
10072 CSKY_ISA_FLOAT_7E60),
10073 OP32 ("fldrs",
10074 SOPCODE_INFO2 (0xf4002800,
10075 (0_4, FREG, OPRND_SHIFT_0_BIT),
10076 BRACKET_OPRND ((16_20,
10077 AREG,
10078 OPRND_SHIFT_0_BIT),
10079 (5_6or21_25,
10080 AREG_WITH_LSHIFT_FPU,
10081 OPRND_SHIFT_0_BIT))),
10082 CSKY_ISA_FLOAT_7E60),
10083 OP32_WITH_WORK ("fstr.32",
10084 SOPCODE_INFO2 (0xf4002c00,
10085 (0_4, FREG, OPRND_SHIFT_0_BIT),
10086 BRACKET_OPRND ((16_20,
10087 AREG,
10088 OPRND_SHIFT_0_BIT),
10089 (5_6or21_25,
10090 AREG_WITH_LSHIFT_FPU,
10091 OPRND_SHIFT_0_BIT))),
10092 CSKY_ISA_FLOAT_7E60,
10093 float_work_fpuv3_fstore),
10094 OP32_WITH_WORK ("fstrs",
10095 SOPCODE_INFO2 (0xf4002c00,
10096 (0_4, FREG, OPRND_SHIFT_0_BIT),
10097 BRACKET_OPRND ((16_20,
10098 AREG,
10099 OPRND_SHIFT_0_BIT),
10100 (5_6or21_25,
10101 AREG_WITH_LSHIFT_FPU,
10102 OPRND_SHIFT_0_BIT))),
10103 CSKY_ISA_FLOAT_7E60,
10104 float_work_fpuv3_fstore),
10105 OP32 ("fldm.32",
10106 OPCODE_INFO2 (0xf4003000,
10107 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10108 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10109 CSKY_ISA_FLOAT_7E60),
10110 OP32 ("fldms",
10111 OPCODE_INFO2 (0xf4003000,
10112 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10113 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10114 CSKY_ISA_FLOAT_7E60),
10115 OP32_WITH_WORK ("fstm.32",
10116 OPCODE_INFO2 (0xf4003400,
10117 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10118 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10119 CSKY_ISA_FLOAT_7E60,
10120 float_work_fpuv3_fstore),
10121 OP32_WITH_WORK ("fstms",
10122 OPCODE_INFO2 (0xf4003400,
10123 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10124 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10125 CSKY_ISA_FLOAT_7E60,
10126 float_work_fpuv3_fstore),
10127 OP32 ("fldmu.32",
10128 OPCODE_INFO2 (0xf4003080,
10129 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10130 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10131 CSKY_ISA_FLOAT_7E60),
10132 OP32 ("fldmu.s",
10133 OPCODE_INFO2 (0xf4003080,
10134 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10135 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10136 CSKY_ISA_FLOAT_7E60),
10137 OP32_WITH_WORK ("fstmu.32",
10138 OPCODE_INFO2 (0xf4003480,
10139 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10140 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10141 CSKY_ISA_FLOAT_7E60,
10142 float_work_fpuv3_fstore),
10143 OP32_WITH_WORK ("fstmu.s",
10144 OPCODE_INFO2 (0xf4003480,
10145 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10146 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10147 CSKY_ISA_FLOAT_7E60,
10148 float_work_fpuv3_fstore),
10149 OP32 ("fld.64",
10150 SOPCODE_INFO2 (0xf4002100,
10151 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10152 BRACKET_OPRND ((16_20,
10153 AREG,
10154 OPRND_SHIFT_0_BIT),
10155 (4_7or21_24,
10156 IMM_FLDST,
10157 OPRND_SHIFT_2_BIT))),
10158 CSKY_ISA_FLOAT_7E60),
10159 OP32 ("fldd",
10160 SOPCODE_INFO2 (0xf4002100,
10161 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10162 BRACKET_OPRND ((16_20,
10163 AREG,
10164 OPRND_SHIFT_0_BIT),
10165 (4_7or21_24,
10166 IMM_FLDST,
10167 OPRND_SHIFT_2_BIT))),
10168 CSKY_ISA_FLOAT_7E60),
10169 OP32_WITH_WORK ("fst.64",
10170 SOPCODE_INFO2 (0xf4002500,
10171 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10172 BRACKET_OPRND ((16_20,
10173 AREG,
10174 OPRND_SHIFT_0_BIT),
10175 (4_7or21_24,
10176 IMM_FLDST,
10177 OPRND_SHIFT_2_BIT))),
10178 CSKY_ISA_FLOAT_7E60,
10179 float_work_fpuv3_fstore),
10180 OP32_WITH_WORK ("fstd",
10181 SOPCODE_INFO2 (0xf4002500,
10182 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10183 BRACKET_OPRND ((16_20,
10184 AREG,
10185 OPRND_SHIFT_0_BIT),
10186 (4_7or21_24,
10187 IMM_FLDST,
10188 OPRND_SHIFT_2_BIT))),
10189 CSKY_ISA_FLOAT_7E60,
10190 float_work_fpuv3_fstore),
10191 OP32 ("fldr.64",
10192 SOPCODE_INFO2 (0xf4002900,
10193 (0_4, FREG, OPRND_SHIFT_0_BIT),
10194 BRACKET_OPRND ((16_20,
10195 AREG,
10196 OPRND_SHIFT_0_BIT),
10197 (5_6or21_25,
10198 AREG_WITH_LSHIFT_FPU,
10199 OPRND_SHIFT_0_BIT))),
10200 CSKY_ISA_FLOAT_7E60),
10201 OP32 ("fldrd",
10202 SOPCODE_INFO2 (0xf4002900,
10203 (0_4, FREG, OPRND_SHIFT_0_BIT),
10204 BRACKET_OPRND ((16_20,
10205 AREG,
10206 OPRND_SHIFT_0_BIT),
10207 (5_6or21_25,
10208 AREG_WITH_LSHIFT_FPU,
10209 OPRND_SHIFT_0_BIT))),
10210 CSKY_ISA_FLOAT_7E60),
10211 OP32_WITH_WORK ("fstr.64",
10212 SOPCODE_INFO2 (0xf4002d00,
10213 (0_4, FREG, OPRND_SHIFT_0_BIT),
10214 BRACKET_OPRND ((16_20,
10215 AREG,
10216 OPRND_SHIFT_0_BIT),
10217 (5_6or21_25,
10218 AREG_WITH_LSHIFT_FPU,
10219 OPRND_SHIFT_0_BIT))),
10220 CSKY_ISA_FLOAT_7E60,
10221 float_work_fpuv3_fstore),
10222 OP32_WITH_WORK ("fstrd",
10223 SOPCODE_INFO2 (0xf4002d00,
10224 (0_4, FREG, OPRND_SHIFT_0_BIT),
10225 BRACKET_OPRND ((16_20,
10226 AREG,
10227 OPRND_SHIFT_0_BIT),
10228 (5_6or21_25,
10229 AREG_WITH_LSHIFT_FPU,
10230 OPRND_SHIFT_0_BIT))),
10231 CSKY_ISA_FLOAT_7E60,
10232 float_work_fpuv3_fstore),
10233 OP32 ("fldm.64",
10234 OPCODE_INFO2 (0xf4003100,
10235 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10236 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10237 CSKY_ISA_FLOAT_7E60),
10238 OP32 ("fldmd",
10239 OPCODE_INFO2 (0xf4003100,
10240 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10241 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10242 CSKY_ISA_FLOAT_7E60),
10243 OP32_WITH_WORK ("fstm.64",
10244 OPCODE_INFO2 (0xf4003500,
10245 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10246 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10247 CSKY_ISA_FLOAT_7E60,
10248 float_work_fpuv3_fstore),
10249 OP32_WITH_WORK ("fstmd",
10250 OPCODE_INFO2 (0xf4003500,
10251 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10252 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10253 CSKY_ISA_FLOAT_7E60,
10254 float_work_fpuv3_fstore),
10255 OP32 ("fldmu.64",
10256 OPCODE_INFO2 (0xf4003180,
10257 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10258 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10259 CSKY_ISA_FLOAT_7E60),
10260 OP32 ("fldmu.d",
10261 OPCODE_INFO2 (0xf4003180,
10262 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10263 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10264 CSKY_ISA_FLOAT_7E60),
10265 OP32_WITH_WORK ("fstmu.64",
10266 OPCODE_INFO2 (0xf4003580,
10267 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10268 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10269 CSKY_ISA_FLOAT_7E60,
10270 float_work_fpuv3_fstore),
10271 OP32_WITH_WORK ("fstmu.d",
10272 OPCODE_INFO2 (0xf4003580,
10273 OPRND_SHIFT0 (0_4or21_25, FREGLIST_DASH),
10274 OPRND_SHIFT0 (16_20, AREG_WITH_BRACKET)),
10275 CSKY_ISA_FLOAT_7E60,
10276 float_work_fpuv3_fstore),
10277 OP32 ("fldrm",
10278 SOPCODE_INFO2 (0xf4002a00,
10279 (0_4, FREG, OPRND_SHIFT_0_BIT),
10280 BRACKET_OPRND ((16_20,
10281 AREG,
10282 OPRND_SHIFT_0_BIT),
10283 (5_6or21_25,
10284 AREG_WITH_LSHIFT_FPU,
10285 OPRND_SHIFT_0_BIT))),
10286 CSKY_ISA_FLOAT_7E60),
10287 OP32_WITH_WORK ("fstrm",
10288 SOPCODE_INFO2 (0xf4002e00,
10289 (0_4, FREG, OPRND_SHIFT_0_BIT),
10290 BRACKET_OPRND ((16_20,
10291 AREG,
10292 OPRND_SHIFT_0_BIT),
10293 (5_6or21_25,
10294 AREG_WITH_LSHIFT_FPU,
10295 OPRND_SHIFT_0_BIT))),
10296 CSKY_ISA_FLOAT_7E60,
10297 float_work_fpuv3_fstore),
10298 OP32 ("fldmm",
10299 OPCODE_INFO2 (0xf4003200,
10300 (0_4or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
10301 (16_20, AREG_WITH_BRACKET,OPRND_SHIFT_0_BIT)),
10302 CSKY_ISA_FLOAT_7E60),
10303 OP32_WITH_WORK ("fstmm",
10304 OPCODE_INFO2 (0xf4003600,
10305 (0_4or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT),
10306 (16_20, AREG_WITH_BRACKET,OPRND_SHIFT_0_BIT)),
10307 CSKY_ISA_FLOAT_7E60,
10308 float_work_fpuv3_fstore),
10309 OP32 ("fftox.f16.u16",
10310 OPCODE_INFO2 (0xf4004000,
10311 OPRND_SHIFT0 (0_4, FREG),
10312 OPRND_SHIFT0 (16_20, FREG)),
10313 CSKY_ISA_FLOAT_7E60),
10314 OP32 ("fftox.f16.s16",
10315 OPCODE_INFO2 (0xf4004020,
10316 OPRND_SHIFT0 (0_4, FREG),
10317 OPRND_SHIFT0 (16_20, FREG)),
10318 CSKY_ISA_FLOAT_7E60),
10319 OP32 ("fftox.f16.u32",
10320 OPCODE_INFO2 (0xf4004100,
10321 OPRND_SHIFT0 (0_4, FREG),
10322 OPRND_SHIFT0 (16_20, FREG)),
10323 CSKY_ISA_FLOAT_7E60),
10324 OP32 ("fftox.f16.s32",
10325 OPCODE_INFO2 (0xf4004120,
10326 OPRND_SHIFT0 (0_4, FREG),
10327 OPRND_SHIFT0 (16_20, FREG)),
10328 CSKY_ISA_FLOAT_7E60),
10329 OP32 ("fftox.f32.u32",
10330 OPCODE_INFO2 (0xf4004140,
10331 OPRND_SHIFT0 (0_4, FREG),
10332 OPRND_SHIFT0 (16_20, FREG)),
10333 CSKY_ISA_FLOAT_7E60),
10334 OP32 ("fftox.f32.s32",
10335 OPCODE_INFO2 (0xf4004160,
10336 OPRND_SHIFT0 (0_4, FREG),
10337 OPRND_SHIFT0 (16_20, FREG)),
10338 CSKY_ISA_FLOAT_7E60),
10339 OP32 ("fftox.f64.u32",
10340 OPCODE_INFO2 (0xf4004180,
10341 OPRND_SHIFT0 (0_4, FREG),
10342 OPRND_SHIFT0 (16_20, FREG)),
10343 CSKY_ISA_FLOAT_7E60),
10344 OP32 ("fftox.f64.s32",
10345 OPCODE_INFO2 (0xf40041a0,
10346 OPRND_SHIFT0 (0_4, FREG),
10347 OPRND_SHIFT0 (16_20, FREG)),
10348 CSKY_ISA_FLOAT_7E60),
10349 OP32 ("fxtof.u16.f16",
10350 OPCODE_INFO2 (0xf4004800,
10351 OPRND_SHIFT0 (0_4, FREG),
10352 OPRND_SHIFT0 (16_20, FREG)),
10353 CSKY_ISA_FLOAT_7E60),
10354 OP32 ("fxtof.s16.f16",
10355 OPCODE_INFO2 (0xf4004820,
10356 OPRND_SHIFT0 (0_4, FREG),
10357 OPRND_SHIFT0 (16_20, FREG)),
10358 CSKY_ISA_FLOAT_7E60),
10359 OP32 ("fxtof.u32.f16",
10360 OPCODE_INFO2 (0xf4004900,
10361 OPRND_SHIFT0 (0_4, FREG),
10362 OPRND_SHIFT0 (16_20, FREG)),
10363 CSKY_ISA_FLOAT_7E60),
10364 OP32 ("fxtof.s32.f16",
10365 OPCODE_INFO2 (0xf4004920,
10366 OPRND_SHIFT0 (0_4, FREG),
10367 OPRND_SHIFT0 (16_20, FREG)),
10368 CSKY_ISA_FLOAT_7E60),
10369 OP32 ("fxtof.u32.f32",
10370 OPCODE_INFO2 (0xf4004940,
10371 OPRND_SHIFT0 (0_4, FREG),
10372 OPRND_SHIFT0 (16_20, FREG)),
10373 CSKY_ISA_FLOAT_7E60),
10374 OP32 ("fxtof.s32.f32",
10375 OPCODE_INFO2 (0xf4004960,
10376 OPRND_SHIFT0 (0_4, FREG),
10377 OPRND_SHIFT0 (16_20, FREG)),
10378 CSKY_ISA_FLOAT_7E60),
10379 OP32 ("fxtof.u32.f64",
10380 OPCODE_INFO2 (0xf4004980,
10381 OPRND_SHIFT0 (0_4, FREG),
10382 OPRND_SHIFT0 (16_20, FREG)),
10383 CSKY_ISA_FLOAT_7E60),
10384 OP32 ("fxtof.s32.f64",
10385 OPCODE_INFO2 (0xf40049a0,
10386 OPRND_SHIFT0 (0_4, FREG),
10387 OPRND_SHIFT0 (16_20, FREG)),
10388 CSKY_ISA_FLOAT_7E60),
10389 OP32 ("fftoi.f16.s16",
10390 OPCODE_INFO2 (0xf4004220,
10391 OPRND_SHIFT0 (0_4, FREG),
10392 OPRND_SHIFT0 (16_20, FREG)),
10393 CSKY_ISA_FLOAT_7E60),
10394 OP32 ("fftoi.f16.u16",
10395 OPCODE_INFO2 (0xf4004200,
10396 OPRND_SHIFT0 (0_4, FREG),
10397 OPRND_SHIFT0 (16_20, FREG)),
10398 CSKY_ISA_FLOAT_7E60),
10399 OP32 ("fftoi.f16.s32",
10400 OPCODE_INFO2 (0xf4004320,
10401 OPRND_SHIFT0 (0_4, FREG),
10402 OPRND_SHIFT0 (16_20, FREG)),
10403 CSKY_ISA_FLOAT_7E60),
10404 OP32 ("fftoi.f16.u32",
10405 OPCODE_INFO2 (0xf4004300,
10406 OPRND_SHIFT0 (0_4, FREG),
10407 OPRND_SHIFT0 (16_20, FREG)),
10408 CSKY_ISA_FLOAT_7E60),
10409 OP32 ("fftoi.f32.s32",
10410 OPCODE_INFO2 (0xf4004360,
10411 OPRND_SHIFT0 (0_4, FREG),
10412 OPRND_SHIFT0 (16_20, FREG)),
10413 CSKY_ISA_FLOAT_7E60),
10414 OP32 ("fftoi.f32.u32",
10415 OPCODE_INFO2 (0xf4004340,
10416 OPRND_SHIFT0 (0_4, FREG),
10417 OPRND_SHIFT0 (16_20, FREG)),
10418 CSKY_ISA_FLOAT_7E60),
10419 OP32 ("fftoi.f64.s32",
10420 OPCODE_INFO2 (0xf40043a0,
10421 OPRND_SHIFT0 (0_4, FREG),
10422 OPRND_SHIFT0 (16_20, FREG)),
10423 CSKY_ISA_FLOAT_7E60),
10424 OP32 ("fftoi.f64.u32",
10425 OPCODE_INFO2 (0xf4004380,
10426 OPRND_SHIFT0 (0_4, FREG),
10427 OPRND_SHIFT0 (16_20, FREG)),
10428 CSKY_ISA_FLOAT_7E60),
10429 OP32 ("fitof.s16.f16",
10430 OPCODE_INFO2 (0xf4004a20,
10431 OPRND_SHIFT0 (0_4, FREG),
10432 OPRND_SHIFT0 (16_20, FREG)),
10433 CSKY_ISA_FLOAT_7E60),
10434 OP32 ("fitof.u16.f16",
10435 OPCODE_INFO2 (0xf4004a00,
10436 OPRND_SHIFT0 (0_4, FREG),
10437 OPRND_SHIFT0 (16_20, FREG)),
10438 CSKY_ISA_FLOAT_7E60),
10439 OP32 ("fitof.s32.f16",
10440 OPCODE_INFO2 (0xf4004b20,
10441 OPRND_SHIFT0 (0_4, FREG),
10442 OPRND_SHIFT0 (16_20, FREG)),
10443 CSKY_ISA_FLOAT_7E60),
10444 OP32 ("fitof.u32.f16",
10445 OPCODE_INFO2 (0xf4004b00,
10446 OPRND_SHIFT0 (0_4, FREG),
10447 OPRND_SHIFT0 (16_20, FREG)),
10448 CSKY_ISA_FLOAT_7E60),
10449 OP32 ("fitof.s32.f32",
10450 OPCODE_INFO2 (0xf4004b60,
10451 OPRND_SHIFT0 (0_4, FREG),
10452 OPRND_SHIFT0 (16_20, FREG)),
10453 CSKY_ISA_FLOAT_7E60),
10454 OP32 ("fsitos",
10455 OPCODE_INFO2 (0xf4004b60,
10456 OPRND_SHIFT0 (0_4, FREG),
10457 OPRND_SHIFT0 (16_20, FREG)),
10458 CSKY_ISA_FLOAT_7E60),
10459 OP32 ("fitof.u32.f32",
10460 OPCODE_INFO2 (0xf4004b40,
10461 OPRND_SHIFT0 (0_4, FREG),
10462 OPRND_SHIFT0 (16_20, FREG)),
10463 CSKY_ISA_FLOAT_7E60),
10464 OP32 ("fuitos",
10465 OPCODE_INFO2 (0xf4004b40,
10466 OPRND_SHIFT0 (0_4, FREG),
10467 OPRND_SHIFT0 (16_20, FREG)),
10468 CSKY_ISA_FLOAT_7E60),
10469 OP32 ("fitof.s32.f64",
10470 OPCODE_INFO2 (0xf4004ba0,
10471 OPRND_SHIFT0 (0_4, FREG),
10472 OPRND_SHIFT0 (16_20, FREG)),
10473 CSKY_ISA_FLOAT_7E60),
10474 OP32 ("fsitod",
10475 OPCODE_INFO2 (0xf4004ba0,
10476 OPRND_SHIFT0 (0_4, FREG),
10477 OPRND_SHIFT0 (16_20, FREG)),
10478 CSKY_ISA_FLOAT_7E60),
10479 OP32 ("fitof.u32.f64",
10480 OPCODE_INFO2 (0xf4004b80,
10481 OPRND_SHIFT0 (0_4, FREG),
10482 OPRND_SHIFT0 (16_20, FREG)),
10483 CSKY_ISA_FLOAT_7E60),
10484 OP32 ("fuitod",
10485 OPCODE_INFO2 (0xf4004b80,
10486 OPRND_SHIFT0 (0_4, FREG),
10487 OPRND_SHIFT0 (16_20, FREG)),
10488 CSKY_ISA_FLOAT_7E60),
10489 OP32 ("fftofi.f16.rn",
10490 OPCODE_INFO2 (0xf4004400,
10491 OPRND_SHIFT0 (0_4, FREG),
10492 OPRND_SHIFT0 (16_20, FREG)),
10493 CSKY_ISA_FLOAT_7E60),
10494 OP32 ("fftofi.f16.rz",
10495 OPCODE_INFO2 (0xf4004420,
10496 OPRND_SHIFT0 (0_4, FREG),
10497 OPRND_SHIFT0 (16_20, FREG)),
10498 CSKY_ISA_FLOAT_7E60),
10499 OP32 ("fftofi.f16.rpi",
10500 OPCODE_INFO2 (0xf4004440,
10501 OPRND_SHIFT0 (0_4, FREG),
10502 OPRND_SHIFT0 (16_20, FREG)),
10503 CSKY_ISA_FLOAT_7E60),
10504 OP32 ("fftofi.f16.rni",
10505 OPCODE_INFO2 (0xf4004460,
10506 OPRND_SHIFT0 (0_4, FREG),
10507 OPRND_SHIFT0 (16_20, FREG)),
10508 CSKY_ISA_FLOAT_7E60),
10509 OP32 ("fftofi.f32.rn",
10510 OPCODE_INFO2 (0xf4004480,
10511 OPRND_SHIFT0 (0_4, FREG),
10512 OPRND_SHIFT0 (16_20, FREG)),
10513 CSKY_ISA_FLOAT_7E60),
10514 OP32 ("fftofi.f32.rz",
10515 OPCODE_INFO2 (0xf40044a0,
10516 OPRND_SHIFT0 (0_4, FREG),
10517 OPRND_SHIFT0 (16_20, FREG)),
10518 CSKY_ISA_FLOAT_7E60),
10519 OP32 ("fftofi.f32.rpi",
10520 OPCODE_INFO2 (0xf40044c0,
10521 OPRND_SHIFT0 (0_4, FREG),
10522 OPRND_SHIFT0 (16_20, FREG)),
10523 CSKY_ISA_FLOAT_7E60),
10524 OP32 ("fftofi.f32.rni",
10525 OPCODE_INFO2 (0xf40044e0,
10526 OPRND_SHIFT0 (0_4, FREG),
10527 OPRND_SHIFT0 (16_20, FREG)),
10528 CSKY_ISA_FLOAT_7E60),
10529 OP32 ("fftofi.f64.rn",
10530 OPCODE_INFO2 (0xf4004500,
10531 OPRND_SHIFT0 (0_4, FREG),
10532 OPRND_SHIFT0 (16_20, FREG)),
10533 CSKY_ISA_FLOAT_7E60),
10534 OP32 ("fftofi.f64.rz",
10535 OPCODE_INFO2 (0xf4004520,
10536 OPRND_SHIFT0 (0_4, FREG),
10537 OPRND_SHIFT0 (16_20, FREG)),
10538 CSKY_ISA_FLOAT_7E60),
10539 OP32 ("fftofi.f64.rpi",
10540 OPCODE_INFO2 (0xf4004540,
10541 OPRND_SHIFT0 (0_4, FREG),
10542 OPRND_SHIFT0 (16_20, FREG)),
10543 CSKY_ISA_FLOAT_7E60),
10544 OP32 ("fftofi.f64.rni",
10545 OPCODE_INFO2 (0xf4004560,
10546 OPRND_SHIFT0 (0_4, FREG),
10547 OPRND_SHIFT0 (16_20, FREG)),
10548 CSKY_ISA_FLOAT_7E60),
10549 DOP32_WITH_WORK ("fmovi.16",
10550 OPCODE_INFO2 (0xf400e400,
10551 OPRND_SHIFT0 (0_4, FREG),
10552 OPRND_SHIFT0 (5or8_9or16_25, HFLOAT_FMOVI)),
10553 OPCODE_INFO3 (0xf400e400,
10554 OPRND_SHIFT0 (0_4, FREG),
10555 OPRND_SHIFT0 (5or8_9or20_25, IMM9b),
10556 OPRND_SHIFT0 (16_19, IMM4b)),
10557 CSKY_ISA_FLOAT_7E60,
10558 float_work_fpuv3_fmovi),
10559 DOP32_WITH_WORK ("fmovi.32",
10560 OPCODE_INFO2 (0xf400e440,
10561 OPRND_SHIFT0 (0_4, FREG),
10562 OPRND_SHIFT0 (5or8_9or16_25, SFLOAT_FMOVI)),
10563 OPCODE_INFO3 (0xf400e440,
10564 OPRND_SHIFT0 (0_4, FREG),
10565 OPRND_SHIFT0 (5or8_9or20_25, IMM9b),
10566 OPRND_SHIFT0 (16_19, IMM4b)),
10567 CSKY_ISA_FLOAT_7E60,
10568 float_work_fpuv3_fmovi),
10569 DOP32_WITH_WORK ("fmovi.64",
10570 OPCODE_INFO2 (0xf400e480,
10571 OPRND_SHIFT0 (0_4, FREG),
10572 OPRND_SHIFT0 (5or8_9or16_25, DFLOAT_FMOVI)),
10573 OPCODE_INFO3 (0xf400e480,
10574 OPRND_SHIFT0 (0_4, FREG),
10575 OPRND_SHIFT0 (5or8_9or20_25, IMM9b),
10576 OPRND_SHIFT0 (16_19, IMM4b)),
10577 CSKY_ISA_FLOAT_7E60,
10578 float_work_fpuv3_fmovi),
10579#undef _RELOC32
10580#define _RELOC32 BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4
10581 OP32 ("flrw.32",
10582 OPCODE_INFO2 (0xf4003800,
10583 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10584 (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
10585 CSKY_ISA_FLOAT_7E60),
10586 OP32 ("flrws",
10587 OPCODE_INFO2 (0xf4003800,
10588 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10589 (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
10590 CSKY_ISA_FLOAT_7E60),
10591 OP32 ("flrw.64",
10592 OPCODE_INFO2 (0xf4003900,
10593 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10594 (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
10595 CSKY_ISA_FLOAT_7E60),
10596 OP32 ("flrwd",
10597 OPCODE_INFO2 (0xf4003900,
10598 (0_3or25, FREG, OPRND_SHIFT_0_BIT),
10599 (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)),
10600 CSKY_ISA_FLOAT_7E60),
10601#undef _RELOC32
10602#define _RELOC32 0
10603
b8891f8d
AJ
10604 /* The following are aliases for other instructions. */
10605 /* setc -> cmphs r0, r0 */
10606 OP16 ("setc",
10607 OPCODE_INFO0 (0x6400),
10608 CSKYV2_ISA_E1),
10609 /* clrc -> cmpne r0, r0 */
10610 OP16 ("clrc",
10611 OPCODE_INFO0 (0x6402),
10612 CSKYV2_ISA_E1),
10613 /* tstlt rd -> btsti rd,31 */
10614 OP32 ("tstlt",
10615 OPCODE_INFO1 (0xc7e02880,
10616 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10617 CSKYV2_ISA_1E2),
10618 /* idly4 -> idly 4 */
10619 OP32 ("idly4",
10620 OPCODE_INFO0 (0xc0601c20),
10621 CSKYV2_ISA_E1),
10622 /* rsub rz, ry, rx -> subu rz, rx, ry */
10623 DOP32 ("rsub",
10624 OPCODE_INFO3 (0xc4000080,
10625 (0_4, AREG, OPRND_SHIFT_0_BIT),
10626 (21_25, AREG, OPRND_SHIFT_0_BIT),
10627 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10628 OPCODE_INFO2 (0xc4000080,
10629 (0_4or21_25, DUP_AREG, OPRND_SHIFT_0_BIT),
10630 (16_20, AREG, OPRND_SHIFT_0_BIT)), CSKYV2_ISA_1E2),
10631 /* cmplei rd,X -> cmplti rd,X+1 */
10632 OP16_OP32 ("cmplei",
10633 OPCODE_INFO2 (0x3820,
10634 (8_10, GREG0_7, OPRND_SHIFT_0_BIT),
10635 (0_4, IMM5b, OPRND_SHIFT_0_BIT)),
10636 CSKYV2_ISA_E1,
10637 OPCODE_INFO2 (0xeb200000,
10638 (16_20, AREG, OPRND_SHIFT_0_BIT),
10639 (0_15, IMM16b, OPRND_SHIFT_0_BIT)),
10640 CSKYV2_ISA_1E2),
10641 /* cmpls -> cmphs */
10642 OP16_OP32 ("cmpls",
10643 OPCODE_INFO2 (0x6400,
10644 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
10645 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
10646 CSKYV2_ISA_E1,
10647 OPCODE_INFO2 (0xc4000420,
10648 (21_25, AREG, OPRND_SHIFT_0_BIT),
10649 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10650 CSKYV2_ISA_2E3),
10651 /* cmpgt -> cmplt */
10652 OP16_OP32 ("cmpgt",
10653 OPCODE_INFO2 (0x6401,
10654 (6_9, GREG0_15, OPRND_SHIFT_0_BIT),
10655 (2_5, GREG0_15, OPRND_SHIFT_0_BIT)),
10656 CSKYV2_ISA_E1,
10657 OPCODE_INFO2 (0xc4000440,
10658 (21_25, AREG, OPRND_SHIFT_0_BIT),
10659 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10660 CSKYV2_ISA_2E3),
10661 /* tstle rd -> cmplti rd,1 */
10662 OP16_OP32 ("tstle",
10663 OPCODE_INFO1 (0x3820,
10664 (8_10, GREG0_7, OPRND_SHIFT_0_BIT)),
10665 CSKYV2_ISA_E1,
10666 OPCODE_INFO1 (0xeb200000,
10667 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10668 CSKYV2_ISA_1E2),
10669 /* tstne rd -> cmpnei rd,0 */
10670 OP16_OP32 ("tstne",
10671 OPCODE_INFO1 (0x3840,
10672 (8_10, GREG0_7, OPRND_SHIFT_0_BIT)),
10673 CSKYV2_ISA_E1,
10674 OPCODE_INFO1 (0xeb400000,
10675 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10676 CSKYV2_ISA_1E2),
10677 /* rotri rz, rx, imm5 -> rotli rz, rx, 32-imm5 */
10678 DOP32 ("rotri",
10679 OPCODE_INFO3 (0xc4004900,
10680 (0_4, AREG, OPRND_SHIFT_0_BIT),
10681 (16_20, AREG, OPRND_SHIFT_0_BIT),
10682 (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
10683 OPCODE_INFO2 (0xc4004900,
10684 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
10685 (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
10686 CSKYV2_ISA_2E3),
10687 DOP32 ("rori",
10688 OPCODE_INFO3 (0xc4004900,
10689 (0_4, AREG, OPRND_SHIFT_0_BIT),
10690 (16_20, AREG, OPRND_SHIFT_0_BIT),
10691 (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
10692 OPCODE_INFO2 (0xc4004900,
10693 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT),
10694 (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)),
10695 CSKYV2_ISA_2E3),
10696
10697 /* rotlc rd -> addc rd, rd/ addc rd, rd, rd */
10698 OP16_OP32_WITH_WORK ("rotlc",
10699 OPCODE_INFO2 (0x6001,
10700 (NONE, GREG0_15, OPRND_SHIFT_0_BIT),
10701 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
10702 CSKYV2_ISA_E1,
10703 OPCODE_INFO2 (0xc4000040,
10704 (NONE, AREG, OPRND_SHIFT_0_BIT),
10705 (NONE, CONST1, OPRND_SHIFT_0_BIT)),
10706 CSKYV2_ISA_2E3,
10707 v2_work_rotlc),
10708 /* not rd -> nor rd, rd, not rz, rx -> nor rz, rx, rx */
10709 OP16_OP32_WITH_WORK ("not",
10710 OPCODE_INFO1 (0x6c02,
10711 (NONE, AREG, OPRND_SHIFT_0_BIT)),
10712 CSKYV2_ISA_E1,
10713 OPCODE_INFO2 (0xc4002480,
10714 (NONE, AREG, OPRND_SHIFT_0_BIT),
10715 (NONE, AREG, OPRND_SHIFT_0_BIT)),
10716 CSKYV2_ISA_E1, v2_work_not),
10717
10718 /* Special force 32 bits instruction. */
10719 OP32 ("xtrb0.32",
10720 OPCODE_INFO2 (0xc4007020,
10721 (0_4, AREG, OPRND_SHIFT_0_BIT),
10722 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10723 CSKYV2_ISA_1E2),
10724 OP32 ("xtrb1.32",
10725 OPCODE_INFO2 (0xc4007040,
10726 (0_4, AREG, OPRND_SHIFT_0_BIT),
10727 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10728 CSKYV2_ISA_1E2),
10729 OP32 ("xtrb2.32",
10730 OPCODE_INFO2 (0xc4007080,
10731 (0_4, AREG, OPRND_SHIFT_0_BIT),
10732 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10733 CSKYV2_ISA_1E2),
10734 OP32 ("xtrb3.32",
10735 OPCODE_INFO2 (0xc4007100,
10736 (0_4, AREG, OPRND_SHIFT_0_BIT),
10737 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10738 CSKYV2_ISA_1E2),
10739 OP32 ("ff0.32",
10740 OPCODE_INFO2 (0xc4007c20,
10741 (0_4, AREG, OPRND_SHIFT_0_BIT),
10742 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10743 CSKYV2_ISA_1E2),
10744 DOP32 ("ff1.32",
10745 OPCODE_INFO2 (0xc4007c40,
10746 (0_4, AREG, OPRND_SHIFT_0_BIT),
10747 (16_20, AREG, OPRND_SHIFT_0_BIT)),
10748 OPCODE_INFO1 (0xc4007c40,
10749 (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)),
10750 CSKYV2_ISA_1E2),
1feede9b 10751
f24ff6e9 10752 {NULL, 0, {}, {}, 0, 0, 0, 0, 0, NULL}
b8891f8d 10753 };