| /* Declarations for C-SKY opcode table |
| Copyright (C) 2007-2019 Free Software Foundation, Inc. |
| Contributed by C-SKY Microsystems and Mentor Graphics. |
| |
| This file is part of the GNU opcodes library. |
| |
| This library is free software; you can redistribute it and/or modify |
| it under the terms of the GNU General Public License as published by |
| the Free Software Foundation; either version 3, or (at your option) |
| any later version. |
| |
| It is distributed in the hope that it will be useful, but WITHOUT |
| ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
| or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public |
| License for more details. |
| |
| You should have received a copy of the GNU General Public License |
| along with GAS; see the file COPYING. If not, write to the Free |
| Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA |
| 02110-1301, USA. */ |
| |
| #include "opcode/csky.h" |
| |
| #define OP_TABLE_NUM 2 |
| #define MAX_OPRND_NUM 4 |
| |
| enum operand_type |
| { |
| OPRND_TYPE_NONE = 0, |
| /* Control register. */ |
| OPRND_TYPE_CTRLREG, |
| /* r0 - r7. */ |
| OPRND_TYPE_GREG0_7, |
| /* r0 - r15. */ |
| OPRND_TYPE_GREG0_15, |
| /* r16 - r31. */ |
| OPRND_TYPE_GREG16_31, |
| /* r0 - r31. */ |
| OPRND_TYPE_AREG, |
| /* (rx). */ |
| OPRND_TYPE_AREG_WITH_BRACKET, |
| OPRND_TYPE_AREG_WITH_LSHIFT, |
| OPRND_TYPE_AREG_WITH_LSHIFT_FPU, |
| |
| OPRND_TYPE_FREG_WITH_INDEX, |
| /* r1 only, for xtrb0(1)(2)(3) in csky v1 ISA. */ |
| OPRND_TYPE_REG_r1a, |
| /* r1 only, for divs/divu in csky v1 ISA. */ |
| OPRND_TYPE_REG_r1b, |
| /* r28. */ |
| OPRND_TYPE_REG_r28, |
| OPRND_TYPE_REGr4_r7, |
| /* sp register with bracket. */ |
| OPRND_TYPE_REGbsp, |
| /* sp register. */ |
| OPRND_TYPE_REGsp, |
| /* Register with bracket. */ |
| OPRND_TYPE_REGnr4_r7, |
| /* Not sp register. */ |
| OPRND_TYPE_REGnsp, |
| /* Not lr register. */ |
| OPRND_TYPE_REGnlr, |
| /* Not sp/lr register. */ |
| OPRND_TYPE_REGnsplr, |
| /* hi/lo register. */ |
| OPRND_TYPE_REGhilo, |
| /* VDSP register. */ |
| OPRND_TYPE_VREG, |
| |
| /* cp index. */ |
| OPRND_TYPE_CPIDX, |
| /* cp regs. */ |
| OPRND_TYPE_CPREG, |
| /* cp cregs. */ |
| OPRND_TYPE_CPCREG, |
| /* fpu regs. */ |
| OPRND_TYPE_FREG, |
| /* fpu even regs. */ |
| OPRND_TYPE_FEREG, |
| /* Float round mode. */ |
| OPRND_TYPE_RM, |
| /* PSR bits. */ |
| OPRND_TYPE_PSR_BITS_LIST, |
| |
| /* Constant. */ |
| OPRND_TYPE_CONSTANT, |
| /* Floating Constant. */ |
| OPRND_TYPE_FCONSTANT, |
| /* Extern lrw constant. */ |
| OPRND_TYPE_ELRW_CONSTANT, |
| /* [label]. */ |
| OPRND_TYPE_LABEL_WITH_BRACKET, |
| /* The operand is the same as first reg. It is a dummy reg that doesn't |
| appear in the binary code of the instruction. It is also used by |
| the disassembler. |
| For example: bclri rz, rz, imm5 -> bclri rz, imm5. */ |
| OPRND_TYPE_DUMMY_REG, |
| /* The type of the operand is same as the first operand. If the value |
| of the operand is same as the first operand, we can use a 16-bit |
| instruction to represent the opcode. |
| For example: addc r1, r1, r2 -> addc16 r1, r2. */ |
| OPRND_TYPE_2IN1_DUMMY, |
| /* Output a reg same as the first reg. |
| For example: addc r17, r1 -> addc32 r17, r17, r1. |
| The old "addc" cannot be represented by a 16-bit instruction because |
| 16-bit "addc" only supports regs from r0 to r15. So we use "addc32" |
| which has 3 operands, and duplicate the first operand to the second. */ |
| OPRND_TYPE_DUP_GREG0_7, |
| OPRND_TYPE_DUP_GREG0_15, |
| OPRND_TYPE_DUP_AREG, |
| /* Immediate. */ |
| OPRND_TYPE_IMM1b, |
| OPRND_TYPE_IMM2b, |
| OPRND_TYPE_IMM3b, |
| OPRND_TYPE_IMM4b, |
| OPRND_TYPE_IMM5b, |
| OPRND_TYPE_IMM7b, |
| OPRND_TYPE_IMM8b, |
| OPRND_TYPE_IMM12b, |
| OPRND_TYPE_IMM15b, |
| OPRND_TYPE_IMM16b, |
| OPRND_TYPE_IMM18b, |
| OPRND_TYPE_IMM32b, |
| /* Immediate left shift 2 bits. */ |
| OPRND_TYPE_IMM7b_LS2, |
| OPRND_TYPE_IMM8b_LS2, |
| /* OPRND_TYPE_IMM5b_a_b means: Immediate in (a, b). */ |
| OPRND_TYPE_IMM5b_1_31, |
| OPRND_TYPE_IMM5b_7_31, |
| /* Operand type for rori and rotri. */ |
| OPRND_TYPE_IMM5b_RORI, |
| OPRND_TYPE_IMM5b_POWER, |
| OPRND_TYPE_IMM5b_7_31_POWER, |
| OPRND_TYPE_IMM5b_BMASKI, |
| OPRND_TYPE_IMM8b_BMASKI, |
| /* For v2 movih. */ |
| OPRND_TYPE_IMM16b_MOVIH, |
| /* For v2 ori. */ |
| OPRND_TYPE_IMM16b_ORI, |
| /* For v2 ld/st. */ |
| OPRND_TYPE_IMM_LDST, |
| OPRND_TYPE_IMM_FLDST, |
| OPRND_TYPE_IMM2b_JMPIX, |
| /* Offset for bloop. */ |
| OPRND_TYPE_BLOOP_OFF4b, |
| OPRND_TYPE_BLOOP_OFF12b, |
| /* Offset for jump. */ |
| OPRND_TYPE_OFF8b, |
| OPRND_TYPE_OFF10b, |
| OPRND_TYPE_OFF11b, |
| OPRND_TYPE_OFF16b, |
| OPRND_TYPE_OFF16b_LSL1, |
| OPRND_TYPE_OFF26b, |
| /* An immediate or label. */ |
| OPRND_TYPE_IMM_OFF18b, |
| /* Offset immediate. */ |
| OPRND_TYPE_OIMM3b, |
| OPRND_TYPE_OIMM4b, |
| OPRND_TYPE_OIMM5b, |
| OPRND_TYPE_OIMM8b, |
| OPRND_TYPE_OIMM12b, |
| OPRND_TYPE_OIMM16b, |
| OPRND_TYPE_OIMM18b, |
| /* For csky v2 idly. */ |
| OPRND_TYPE_OIMM5b_IDLY, |
| /* For v2 bmaski. */ |
| OPRND_TYPE_OIMM5b_BMASKI, |
| /* Constants. */ |
| OPRND_TYPE_CONST1, |
| /* PC relative offset. */ |
| OPRND_TYPE_PCR_OFFSET_16K, |
| OPRND_TYPE_PCR_OFFSET_64K, |
| OPRND_TYPE_PCR_OFFSET_64M, |
| OPRND_TYPE_CPFUNC, |
| OPRND_TYPE_GOT_PLT, |
| OPRND_TYPE_REGLIST_LDM, |
| OPRND_TYPE_REGLIST_DASH, |
| OPRND_TYPE_FREGLIST_DASH, |
| OPRND_TYPE_REGLIST_COMMA, |
| OPRND_TYPE_REGLIST_DASH_COMMA, |
| OPRND_TYPE_BRACKET, |
| OPRND_TYPE_ABRACKET, |
| OPRND_TYPE_JBTF, |
| OPRND_TYPE_JBR, |
| OPRND_TYPE_JBSR, |
| OPRND_TYPE_UNCOND10b, |
| OPRND_TYPE_UNCOND16b, |
| OPRND_TYPE_COND10b, |
| OPRND_TYPE_COND16b, |
| OPRND_TYPE_JCOMPZ, |
| OPRND_TYPE_LSB2SIZE, |
| OPRND_TYPE_MSB2SIZE, |
| OPRND_TYPE_LSB, |
| OPRND_TYPE_MSB, |
| /* Single float and double float. */ |
| OPRND_TYPE_SFLOAT, |
| OPRND_TYPE_DFLOAT, |
| }; |
| |
| /* Operand descriptors. */ |
| struct operand |
| { |
| /* Mask for suboperand. */ |
| unsigned int mask; |
| /* Suboperand type. */ |
| enum operand_type type; |
| /* Operand shift. */ |
| int shift; |
| }; |
| |
| struct soperand |
| { |
| /* Mask for operand. */ |
| unsigned int mask; |
| /* Operand type. */ |
| enum operand_type type; |
| /* Operand shift. */ |
| int shift; |
| /* Suboperand. */ |
| struct operand subs[3]; |
| }; |
| |
| union csky_operand |
| { |
| struct operand oprnds[5]; |
| struct suboperand1 |
| { |
| struct operand oprnd; |
| struct soperand soprnd; |
| } soprnd1; |
| struct suboperand2 |
| { |
| struct soperand soprnd; |
| struct operand oprnd; |
| } soprnd2; |
| }; |
| |
| /* Describe a single instruction encoding. */ |
| struct csky_opcode_info |
| { |
| /* How many operands. */ |
| long operand_num; |
| /* The instruction opcode. */ |
| unsigned int opcode; |
| /* Operand information. */ |
| union csky_operand oprnd; |
| }; |
| |
| /* C-SKY instruction description. Each mnemonic can have multiple |
| 16-bit and 32-bit encodings. */ |
| struct csky_opcode |
| { |
| /* The instruction name. */ |
| const char *mnemonic; |
| /* Whether this is an unconditional control transfer instruction, |
| for the purposes of placing literal pools after it. |
| 0 = no, 1 = within function, 2 = end of function. |
| See check_literals in gas/config/tc-csky.c. */ |
| int transfer; |
| /* Encodings for 16-bit opcodes. */ |
| struct csky_opcode_info op16[OP_TABLE_NUM]; |
| /* Encodings for 32-bit opcodes. */ |
| struct csky_opcode_info op32[OP_TABLE_NUM]; |
| /* Instruction set flag. */ |
| unsigned int isa_flag16; |
| unsigned int isa_flag32; |
| /* Whether this insn needs relocation, 0: no, !=0: yes. */ |
| signed int reloc16; |
| signed int reloc32; |
| /* Whether this insn needs relaxation, 0: no, != 0: yes. */ |
| signed int relax; |
| /* Worker function to call when this instruction needs special assembler |
| handling. */ |
| bfd_boolean (*work)(void); |
| }; |
| |
| /* The following are the opcodes used in relax/fix process. */ |
| #define CSKYV1_INST_JMPI 0x7000 |
| #define CSKYV1_INST_ADDI 0x2000 |
| #define CSKYV1_INST_SUBI 0x2400 |
| #define CSKYV1_INST_LDW 0x8000 |
| #define CSKYV1_INST_STW 0x9000 |
| #define CSKYV1_INST_BSR 0xf800 |
| #define CSKYV1_INST_LRW 0x7000 |
| #define CSKYV1_INST_ADDU 0x1c00 |
| #define CSKYV1_INST_JMP 0x00c0 |
| #define CSKYV1_INST_MOV_R1_RX 0x1201 |
| #define CSKYV1_INST_MOV_RX_R1 0x1210 |
| |
| #define CSKYV2_INST_BT16 0x0800 |
| #define CSKYV2_INST_BF16 0x0c00 |
| #define CSKYV2_INST_BT32 0xe8600000 |
| #define CSKYV2_INST_BF32 0xe8400000 |
| #define CSKYV2_INST_BR32 0xe8000000 |
| #define CSKYV2_INST_NOP 0x6c03 |
| #define CSKYV2_INST_MOVI16 0x3000 |
| #define CSKYV2_INST_MOVI32 0xea000000 |
| #define CSKYV2_INST_MOVIH 0xea200000 |
| #define CSKYV2_INST_LRW16 0x1000 |
| #define CSKYV2_INST_LRW32 0xea800000 |
| #define CSKYV2_INST_BSR32 0xe0000000 |
| #define CSKYV2_INST_BR32 0xe8000000 |
| #define CSKYV2_INST_FLRW 0xf4003800 |
| #define CSKYV2_INST_JMPI32 0xeac00000 |
| #define CSKYV2_INST_JSRI32 0xeae00000 |
| #define CSKYV2_INST_JSRI_TO_LRW 0xea9a0000 |
| #define CSKYV2_INST_JSR_R26 0xe8fa0000 |
| #define CSKYV2_INST_MOV_R0_R0 0xc4004820 |
| |
| #define OPRND_SHIFT_0_BIT 0 |
| #define OPRND_SHIFT_1_BIT 1 |
| #define OPRND_SHIFT_2_BIT 2 |
| #define OPRND_SHIFT_3_BIT 3 |
| #define OPRND_SHIFT_4_BIT 4 |
| |
| #define OPRND_MASK_NONE 0x0 |
| #define OPRND_MASK_0_1 0x3 |
| #define OPRND_MASK_0_2 0x7 |
| #define OPRND_MASK_0_3 0xf |
| #define OPRND_MASK_0_4 0x1f |
| #define OPRND_MASK_0_7 0xff |
| #define OPRND_MASK_0_8 0x1ff |
| #define OPRND_MASK_0_9 0x3ff |
| #define OPRND_MASK_0_10 0x7ff |
| #define OPRND_MASK_0_11 0xfff |
| #define OPRND_MASK_0_14 0x7fff |
| #define OPRND_MASK_0_15 0xffff |
| #define OPRND_MASK_0_17 0x3ffff |
| #define OPRND_MASK_0_25 0x3ffffff |
| #define OPRND_MASK_2_4 0x1c |
| #define OPRND_MASK_2_5 0x3c |
| #define OPRND_MASK_3_7 0xf8 |
| #define OPRND_MASK_4 0x10 |
| #define OPRND_MASK_4_6 0x70 |
| #define OPRND_MASK_4_7 0xf0 |
| #define OPRND_MASK_4_8 0x1f0 |
| #define OPRND_MASK_4_10 0x7f0 |
| #define OPRND_MASK_5 0x20 |
| #define OPRND_MASK_5_6 0x60 |
| #define OPRND_MASK_5_7 0xe0 |
| #define OPRND_MASK_5_8 0x1e0 |
| #define OPRND_MASK_5_9 0x3e0 |
| #define OPRND_MASK_6_9 0x3c0 |
| #define OPRND_MASK_6_10 0x7c0 |
| #define OPRND_MASK_8_9 0x300 |
| #define OPRND_MASK_8_10 0x700 |
| #define OPRND_MASK_8_11 0xf00 |
| #define OPRND_MASK_9_10 0x600 |
| #define OPRND_MASK_9_12 0x1e00 |
| #define OPRND_MASK_10_11 0xc00 |
| #define OPRND_MASK_10_14 0x7c00 |
| #define OPRND_MASK_12_15 0xf000 |
| #define OPRND_MASK_13_17 0x3e000 |
| #define OPRND_MASK_16_19 0xf0000 |
| #define OPRND_MASK_16_20 0x1f0000 |
| #define OPRND_MASK_16_25 0x3ff0000 |
| #define OPRND_MASK_21_24 0x1e00000 |
| #define OPRND_MASK_21_25 0x3e00000 |
| #define OPRND_MASK_25 0x2000000 |
| #define OPRND_MASK_RSV 0xffffffff |
| #define OPRND_MASK_0_3or21_24 OPRND_MASK_0_3 | OPRND_MASK_21_24 |
| #define OPRND_MASK_0_4or21_25 OPRND_MASK_0_4 | OPRND_MASK_21_25 |
| #define OPRND_MASK_0_4or16_20 OPRND_MASK_0_4 | OPRND_MASK_16_20 |
| #define OPRND_MASK_0_4or8_10 OPRND_MASK_0_4 | OPRND_MASK_8_10 |
| #define OPRND_MASK_0_4or8_9 OPRND_MASK_0_4 | OPRND_MASK_8_9 |
| #define OPRND_MASK_0_14or16_20 OPRND_MASK_0_14 | OPRND_MASK_16_20 |
| #define OPRND_MASK_4or5_8 OPRND_MASK_4 | OPRND_MASK_5_8 |
| #define OPRND_MASK_5or21_24 OPRND_MASK_5 | OPRND_MASK_21_24 |
| #define OPRND_MASK_2_5or6_9 OPRND_MASK_2_5 | OPRND_MASK_6_9 |
| #define OPRND_MASK_4_6or21_25 OPRND_MASK_4_6 | OPRND_MASK_21_25 |
| #define OPRND_MASK_4_7or21_24 OPRND_MASK_4_7 | OPRND_MASK_21_24 |
| #define OPRND_MASK_5_6or21_25 OPRND_MASK_5_6 | OPRND_MASK_21_25 |
| #define OPRND_MASK_5_7or8_10 OPRND_MASK_5_7 | OPRND_MASK_8_10 |
| #define OPRND_MASK_5_9or21_25 OPRND_MASK_5_9 | OPRND_MASK_21_25 |
| #define OPRND_MASK_16_19or21_24 OPRND_MASK_16_19 | OPRND_MASK_21_24 |
| #define OPRND_MASK_16_20or21_25 OPRND_MASK_16_20 | OPRND_MASK_21_25 |
| #define OPRND_MASK_4or9_10or25 OPRND_MASK_4 | OPRND_MASK_9_10 | OPRND_MASK_25 |
| #define OPRND_MASK_4_7or16_24 OPRND_MASK_4_7 | OPRND_MASK_16_20 | OPRND_MASK_21_24 |
| |
| #define OPERAND_INFO(mask, type, shift) \ |
| {OPRND_MASK_##mask, OPRND_TYPE_##type, shift} |
| |
| #define OPCODE_INFO_NONE() \ |
| {-2, 0, \ |
| {{OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}} |
| |
| /* Here and in subsequent macros, the "oprnd" arguments are the |
| parenthesized arglist to the OPERAND_INFO macro above. */ |
| #define OPCODE_INFO(num, op, oprnd1, oprnd2, oprnd3, oprnd4, oprnd5) \ |
| {num, op, \ |
| {OPERAND_INFO oprnd1, OPERAND_INFO oprnd2, OPERAND_INFO oprnd3, \ |
| OPERAND_INFO oprnd4, OPERAND_INFO oprnd5}} |
| |
| #define OPCODE_INFO0(op) \ |
| {0, op, \ |
| {{OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}} |
| #define OPCODE_INFO1(op, oprnd) \ |
| {1, op, \ |
| {{OPERAND_INFO oprnd, \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}} |
| #define OPCODE_INFO2(op, oprnd1, oprnd2) \ |
| {2, op, \ |
| {{OPERAND_INFO oprnd1, \ |
| OPERAND_INFO oprnd2, \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}} |
| #define OPCODE_INFO3(op, oprnd1, oprnd2, oprnd3) \ |
| {3, op, \ |
| {{OPERAND_INFO oprnd1, \ |
| OPERAND_INFO oprnd2, \ |
| OPERAND_INFO oprnd3, \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}} |
| #define OPCODE_INFO4(op, oprnd1, oprnd2, oprnd3, oprnd4) \ |
| {4, op, \ |
| {{OPERAND_INFO oprnd1, \ |
| OPERAND_INFO oprnd2, \ |
| OPERAND_INFO oprnd3, \ |
| OPERAND_INFO oprnd4, \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}} |
| #define OPCODE_INFO_LIST(op, oprnd) \ |
| {-1, op, \ |
| {{OPERAND_INFO oprnd, \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT) , \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}} |
| #define OPCODE_INFO5(op, oprnd1, oprnd2, oprnd3, oprnd4, oprnd5) \ |
| {5, op, \ |
| {{OPERAND_INFO oprnd1, \ |
| OPERAND_INFO oprnd2, \ |
| OPERAND_INFO oprnd3, \ |
| OPERAND_INFO oprnd4, \ |
| OPERAND_INFO oprnd5}}} |
| |
| #define BRACKET_OPRND(oprnd1, oprnd2) \ |
| OPERAND_INFO (RSV, BRACKET, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO oprnd1, \ |
| OPERAND_INFO oprnd2, \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT) |
| #define ABRACKET_OPRND(oprnd1, oprnd2) \ |
| OPERAND_INFO (RSV, ABRACKET, OPRND_SHIFT_0_BIT), \ |
| OPERAND_INFO oprnd1, \ |
| OPERAND_INFO oprnd2, \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT) |
| |
| #define SOPCODE_INFO1(op, soprnd) \ |
| {1, op, \ |
| {{soprnd, \ |
| OPERAND_INFO (NONE, NONE, OPRND_SHIFT_0_BIT)}}} |
| #define SOPCODE_INFO2(op, oprnd, soprnd) \ |
| {2, op, \ |
| {{OPERAND_INFO oprnd, soprnd}}} |
| |
| |
| /* Before using the opcode-defining macros, there need to be |
| #defines for _TRANSFER, _RELOC16, _RELOC32, and _RELAX. See |
| below. */ |
| /* FIXME: it is a wart that these parameters are not explicit. */ |
| |
| #define OP16(mnem, opcode16, isa) \ |
| {mnem, _TRANSFER, \ |
| {opcode16, OPCODE_INFO_NONE ()}, \ |
| {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \ |
| isa, 0, _RELOC16, 0, _RELAX, NULL} |
| |
| #ifdef BUILD_AS |
| |
| #define OP16_WITH_WORK(mnem, opcode16, isa, work) \ |
| {mnem, _TRANSFER, \ |
| {opcode16, OPCODE_INFO_NONE ()}, \ |
| {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \ |
| isa, 0, _RELOC16, 0, _RELAX, work} |
| #define OP32_WITH_WORK(mnem, opcode32, isa, work) \ |
| {mnem, _TRANSFER, \ |
| {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \ |
| {opcode32, OPCODE_INFO_NONE ()}, \ |
| 0, isa, 0, _RELOC32, _RELAX, work} |
| #define OP16_OP32_WITH_WORK(mnem, opcode16, isa16, opcode32, isa32, work) \ |
| {mnem, _TRANSFER, \ |
| {opcode16, OPCODE_INFO_NONE ()}, \ |
| {opcode32, OPCODE_INFO_NONE ()}, \ |
| isa16, isa32, _RELOC16, _RELOC32, _RELAX, work} |
| #define DOP16_OP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32, isa32, work) \ |
| {mnem, _TRANSFER, \ |
| {opcode16a, opcode16b}, \ |
| {opcode32, OPCODE_INFO_NONE ()}, \ |
| isa16, isa32, _RELOC16, _RELOC32, _RELAX, work} |
| #define DOP16_DOP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32, work) \ |
| {mnem, _TRANSFER, \ |
| {opcode16a, opcode16b}, \ |
| {opcode32a, opcode32b}, \ |
| isa16, isa32, _RELOC16, _RELOC32, _RELAX, work} |
| #define DOP32_WITH_WORK(mnem, opcode32a, opcode32b, isa, work) \ |
| {mnem, _TRANSFER, \ |
| {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \ |
| {opcode32a, opcode32b}, \ |
| 0, isa, 0, _RELOC32, _RELAX, work} |
| |
| #else /* ifdef BUILD_AS */ |
| |
| #define OP16_WITH_WORK(mnem, opcode16, isa, work) \ |
| {mnem, _TRANSFER, \ |
| {opcode16, OPCODE_INFO_NONE ()}, \ |
| {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \ |
| isa, 0, _RELOC16, 0, _RELAX, NULL} |
| #define OP32_WITH_WORK(mnem, opcode32, isa, work) \ |
| {mnem, _TRANSFER, \ |
| {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \ |
| {opcode32, OPCODE_INFO_NONE ()}, \ |
| 0, isa, 0, _RELOC32, _RELAX, NULL} |
| #define OP16_OP32_WITH_WORK(mnem, opcode16, isa16, opcode32, isa32, work) \ |
| {mnem, _TRANSFER, \ |
| {opcode16, OPCODE_INFO_NONE ()}, \ |
| {opcode32, OPCODE_INFO_NONE ()}, \ |
| isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL} |
| #define DOP16_OP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32, isa32, work) \ |
| {mnem, _TRANSFER, \ |
| {opcode16a, opcode16b}, \ |
| {opcode32, OPCODE_INFO_NONE ()}, \ |
| isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL} |
| #define DOP16_DOP32_WITH_WORK(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32, work) \ |
| {mnem, _TRANSFER, \ |
| {opcode16a, opcode16b}, \ |
| {opcode32a, opcode32b}, \ |
| isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL} |
| #define DOP32_WITH_WORK(mnem, opcode32a, opcode32b, isa, work) \ |
| {mnem, _TRANSFER, \ |
| {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \ |
| {opcode32a, opcode32b}, \ |
| 0, isa, 0, _RELOC32, _RELAX, NULL} |
| |
| #endif /* ifdef BUILD_AS */ |
| |
| #define DOP16(mnem, opcode16_1, opcode16_2, isa) \ |
| {mnem, _TRANSFER, \ |
| {opcode16_1, opcode16_2}, \ |
| {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \ |
| isa, 0, _RELOC16, 0, _RELAX, NULL} |
| #define OP32(mnem, opcode32, isa) \ |
| {mnem, _TRANSFER, \ |
| {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \ |
| {opcode32, OPCODE_INFO_NONE ()}, \ |
| 0, isa, 0, _RELOC32, _RELAX, NULL} |
| #define DOP32(mnem, opcode32a, opcode32b, isa) \ |
| {mnem, _TRANSFER, \ |
| {OPCODE_INFO_NONE (), OPCODE_INFO_NONE ()}, \ |
| {opcode32a, opcode32b}, \ |
| 0, isa, 0, _RELOC32, _RELAX, NULL} |
| #define OP16_OP32(mnem, opcode16, isa16, opcode32, isa32) \ |
| {mnem, _TRANSFER, \ |
| {opcode16, OPCODE_INFO_NONE ()}, \ |
| {opcode32, OPCODE_INFO_NONE ()}, \ |
| isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL} |
| #define DOP16_OP32(mnem, opcode16a, opcode16b, isa16, opcode32, isa32) \ |
| {mnem, _TRANSFER, \ |
| {opcode16a, opcode16b}, \ |
| {opcode32, OPCODE_INFO_NONE ()}, \ |
| isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL} |
| #define OP16_DOP32(mnem, opcode16, isa16, opcode32a, opcode32b, isa32) \ |
| {mnem, _TRANSFER, \ |
| {opcode16, OPCODE_INFO_NONE ()}, \ |
| {opcode32a, opcode32b}, \ |
| isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL} |
| #define DOP16_DOP32(mnem, opcode16a, opcode16b, isa16, opcode32a, opcode32b, isa32) \ |
| {mnem, _TRANSFER, \ |
| {opcode16a, opcode16b}, \ |
| {opcode32a, opcode32b}, \ |
| isa16, isa32, _RELOC16, _RELOC32, _RELAX, NULL} |
| |
| |
| /* Register names and numbers. */ |
| #define V1_REG_SP 0 |
| #define V1_REG_LR 15 |
| |
| struct csky_reg |
| { |
| const char *name; |
| int index; |
| int flag; |
| }; |
| |
| const char *csky_general_reg[] = |
| { |
| "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", |
| "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15", |
| "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23", |
| "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31", |
| NULL, |
| }; |
| |
| /* TODO: optimize. */ |
| const char *cskyv2_general_alias_reg[] = |
| { |
| "a0", "a1", "a2", "a3", "l0", "l1", "l2", "l3", |
| "l4", "l5", "l6", "l7", "t0", "t1", "sp", "lr", |
| "l8", "l9", "t2", "t3", "t4", "t5", "t6", "t7", |
| "t8", "t9", "r26", "r27", "rdb", "gb", "r30", "r31", |
| NULL, |
| }; |
| |
| /* TODO: optimize. */ |
| const char *cskyv1_general_alias_reg[] = |
| { |
| "sp", "r1", "a0", "a1", "a2", "a3", "a4", "a5", |
| "fp", "l0", "l1", "l2", "l3", "l4", "gb", "lr", |
| NULL, |
| }; |
| |
| /* TODO: optimize. */ |
| const char *csky_fpu_reg[] = |
| { |
| "fr0", "fr1", "fr2", "fr3", "fr4", "fr5", "fr6", "fr7", |
| "fr8", "fr9", "fr10", "fr11", "fr12", "fr13", "fr14", "fr15", |
| "fr16", "fr17", "fr18", "fr19", "fr20", "fr21", "fr22", "fr23", |
| "fr24", "fr25", "fr26", "fr27", "fr28", "fr29", "fr30", "fr31", |
| NULL, |
| }; |
| |
| /* Control Registers. */ |
| struct csky_reg csky_ctrl_regs[] = |
| { |
| {"psr", 0, 0}, {"vbr", 1, 0}, {"epsr", 2, 0}, {"fpsr", 3, 0}, |
| {"epc", 4, 0}, {"fpc", 5, 0}, {"ss0", 6, 0}, {"ss1", 7, 0}, |
| {"ss2", 8, 0}, {"ss3", 9, 0}, {"ss4", 10, 0}, {"gcr", 11, 0}, |
| {"gsr", 12, 0}, {"cpuidr", 13, 0}, {"dcsr", 14, 0}, {"cwr", 15, 0}, |
| {"cfr", 16, 0}, {"ccr", 17, 0}, {"capr", 19, 0}, {"pacr", 20, 0}, |
| {"rid", 21, 0}, {"sedcr", 8, CSKY_ISA_TRUST}, {"sepcr", 9, CSKY_ISA_TRUST}, |
| {NULL, 0, 0} |
| }; |
| |
| const char *csky_cp_idx[] = |
| { |
| "cp0", "cp1", "cp2", "cp3", "cp4", "cp5", "cp6", "cp7", |
| "cp8", "cp9", "cp10", "cp11", "cp12", "cp13", "cp14", "cp15", |
| "cp16", "cp17", "cp18", "cp19", "cp20", |
| NULL, |
| }; |
| |
| const char *csky_cp_reg[] = |
| { |
| "cpr0", "cpr1", "cpr2", "cpr3", "cpr4", "cpr5", "cpr6", "cpr7", |
| "cpr8", "cpr9", "cpr10", "cpr11", "cpr12", "cpr13", "cpr14", "cpr15", |
| "cpr16", "cpr17", "cpr18", "cpr19", "cpr20", "cpr21", "cpr22", "cpr23", |
| "cpr24", "cpr25", "cpr26", "cpr27", "cpr28", "cpr29", "cpr30", "cpr31", |
| "cpr32", "cpr33", "cpr34", "cpr35", "cpr36", "cpr37", "cpr38", "cpr39", |
| "cpr40", "cpr41", "cpr42", "cpr43", "cpr44", "cpr45", "cpr46", "cpr47", |
| "cpr48", "cpr49", "cpr50", "cpr51", "cpr52", "cpr53", "cpr54", "cpr55", |
| "cpr56", "cpr57", "cpr58", "cpr59", "cpr60", "cpr61", "cpr62", "cpr63", |
| NULL, |
| }; |
| |
| const char *csky_cp_creg[] = |
| { |
| "cpcr0", "cpcr1", "cpcr2", "cpcr3", |
| "cpcr4", "cpcr5", "cpcr6", "cpcr7", |
| "cpcr8", "cpcr9", "cpcr10", "cpcr11", |
| "cpcr12", "cpcr13", "cpcr14", "cpcr15", |
| "cpcr16", "cpcr17", "cpcr18", "cpcr19", |
| "cpcr20", "cpcr21", "cpcr22", "cpcr23", |
| "cpcr24", "cpcr25", "cpcr26", "cpcr27", |
| "cpcr28", "cpcr29", "cpcr30", "cpcr31", |
| "cpcr32", "cpcr33", "cpcr34", "cpcr35", |
| "cpcr36", "cpcr37", "cpcr38", "cpcr39", |
| "cpcr40", "cpcr41", "cpcr42", "cpcr43", |
| "cpcr44", "cpcr45", "cpcr46", "cpcr47", |
| "cpcr48", "cpcr49", "cpcr50", "cpcr51", |
| "cpcr52", "cpcr53", "cpcr54", "cpcr55", |
| "cpcr56", "cpcr57", "cpcr58", "cpcr59", |
| "cpcr60", "cpcr61", "cpcr62", "cpcr63", |
| NULL, |
| }; |
| |
| struct psrbit |
| { |
| int value; |
| int isa; |
| const char *name; |
| }; |
| const struct psrbit cskyv1_psr_bits[] = |
| { |
| {1, 0, "ie"}, |
| {2, 0, "fe"}, |
| {4, 0, "ee"}, |
| {8, 0, "af"}, |
| {0, 0, NULL}, |
| }; |
| const struct psrbit cskyv2_psr_bits[] = |
| { |
| {8, 0, "ee"}, |
| {4, 0, "ie"}, |
| {2, 0, "fe"}, |
| {1, 0, "af"}, |
| {0x10, CSKY_ISA_TRUST, "sie"}, |
| {0, 0, NULL}, |
| }; |
| |
| |
| /* C-SKY V1 opcodes. */ |
| const struct csky_opcode csky_v1_opcodes[] = |
| { |
| #define _TRANSFER 0 |
| #define _RELOC16 0 |
| #define _RELOC32 0 |
| #define _RELAX 0 |
| OP16 ("bkpt", |
| OPCODE_INFO0 (0x0000), |
| CSKYV1_ISA_E1), |
| OP16 ("sync", |
| OPCODE_INFO0 (0x0001), |
| CSKYV1_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 2 |
| OP16 ("rfi", |
| OPCODE_INFO0 (0x0003), |
| CSKYV1_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| OP16 ("stop", |
| OPCODE_INFO0 (0x0004), |
| CSKYV1_ISA_E1), |
| OP16 ("wait", |
| OPCODE_INFO0 (0x0005), |
| CSKYV1_ISA_E1), |
| OP16 ("doze", |
| OPCODE_INFO0 (0x0006), |
| CSKYV1_ISA_E1), |
| OP16 ("idly4", |
| OPCODE_INFO0 (0x0007), |
| CSKYV1_ISA_E1), |
| OP16 ("trap", |
| OPCODE_INFO1 (0x0008, |
| (0_1, IMM2b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("mvtc", |
| OPCODE_INFO0 (0x000c), |
| CSKY_ISA_DSP), |
| OP16 ("cprc", |
| OPCODE_INFO0 (0x000d), |
| CSKY_ISA_CP), |
| OP16 ("cpseti", |
| OPCODE_INFO1 (0x0010, |
| (0_3, CPIDX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_CP), |
| OP16 ("mvc", |
| OPCODE_INFO1 (0x0020, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("mvcv", |
| OPCODE_INFO1 (0x0030, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("ldq", |
| OPCODE_INFO2 (0x0040, |
| (NONE, REGr4_r7, OPRND_SHIFT_0_BIT), |
| (0_3, REGnr4_r7, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("stq", |
| OPCODE_INFO2 (0x0050, |
| (NONE, REGr4_r7, OPRND_SHIFT_0_BIT), |
| (0_3, REGnr4_r7, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("ldm", |
| OPCODE_INFO2 (0x0060, |
| (0_3, REGLIST_DASH, OPRND_SHIFT_0_BIT), |
| (NONE, REGbsp, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("stm", |
| OPCODE_INFO2 (0x0070, |
| (0_3, REGLIST_DASH, OPRND_SHIFT_0_BIT), |
| (NONE, REGbsp, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("dect", |
| OPCODE_INFO3 (0x0080, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0080, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("decf", |
| OPCODE_INFO3 (0x0090, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0090, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("inct", |
| OPCODE_INFO3 (0x00a0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x00a0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("incf", |
| OPCODE_INFO3 (0x00b0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x00b0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 2 |
| OP16 ("jmp", |
| OPCODE_INFO1 (0x00c0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| OP16 ("jsr", |
| OPCODE_INFO1 (0x00d0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("ff1", |
| OPCODE_INFO2 (0x00e0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x00e0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("brev", |
| OPCODE_INFO2 (0x00f0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x00f0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("xtrb3", |
| OPCODE_INFO2 (0x0100, |
| (NONE, REG_r1a, OPRND_SHIFT_0_BIT), |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0100, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("xtrb2", |
| OPCODE_INFO2 (0x0110, |
| (NONE, REG_r1a, OPRND_SHIFT_0_BIT), |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0110, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("xtrb1", |
| OPCODE_INFO2 (0x0120, |
| (NONE, REG_r1a, OPRND_SHIFT_0_BIT), |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0120, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("xtrb0", |
| OPCODE_INFO2 (0x0130, |
| (NONE, REG_r1a, OPRND_SHIFT_0_BIT), |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0130, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("zextb", |
| OPCODE_INFO2 (0x0140, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0140, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("sextb", |
| OPCODE_INFO2 (0x0150, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0150, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("zexth", |
| OPCODE_INFO2 (0x0160, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0160, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("sexth", |
| OPCODE_INFO2 (0x0170, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0170, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("declt", |
| OPCODE_INFO3 (0x0180, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x0180, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("tstnbz", |
| OPCODE_INFO1 (0x0190, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("decgt", |
| OPCODE_INFO3 (0x01a0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x01a0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("decne", |
| OPCODE_INFO3 (0x01b0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x01b0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("clrt", |
| OPCODE_INFO1 (0x01c0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("clrf", |
| OPCODE_INFO1 (0x01d0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("abs", |
| OPCODE_INFO2 (0x01e0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x01e0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("not", |
| OPCODE_INFO2 (0x01f0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x01f0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("movt", |
| OPCODE_INFO2 (0x0200, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("mult", |
| OPCODE_INFO3 (0x0300, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x0300, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("mac", |
| OPCODE_INFO2 (0x0400, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC), |
| DOP16 ("subu", |
| OPCODE_INFO3 (0x0500, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x0500, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("sub", |
| OPCODE_INFO3 (0x0500, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x0500, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("addc", |
| OPCODE_INFO3 (0x0600, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x0600, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("subc", |
| OPCODE_INFO3 (0x0700, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x0700, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("cprgr", |
| OPCODE_INFO2 (0x0800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, CPREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_CP), |
| OP16 ("movf", |
| OPCODE_INFO2 (0x0a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("lsr", |
| OPCODE_INFO3 (0x0b00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x0b00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("cmphs", |
| OPCODE_INFO2 (0x0c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("cmplt", |
| OPCODE_INFO2 (0x0d00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("tst", |
| OPCODE_INFO2 (0x0e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("cmpne", |
| OPCODE_INFO2 (0x0f00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("mfcr", |
| OPCODE_INFO2 (0x1000, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, CTRLREG, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("psrclr", |
| OPCODE_INFO_LIST (0x11f0, |
| (0_2, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("psrset", |
| OPCODE_INFO_LIST (0x11f8, |
| (0_2, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("mov", |
| OPCODE_INFO2 (0x1200, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("bgenr", |
| OPCODE_INFO2 (0x1300, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("rsub", |
| OPCODE_INFO3 (0x1400, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x1400, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("ixw", |
| OPCODE_INFO3 (0x1500, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x1500, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("and", |
| OPCODE_INFO3 (0x1600, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x1600, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("xor", |
| OPCODE_INFO3 (0x1700, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x1700, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("mtcr", |
| OPCODE_INFO2 (0x1800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, CTRLREG, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("asr", |
| OPCODE_INFO3 (0x1a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x1a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("lsl", |
| OPCODE_INFO3 (0x1b00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x1b00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("addu", |
| OPCODE_INFO3 (0x1c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x1c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("add", |
| OPCODE_INFO2 (0x1c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("ixh", |
| OPCODE_INFO3 (0x1d00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x1d00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("or", |
| OPCODE_INFO3 (0x1e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x1e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("andn", |
| OPCODE_INFO3 (0x1f00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x1f00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("addi", |
| OPCODE_INFO3 (0x2000, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_8, OIMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x2000, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("cmplti", |
| OPCODE_INFO2 (0x2200, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("subi", |
| OPCODE_INFO3 (0x2400, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_8, OIMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x2400, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("cpwgr", |
| OPCODE_INFO2 (0x2600, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, CPREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_CP), |
| DOP16 ("rsubi", |
| OPCODE_INFO3 (0x2800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x2800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("cmpnei", |
| OPCODE_INFO2 (0x2a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("bmaski", |
| OPCODE_INFO2 (0x2c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_BMASKI, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("divu", |
| OPCODE_INFO3 (0x2c10, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, REG_r1b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x2c10, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, REG_r1b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("mflos", |
| OPCODE_INFO1 (0x2c20, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC_DSP), |
| OP16 ("mfhis", |
| OPCODE_INFO1 (0x2c30, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC_DSP), |
| OP16 ("mtlo", |
| OPCODE_INFO1 (0x2c40, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC_DSP), |
| OP16 ("mthi", |
| OPCODE_INFO1 (0x2c50, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC_DSP), |
| OP16 ("mflo", |
| OPCODE_INFO1 (0x2c60, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC_DSP), |
| OP16 ("mfhi", |
| OPCODE_INFO1 (0x2c70, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC_DSP), |
| DOP16 ("andi", |
| OPCODE_INFO3 (0x2e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x2e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("bclri", |
| OPCODE_INFO3 (0x3000, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x3000, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("bgeni", |
| OPCODE_INFO2 (0x3200, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_7_31, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("cpwir", |
| OPCODE_INFO1 (0x3200, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_CP), |
| DOP16 ("divs", |
| OPCODE_INFO3 (0x3210, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, REG_r1b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x3210, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, REG_r1b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("cprsr", |
| OPCODE_INFO1 (0x3220, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_CP), |
| OP16 ("cpwsr", |
| OPCODE_INFO1 (0x3230, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_CP), |
| DOP16 ("bseti", |
| OPCODE_INFO3 (0x3400, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x3400, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("btsti", |
| OPCODE_INFO2 (0x3600, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("rotli", |
| OPCODE_INFO3 (0x3800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x3800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("xsr", |
| OPCODE_INFO3 (0x3800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x3800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("asrc", |
| OPCODE_INFO3 (0x3a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x3a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("asri", |
| OPCODE_INFO3 (0x3a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x3a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("lslc", |
| OPCODE_INFO3 (0x3c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x3c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("lsli", |
| OPCODE_INFO3 (0x3c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x3c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("lsrc", |
| OPCODE_INFO3 (0x3e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x3e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("lsri", |
| OPCODE_INFO3 (0x3e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x3e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_1_31, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("ldex", |
| SOPCODE_INFO2 (0x4000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_MP), |
| OP16 ("ldex.w", |
| SOPCODE_INFO2 (0x4000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_MP), |
| OP16 ("ldwex", |
| SOPCODE_INFO2 (0x4000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_MP), |
| OP16 ("stex", |
| SOPCODE_INFO2 (0x5000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_MP), |
| OP16 ("stex.w", |
| SOPCODE_INFO2 (0x5000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_MP), |
| OP16 ("stwex", |
| SOPCODE_INFO2 (0x5000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_MP), |
| OP16 ("omflip0", |
| OPCODE_INFO2 (0x4000, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC), |
| OP16 ("omflip1", |
| OPCODE_INFO2 (0x4100, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC), |
| OP16 ("omflip2", |
| OPCODE_INFO2 (0x4200, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC), |
| OP16 ("omflip3", |
| OPCODE_INFO2 (0x4300, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MAC), |
| OP16 ("muls", |
| OPCODE_INFO2 (0x5000, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("mulsa", |
| OPCODE_INFO2 (0x5100, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("mulss", |
| OPCODE_INFO2 (0x5200, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("mulu", |
| OPCODE_INFO2 (0x5400, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("mulua", |
| OPCODE_INFO2 (0x5500, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("mulus", |
| OPCODE_INFO2 (0x5600, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("vmulsh", |
| OPCODE_INFO2 (0x5800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("vmulsha", |
| OPCODE_INFO2 (0x5900, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("vmulshs", |
| OPCODE_INFO2 (0x5a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("vmulsw", |
| OPCODE_INFO2 (0x5c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("vmulswa", |
| OPCODE_INFO2 (0x5d00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("vmulsws", |
| OPCODE_INFO2 (0x5e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("movi", |
| OPCODE_INFO2 (0x6000, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_10, IMM7b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("mulsh", |
| OPCODE_INFO3 (0x6800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x6800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("mulsh.h", |
| OPCODE_INFO3 (0x6800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x6800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("mulsha", |
| OPCODE_INFO2 (0x6900, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("mulshs", |
| OPCODE_INFO2 (0x6a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("cprcr", |
| OPCODE_INFO2 (0x6b00, |
| (0_2, GREG0_7, OPRND_SHIFT_0_BIT), |
| (3_7, CPCREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_CP), |
| OP16 ("mulsw", |
| OPCODE_INFO2 (0x6c00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("mulswa", |
| OPCODE_INFO2 (0x6d00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("mulsws", |
| OPCODE_INFO2 (0x6e00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16 ("cpwcr", |
| OPCODE_INFO2 (0x6f00, |
| (0_2, GREG0_7, OPRND_SHIFT_0_BIT), |
| (3_7, CPCREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_CP), |
| #undef _RELOC16 |
| #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM8BY4 |
| #undef _TRANSFER |
| #define _TRANSFER 1 |
| OP16 ("jmpi", |
| OPCODE_INFO1 (0x7000, |
| (0_7, OFF8b, OPRND_SHIFT_2_BIT)), |
| CSKYV1_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| OP16 ("jsri", |
| OPCODE_INFO1 (0x7f00, |
| (0_7, OFF8b, OPRND_SHIFT_2_BIT)), |
| CSKYV1_ISA_E1), |
| OP16_WITH_WORK ("lrw", |
| OPCODE_INFO2 (0x7000, |
| (8_11, REGnsplr, OPRND_SHIFT_0_BIT), |
| (0_7, CONSTANT, OPRND_SHIFT_2_BIT)), |
| CSKYV1_ISA_E1, |
| v1_work_lrw), |
| #undef _RELOC16 |
| #define _RELOC16 0 |
| DOP16 ("ld.w", |
| SOPCODE_INFO2 (0x8000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| OPCODE_INFO2 (0x8000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("ldw", |
| SOPCODE_INFO2 (0x8000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| OPCODE_INFO2 (0x8000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("ld", |
| SOPCODE_INFO2 (0x8000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| OPCODE_INFO2 (0x8000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("st.w", |
| SOPCODE_INFO2 (0x9000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| OPCODE_INFO2 (0x9000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("stw", |
| SOPCODE_INFO2 (0x9000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| OPCODE_INFO2 (0x9000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("st", |
| SOPCODE_INFO2 (0x9000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| OPCODE_INFO2 (0x9000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("ld.b", |
| SOPCODE_INFO2 (0xa000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| OPCODE_INFO2 (0xa000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("ldb", |
| SOPCODE_INFO2 (0xa000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| OPCODE_INFO2 (0xa000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("st.b", |
| SOPCODE_INFO2 (0xb000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| OPCODE_INFO2 (0xb000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("stb", |
| SOPCODE_INFO2 (0xb000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| OPCODE_INFO2 (0xb000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("ld.h", |
| SOPCODE_INFO2 (0xc000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| OPCODE_INFO2 (0xc000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("ldh", |
| SOPCODE_INFO2 (0xc000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| OPCODE_INFO2 (0xc000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("st.h", |
| SOPCODE_INFO2 (0xd000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| OPCODE_INFO2 (0xd000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| DOP16 ("sth", |
| SOPCODE_INFO2 (0xd000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_7, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| OPCODE_INFO2 (0xd000, |
| (8_11, GREG0_15, OPRND_SHIFT_0_BIT), |
| (0_3, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| |
| #undef _RELOC16 |
| #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM11BY2 |
| OP16 ("bt", |
| OPCODE_INFO1 (0xe000, |
| (0_10, OFF11b, OPRND_SHIFT_1_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("bf", |
| OPCODE_INFO1 (0xe800, |
| (0_10, OFF11b, OPRND_SHIFT_1_BIT)), |
| CSKYV1_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 1 |
| OP16 ("br", |
| OPCODE_INFO1 (0xf000, |
| (0_10, OFF11b, OPRND_SHIFT_1_BIT)), |
| CSKYV1_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| OP16 ("bsr", |
| OPCODE_INFO1 (0xf800, |
| (0_10, OFF11b, OPRND_SHIFT_1_BIT)), |
| CSKYV1_ISA_E1), |
| #undef _RELOC16 |
| #define _RELOC16 0 |
| |
| #undef _RELAX |
| #define _RELAX 1 |
| OP16 ("jbt", |
| OPCODE_INFO1 (0xe000, |
| (0_10, JBTF, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("jbf", |
| OPCODE_INFO1 (0xe800, |
| (0_10, JBTF, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 1 |
| OP16 ("jbr", |
| OPCODE_INFO1 (0xf000, |
| (0_10, JBR, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| #undef _RELAX |
| #define _RELAX 0 |
| |
| OP16_WITH_WORK ("jbsr", |
| OPCODE_INFO1 (0xf800, |
| (0_10, JBSR, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1, |
| v1_work_jbsr), |
| |
| /* The following are aliases for other instructions. */ |
| /* rts -> jmp r15. */ |
| #undef _TRANSFER |
| #define _TRANSFER 2 |
| OP16 ("rts", |
| OPCODE_INFO0 (0x00CF), |
| CSKYV1_ISA_E1), |
| OP16 ("rte", |
| OPCODE_INFO0 (0x0002), |
| CSKYV1_ISA_E1), |
| OP16 ("rfe", |
| OPCODE_INFO0 (0x0002), |
| CSKYV1_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| |
| /* cmphs r0,r0 */ |
| OP16 ("setc", |
| OPCODE_INFO0 (0x0c00), |
| CSKYV1_ISA_E1), |
| /* cmpne r0,r0 */ |
| OP16 ("clrc", |
| OPCODE_INFO0 (0x0f00), |
| CSKYV1_ISA_E1), |
| /* cmplti rd,1 */ |
| OP16 ("tstle", |
| OPCODE_INFO1 (0x2200, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| /* cmplei rd,X -> cmplti rd,X+1 */ |
| OP16 ("cmplei", |
| OPCODE_INFO2 (0x2200, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| /* rsubi rd,0 */ |
| OP16 ("neg", |
| OPCODE_INFO1 (0x2800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| /* cmpnei rd,0. */ |
| OP16 ("tstne", |
| OPCODE_INFO1 (0x2a00, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| /* btsti rx,31. */ |
| OP16 ("tstlt", |
| OPCODE_INFO1 (0x37f0, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| /* bclri rx,log2(imm). */ |
| OP16 ("mclri", |
| OPCODE_INFO2 (0x3000, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| /* bgeni rx,log2(imm). */ |
| OP16 ("mgeni", |
| OPCODE_INFO2 (0x3200, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_7_31_POWER, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| /* bseti rx,log2(imm). */ |
| OP16 ("mseti", |
| OPCODE_INFO2 (0x3400, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| /* btsti rx,log2(imm). */ |
| OP16 ("mtsti", |
| OPCODE_INFO2 (0x3600, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_POWER, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("rori", |
| OPCODE_INFO2 (0x3800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_RORI, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| OP16 ("rotri", |
| OPCODE_INFO2 (0x3800, |
| (0_3, GREG0_15, OPRND_SHIFT_0_BIT), |
| (4_8, IMM5b_RORI, OPRND_SHIFT_0_BIT)), |
| CSKYV1_ISA_E1), |
| /* mov r0, r0. */ |
| OP16 ("nop", |
| OPCODE_INFO0 (0x1200), |
| CSKYV1_ISA_E1), |
| |
| /* Float instruction with work. */ |
| OP16_WITH_WORK ("fabss", |
| OPCODE_INFO3 (0xffe04400, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnegs", |
| OPCODE_INFO3 (0xffe04c00, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fsqrts", |
| OPCODE_INFO3 (0xffe05400, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("frecips", |
| OPCODE_INFO3 (0xffe05c00, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fadds", |
| OPCODE_INFO4 (0xffe38000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (10_14, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fsubs", |
| OPCODE_INFO4 (0xffe48000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (10_14, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmacs", |
| OPCODE_INFO4 (0xffe58000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (10_14, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmscs", |
| OPCODE_INFO4 (0xffe68000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (10_14, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmuls", |
| OPCODE_INFO4 (0xffe78000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (10_14, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fdivs", |
| OPCODE_INFO4 (0xffe88000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (10_14, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnmacs", |
| OPCODE_INFO4 (0xffe98000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (10_14, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnmscs", |
| OPCODE_INFO4 (0xffea8000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (10_14, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnmuls", |
| OPCODE_INFO4 (0xffeb8000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (10_14, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fabsd", |
| OPCODE_INFO3 (0xffe04000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnegd", |
| OPCODE_INFO3 (0xffe04800, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fsqrtd", |
| OPCODE_INFO3 (0xffe05000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("frecipd", |
| OPCODE_INFO3 (0xffe05800, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("faddd", |
| OPCODE_INFO4 (0xffe30000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fsubd", |
| OPCODE_INFO4 (0xffe40000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmacd", |
| OPCODE_INFO4 (0xffe50000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmscd", |
| OPCODE_INFO4 (0xffe60000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmuld", |
| OPCODE_INFO4 (0xffe70000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fdivd", |
| OPCODE_INFO4 (0xffe80000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnmacd", |
| OPCODE_INFO4 (0xffe90000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnmscd", |
| OPCODE_INFO4 (0xffea0000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnmuld", |
| OPCODE_INFO4 (0xffeb0000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fabsm", |
| OPCODE_INFO3 (0xffe06000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnegm", |
| OPCODE_INFO3 (0xffe06400, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("faddm", |
| OPCODE_INFO4 (0xffec0000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fsubm", |
| OPCODE_INFO4 (0xffec8000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmacm", |
| OPCODE_INFO4 (0xffed8000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmscm", |
| OPCODE_INFO4 (0xffee0000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmulm", |
| OPCODE_INFO4 (0xffed0000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnmacm", |
| OPCODE_INFO4 (0xffee8000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnmscm", |
| OPCODE_INFO4 (0xffef0000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fnmulm", |
| OPCODE_INFO4 (0xffef8000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (10_14, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fcmphsd", |
| OPCODE_INFO3 (0xffe00800, |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpltd", |
| OPCODE_INFO3 (0xffe00c00, |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpned", |
| OPCODE_INFO3 (0xffe01000, |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpuod", |
| OPCODE_INFO3 (0xffe01400, |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmphss", |
| OPCODE_INFO3 (0xffe01800, |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmplts", |
| OPCODE_INFO3 (0xffe01c00, |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpnes", |
| OPCODE_INFO3 (0xffe02000, |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpuos", |
| OPCODE_INFO3 (0xffe02400, |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpzhsd", |
| OPCODE_INFO2 (0xffe00400, |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpzltd", |
| OPCODE_INFO2 (0xffe00480, |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpzned", |
| OPCODE_INFO2 (0xffe00500, |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpzuod", |
| OPCODE_INFO2 (0xffe00580, |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpzhss", |
| OPCODE_INFO2 (0xffe00600, |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpzlts", |
| OPCODE_INFO2 (0xffe00680, |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpznes", |
| OPCODE_INFO2 (0xffe00700, |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fcmpzuos", |
| OPCODE_INFO2 (0xffe00780, |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo_fc), |
| OP16_WITH_WORK ("fstod", |
| OPCODE_INFO3 (0xffe02800, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fdtos", |
| OPCODE_INFO3 (0xffe02c00, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fsitos", |
| OPCODE_INFO3 (0xffe03400, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fsitod", |
| OPCODE_INFO3 (0xffe03000, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fuitos", |
| OPCODE_INFO3 (0xffe03c00, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fuitod", |
| OPCODE_INFO3 (0xffe03800, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fstosi", |
| OPCODE_INFO4 (0xffe10000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (13_17, RM, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fdtosi", |
| OPCODE_INFO4 (0xffe08000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (13_17, RM, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fstoui", |
| OPCODE_INFO4 (0xffe20000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (13_17, RM, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fdtoui", |
| OPCODE_INFO4 (0xffe18000, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FEREG, OPRND_SHIFT_0_BIT), |
| (13_17, RM, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmovd", |
| OPCODE_INFO3 (0xffe06800, |
| (5_9, FEREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmovs", |
| OPCODE_INFO3 (0xffe06c00, |
| (5_9, FREG, OPRND_SHIFT_0_BIT), |
| (0_4, FREG, OPRND_SHIFT_0_BIT), |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_fo), |
| OP16_WITH_WORK ("fmts", |
| OPCODE_INFO2 (0x00000000, |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_write), |
| OP16_WITH_WORK ("fmfs", |
| OPCODE_INFO2 (0x00000000, |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_read), |
| OP16_WITH_WORK ("fmtd", |
| OPCODE_INFO2 (0x00000000, |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, FEREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_writed), |
| OP16_WITH_WORK ("fmfd", |
| OPCODE_INFO2 (0x00000000, |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, FEREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1, |
| v1_work_fpu_readd), |
| {NULL, 0, {}, {}, 0, 0, 0, 0, 0, NULL} |
| }; |
| |
| #undef _TRANSFER |
| #undef _RELOC16 |
| #undef _RELOC32 |
| #undef _RELAX |
| |
| /* C-SKY v2 opcodes. */ |
| const struct csky_opcode csky_v2_opcodes[] = |
| { |
| #define _TRANSFER 0 |
| #define _RELOC16 0 |
| #define _RELOC32 0 |
| #define _RELAX 0 |
| OP16 ("bkpt", |
| OPCODE_INFO0 (0x0000), |
| CSKYV2_ISA_E1), |
| OP16_WITH_WORK ("nie", |
| OPCODE_INFO0 (0x1460), |
| CSKYV2_ISA_E1, |
| v2_work_istack), |
| OP16_WITH_WORK ("nir", |
| OPCODE_INFO0 (0x1461), |
| CSKYV2_ISA_E1, |
| v2_work_istack), |
| OP16_WITH_WORK ("ipush", |
| OPCODE_INFO0 (0x1462), |
| CSKYV2_ISA_E1, |
| v2_work_istack), |
| OP16_WITH_WORK ("ipop", |
| OPCODE_INFO0 (0x1463), |
| CSKYV2_ISA_E1, |
| v2_work_istack), |
| OP16 ("bpop.h", |
| OPCODE_INFO1 (0x14a0, |
| (2_4, GREG0_7, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_JAVA), |
| OP16 ("bpop.w", |
| OPCODE_INFO1 (0x14a2, |
| (2_4, GREG0_7, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_JAVA), |
| OP16 ("bpush.h", |
| OPCODE_INFO1 (0x14e0, |
| (2_4, GREG0_7, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_JAVA), |
| OP16 ("bpush.w", |
| OPCODE_INFO1 (0x14e2, |
| (2_4, GREG0_7, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_JAVA), |
| OP32 ("bmset", |
| OPCODE_INFO0 (0xc0001020), |
| CSKY_ISA_JAVA), |
| OP32 ("bmclr", |
| OPCODE_INFO0 (0xc0001420), |
| CSKY_ISA_JAVA), |
| OP32 ("sce", |
| OPCODE_INFO1 (0xc0001820, |
| (21_24, IMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_MP), |
| OP32 ("trap", |
| OPCODE_INFO1 (0xc0002020, |
| (10_11, IMM2b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1), |
| /* Secure/nsecure world switch. */ |
| OP32 ("wsc", |
| OPCODE_INFO0 (0xc0003c20), |
| CSKY_ISA_TRUST), |
| OP32 ("mtcr", |
| OPCODE_INFO2 (0xc0006420, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_4or21_25, CTRLREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1), |
| OP32 ("mfcr", |
| OPCODE_INFO2 (0xc0006020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20or21_25, CTRLREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 2 |
| OP32 ("rte", |
| OPCODE_INFO0 (0xc0004020), |
| CSKYV2_ISA_E1), |
| OP32 ("rfi", |
| OPCODE_INFO0 (0xc0004420), |
| CSKYV2_ISA_2E3), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| OP32 ("stop", |
| OPCODE_INFO0 (0xc0004820), |
| CSKYV2_ISA_E1), |
| OP32 ("wait", |
| OPCODE_INFO0 (0xc0004c20), |
| CSKYV2_ISA_E1), |
| OP32 ("doze", |
| OPCODE_INFO0 (0xc0005020), |
| CSKYV2_ISA_E1), |
| OP32 ("we", |
| OPCODE_INFO0 (0xc0005420), |
| CSKY_ISA_MP_1E2), |
| OP32 ("se", |
| OPCODE_INFO0 (0xc0005820), |
| CSKY_ISA_MP_1E2), |
| OP32 ("psrclr", |
| OPCODE_INFO_LIST (0xc0007020, |
| (21_25, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1), |
| OP32 ("psrset", |
| OPCODE_INFO_LIST (0xc0007420, |
| (21_25, PSR_BITS_LIST, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1), |
| DOP32 ("abs", |
| OPCODE_INFO2 (0xc4000200, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0xc4000200, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("mvc", |
| OPCODE_INFO1 (0xc4000500, |
| (0_4, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("incf", |
| OPCODE_INFO3 (0xc4000c20, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("movf", |
| OPCODE_INFO2 (0xc4000c20, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("inct", |
| OPCODE_INFO3 (0xc4000c40, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("movt", |
| OPCODE_INFO2 (0xc4000c40, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("decf", |
| OPCODE_INFO3 (0xc4000c80, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("dect", |
| OPCODE_INFO3 (0xc4000d00, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("decgt", |
| OPCODE_INFO3 (0xc4001020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("declt", |
| OPCODE_INFO3 (0xc4001040, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("decne", |
| OPCODE_INFO3 (0xc4001080, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("clrf", |
| OPCODE_INFO1 (0xc4002c20, |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("clrt", |
| OPCODE_INFO1 (0xc4002c40, |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP32 ("rotli", |
| OPCODE_INFO3 (0xc4004900, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4004900, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("lslc", |
| OPCODE_INFO3 (0xc4004c20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("lsrc", |
| OPCODE_INFO3 (0xc4004c40, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP32 ("asrc", |
| OPCODE_INFO3 (0xc4004c80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0xc4004c80, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("xsr", |
| OPCODE_INFO3 (0xc4004d00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("bgenr", |
| OPCODE_INFO2 (0xc4005040, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP32 ("brev", |
| OPCODE_INFO2 (0xc4006200, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0xc4006200, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("xtrb0", |
| OPCODE_INFO2 (0xc4007020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("xtrb1", |
| OPCODE_INFO2 (0xc4007040, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("xtrb2", |
| OPCODE_INFO2 (0xc4007080, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("xtrb3", |
| OPCODE_INFO2 (0xc4007100, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("ff0", |
| OPCODE_INFO2 (0xc4007c20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP32 ("ff1", |
| OPCODE_INFO2 (0xc4007c40, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0xc4007c40, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("mulu", |
| OPCODE_INFO2 (0xc4008820, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mulua", |
| OPCODE_INFO2 (0xc4008840, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mulus", |
| OPCODE_INFO2 (0xc4008880, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("muls", |
| OPCODE_INFO2 (0xc4008c20, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mulsa", |
| OPCODE_INFO2 (0xc4008c40, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mulss", |
| OPCODE_INFO2 (0xc4008c80, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mulsha", |
| OPCODE_INFO2 (0xc4009040, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mulshs", |
| OPCODE_INFO2 (0xc4009080, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mulswa", |
| OPCODE_INFO2 (0xc4009440, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mulsws", |
| OPCODE_INFO2 (0xc4009480, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mfhis", |
| OPCODE_INFO1 (0xc4009820, |
| (0_4, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mflos", |
| OPCODE_INFO1 (0xc4009880, |
| (0_4, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mvtc", |
| OPCODE_INFO0 (0xc4009a00), |
| CSKY_ISA_DSP), |
| OP32 ("mfhi", |
| OPCODE_INFO1 (0xc4009c20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mthi", |
| OPCODE_INFO1 (0xc4009c40, |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mflo", |
| OPCODE_INFO1 (0xc4009c80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("mtlo", |
| OPCODE_INFO1 (0xc4009d00, |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP32 ("vmulsh", |
| OPCODE_INFO2 (0xc400b020, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_1E2), |
| OP32 ("vmulsha", |
| OPCODE_INFO2 (0xc400b040, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_1E2), |
| OP32 ("vmulshs", |
| OPCODE_INFO2 (0xc400b080, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_1E2), |
| OP32 ("vmulsw", |
| OPCODE_INFO2 (0xc400b420, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_1E2), |
| OP32 ("vmulswa", |
| OPCODE_INFO2 (0xc400b440, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_1E2), |
| OP32 ("vmulsws", |
| OPCODE_INFO2 (0xc400b480, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_1E2), |
| OP32 ("ldr.b", |
| SOPCODE_INFO2 (0xd0000000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_2E3), |
| OP32 ("ldr.bs", |
| SOPCODE_INFO2 (0xd0001000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_2E3), |
| OP32 ("ldr.h", |
| SOPCODE_INFO2 (0xd0000400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_2E3), |
| OP32 ("ldr.hs", |
| SOPCODE_INFO2 (0xd0001400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_2E3), |
| OP32 ("ldr.w", |
| SOPCODE_INFO2 (0xd0000800, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_2E3), |
| OP32 ("ldm", |
| OPCODE_INFO2 (0xd0001c20, |
| (0_4or21_25, REGLIST_DASH, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("ldq", |
| OPCODE_INFO2 (0xd0801c23, |
| (NONE, REGr4_r7, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("str.b", |
| SOPCODE_INFO2 (0xd4000000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_2E3), |
| OP32 ("str.h", |
| SOPCODE_INFO2 (0xd4000400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_2E3), |
| OP32 ("str.w", |
| SOPCODE_INFO2 (0xd4000800, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9or21_25, AREG_WITH_LSHIFT, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_2E3), |
| OP32 ("stm", |
| OPCODE_INFO2 (0xd4001c20, |
| (0_4or21_25, REGLIST_DASH, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("stq", |
| OPCODE_INFO2 (0xd4801c23, |
| (NONE, REGr4_r7, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("ld.bs", |
| SOPCODE_INFO2 (0xd8004000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_1E2), |
| OP32 ("ldbs", |
| SOPCODE_INFO2 (0xd8004000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_1E2), |
| OP32 ("ld.hs", |
| SOPCODE_INFO2 (0xd8005000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| CSKYV2_ISA_1E2), |
| OP32 ("ldhs", |
| SOPCODE_INFO2 (0xd8005000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| CSKYV2_ISA_1E2), |
| OP32 ("ld.d", |
| SOPCODE_INFO2 (0xd8003000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_3E7), |
| OP32 ("ldex.w", |
| SOPCODE_INFO2 (0xd8007000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_MP_1E2), |
| OP32 ("ldexw", |
| SOPCODE_INFO2 (0xd8007000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_MP_1E2), |
| OP32 ("ldex", |
| SOPCODE_INFO2 (0xd8007000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_MP_1E2), |
| OP32 ("st.d", |
| SOPCODE_INFO2 (0xdc003000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_3E7), |
| OP32 ("stex.w", |
| SOPCODE_INFO2 (0xdc007000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_MP_1E2), |
| OP32 ("stexw", |
| SOPCODE_INFO2 (0xdc007000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_MP_1E2), |
| OP32 ("stex", |
| SOPCODE_INFO2 (0xdc007000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_MP_1E2), |
| DOP32 ("andi", |
| OPCODE_INFO3 (0xe4002000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM12b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xe4002000, |
| (16_20or21_25, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM12b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("andni", |
| OPCODE_INFO3 (0xe4003000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM12b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("xori", |
| OPCODE_INFO3 (0xe4004000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM12b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("ins", |
| OPCODE_INFO4 (0xc4005c00, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9, MSB2SIZE, OPRND_SHIFT_0_BIT), |
| (0_4, LSB2SIZE, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _TRANSFER |
| #undef _RELOC32 |
| #define _TRANSFER 1 |
| #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4 |
| OP32 ("jmpi", |
| OPCODE_INFO1 (0xeac00000, |
| (0_15, OFF16b, OPRND_SHIFT_2_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _TRANSFER |
| #undef _RELOC32 |
| #define _TRANSFER 0 |
| #define _RELOC32 0 |
| |
| OP32 ("fadds", |
| OPCODE_INFO3 (0xf4000000, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fsubs", |
| OPCODE_INFO3 (0xf4000020, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fmovs", |
| OPCODE_INFO2 (0xf4000080, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fabss", |
| OPCODE_INFO2 (0xf40000c0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fnegs", |
| OPCODE_INFO2 (0xf40000e0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fcmpzhss", |
| OPCODE_INFO1 (0xf4000100, |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fcmpzlss", |
| OPCODE_INFO1 (0xf4000120, |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fcmpznes", |
| OPCODE_INFO1 (0xf4000140, |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fcmpzuos", |
| OPCODE_INFO1 (0xf4000160, |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fcmphss", |
| OPCODE_INFO2 (0xf4000180, |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fcmplts", |
| OPCODE_INFO2 (0xf40001a0, |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fcmpnes", |
| OPCODE_INFO2 (0xf40001c0, |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fcmpuos", |
| OPCODE_INFO2 (0xf40001e0, |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fmuls", |
| OPCODE_INFO3 (0xf4000200, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fmacs", |
| OPCODE_INFO3 (0xf4000280, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fmscs", |
| OPCODE_INFO3 (0xf40002a0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fnmacs", |
| OPCODE_INFO3 (0xf40002c0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fnmscs", |
| OPCODE_INFO3 (0xf40002e0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fnmuls", |
| OPCODE_INFO3 (0xf4000220, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fdivs", |
| OPCODE_INFO3 (0xf4000300, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("frecips", |
| OPCODE_INFO2 (0xf4000320, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fsqrts", |
| OPCODE_INFO2 (0xf4000340, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("faddd", |
| OPCODE_INFO3 (0xf4000800, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fsubd", |
| OPCODE_INFO3 (0xf4000820, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmovd", |
| OPCODE_INFO2 (0xf4000880, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fabsd", |
| OPCODE_INFO2 (0xf40008c0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fnegd", |
| OPCODE_INFO2 (0xf40008e0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fcmpzhsd", |
| OPCODE_INFO1 (0xf4000900, |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fcmpzlsd", |
| OPCODE_INFO1 (0xf4000920, |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fcmpzned", |
| OPCODE_INFO1 (0xf4000940, |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fcmpzuod", |
| OPCODE_INFO1 (0xf4000960, |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fcmphsd", |
| OPCODE_INFO2 (0xf4000980, |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fcmpltd", |
| OPCODE_INFO2 (0xf40009a0, |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fcmpned", |
| OPCODE_INFO2 (0xf40009c0, |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fcmpuod", |
| OPCODE_INFO2 (0xf40009e0, |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmuld", |
| OPCODE_INFO3 (0xf4000a00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fnmuld", |
| OPCODE_INFO3 (0xf4000a20, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmacd", |
| OPCODE_INFO3 (0xf4000a80, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmscd", |
| OPCODE_INFO3 (0xf4000aa0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fnmacd", |
| OPCODE_INFO3 (0xf4000ac0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fnmscd", |
| OPCODE_INFO3 (0xf4000ae0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fdivd", |
| OPCODE_INFO3 (0xf4000b00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("frecipd", |
| OPCODE_INFO2 (0xf4000b20, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fsqrtd", |
| OPCODE_INFO2 (0xf4000b40, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("faddm", |
| OPCODE_INFO3 (0xf4001000, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fsubm", |
| OPCODE_INFO3 (0xf4001020, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmovm", |
| OPCODE_INFO2 (0xf4001080, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fabsm", |
| OPCODE_INFO2 (0xf40010c0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fnegm", |
| OPCODE_INFO2 (0xf40010e0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmulm", |
| OPCODE_INFO3 (0xf4001200, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fnmulm", |
| OPCODE_INFO3 (0xf4001220, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmacm", |
| OPCODE_INFO3 (0xf4001280, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmscm", |
| OPCODE_INFO3 (0xf40012a0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fnmacm", |
| OPCODE_INFO3 (0xf40012c0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fnmscm", |
| OPCODE_INFO3 (0xf40012e0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT), |
| (21_24, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fstosi.rn", |
| OPCODE_INFO2 (0xf4001800, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fstosi.rz", |
| OPCODE_INFO2 (0xf4001820, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fstosi.rpi", |
| OPCODE_INFO2 (0xf4001840, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fstosi.rni", |
| OPCODE_INFO2 (0xf4001860, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fstoui.rn", |
| OPCODE_INFO2 (0xf4001880, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fstoui.rz", |
| OPCODE_INFO2 (0xf40018a0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fstoui.rpi", |
| OPCODE_INFO2 (0xf40018c0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fstoui.rni", |
| OPCODE_INFO2 (0xf40018e0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fdtosi.rn", |
| OPCODE_INFO2 (0xf4001900, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fdtosi.rz", |
| OPCODE_INFO2 (0xf4001920, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fdtosi.rpi", |
| OPCODE_INFO2 (0xf4001940, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fdtosi.rni", |
| OPCODE_INFO2 (0xf4001960, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fdtoui.rn", |
| OPCODE_INFO2 (0xf4001980, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fdtoui.rz", |
| OPCODE_INFO2 (0xf40019a0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fdtoui.rpi", |
| OPCODE_INFO2 (0xf40019c0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fdtoui.rni", |
| OPCODE_INFO2 (0xf40019e0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fsitos", |
| OPCODE_INFO2 (0xf4001a00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fuitos", |
| OPCODE_INFO2 (0xf4001a20, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fsitod", |
| OPCODE_INFO2 (0xf4001a80, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fuitod", |
| OPCODE_INFO2 (0xf4001aa0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fdtos", |
| OPCODE_INFO2 (0xf4001ac0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fstod", |
| OPCODE_INFO2 (0xf4001ae0, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmfvrh", |
| OPCODE_INFO2 (0xf4001b00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmfvrl", |
| OPCODE_INFO2 (0xf4001b20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_19, FREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fmtvrh", |
| OPCODE_INFO2 (0xf4001b40, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fmtvrl", |
| OPCODE_INFO2 (0xf4001b60, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("flds", |
| SOPCODE_INFO2 (0xf4002000, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fldd", |
| SOPCODE_INFO2 (0xf4002100, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fldm", |
| SOPCODE_INFO2 (0xf4002200, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fsts", |
| SOPCODE_INFO2 (0xf4002400, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fstd", |
| SOPCODE_INFO2 (0xf4002500, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fstm", |
| SOPCODE_INFO2 (0xf4002600, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fldrs", |
| SOPCODE_INFO2 (0xf4002800, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fstrs", |
| SOPCODE_INFO2 (0xf4002c00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fldrd", |
| SOPCODE_INFO2 (0xf4002900, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fldrm", |
| SOPCODE_INFO2 (0xf4002a00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fstrd", |
| SOPCODE_INFO2 (0xf4002d00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fstrm", |
| SOPCODE_INFO2 (0xf4002e00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fldms", |
| OPCODE_INFO2 (0xf4003000, |
| (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fldmd", |
| OPCODE_INFO2 (0xf4003100, |
| (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fldmm", |
| OPCODE_INFO2 (0xf4003200, |
| (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fstms", |
| OPCODE_INFO2 (0xf4003400, |
| (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_E1), |
| OP32 ("fstmd", |
| OPCODE_INFO2 (0xf4003500, |
| (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| OP32 ("fstmm", |
| OPCODE_INFO2 (0xf4003600, |
| (0_3or21_24, FREGLIST_DASH, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_FLOAT_1E2), |
| DOP32 ("sync", |
| OPCODE_INFO1 (0xc0000420, |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO0 (0xc0000420), |
| CSKYV2_ISA_E1), |
| DOP32 ("idly", |
| OPCODE_INFO1 (0xc0001c20, |
| (21_25, OIMM5b_IDLY, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO0 (0xc0601c20), |
| CSKYV2_ISA_E1), |
| |
| #undef _RELOC32 |
| #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM18BY2 |
| OP32 ("grs", |
| OPCODE_INFO2 (0xcc0c0000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (0_17, IMM_OFF18b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _RELOC32 |
| #define _RELOC32 0 |
| DOP32 ("ixh", |
| OPCODE_INFO3 (0xc4000820, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4000820, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP32 ("ixw", |
| OPCODE_INFO3 (0xc4000840, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4000840, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("ixd", |
| OPCODE_INFO3 (0xc4000880, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP32 ("divu", |
| OPCODE_INFO3 (0xc4008020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4008020, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP32 ("divs", |
| OPCODE_INFO3 (0xc4008040, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4008040, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("pldr", |
| SOPCODE_INFO1 (0xd8006000, |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_CACHE), |
| OP32 ("pldw", |
| SOPCODE_INFO1 (0xdc006000, |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKY_ISA_CACHE), |
| OP32 ("cprgr", |
| SOPCODE_INFO2 (0xfc000000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT), |
| (0_11 , IMM12b, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1), |
| OP32 ("cpwgr", |
| SOPCODE_INFO2 (0xfc001000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT), |
| (0_11 , IMM12b, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1), |
| OP32 ("cprcr", |
| SOPCODE_INFO2 (0xfc002000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT), |
| (0_11 , IMM12b, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1), |
| OP32 ("cpwcr", |
| SOPCODE_INFO2 (0xfc003000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT), |
| (0_11 , IMM12b, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1), |
| OP32 ("cprc", |
| SOPCODE_INFO1 (0xfc004000, |
| ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT), |
| (0_11, IMM12b, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1), |
| OP32 ("cpop", |
| SOPCODE_INFO1 (0xfc008000, |
| ABRACKET_OPRND ((21_25, IMM5b, OPRND_SHIFT_0_BIT), |
| (0_14or16_20 , IMM15b, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1), |
| |
| OP16_OP32 ("push", |
| OPCODE_INFO_LIST (0x14c0, |
| (0_4, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO_LIST (0xebe00000, |
| (0_8, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _TRANSFER |
| #define _TRANSFER 2 |
| OP16_OP32 ("pop", |
| OPCODE_INFO_LIST (0x1480, |
| (0_4, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO_LIST (0xebc00000, |
| (0_8, REGLIST_DASH_COMMA, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| OP16_OP32 ("movi", |
| OPCODE_INFO2 (0x3000, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_7, IMM8b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xea000000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, IMM16b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| /* bmaski will transfer to movi when imm < 17. */ |
| OP16_OP32 ("bmaski", |
| OPCODE_INFO2 (0x3000, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_7, IMM8b_BMASKI, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2, |
| OPCODE_INFO2 (0xc4005020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM5b_BMASKI, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16_OP32 ("cmphsi", |
| OPCODE_INFO2 (0x3800, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xeb000000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, OIMM16b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16_OP32 ("cmplti", |
| OPCODE_INFO2 (0x3820, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xeb200000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, OIMM16b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16_OP32 ("cmpnei", |
| OPCODE_INFO2 (0x3840, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xeb400000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, IMM16b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| #undef _TRANSFER |
| #define _TRANSFER 1 |
| OP16_OP32 ("jmpix", |
| OPCODE_INFO2 (0x38e0, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_1, IMM2b_JMPIX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_JAVA, |
| OPCODE_INFO2 (0xe9e00000, |
| (16_20, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_1, IMM2b_JMPIX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_JAVA), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| DOP16_DOP32 ("bclri", |
| OPCODE_INFO3 (0x3880, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x3880, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4002820, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4002820, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("bseti", |
| OPCODE_INFO3 (0x38a0, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x38a0, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4002840, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4002840, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16_OP32_WITH_WORK ("btsti", |
| OPCODE_INFO2 (0x38c0, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc4002880, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2, v2_work_btsti), |
| DOP16_DOP32 ("lsli", |
| OPCODE_INFO3 (0x4000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x4000, |
| (5_7or8_10, DUP_GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4004820, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4004820, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("lsri", |
| OPCODE_INFO3 (0x4800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0x4800, |
| (5_7or8_10, DUP_GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4004840, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4004840, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16_OP32 ("asri", |
| OPCODE_INFO3 (0x5000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4004880, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("addc", |
| OPCODE_INFO2 (0x6001, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x6001, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4000040, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4000040, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("subc", |
| OPCODE_INFO2 (0x6003, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x6003, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4000100, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4000100, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16_OP32 ("cmphs", |
| OPCODE_INFO2 (0x6400, |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT), |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc4000420, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP16_OP32 ("cmplt", |
| OPCODE_INFO2 (0x6401, |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT), |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc4000440, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP16_OP32 ("cmpne", |
| OPCODE_INFO2 (0x6402, |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT), |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc4000480, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP16_OP32 ("mvcv", |
| OPCODE_INFO1 (0x6403, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO1 (0xc4000600, |
| (0_4, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP16_DOP32 ("and", |
| OPCODE_INFO2 (0x6800, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x6800, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4002020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4002020, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("andn", |
| OPCODE_INFO2 (0x6801, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x6801, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4002040, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4002040, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16_OP32 ("tst", |
| OPCODE_INFO2 (0x6802, |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT), |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc4002080, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP16_OP32 ("tstnbz", |
| OPCODE_INFO1 (0x6803, |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO1 (0xc4002100, |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP16_DOP32 ("or", |
| OPCODE_INFO2 (0x6c00, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x6c00, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4002420, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4002420, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("xor", |
| OPCODE_INFO2 (0x6c01, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x6c01, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4002440, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4002440, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("nor", |
| OPCODE_INFO2 (0x6c02, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x6c02, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4002480, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4002480, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16_OP32 ("mov", |
| OPCODE_INFO2 (0x6c03, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc4004820, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16_OP32 ("nop", |
| OPCODE_INFO0 (0x6c03), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO0 (0xc4004820), |
| CSKYV2_ISA_E1), |
| DOP16_DOP32 ("lsl", |
| OPCODE_INFO2 (0x7000, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x7000, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4004020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4004020, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("lsr", |
| OPCODE_INFO2 (0x7001, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x7001, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4004040, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4004040, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("asr", |
| OPCODE_INFO2 (0x7002, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x7002, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4004080, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4004080, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("rotl", |
| OPCODE_INFO2 (0x7003, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x7003, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, DUMMY_REG, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4004100, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4004100, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP16_DOP32 ("zextb", |
| OPCODE_INFO2 (0x7400, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x7400, |
| (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc40054e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0xc40054e0, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP16_DOP32 ("zexth", |
| OPCODE_INFO2 (0x7401, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x7401, |
| (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc40055e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0xc40055e0, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP16_DOP32 ("sextb", |
| OPCODE_INFO2 (0x7402, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x7402, |
| (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc40058e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0xc40058e0, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP16_DOP32 ("sexth", |
| OPCODE_INFO2 (0x7403, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0x7403, |
| (2_5or6_9, DUP_GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc40059e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0xc40059e0, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("zext", |
| OPCODE_INFO4 (0xc4005400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9, IMM5b, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("sext", |
| OPCODE_INFO4 (0xc4005800, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_9, IMM5b, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _TRANSFER |
| #define _TRANSFER 2 |
| OP16_OP32 ("rts", |
| OPCODE_INFO0 (0x783c), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO0 (0xe8cf0000), |
| CSKYV2_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 1 |
| OP16_OP32 ("jmp", |
| OPCODE_INFO1 (0x7800, |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO1 (0xe8c00000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| OP16_OP32 ("revb", |
| OPCODE_INFO2 (0x7802, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2, |
| OPCODE_INFO2 (0xc4006080, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP16_OP32 ("revh", |
| OPCODE_INFO2 (0x7803, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2, |
| OPCODE_INFO2 (0xc4006100, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP16_OP32 ("jsr", |
| OPCODE_INFO1 (0x7bc1, |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO1 (0xe8e00000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP16_DOP32 ("mult", |
| OPCODE_INFO2 (0x7c00, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x7c00, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4008420, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4008420, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16 ("mul", |
| OPCODE_INFO2 (0x7c00, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1), |
| DOP16_DOP32 ("mulsh", |
| OPCODE_INFO2 (0x7c01, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x7c01, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT), |
| (2_5, 2IN1_DUMMY, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3, |
| OPCODE_INFO3 (0xc4009020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4009020, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP16 ("muls.h", |
| OPCODE_INFO2 (0x7c01, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP32 ("mulsw", |
| OPCODE_INFO3 (0xc4009420, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4009420, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP), |
| OP16_OP32 ("ld.b", |
| SOPCODE_INFO2 (0x8000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xd8000000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1), |
| OP16_OP32 ("ldb", |
| SOPCODE_INFO2 (0x8000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xd8000000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1), |
| OP16_OP32 ("st.b", |
| SOPCODE_INFO2 (0xa000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xdc000000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1), |
| OP16_OP32 ("stb", |
| SOPCODE_INFO2 (0xa000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xdc000000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| CSKYV2_ISA_E1), |
| |
| OP16_OP32 ("ld.h", |
| SOPCODE_INFO2 (0x8800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xd8001000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| CSKYV2_ISA_E1), |
| OP16_OP32 ("ldh", |
| SOPCODE_INFO2 (0x8800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xd8001000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| CSKYV2_ISA_E1), |
| OP16_OP32 ("st.h", |
| SOPCODE_INFO2 (0xa800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xdc001000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| CSKYV2_ISA_E1), |
| OP16_OP32 ("sth", |
| SOPCODE_INFO2 (0xa800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xdc001000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_1_BIT))), |
| CSKYV2_ISA_E1), |
| DOP16_OP32 ("ld.w", |
| SOPCODE_INFO2 (0x9000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| SOPCODE_INFO2 (0x9800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xd8002000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1), |
| DOP16_OP32 ("ldw", |
| SOPCODE_INFO2 (0x9000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| SOPCODE_INFO2 (0x9800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xd8002000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1), |
| DOP16_OP32 ("ld", |
| SOPCODE_INFO2 (0x9000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_0_BIT))), |
| SOPCODE_INFO2 (0x9800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xd8002000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1), |
| DOP16_OP32 ("st.w", |
| SOPCODE_INFO2 (0xb000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| SOPCODE_INFO2 (0xb800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xdc002000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1), |
| DOP16_OP32 ("stw", |
| SOPCODE_INFO2 (0xb000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| SOPCODE_INFO2 (0xb800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xdc002000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1), |
| DOP16_OP32 ("st", |
| SOPCODE_INFO2 (0xb000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| SOPCODE_INFO2 (0xb800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (0_4or8_10, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1, |
| SOPCODE_INFO2 (0xdc002000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, IMM_LDST, OPRND_SHIFT_2_BIT))), |
| CSKYV2_ISA_E1), |
| #ifdef BUILD_AS |
| DOP16_DOP32_WITH_WORK ("addi", |
| OPCODE_INFO2 (0x2000, |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, IMM32b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x2000, |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, IMM32b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xe4000000, |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, IMM32b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0xe4000000, |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, IMM32b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2, |
| v2_work_addi), |
| #else |
| DOP16 ("addi", |
| OPCODE_INFO2 (0x2000, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_7, OIMM8b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x5802, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (2_4, OIMM3b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1), |
| DOP16 ("addi", |
| OPCODE_INFO3 (0x1800, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (0_7, IMM8b_LS2, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x1400, |
| (NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (0_4or8_9, IMM7b_LS2, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1), |
| DOP32 ("addi", |
| OPCODE_INFO3 (0xe4000000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, OIMM12b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0xcc1c0000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, REG_r28, OPRND_SHIFT_0_BIT), |
| (0_17, OIMM18b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| #endif |
| #ifdef BUILD_AS |
| DOP16_DOP32_WITH_WORK ("subi", |
| OPCODE_INFO2 (0x2800, |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, IMM32b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x2800, |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, IMM32b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xe4001000, |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, IMM32b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0xe4001000, |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, IMM32b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2, v2_work_subi), |
| #else |
| DOP16 ("subi", |
| OPCODE_INFO2 (0x2800, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_7, OIMM8b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x5803, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (2_4, OIMM3b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1), |
| OP32 ("subi", |
| OPCODE_INFO3 (0xe4001000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, OIMM12b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16 ("subi", |
| OPCODE_INFO3 (0x1420, |
| (NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (NONE, REGsp, OPRND_SHIFT_0_BIT), |
| (0_4or8_9, IMM7b_LS2, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1), |
| #endif |
| DOP16_DOP32_WITH_WORK ("addu", |
| OPCODE_INFO2 (0x6000, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x5800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (2_4, GREG0_7, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4000020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4000020, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| v2_work_add_sub), |
| DOP16_DOP32_WITH_WORK ("add", |
| OPCODE_INFO2 (0x6000, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x5800, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (2_4, GREG0_7, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4000020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4000020, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| v2_work_add_sub), |
| DOP16_DOP32_WITH_WORK ("subu", |
| OPCODE_INFO2 (0x6002, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x5801, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (2_4, GREG0_7, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4000080, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4000080, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| v2_work_add_sub), |
| DOP16_DOP32_WITH_WORK ("sub", |
| OPCODE_INFO2 (0x6002, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO3 (0x5801, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (2_4, GREG0_7, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO3 (0xc4000080, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4000080, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| v2_work_add_sub), |
| OP32_WITH_WORK ("fmovis", |
| OPCODE_INFO2 (0xf4001c00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (4_7or16_24, SFLOAT, OPRND_SHIFT_2_BIT)), |
| CSKY_ISA_FLOAT_1E3, |
| float_work_fmovi), |
| OP32_WITH_WORK ("fmovid", |
| OPCODE_INFO2 (0xf4001e00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (4_7or16_24, DFLOAT, OPRND_SHIFT_2_BIT)), |
| CSKY_ISA_FLOAT_3E4, |
| float_work_fmovi), |
| #undef _RELOC32 |
| #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM26BY2 |
| OP32 ("bsr", |
| OPCODE_INFO1 (0xe0000000, |
| (0_25, OFF26b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_E1), |
| #undef _RELOC32 |
| #define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18 |
| OP32 ("lrs.b", |
| OPCODE_INFO2 (0xcc000000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("srs.b", |
| OPCODE_INFO2 (0xcc100000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _RELOC32 |
| #define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18BY2 |
| OP32 ("lrs.h", |
| OPCODE_INFO2 (0xcc040000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("srs.h", |
| OPCODE_INFO2 (0xcc140000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _RELOC32 |
| #define _RELOC32 BFD_RELOC_CKCORE_PCREL_FLRW_IMM8BY4 |
| OP32 ("flrws", |
| OPCODE_INFO2 (0xf4003800, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)), |
| CSKY_ISA_FLOAT_1E3), |
| OP32 ("flrwd", |
| OPCODE_INFO2 (0xf4003900, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, FCONSTANT, OPRND_SHIFT_2_BIT)), |
| CSKY_ISA_FLOAT_3E4), |
| #undef _RELOC32 |
| #define _RELOC32 BFD_RELOC_CKCORE_DOFFSET_IMM18BY4 |
| OP32_WITH_WORK ("lrs.w", |
| OPCODE_INFO2 (0xcc080000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3, |
| v2_work_lrsrsw), |
| OP32_WITH_WORK ("srs.w", |
| OPCODE_INFO2 (0xcc180000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (0_17, LABEL_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3, |
| v2_work_lrsrsw), |
| |
| #undef _RELOC32 |
| #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4 |
| OP32_WITH_WORK ("jsri", |
| OPCODE_INFO1 (0xeae00000, |
| (0_15, OFF16b, OPRND_SHIFT_2_BIT)), |
| CSKYV2_ISA_2E3, |
| v2_work_jsri), |
| #undef _RELOC32 |
| #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY2 |
| OP32 ("bez", |
| OPCODE_INFO2 (0xe9000000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("bnez", |
| OPCODE_INFO2 (0xe9200000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("bhz", |
| OPCODE_INFO2 (0xe9400000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("blsz", |
| OPCODE_INFO2 (0xe9600000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("blz", |
| OPCODE_INFO2 (0xe9800000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("bhsz", |
| OPCODE_INFO2 (0xe9a00000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, OFF16b_LSL1, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _RELAX |
| #undef _RELOC16 |
| #undef _TRANSFER |
| #define _TRANSFER 1 |
| #define _RELAX 1 |
| #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM10BY2 |
| OP16_OP32 ("br", |
| OPCODE_INFO1 (0x0400, |
| (0_9, UNCOND10b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO1 (0xe8000000, |
| (0_15, UNCOND16b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_E1), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| OP16_OP32 ("bt", |
| OPCODE_INFO1 (0x0800, |
| (0_9, COND10b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO1 (0xe8600000, |
| (0_15, COND16b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_1E2), |
| OP16_OP32 ("bf", |
| OPCODE_INFO1 (0x0c00, |
| (0_9, COND10b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO1 (0xe8400000, |
| (0_15, COND16b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_1E2), |
| #undef _RELOC16 |
| #undef _RELOC32 |
| #undef _RELAX |
| #define _RELOC16 0 |
| #define _RELOC32 0 |
| #define _RELAX 0 |
| #undef _TRANSFER |
| #define _TRANSFER 1 |
| OP16_WITH_WORK ("jbr", |
| OPCODE_INFO1 (0x0400, |
| (0_10, UNCOND10b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_E1, |
| v2_work_jbr), |
| #undef _TRANSFER |
| #define _TRANSFER 0 |
| OP16_WITH_WORK ("jbt", |
| OPCODE_INFO1 (0x0800, |
| (0_10, COND10b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_E1, |
| v2_work_jbtf), |
| OP16_WITH_WORK ("jbf", |
| OPCODE_INFO1 (0x0c00, |
| (0_10, COND10b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_E1, |
| v2_work_jbtf), |
| OP32_WITH_WORK ("jbsr", |
| OPCODE_INFO1 (0xe0000000, |
| (0_25, OFF26b, OPRND_SHIFT_1_BIT)), |
| CSKYV2_ISA_E1, |
| v2_work_jbsr), |
| OP32_WITH_WORK ("movih", |
| OPCODE_INFO2 (0xea200000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, IMM16b_MOVIH, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2, |
| v2_work_movih), |
| OP32_WITH_WORK ("ori", |
| OPCODE_INFO3 (0xec000000, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, IMM16b_ORI, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2, |
| v2_work_ori), |
| DOP32_WITH_WORK ("bgeni", |
| OPCODE_INFO2 (0xea000000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_4, IMM4b, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xea200000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| v2_work_bgeni), |
| #undef _RELOC16 |
| #undef _RELOC32 |
| #define _RELOC16 BFD_RELOC_CKCORE_PCREL_IMM7BY4 |
| #define _RELOC32 BFD_RELOC_CKCORE_PCREL_IMM16BY4 |
| DOP16_OP32_WITH_WORK ("lrw", |
| OPCODE_INFO2 (0x1000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4or8_9, CONSTANT, OPRND_SHIFT_2_BIT)), |
| OPCODE_INFO2 (0x0000, |
| (5_7, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4or8_9, ELRW_CONSTANT, OPRND_SHIFT_2_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xea800000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, CONSTANT, OPRND_SHIFT_2_BIT)), |
| CSKYV2_ISA_E1, |
| v2_work_lrw), |
| #undef _RELOC16 |
| #undef _RELOC32 |
| #define _RELOC16 0 |
| #define _RELOC32 0 |
| |
| #undef _RELAX |
| #define _RELAX 1 |
| OP32 ("jbez", |
| OPCODE_INFO2 (0xe9000000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("jbnez", |
| OPCODE_INFO2 (0xe9200000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("jbhz", |
| OPCODE_INFO2 (0xe9400000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("jblsz", |
| OPCODE_INFO2 (0xe9600000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("jblz", |
| OPCODE_INFO2 (0xe9800000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| OP32 ("jbhsz", |
| OPCODE_INFO2 (0xe9a00000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, JCOMPZ, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| #undef _RELAX |
| #define _RELAX 0 |
| |
| /* The followings are enhance DSP instructions. */ |
| OP32_WITH_WORK ("bloop", |
| OPCODE_INFO3 (0xe9c00000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_11, BLOOP_OFF12b, OPRND_SHIFT_1_BIT), |
| (12_15, BLOOP_OFF4b, OPRND_SHIFT_1_BIT)), |
| CSKY_ISA_DSP_ENHANCE, |
| dsp_work_bloop), |
| /* The followings are ld/st instructions. */ |
| OP32 ("ldbi.b", |
| OPCODE_INFO2 (0xd0008000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("ldbi.h", |
| OPCODE_INFO2 (0xd0008400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("ldbi.w", |
| OPCODE_INFO2 (0xd0008800, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pldbi.d", |
| OPCODE_INFO2 (0xd0008c00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("ldbi.hs", |
| OPCODE_INFO2 (0xd0009000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("ldbi.bs", |
| OPCODE_INFO2 (0xd0009400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("stbi.b", |
| OPCODE_INFO2 (0xd4008000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("stbi.h", |
| OPCODE_INFO2 (0xd4008400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("stbi.w", |
| OPCODE_INFO2 (0xd4008800, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("ldbir.b", |
| OPCODE_INFO3 (0xd000a000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("ldbir.h", |
| OPCODE_INFO3 (0xd000a400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("ldbir.w", |
| OPCODE_INFO3 (0xd000a800, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pldbir.d", |
| OPCODE_INFO3 (0xd000ac00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("ldbir.bs", |
| OPCODE_INFO3 (0xd000b000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("ldbir.hs", |
| OPCODE_INFO3 (0xd000b400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("stbir.b", |
| OPCODE_INFO3 (0xd400a000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("stbir.h", |
| OPCODE_INFO3 (0xd400a400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("stbir.w", |
| OPCODE_INFO3 (0xd400a800, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG_WITH_BRACKET, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| /* The followings are add/sub instructions. */ |
| OP32 ("padd.8", |
| OPCODE_INFO3 (0xf800c040, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("padd.16", |
| OPCODE_INFO3 (0xf800c000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("padd.u8.s", |
| OPCODE_INFO3 (0xf800c140, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("padd.s8.s", |
| OPCODE_INFO3 (0xf800c1c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("padd.u16.s", |
| OPCODE_INFO3 (0xf800c100, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("padd.s16.s", |
| OPCODE_INFO3 (0xf800c180, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("add.u32.s", |
| OPCODE_INFO3 (0xf800c120, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("add.s32.s", |
| OPCODE_INFO3 (0xf800c1a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psub.8", |
| OPCODE_INFO3 (0xf800c440, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psub.16", |
| OPCODE_INFO3 (0xf800c400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psub.u8.s", |
| OPCODE_INFO3 (0xf800c540, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psub.s8.s", |
| OPCODE_INFO3 (0xf800c5c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psub.u16.s", |
| OPCODE_INFO3 (0xf800c500, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psub.s16.s", |
| OPCODE_INFO3 (0xf800c580, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("sub.u32.s", |
| OPCODE_INFO3 (0xf800c520, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("sub.s32.s", |
| OPCODE_INFO3 (0xf800c5a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("paddh.u8", |
| OPCODE_INFO3 (0xf800c240, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("paddh.s8", |
| OPCODE_INFO3 (0xf800c2c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("paddh.u16", |
| OPCODE_INFO3 (0xf800c200, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("paddh.s16", |
| OPCODE_INFO3 (0xf800c280, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("addh.u32", |
| OPCODE_INFO3 (0xf800c220, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("addh.s32", |
| OPCODE_INFO3 (0xf800c2a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psubh.u8", |
| OPCODE_INFO3 (0xf800c640, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psubh.s8", |
| OPCODE_INFO3 (0xf800c6c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psubh.u16", |
| OPCODE_INFO3 (0xf800c600, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psubh.s16", |
| OPCODE_INFO3 (0xf800c680, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("subh.u32", |
| OPCODE_INFO3 (0xf800c620, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("subh.s32", |
| OPCODE_INFO3 (0xf800c6a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("add.64", |
| OPCODE_INFO3 (0xf800c060, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("sub.64", |
| OPCODE_INFO3 (0xf800c460, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("add.u64.s", |
| OPCODE_INFO3 (0xf800c160, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("add.s64.s", |
| OPCODE_INFO3 (0xf800c1e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("sub.u64.s", |
| OPCODE_INFO3 (0xf800c560, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("sub.s64.s", |
| OPCODE_INFO3 (0xf800c5e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| /* The following are comparison instructions. */ |
| OP32 ("pasx.16", |
| OPCODE_INFO3 (0xf800c860, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psax.16", |
| OPCODE_INFO3 (0xf800cc60, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pasx.u16.s", |
| OPCODE_INFO3 (0xf800c960, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pasx.s16.s", |
| OPCODE_INFO3 (0xf800c9e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psax.u16.s", |
| OPCODE_INFO3 (0xf800cd60, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psax.s16.s", |
| OPCODE_INFO3 (0xf800cde0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pasxh.u16", |
| OPCODE_INFO3 (0xf800ca60, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pasxh.s16", |
| OPCODE_INFO3 (0xf800cae0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psaxh.u16", |
| OPCODE_INFO3 (0xf800ce60, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psaxh.s16", |
| OPCODE_INFO3 (0xf800cee0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pcmpne.8", |
| OPCODE_INFO3 (0xf800c840, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pcmpne.16", |
| OPCODE_INFO3 (0xf800c800, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pcmphs.u8", |
| OPCODE_INFO3 (0xf800c940, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pcmphs.s8", |
| OPCODE_INFO3 (0xf800c9c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pcmphs.u16", |
| OPCODE_INFO3 (0xf800c900, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pcmphs.s16", |
| OPCODE_INFO3 (0xf800c980, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pcmplt.u8", |
| OPCODE_INFO3 (0xf800ca40, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pcmplt.s8", |
| OPCODE_INFO3 (0xf800cac0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pcmplt.u16", |
| OPCODE_INFO3 (0xf800ca00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pcmplt.s16", |
| OPCODE_INFO3 (0xf800ca80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmax.u8", |
| OPCODE_INFO3 (0xf800cc40, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmax.s8", |
| OPCODE_INFO3 (0xf800ccc0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmax.u16", |
| OPCODE_INFO3 (0xf800cc00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmax.s16", |
| OPCODE_INFO3 (0xf800cc80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("max.u32", |
| OPCODE_INFO3 (0xf800cc20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("max.s32", |
| OPCODE_INFO3 (0xf800cca0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmin.u8", |
| OPCODE_INFO3 (0xf800cd40, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmin.s8", |
| OPCODE_INFO3 (0xf800cdc0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmin.u16", |
| OPCODE_INFO3 (0xf800cd00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmin.s16", |
| OPCODE_INFO3 (0xf800cd80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("min.u32", |
| OPCODE_INFO3 (0xf800cd20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("min.s32", |
| OPCODE_INFO3 (0xf800cda0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("sel", |
| OPCODE_INFO4 (0xf8009000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (5_9, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| /* The followings are miscs. */ |
| OP32 ("psabsa.u8", |
| OPCODE_INFO3 (0xf800e040, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("psabsaa.u8", |
| OPCODE_INFO3 (0xf800e140, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("divul", |
| OPCODE_INFO3 (0xf800e260, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("divsl", |
| OPCODE_INFO3 (0xf800e2e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulaca.s8", |
| OPCODE_INFO3 (0xf800e4c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| /* The followings are shift instructions. */ |
| OP32 ("asri.s32.r", |
| OPCODE_INFO3 (0xf800d1a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("asr.s32.r", |
| OPCODE_INFO3 (0xf800d1e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("lsri.u32.r", |
| OPCODE_INFO3 (0xf800d320, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("lsr.u32.r", |
| OPCODE_INFO3 (0xf800d360, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("lsli.u32.s", |
| OPCODE_INFO3 (0xf800d520, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("lsli.s32.s", |
| OPCODE_INFO3 (0xf800d5a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("lsl.u32.s", |
| OPCODE_INFO3 (0xf800d560, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("lsl.s32.s", |
| OPCODE_INFO3 (0xf800d5e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pasri.s16", |
| OPCODE_INFO3 (0xf800d080, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pasr.s16", |
| OPCODE_INFO3 (0xf800d0c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pasri.s16.r", |
| OPCODE_INFO3 (0xf800d180, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pasr.s16.r", |
| OPCODE_INFO3 (0xf800d1c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("plsri.u16", |
| OPCODE_INFO3 (0xf800d200, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("plsr.u16", |
| OPCODE_INFO3 (0xf800d240, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("plsri.u16.r", |
| OPCODE_INFO3 (0xf800d300, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("plsr.u16.r", |
| OPCODE_INFO3 (0xf800d340, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("plsli.u16", |
| OPCODE_INFO3 (0xf800d400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("plsl.u16", |
| OPCODE_INFO3 (0xf800d440, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("plsli.u16.s", |
| OPCODE_INFO3 (0xf800d500, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("plsli.s16.s", |
| OPCODE_INFO3 (0xf800d580, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("plsl.u16.s", |
| OPCODE_INFO3 (0xf800d540, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("plsl.s16.s", |
| OPCODE_INFO3 (0xf800d5c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| /* The following are package & unpackage instructions. */ |
| OP32 ("pkg", |
| OPCODE_INFO5 (0xf800a000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_8, IMM4b, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (9_12, OIMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("dexti", |
| OPCODE_INFO4 (0xf8009800, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (5_9, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("dext", |
| OPCODE_INFO4 (0xf8009c00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (5_9, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pkgll", |
| OPCODE_INFO3 (0xf800d840, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pkghh", |
| OPCODE_INFO3 (0xf800d860, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pext.u8.e", |
| OPCODE_INFO2 (0xf800d900, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pext.s8.e", |
| OPCODE_INFO2 (0xf800d980, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pextx.u8.e", |
| OPCODE_INFO2 (0xf800d920, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pextx.s8.e", |
| OPCODE_INFO2 (0xf800d9a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("narl", |
| OPCODE_INFO3 (0xf800da00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("narh", |
| OPCODE_INFO3 (0xf800da20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("narlx", |
| OPCODE_INFO3 (0xf800da40, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("narhx", |
| OPCODE_INFO3 (0xf800da60, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("clipi.u32", |
| OPCODE_INFO3 (0xf800db00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("clipi.s32", |
| OPCODE_INFO3 (0xf800db80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM5b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("clip.u32", |
| OPCODE_INFO3 (0xf800db20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("clip.s32", |
| OPCODE_INFO3 (0xf800dba0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pclipi.u16", |
| OPCODE_INFO3 (0xf800db40, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pclipi.s16", |
| OPCODE_INFO3 (0xf800dbc0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, OIMM4b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pclip.u16", |
| OPCODE_INFO3 (0xf800db60, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pclip.s16", |
| OPCODE_INFO3 (0xf800dbe0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pabs.s8.s", |
| OPCODE_INFO2 (0xf800dc80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pabs.s16.s", |
| OPCODE_INFO2 (0xf800dca0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("abs.s32.s", |
| OPCODE_INFO2 (0xf800dcc0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pneg.s8.s", |
| OPCODE_INFO2 (0xf800dd80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pneg.s16.s", |
| OPCODE_INFO2 (0xf800dda0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("neg.s32.s", |
| OPCODE_INFO2 (0xf800ddc0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("dup.8", |
| OPCODE_INFO3 (0xf800de00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6, IMM2b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("dup.16", |
| OPCODE_INFO3 (0xf800df00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6, IMM1b, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| /* The followings are multiplication instructions. */ |
| OP32 ("mul.u32", |
| OPCODE_INFO3 (0xf8008000, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_3E3R1), |
| OP32 ("mul.s32", |
| OPCODE_INFO3 (0xf8008200, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_3E3R1), |
| OP32 ("mula.u32", |
| OPCODE_INFO3 (0xf8008080, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_3E3R1), |
| OP32 ("mula.s32", |
| OPCODE_INFO3 (0xf8008280, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_3E3R1), |
| OP32 ("mula.32.l", |
| OPCODE_INFO3 (0xf8008440, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_3E3R1), |
| OP32 ("mulall.s16.s", |
| OPCODE_INFO3 (0xf80081a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_3E3R1), |
| OP32 ("muls.u32", |
| OPCODE_INFO3 (0xf80080c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("muls.s32", |
| OPCODE_INFO3 (0xf80082c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mula.u32.s", |
| OPCODE_INFO3 (0xf8008180, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mula.s32.s", |
| OPCODE_INFO3 (0xf8008380, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("muls.u32.s", |
| OPCODE_INFO3 (0xf80081c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("muls.s32.s", |
| OPCODE_INFO3 (0xf80083c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mul.s32.h", |
| OPCODE_INFO3 (0xf8008400, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mul.s32.rh", |
| OPCODE_INFO3 (0xf8008600, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("rmul.s32.h", |
| OPCODE_INFO3 (0xf8008500, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("rmul.s32.rh", |
| OPCODE_INFO3 (0xf8008700, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mula.s32.hs", |
| OPCODE_INFO3 (0xf8008580, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("muls.s32.hs", |
| OPCODE_INFO3 (0xf80085c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mula.s32.rhs", |
| OPCODE_INFO3 (0xf8008780, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("muls.s32.rhs", |
| OPCODE_INFO3 (0xf80087c0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulxl.s32", |
| OPCODE_INFO3 (0xf8008800, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulxl.s32.r", |
| OPCODE_INFO3 (0xf8008a00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulxh.s32", |
| OPCODE_INFO3 (0xf8008c00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulxh.s32.r", |
| OPCODE_INFO3 (0xf8008e00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("rmulxl.s32", |
| OPCODE_INFO3 (0xf8008900, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("rmulxl.s32.r", |
| OPCODE_INFO3 (0xf8008b00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("rmulxh.s32", |
| OPCODE_INFO3 (0xf8008d00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("rmulxh.s32.r", |
| OPCODE_INFO3 (0xf8008f00, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulaxl.s32.s", |
| OPCODE_INFO3 (0xf8008980, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulaxl.s32.rs", |
| OPCODE_INFO3 (0xf8008b80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulaxh.s32.s", |
| OPCODE_INFO3 (0xf8008d80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulaxh.s32.rs", |
| OPCODE_INFO3 (0xf8008f80, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulll.s16", |
| OPCODE_INFO3 (0xf8008020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulhh.s16", |
| OPCODE_INFO3 (0xf8008260, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulhl.s16", |
| OPCODE_INFO3 (0xf8008220, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("rmulll.s16", |
| OPCODE_INFO3 (0xf8008120, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("rmulhh.s16", |
| OPCODE_INFO3 (0xf8008360, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("rmulhl.s16", |
| OPCODE_INFO3 (0xf8008320, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulahh.s16.s", |
| OPCODE_INFO3 (0xf80083e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulahl.s16.s", |
| OPCODE_INFO3 (0xf80083a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulall.s16.e", |
| OPCODE_INFO3 (0xf80080a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulahh.s16.e", |
| OPCODE_INFO3 (0xf80082e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulahl.s16.e", |
| OPCODE_INFO3 (0xf80080e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmul.u16", |
| OPCODE_INFO3 (0xf80084a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmulx.u16", |
| OPCODE_INFO3 (0xf80084e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmul.s16", |
| OPCODE_INFO3 (0xf8008420, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("pmulx.s16", |
| OPCODE_INFO3 (0xf8008460, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("prmul.s16", |
| OPCODE_INFO3 (0xf8008520, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("prmulx.s16", |
| OPCODE_INFO3 (0xf8008560, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("prmul.s16.h", |
| OPCODE_INFO3 (0xf80085a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("prmul.s16.rh", |
| OPCODE_INFO3 (0xf80087a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("prmulx.s16.h", |
| OPCODE_INFO3 (0xf80085e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("prmulx.s16.rh", |
| OPCODE_INFO3 (0xf80087e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulca.s16.s", |
| OPCODE_INFO3 (0xf8008920, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulcax.s16.s", |
| OPCODE_INFO3 (0xf8008960, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulcs.s16", |
| OPCODE_INFO3 (0xf8008a20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulcsr.s16", |
| OPCODE_INFO3 (0xf8008a60, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulcsx.s16", |
| OPCODE_INFO3 (0xf8008c20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulaca.s16.s", |
| OPCODE_INFO3 (0xf80089a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulacax.s16.s", |
| OPCODE_INFO3 (0xf80089e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulacs.s16.s", |
| OPCODE_INFO3 (0xf8008ba0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulacsr.s16.s", |
| OPCODE_INFO3 (0xf8008be0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulacsx.s16.s", |
| OPCODE_INFO3 (0xf8008da0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulsca.s16.s", |
| OPCODE_INFO3 (0xf8008de0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulscax.s16.s", |
| OPCODE_INFO3 (0xf8008fa0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulaca.s16.e", |
| OPCODE_INFO3 (0xf80088a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulacax.s16.e", |
| OPCODE_INFO3 (0xf80088e0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulacs.s16.e", |
| OPCODE_INFO3 (0xf8008aa0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulacsr.s16.e", |
| OPCODE_INFO3 (0xf8008ae0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulacsx.s16.e", |
| OPCODE_INFO3 (0xf8008ca0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulsca.s16.e", |
| OPCODE_INFO3 (0xf8008ce0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| OP32 ("mulscax.s16.e", |
| OPCODE_INFO3 (0xf8008ea0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_DSP_ENHANCE), |
| |
| /* The followings are vdsp instructions for ck810. */ |
| OP32 ("vdup.8", |
| OPCODE_INFO2 (0xf8000e80, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vdup.16", |
| OPCODE_INFO2 (0xf8100e80, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vdup.32", |
| OPCODE_INFO2 (0xfa000e80, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmfvr.u8", |
| OPCODE_INFO2 (0xf8001200, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmfvr.u16", |
| OPCODE_INFO2 (0xf8001220, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmfvr.u32", |
| OPCODE_INFO2 (0xf8001240, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmfvr.s8", |
| OPCODE_INFO2 (0xf8001280, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmfvr.s16", |
| OPCODE_INFO2 (0xf80012a0, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_19or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmtvr.u8", |
| OPCODE_INFO2 (0xf8001300, |
| (0_3or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmtvr.u16", |
| OPCODE_INFO2 (0xf8001320, |
| (0_3or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmtvr.u32", |
| OPCODE_INFO2 (0xf8001340, |
| (0_3or21_24, FREG_WITH_INDEX, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vldd.8", |
| SOPCODE_INFO2 (0xf8002000, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldd.16", |
| SOPCODE_INFO2 (0xf8002100, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldd.32", |
| SOPCODE_INFO2 (0xf8002200, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldq.8", |
| SOPCODE_INFO2 (0xf8002400, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldq.16", |
| SOPCODE_INFO2 (0xf8002500, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldq.32", |
| SOPCODE_INFO2 (0xf8002600, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstd.8", |
| SOPCODE_INFO2 (0xf8002800, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstd.16", |
| SOPCODE_INFO2 (0xf8002900, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstd.32", |
| SOPCODE_INFO2 (0xf8002a00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_3_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstq.8", |
| SOPCODE_INFO2 (0xf8002c00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstq.16", |
| SOPCODE_INFO2 (0xf8002d00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstq.32", |
| SOPCODE_INFO2 (0xf8002e00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (4_7or21_24, IMM_FLDST, OPRND_SHIFT_4_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldrd.8", |
| SOPCODE_INFO2 (0xf8003000, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldrd.16", |
| SOPCODE_INFO2 (0xf8003100, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldrd.32", |
| SOPCODE_INFO2 (0xf8003200, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldrq.8", |
| SOPCODE_INFO2 (0xf8003400, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldrq.16", |
| SOPCODE_INFO2 (0xf8003500, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vldrq.32", |
| SOPCODE_INFO2 (0xf8003600, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstrd.8", |
| SOPCODE_INFO2 (0xf8003800, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstrd.16", |
| SOPCODE_INFO2 (0xf8003900, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstrd.32", |
| SOPCODE_INFO2 (0xf8003a00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstrq.8", |
| SOPCODE_INFO2 (0xf8003c00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstrq.16", |
| SOPCODE_INFO2 (0xf8003d00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vstrq.32", |
| SOPCODE_INFO2 (0xf8003e00, |
| (0_3, FREG, OPRND_SHIFT_0_BIT), |
| BRACKET_OPRND ((16_20, AREG, OPRND_SHIFT_0_BIT), |
| (5_6or21_25, AREG_WITH_LSHIFT_FPU, OPRND_SHIFT_0_BIT))), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov", |
| OPCODE_INFO2 (0xf8000c00, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcadd.eu8", |
| OPCODE_INFO2 (0xf8000060, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcadd.eu16", |
| OPCODE_INFO2 (0xf8100060, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcadd.es8", |
| OPCODE_INFO2 (0xf8000070, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcadd.es16", |
| OPCODE_INFO2 (0xf8100070, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.eu8", |
| OPCODE_INFO2 (0xf8000c20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.eu16", |
| OPCODE_INFO2 (0xf8100c20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.es8", |
| OPCODE_INFO2 (0xf8000c30, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.es16", |
| OPCODE_INFO2 (0xf8100c30, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.u16.l", |
| OPCODE_INFO2 (0xf8100d00, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.u32.l", |
| OPCODE_INFO2 (0xfa000d00, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.s16.l", |
| OPCODE_INFO2 (0xf8100d10, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.s32.l", |
| OPCODE_INFO2 (0xfa000d10, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.u16.sl", |
| OPCODE_INFO2 (0xf8100d40, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.u32.sl", |
| OPCODE_INFO2 (0xfa000d40, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.s16.sl", |
| OPCODE_INFO2 (0xf8100d50, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.s32.sl", |
| OPCODE_INFO2 (0xfa000d50, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.u16.h", |
| OPCODE_INFO2 (0xf8100d60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.u32.h", |
| OPCODE_INFO2 (0xfa000d60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.s16.h", |
| OPCODE_INFO2 (0xf8100d70, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.s32.h", |
| OPCODE_INFO2 (0xfa000d70, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.u16.rh", |
| OPCODE_INFO2 (0xf8100d80, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.u32.rh", |
| OPCODE_INFO2 (0xfa000d80, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.s16.rh", |
| OPCODE_INFO2 (0xf8100d90, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmov.s32.rh", |
| OPCODE_INFO2 (0xfa000d90, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vstou.u16.sl", |
| OPCODE_INFO2 (0xf8100dc0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vstou.u32.sl", |
| OPCODE_INFO2 (0xfa000dc0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vstou.s16.sl", |
| OPCODE_INFO2 (0xf8100dd0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vstou.s32.sl", |
| OPCODE_INFO2 (0xfa000dd0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vrev.8", |
| OPCODE_INFO2 (0xf8000e60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vrev.16", |
| OPCODE_INFO2 (0xf8100e60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vrev.32", |
| OPCODE_INFO2 (0xfa000e60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcnt1.8", |
| OPCODE_INFO2 (0xf8000ea0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vclz.8", |
| OPCODE_INFO2 (0xf8000ec0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vclz.16", |
| OPCODE_INFO2 (0xf8100ec0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vclz.32", |
| OPCODE_INFO2 (0xfa000ec0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcls.u8", |
| OPCODE_INFO2 (0xf8000ee0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcls.u16", |
| OPCODE_INFO2 (0xf8100ee0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcls.u32", |
| OPCODE_INFO2 (0xfa000ee0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcls.s8", |
| OPCODE_INFO2 (0xf8000ef0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcls.s16", |
| OPCODE_INFO2 (0xf8100ef0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcls.s32", |
| OPCODE_INFO2 (0xfa000ef0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vabs.s8", |
| OPCODE_INFO2 (0xf8001010, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vabs.s16", |
| OPCODE_INFO2 (0xf8101010, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vabs.s32", |
| OPCODE_INFO2 (0xfa001010, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vabs.u8.s", |
| OPCODE_INFO2 (0xf8001040, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vabs.u16.s", |
| OPCODE_INFO2 (0xf8101040, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vabs.u32.s", |
| OPCODE_INFO2 (0xfa001040, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vabs.s8.s", |
| OPCODE_INFO2 (0xf8001050, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vabs.s16.s", |
| OPCODE_INFO2 (0xf8101050, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vabs.s32.s", |
| OPCODE_INFO2 (0xfa001050, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.u8", |
| OPCODE_INFO2 (0xf8001080, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.u16", |
| OPCODE_INFO2 (0xf8101080, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.u32", |
| OPCODE_INFO2 (0xfa001080, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.s8", |
| OPCODE_INFO2 (0xf8001090, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.s16", |
| OPCODE_INFO2 (0xf8101090, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.s32", |
| OPCODE_INFO2 (0xfa001090, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.u8.s", |
| OPCODE_INFO2 (0xf80010c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.u16.s", |
| OPCODE_INFO2 (0xf81010c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.u32.s", |
| OPCODE_INFO2 (0xfa0010c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.s8.s", |
| OPCODE_INFO2 (0xf80010d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.s16.s", |
| OPCODE_INFO2 (0xf81010d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vneg.s32.s", |
| OPCODE_INFO2 (0xfa0010d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphsz.u8", |
| OPCODE_INFO2 (0xf8000880, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphsz.u16", |
| OPCODE_INFO2 (0xf8100880, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphsz.u32", |
| OPCODE_INFO2 (0xfa000880, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphsz.s8", |
| OPCODE_INFO2 (0xf8000890, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphsz.s16", |
| OPCODE_INFO2 (0xf8100890, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphsz.s32", |
| OPCODE_INFO2 (0xfa000890, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpltz.u8", |
| OPCODE_INFO2 (0xf80008a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpltz.u16", |
| OPCODE_INFO2 (0xf81008a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpltz.u32", |
| OPCODE_INFO2 (0xfa0008a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpltz.s8", |
| OPCODE_INFO2 (0xf80008b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpltz.s16", |
| OPCODE_INFO2 (0xf81008b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpltz.s32", |
| OPCODE_INFO2 (0xfa0008b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpnez.u8", |
| OPCODE_INFO2 (0xf80008c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpnez.u16", |
| OPCODE_INFO2 (0xf81008c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpnez.u32", |
| OPCODE_INFO2 (0xfa0008c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpnez.s8", |
| OPCODE_INFO2 (0xf80008d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpnez.s16", |
| OPCODE_INFO2 (0xf81008d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpnez.s32", |
| OPCODE_INFO2 (0xfa0008d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vtrch.8", |
| OPCODE_INFO3 (0xf8000f40, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vtrch.16", |
| OPCODE_INFO3 (0xf8100f40, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vtrch.32", |
| OPCODE_INFO3 (0xfa000f40, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vtrcl.8", |
| OPCODE_INFO3 (0xf8000f60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vtrcl.16", |
| OPCODE_INFO3 (0xf8100f60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vtrcl.32", |
| OPCODE_INFO3 (0xfa000f60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.u8", |
| OPCODE_INFO3 (0xf8000000, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.u16", |
| OPCODE_INFO3 (0xf8100000, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.u32", |
| OPCODE_INFO3 (0xfa000000, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.s8", |
| OPCODE_INFO3 (0xf8000010, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.s16", |
| OPCODE_INFO3 (0xf8100010, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.s32", |
| OPCODE_INFO3 (0xfa000010, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.eu8", |
| OPCODE_INFO3 (0xf8000020, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.eu16", |
| OPCODE_INFO3 (0xf8100020, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.es8", |
| OPCODE_INFO3 (0xf8000030, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.es16", |
| OPCODE_INFO3 (0xf8100030, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcadd.u8", |
| OPCODE_INFO3 (0xf8000040, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcadd.u16", |
| OPCODE_INFO3 (0xf8100040, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcadd.u32", |
| OPCODE_INFO3 (0xfa000040, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcadd.s8", |
| OPCODE_INFO3 (0xf8000050, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcadd.s16", |
| OPCODE_INFO3 (0xf8100050, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcadd.s32", |
| OPCODE_INFO3 (0xfa000050, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.xu16.sl", |
| OPCODE_INFO3 (0xf8100140, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.xu32.sl", |
| OPCODE_INFO3 (0xfa000140, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.xs16.sl", |
| OPCODE_INFO3 (0xf8100150, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.xs32.sl", |
| OPCODE_INFO3 (0xfa000150, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.xu16", |
| OPCODE_INFO3 (0xf8100160, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.xu32", |
| OPCODE_INFO3 (0xfa000160, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.xs16", |
| OPCODE_INFO3 (0xf8100170, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.xs32", |
| OPCODE_INFO3 (0xfa000170, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.u8", |
| OPCODE_INFO3 (0xf8000180, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.u16", |
| OPCODE_INFO3 (0xf8100180, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.u32", |
| OPCODE_INFO3 (0xfa000180, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.s8", |
| OPCODE_INFO3 (0xf8000190, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.s16", |
| OPCODE_INFO3 (0xf8100190, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.s32", |
| OPCODE_INFO3 (0xfa000190, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.u8.r", |
| OPCODE_INFO3 (0xf80001a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.u16.r", |
| OPCODE_INFO3 (0xf81001a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.u32.r", |
| OPCODE_INFO3 (0xfa0001a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.s8.r", |
| OPCODE_INFO3 (0xf80001b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.s16.r", |
| OPCODE_INFO3 (0xf81001b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vaddh.s32.r", |
| OPCODE_INFO3 (0xfa0001b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.u8.s", |
| OPCODE_INFO3 (0xf80001c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.u16.s", |
| OPCODE_INFO3 (0xf81001c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.u32.s", |
| OPCODE_INFO3 (0xfa0001c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.s8.s", |
| OPCODE_INFO3 (0xf80001d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.s16.s", |
| OPCODE_INFO3 (0xf81001d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vadd.s32.s", |
| OPCODE_INFO3 (0xfa0001d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.u8", |
| OPCODE_INFO3 (0xf8000200, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.u16", |
| OPCODE_INFO3 (0xf8100200, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.u32", |
| OPCODE_INFO3 (0xfa000200, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.s8", |
| OPCODE_INFO3 (0xf8000210, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.s16", |
| OPCODE_INFO3 (0xf8100210, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.s32", |
| OPCODE_INFO3 (0xfa000210, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.eu8", |
| OPCODE_INFO3 (0xf8000220, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.eu16", |
| OPCODE_INFO3 (0xf8100220, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.eu32", |
| OPCODE_INFO3 (0xfa000220, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.es8", |
| OPCODE_INFO3 (0xf8000230, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.es16", |
| OPCODE_INFO3 (0xf8100230, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.es32", |
| OPCODE_INFO3 (0xfa000230, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabs.u8", |
| OPCODE_INFO3 (0xf8000240, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabs.u16", |
| OPCODE_INFO3 (0xf8100240, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabs.u32", |
| OPCODE_INFO3 (0xfa000240, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabs.s8", |
| OPCODE_INFO3 (0xf8000250, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabs.s16", |
| OPCODE_INFO3 (0xf8100250, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabs.s32", |
| OPCODE_INFO3 (0xfa000250, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabs.eu8", |
| OPCODE_INFO3 (0xf8000260, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabs.eu16", |
| OPCODE_INFO3 (0xf8100260, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabs.es8", |
| OPCODE_INFO3 (0xf8000270, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabs.es16", |
| OPCODE_INFO3 (0xf8100270, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabsa.u8", |
| OPCODE_INFO3 (0xf8000280, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabsa.u16", |
| OPCODE_INFO3 (0xf8100280, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabsa.u32", |
| OPCODE_INFO3 (0xfa000280, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabsa.s8", |
| OPCODE_INFO3 (0xf8000290, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabsa.s16", |
| OPCODE_INFO3 (0xf8100290, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabsa.s32", |
| OPCODE_INFO3 (0xfa000290, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabsa.eu8", |
| OPCODE_INFO3 (0xf80002a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabsa.eu16", |
| OPCODE_INFO3 (0xf81002a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabsa.es8", |
| OPCODE_INFO3 (0xf80002b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsabsa.es16", |
| OPCODE_INFO3 (0xf81002b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.xu16", |
| OPCODE_INFO3 (0xf8100360, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.xu32", |
| OPCODE_INFO3 (0xfa000360, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.xs16", |
| OPCODE_INFO3 (0xf8100370, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.xs32", |
| OPCODE_INFO3 (0xfa000370, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.u8", |
| OPCODE_INFO3 (0xf8000380, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.u16", |
| OPCODE_INFO3 (0xf8100380, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.u32", |
| OPCODE_INFO3 (0xfa000380, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.s8", |
| OPCODE_INFO3 (0xf8000390, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.s16", |
| OPCODE_INFO3 (0xf8100390, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.s32", |
| OPCODE_INFO3 (0xfa000390, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.u8.r", |
| OPCODE_INFO3 (0xf80003a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.u16.r", |
| OPCODE_INFO3 (0xf81003a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.u32.r", |
| OPCODE_INFO3 (0xfa0003a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.s8.r", |
| OPCODE_INFO3 (0xf80003b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.s16.r", |
| OPCODE_INFO3 (0xf81003b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsubh.s32.r", |
| OPCODE_INFO3 (0xfa0003b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.u8.s", |
| OPCODE_INFO3 (0xf80003c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.u16.s", |
| OPCODE_INFO3 (0xf81003c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.u32.s", |
| OPCODE_INFO3 (0xfa0003c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.s8.s", |
| OPCODE_INFO3 (0xf80003d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.s16.s", |
| OPCODE_INFO3 (0xf81003d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vsub.s32.s", |
| OPCODE_INFO3 (0xfa0003d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmul.u8", |
| OPCODE_INFO3 (0xf8000400, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmul.u16", |
| OPCODE_INFO3 (0xf8100400, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmul.u32", |
| OPCODE_INFO3 (0xfa000400, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmul.s8", |
| OPCODE_INFO3 (0xf8000410, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmul.s16", |
| OPCODE_INFO3 (0xf8100410, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmul.s32", |
| OPCODE_INFO3 (0xfa000410, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmul.eu8", |
| OPCODE_INFO3 (0xf8000420, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmul.eu16", |
| OPCODE_INFO3 (0xf8100420, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmul.es8", |
| OPCODE_INFO3 (0xf8000430, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmul.es16", |
| OPCODE_INFO3 (0xf8100430, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.u8", |
| OPCODE_INFO3 (0xf8000440, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.u16", |
| OPCODE_INFO3 (0xf8100440, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.u32", |
| OPCODE_INFO3 (0xfa000440, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.s8", |
| OPCODE_INFO3 (0xf8000450, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.s16", |
| OPCODE_INFO3 (0xf8100450, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.s32", |
| OPCODE_INFO3 (0xfa000450, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.eu8", |
| OPCODE_INFO3 (0xf8000460, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.eu16", |
| OPCODE_INFO3 (0xf8100460, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.eu32", |
| OPCODE_INFO3 (0xfa000460, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.es8", |
| OPCODE_INFO3 (0xf8000470, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.es16", |
| OPCODE_INFO3 (0xf8100470, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmula.es32", |
| OPCODE_INFO3 (0xfa000470, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmuls.u8", |
| OPCODE_INFO3 (0xf8000480, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmuls.u16", |
| OPCODE_INFO3 (0xf8100480, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmuls.u32", |
| OPCODE_INFO3 (0xfa000480, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmuls.s8", |
| OPCODE_INFO3 (0xf8000490, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmuls.s16", |
| OPCODE_INFO3 (0xf8100490, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmuls.s32", |
| OPCODE_INFO3 (0xfa000490, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmuls.eu8", |
| OPCODE_INFO3 (0xf80004a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmuls.eu16", |
| OPCODE_INFO3 (0xf81004a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmuls.es8", |
| OPCODE_INFO3 (0xf80004b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmuls.es16", |
| OPCODE_INFO3 (0xf81004b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.u8", |
| OPCODE_INFO3 (0xf8000680, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.u16", |
| OPCODE_INFO3 (0xf8100680, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.u32", |
| OPCODE_INFO3 (0xfa000680, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.s8", |
| OPCODE_INFO3 (0xf8000690, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.s16", |
| OPCODE_INFO3 (0xf8100690, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.s32", |
| OPCODE_INFO3 (0xfa000690, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.u8.r", |
| OPCODE_INFO3 (0xf80006c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.u16.r", |
| OPCODE_INFO3 (0xf81006c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.u32.r", |
| OPCODE_INFO3 (0xfa0006c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.s8.r", |
| OPCODE_INFO3 (0xf80006d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.s16.r", |
| OPCODE_INFO3 (0xf81006d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshr.s32.r", |
| OPCODE_INFO3 (0xfa0006d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.u8", |
| OPCODE_INFO3 (0xf8000780, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.u16", |
| OPCODE_INFO3 (0xf8100780, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.u32", |
| OPCODE_INFO3 (0xfa000780, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.s8", |
| OPCODE_INFO3 (0xf8000790, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.s16", |
| OPCODE_INFO3 (0xf8100790, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.s32", |
| OPCODE_INFO3 (0xfa000790, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.u8.s", |
| OPCODE_INFO3 (0xf80007c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.u16.s", |
| OPCODE_INFO3 (0xf81007c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.u32.s", |
| OPCODE_INFO3 (0xfa0007c0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.s8.s", |
| OPCODE_INFO3 (0xf80007d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.s16.s", |
| OPCODE_INFO3 (0xf81007d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vshl.s32.s", |
| OPCODE_INFO3 (0xfa0007d0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphs.u8", |
| OPCODE_INFO3 (0xf8000800, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphs.u16", |
| OPCODE_INFO3 (0xf8100800, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphs.u32", |
| OPCODE_INFO3 (0xfa000800, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphs.s8", |
| OPCODE_INFO3 (0xf8000810, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphs.s16", |
| OPCODE_INFO3 (0xf8100810, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmphs.s32", |
| OPCODE_INFO3 (0xfa000810, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmplt.u8", |
| OPCODE_INFO3 (0xf8000820, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmplt.u16", |
| OPCODE_INFO3 (0xf8100820, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmplt.u32", |
| OPCODE_INFO3 (0xfa000820, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmplt.s8", |
| OPCODE_INFO3 (0xf8000830, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmplt.s16", |
| OPCODE_INFO3 (0xf8100830, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmplt.s32", |
| OPCODE_INFO3 (0xfa000830, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpne.u8", |
| OPCODE_INFO3 (0xf8000840, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpne.u16", |
| OPCODE_INFO3 (0xf8100840, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpne.u32", |
| OPCODE_INFO3 (0xfa000840, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpne.s8", |
| OPCODE_INFO3 (0xf8000850, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpne.s16", |
| OPCODE_INFO3 (0xf8100850, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmpne.s32", |
| OPCODE_INFO3 (0xfa000850, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmax.u8", |
| OPCODE_INFO3 (0xf8000900, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmax.u16", |
| OPCODE_INFO3 (0xf8100900, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmax.u32", |
| OPCODE_INFO3 (0xfa000900, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmax.s8", |
| OPCODE_INFO3 (0xf8000910, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmax.s16", |
| OPCODE_INFO3 (0xf8100910, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmax.s32", |
| OPCODE_INFO3 (0xfa000910, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmin.u8", |
| OPCODE_INFO3 (0xf8000920, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmin.u16", |
| OPCODE_INFO3 (0xf8100920, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmin.u32", |
| OPCODE_INFO3 (0xfa000920, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmin.s8", |
| OPCODE_INFO3 (0xf8000930, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmin.s16", |
| OPCODE_INFO3 (0xf8100930, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vmin.s32", |
| OPCODE_INFO3 (0xfa000930, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmax.u8", |
| OPCODE_INFO3 (0xf8000980, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmax.u16", |
| OPCODE_INFO3 (0xf8100980, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmax.u32", |
| OPCODE_INFO3 (0xfa000980, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmax.s8", |
| OPCODE_INFO3 (0xf8000990, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmax.s16", |
| OPCODE_INFO3 (0xf8100990, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmax.s32", |
| OPCODE_INFO3 (0xfa000990, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmin.u8", |
| OPCODE_INFO3 (0xf80009a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmin.u16", |
| OPCODE_INFO3 (0xf81009a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmin.u32", |
| OPCODE_INFO3 (0xfa0009a0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmin.s8", |
| OPCODE_INFO3 (0xf80009b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmin.s16", |
| OPCODE_INFO3 (0xf81009b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vcmin.s32", |
| OPCODE_INFO3 (0xfa0009b0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vand.8", |
| OPCODE_INFO3 (0xf8000a00, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vand.16", |
| OPCODE_INFO3 (0xf8100a00, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vand.32", |
| OPCODE_INFO3 (0xfa000a00, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vandn.8", |
| OPCODE_INFO3 (0xf8000a20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vandn.16", |
| OPCODE_INFO3 (0xf8100a20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vandn.32", |
| OPCODE_INFO3 (0xfa000a20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vor.8", |
| OPCODE_INFO3 (0xf8000a40, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vor.16", |
| OPCODE_INFO3 (0xf8100a40, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vor.32", |
| OPCODE_INFO3 (0xfa000a40, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vnor.8", |
| OPCODE_INFO3 (0xf8000a60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vnor.16", |
| OPCODE_INFO3 (0xf8100a60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vnor.32", |
| OPCODE_INFO3 (0xfa000a60, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vxor.8", |
| OPCODE_INFO3 (0xf8000a80, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vxor.16", |
| OPCODE_INFO3 (0xf8100a80, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vxor.32", |
| OPCODE_INFO3 (0xfa000a80, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vtst.8", |
| OPCODE_INFO3 (0xf8000b20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vtst.16", |
| OPCODE_INFO3 (0xf8100b20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vtst.32", |
| OPCODE_INFO3 (0xfa000b20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vbpermz.8", |
| OPCODE_INFO3 (0xf8000f00, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vbpermz.16", |
| OPCODE_INFO3 (0xf8100f00, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vbpermz.32", |
| OPCODE_INFO3 (0xfa000f00, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vbperm.8", |
| OPCODE_INFO3 (0xf8000f20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vbperm.16", |
| OPCODE_INFO3 (0xf8100f20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vbperm.32", |
| OPCODE_INFO3 (0xfa000f20, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vdch.8", |
| OPCODE_INFO3 (0xf8000fc0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vdch.16", |
| OPCODE_INFO3 (0xf8100fc0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vdch.32", |
| OPCODE_INFO3 (0xfa000fc0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vdcl.8", |
| OPCODE_INFO3 (0xf8000fe0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vdcl.16", |
| OPCODE_INFO3 (0xf8100fe0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vdcl.32", |
| OPCODE_INFO3 (0xfa000fe0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vich.8", |
| OPCODE_INFO3 (0xf8000f80, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vich.16", |
| OPCODE_INFO3 (0xf8100f80, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vich.32", |
| OPCODE_INFO3 (0xfa000f80, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vicl.8", |
| OPCODE_INFO3 (0xf8000fa0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vicl.16", |
| OPCODE_INFO3 (0xf8100fa0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| OP32 ("vicl.32", |
| OPCODE_INFO3 (0xfa000fa0, |
| (0_3, VREG, OPRND_SHIFT_0_BIT), |
| (16_19, VREG, OPRND_SHIFT_0_BIT), |
| (21_24, VREG, OPRND_SHIFT_0_BIT)), |
| CSKY_ISA_VDSP), |
| |
| /* The following are aliases for other instructions. */ |
| /* setc -> cmphs r0, r0 */ |
| OP16 ("setc", |
| OPCODE_INFO0 (0x6400), |
| CSKYV2_ISA_E1), |
| /* clrc -> cmpne r0, r0 */ |
| OP16 ("clrc", |
| OPCODE_INFO0 (0x6402), |
| CSKYV2_ISA_E1), |
| /* tstlt rd -> btsti rd,31 */ |
| OP32 ("tstlt", |
| OPCODE_INFO1 (0xc7e02880, |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| /* idly4 -> idly 4 */ |
| OP32 ("idly4", |
| OPCODE_INFO0 (0xc0601c20), |
| CSKYV2_ISA_E1), |
| /* rsub rz, ry, rx -> subu rz, rx, ry */ |
| DOP32 ("rsub", |
| OPCODE_INFO3 (0xc4000080, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4000080, |
| (0_4or21_25, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), CSKYV2_ISA_1E2), |
| /* cmplei rd,X -> cmplti rd,X+1 */ |
| OP16_OP32 ("cmplei", |
| OPCODE_INFO2 (0x3820, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT), |
| (0_4, IMM5b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xeb200000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (0_15, IMM16b, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| /* cmpls -> cmphs */ |
| OP16_OP32 ("cmpls", |
| OPCODE_INFO2 (0x6400, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc4000420, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| /* cmpgt -> cmplt */ |
| OP16_OP32 ("cmpgt", |
| OPCODE_INFO2 (0x6401, |
| (6_9, GREG0_15, OPRND_SHIFT_0_BIT), |
| (2_5, GREG0_15, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc4000440, |
| (21_25, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| /* tstle rd -> cmplti rd,1 */ |
| OP16_OP32 ("tstle", |
| OPCODE_INFO1 (0x3820, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO1 (0xeb200000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| /* tstne rd -> cmpnei rd,0 */ |
| OP16_OP32 ("tstne", |
| OPCODE_INFO1 (0x3840, |
| (8_10, GREG0_7, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO1 (0xeb400000, |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| /* rotri rz, rx, imm5 -> rotli rz, rx, 32-imm5 */ |
| DOP32 ("rotri", |
| OPCODE_INFO3 (0xc4004900, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4004900, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| DOP32 ("rori", |
| OPCODE_INFO3 (0xc4004900, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO2 (0xc4004900, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT), |
| (21_25, IMM5b_RORI, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3), |
| |
| /* rotlc rd -> addc rd, rd/ addc rd, rd, rd */ |
| OP16_OP32_WITH_WORK ("rotlc", |
| OPCODE_INFO2 (0x6001, |
| (NONE, GREG0_15, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc4000040, |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, CONST1, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_2E3, |
| v2_work_rotlc), |
| /* not rd -> nor rd, rd, not rz, rx -> nor rz, rx, rx */ |
| OP16_OP32_WITH_WORK ("not", |
| OPCODE_INFO1 (0x6c02, |
| (NONE, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, |
| OPCODE_INFO2 (0xc4002480, |
| (NONE, AREG, OPRND_SHIFT_0_BIT), |
| (NONE, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_E1, v2_work_not), |
| |
| /* Special force 32 bits instruction. */ |
| OP32 ("xtrb0.32", |
| OPCODE_INFO2 (0xc4007020, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("xtrb1.32", |
| OPCODE_INFO2 (0xc4007040, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("xtrb2.32", |
| OPCODE_INFO2 (0xc4007080, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("xtrb3.32", |
| OPCODE_INFO2 (0xc4007100, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| OP32 ("ff0.32", |
| OPCODE_INFO2 (0xc4007c20, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| DOP32 ("ff1.32", |
| OPCODE_INFO2 (0xc4007c40, |
| (0_4, AREG, OPRND_SHIFT_0_BIT), |
| (16_20, AREG, OPRND_SHIFT_0_BIT)), |
| OPCODE_INFO1 (0xc4007c40, |
| (0_4or16_20, DUP_AREG, OPRND_SHIFT_0_BIT)), |
| CSKYV2_ISA_1E2), |
| {NULL, 0, {}, {}, 0, 0, 0, 0, 0, NULL} |
| }; |