123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281 |
- From 32134df31c001130ac0ad9b3975827aaa9c8f42c Mon Sep 17 00:00:00 2001
- From: LevyHsu <admin@levyhsu.com>
- Date: Tue, 8 Jun 2021 15:04:36 +0800
- Subject: [PATCH 06/28] Add pseudo-instructions for B extension
- rev[2/4/8/16].[p/n/b/w]
- [un]zip[2/4/8/16].[p/n/b/w]
- orc[2/4/8/16].[p/n/b/w]
- ---
- opcodes/riscv-opc.c | 246 +++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 242 insertions(+), 4 deletions(-)
- diff --git a/opcodes/riscv-opc.c b/opcodes/riscv-opc.c
- index df6b1659f8..dc7c1fb428 100644
- --- a/opcodes/riscv-opc.c
- +++ b/opcodes/riscv-opc.c
- @@ -25,9 +25,128 @@
- #include <stdio.h>
-
- #define MASK_SHAMT (OP_MASK_SHAMT << OP_SH_SHAMT)
- -#define MATCH_SHAMT_REV8_32 (0b11000 << OP_SH_SHAMT)
- -#define MATCH_SHAMT_REV8_64 (0b111000 << OP_SH_SHAMT)
- -#define MATCH_SHAMT_ORC_B (0b00111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_32 (0b11111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_64 (0b111111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_P_32 (0b00001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_P_64 (0b000001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_N_32 (0b00011 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_N_64 (0b000011 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_B_32 (0b00111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_B_64 (0b000111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_H_32 (0b01111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_H_64 (0b001111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV_W_64 (0b011111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV2_32 (0b11110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV2_64 (0b111110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV2_N_32 (0b00010 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV2_N_64 (0b000010 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV2_B_32 (0b00110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV2_B_64 (0b000110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV2_H_32 (0b01110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV2_H_64 (0b001110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV2_W_64 (0b011110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV4_32 (0b11100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV4_64 (0b111100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV4_B_32 (0b00100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV4_B_64 (0b000100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV4_H_32 (0b01100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV4_H_64 (0b001100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV4_W_64 (0b011100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV8_32 (0b11000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV8_64 (0b111000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV8_H_32 (0b01000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV8_H_64 (0b001000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV8_W_64 (0b011000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV16_32 (0b10000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV16_64 (0b110000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV16_W_64 (0b010000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_REV32_64 (0b100000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP_32 (0b11110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP_64 (0b111110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP_N_32 (0b00010 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP_N_64 (0b000010 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP_B_32 (0b00110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP_B_64 (0b000110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP_H_32 (0b01110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP_H_64 (0b001110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP_W_64 (0b011110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP2_32 (0b11100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP2_64 (0b111100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP2_B_32 (0b00100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP2_B_64 (0b000100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP2_H_32 (0b01100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP2_H_64 (0b001100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP2_W_64 (0b011100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP4_32 (0b11000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP4_64 (0b111000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP4_H_32 (0b01000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP4_H_64 (0b001000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP4_W_64 (0b011000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP8_32 (0b10000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP8_64 (0b110000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP8_W_64 (0b010000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ZIP16_64 (0b100000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP_32 (0b11111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP_64 (0b111111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP_N_32 (0b00011 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP_N_64 (0b000011 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP_B_32 (0b00111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP_B_64 (0b000111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP_H_32 (0b01111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP_H_64 (0b001111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP_W_64 (0b011111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP2_32 (0b11101 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP2_64 (0b111101 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP2_B_32 (0b00101 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP2_B_64 (0b000101 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP2_H_32 (0b01101 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP2_H_64 (0b001101 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP2_W_64 (0b011101 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP4_32 (0b11001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP4_64 (0b111001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP4_H_32 (0b01001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP4_H_64 (0b001001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP4_W_64 (0b011001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP8_32 (0b10001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP8_64 (0b110001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP8_W_64 (0b010001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_UNZIP16_64 (0b100001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_32 (0b11111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_64 (0b111111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_P_32 (0b00001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_P_64 (0b000001 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_N_32 (0b00011 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_N_64 (0b000011 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_B_32 (0b00111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_B_64 (0b000111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_H_32 (0b01111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_H_64 (0b001111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC_W_64 (0b011111 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC2_32 (0b11110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC2_64 (0b111110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC2_N_32 (0b00010 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC2_N_64 (0b000010 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC2_B_32 (0b00110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC2_B_64 (0b000110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC2_H_32 (0b01110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC2_H_64 (0b001110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC2_W_64 (0b011110 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC4_32 (0b11100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC4_64 (0b111100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC4_B_32 (0b00100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC4_B_64 (0b000100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC4_H_32 (0b01100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC4_H_64 (0b001100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC4_W_64 (0b011100 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC8_32 (0b11000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC8_64 (0b111000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC8_H_32 (0b01000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC8_H_64 (0b001000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC8_W_64 (0b011000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC16_32 (0b10000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC16_64 (0b110000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC16_W_64 (0b010000 << OP_SH_SHAMT)
- +#define MATCH_SHAMT_ORC32_64 (0b100000 << OP_SH_SHAMT)
-
- /* Register names used by gas and objdump. */
-
- @@ -1207,9 +1326,128 @@ const struct riscv_opcode riscv_opcodes[] =
- {"rori", 0, INSN_CLASS_ZBB_OR_ZBP, "d,s,>", MATCH_RORI, MASK_RORI, match_opcode, 0 },
- {"ror", 0, INSN_CLASS_ZBB_OR_ZBP, "d,s,t", MATCH_ROR, MASK_ROR, match_opcode, 0 },
- {"ror", 0, INSN_CLASS_ZBB_OR_ZBP, "d,s,>", MATCH_RORI, MASK_RORI, match_opcode, INSN_ALIAS },
- +{"rev", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev.p", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_P_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev.p", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_P_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev.n", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_N_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev.n", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_N_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev.b", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_B_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev.b", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_B_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_H_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_H_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV_W_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev2", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV2_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev2", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV2_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev2.n", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV2_N_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev2.n", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV2_N_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev2.b", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV2_B_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev2.b", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV2_B_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev2.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV2_H_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev2.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV2_H_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev2.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV2_W_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev4", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV4_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev4", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV4_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev4.b", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV4_B_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev4.b", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV4_B_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev4.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV4_H_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev4.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV4_H_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev4.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV4_W_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- {"rev8", 32, INSN_CLASS_ZBB, "d,s", MATCH_GREVI|MATCH_SHAMT_REV8_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- {"rev8", 64, INSN_CLASS_ZBB, "d,s", MATCH_GREVI|MATCH_SHAMT_REV8_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- -{"orc.b", 0, INSN_CLASS_ZBB, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_B, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"rev8.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV8_H_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev8.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV8_H_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev8.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV8_W_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev16", 32, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV16_32, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev16", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV16_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev16.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV16_W_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"rev32", 64, INSN_CLASS_ZBP, "d,s", MATCH_GREVI|MATCH_SHAMT_REV32_64, MASK_GREVI|MASK_SHAMT, match_opcode, 0 },
- +{"zip", 32, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip.n", 32, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_N_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip.n", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_N_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip.b", 32, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_B_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip.b", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_B_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_H_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_H_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP_W_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip2", 32, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP2_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip2", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP2_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip2.b", 32, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP2_B_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip2.b", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP2_B_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip2.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP2_H_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip2.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP2_H_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip2.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP2_W_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip4", 32, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP4_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip4", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP4_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip4.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP4_H_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip4.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP4_H_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip4.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP4_W_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip8", 32, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP8_32, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip8", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP8_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip8.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP8_W_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"zip16", 64, INSN_CLASS_ZBP, "d,s", MATCH_SHFLI|MATCH_SHAMT_ZIP16_64, MASK_SHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip", 32, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip.n", 32, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP_N_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip.n", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP_N_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip.b", 32, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP_B_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip.b", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP_B_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP_H_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP_H_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP_W_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip2", 32, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP2_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip2", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP2_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip2.b", 32, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP2_B_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip2.b", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP2_B_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip2.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP2_H_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip2.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP2_H_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip2.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP2_W_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip4", 32, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP4_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip4", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP4_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip4.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP4_H_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip4.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP4_H_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip4.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP4_W_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip8", 32, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP8_32, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip8", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP8_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip8.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP8_W_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"unzip16", 64, INSN_CLASS_ZBP, "d,s", MATCH_UNSHFLI|MATCH_SHAMT_UNZIP16_64, MASK_UNSHFLI|MASK_SHAMT, match_opcode, 0 },
- +{"orc", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc.p", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_P_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc.p", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_P_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc.n", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_N_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc.n", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_N_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc.b", 32, INSN_CLASS_ZBB, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_B_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc.b", 64, INSN_CLASS_ZBB, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_B_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_H_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_H_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC_W_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc2", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC2_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc2", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC2_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc2.n", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC2_N_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc2.n", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC2_N_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc2.b", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC2_B_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc2.b", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC2_B_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc2.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC2_H_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc2.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC2_H_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc2.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC2_W_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc4", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC4_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc4", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC4_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc4.b", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC4_B_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc4.b", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC4_B_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc4.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC4_H_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc4.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC4_H_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc4.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC4_W_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc8", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC8_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc8", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC8_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc8.h", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC8_H_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc8.h", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC8_H_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc8.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC8_W_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc16", 32, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC16_32, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc16", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC16_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc16.w", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC16_W_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- +{"orc32", 64, INSN_CLASS_ZBP, "d,s", MATCH_GORCI|MATCH_SHAMT_ORC32_64, MASK_GORCI|MASK_SHAMT, match_opcode, 0 },
- {"clzw", 64, INSN_CLASS_ZBB, "d,s", MATCH_CLZW, MASK_CLZW, match_opcode, 0 },
- {"ctzw", 64, INSN_CLASS_ZBB, "d,s", MATCH_CTZW, MASK_CTZW, match_opcode, 0 },
- {"cpopw", 64, INSN_CLASS_ZBB, "d,s", MATCH_CPOPW, MASK_CPOPW, match_opcode, 0 },
- --
- 2.33.0
|