| /* TILE-Gx opcode information. |
| |
| Copyright (C) 2011-2024 Free Software Foundation, Inc. |
| |
| This program 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 of the License, or |
| (at your option) any later version. |
| |
| This program 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 this program; if not, write to the Free Software |
| Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, |
| MA 02110-1301, USA. */ |
| |
| #include "sysdep.h" |
| |
| /* This define is BFD_RELOC_##x for real bfd, or -1 for everyone else. */ |
| #define BFD_RELOC(x) BFD_RELOC_##x |
| #include "bfd.h" |
| |
| /* Special registers. */ |
| #define TREG_LR 55 |
| #define TREG_SN 56 |
| #define TREG_ZERO 63 |
| |
| #if defined(__KERNEL__) || defined(_LIBC) |
| /* FIXME: Rename this. */ |
| #include <asm/opcode-tile_64.h> |
| #define DISASM_ONLY |
| #else |
| #include "opcode/tilegx.h" |
| #endif |
| |
| #ifdef __KERNEL__ |
| #include <linux/stddef.h> |
| #else |
| #include <stddef.h> |
| #endif |
| |
| const struct tilegx_opcode tilegx_opcodes[336] = |
| { |
| { "bpt", TILEGX_OPC_BPT, 0x2, 0, TREG_ZERO, 0, |
| { { 0, }, { }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffffffff80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a44ae00000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "info", TILEGX_OPC_INFO, 0xf, 1, TREG_ZERO, 1, |
| { { 0 }, { 1 }, { 2 }, { 3 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ff00fffULL, |
| 0xfff807ff80000000ULL, |
| 0x0000000078000fffULL, |
| 0x3c0007ff80000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000040300fffULL, |
| 0x181807ff80000000ULL, |
| 0x0000000010000fffULL, |
| 0x0c0007ff80000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "infol", TILEGX_OPC_INFOL, 0x3, 1, TREG_ZERO, 1, |
| { { 4 }, { 5 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc000000070000fffULL, |
| 0xf80007ff80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000070000fffULL, |
| 0x380007ff80000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ld4s_tls", TILEGX_OPC_LD4S_TLS, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1858000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ld_tls", TILEGX_OPC_LD_TLS, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x18a0000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "move", TILEGX_OPC_MOVE, 0xf, 2, TREG_ZERO, 1, |
| { { 8, 9 }, { 6, 7 }, { 10, 11 }, { 12, 13 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffff000ULL, |
| 0xfffff80000000000ULL, |
| 0x00000000780ff000ULL, |
| 0x3c07f80000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x000000005107f000ULL, |
| 0x283bf80000000000ULL, |
| 0x00000000500bf000ULL, |
| 0x2c05f80000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "movei", TILEGX_OPC_MOVEI, 0xf, 2, TREG_ZERO, 1, |
| { { 8, 0 }, { 6, 1 }, { 10, 2 }, { 12, 3 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ff00fc0ULL, |
| 0xfff807e000000000ULL, |
| 0x0000000078000fc0ULL, |
| 0x3c0007e000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000040100fc0ULL, |
| 0x180807e000000000ULL, |
| 0x0000000000000fc0ULL, |
| 0x040007e000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "moveli", TILEGX_OPC_MOVELI, 0x3, 2, TREG_ZERO, 1, |
| { { 8, 4 }, { 6, 5 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc000000070000fc0ULL, |
| 0xf80007e000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000010000fc0ULL, |
| 0x000007e000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "prefetch", TILEGX_OPC_PREFETCH, 0x12, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff81f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc3f8000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a801f80000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x41f8000004000000ULL |
| } |
| #endif |
| }, |
| { "prefetch_add_l1", TILEGX_OPC_PREFETCH_ADD_L1, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8001f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1840001f80000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "prefetch_add_l1_fault", TILEGX_OPC_PREFETCH_ADD_L1_FAULT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8001f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1838001f80000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "prefetch_add_l2", TILEGX_OPC_PREFETCH_ADD_L2, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8001f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1850001f80000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "prefetch_add_l2_fault", TILEGX_OPC_PREFETCH_ADD_L2_FAULT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8001f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1848001f80000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "prefetch_add_l3", TILEGX_OPC_PREFETCH_ADD_L3, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8001f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1860001f80000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "prefetch_add_l3_fault", TILEGX_OPC_PREFETCH_ADD_L3_FAULT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8001f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1858001f80000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "prefetch_l1", TILEGX_OPC_PREFETCH_L1, 0x12, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff81f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc3f8000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a801f80000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x41f8000004000000ULL |
| } |
| #endif |
| }, |
| { "prefetch_l1_fault", TILEGX_OPC_PREFETCH_L1_FAULT, 0x12, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff81f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc3f8000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a781f80000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x41f8000000000000ULL |
| } |
| #endif |
| }, |
| { "prefetch_l2", TILEGX_OPC_PREFETCH_L2, 0x12, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff81f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc3f8000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a901f80000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x43f8000004000000ULL |
| } |
| #endif |
| }, |
| { "prefetch_l2_fault", TILEGX_OPC_PREFETCH_L2_FAULT, 0x12, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff81f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc3f8000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a881f80000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x43f8000000000000ULL |
| } |
| #endif |
| }, |
| { "prefetch_l3", TILEGX_OPC_PREFETCH_L3, 0x12, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff81f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc3f8000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286aa01f80000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x83f8000000000000ULL |
| } |
| #endif |
| }, |
| { "prefetch_l3_fault", TILEGX_OPC_PREFETCH_L3_FAULT, 0x12, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff81f80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc3f8000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a981f80000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x81f8000004000000ULL |
| } |
| #endif |
| }, |
| { "raise", TILEGX_OPC_RAISE, 0x2, 0, TREG_ZERO, 1, |
| { { 0, }, { }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffffffff80000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a44ae80000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "add", TILEGX_OPC_ADD, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0x00000000780c0000ULL, |
| 0x3c06000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x00000000500c0000ULL, |
| 0x2806000000000000ULL, |
| 0x0000000028040000ULL, |
| 0x1802000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "addi", TILEGX_OPC_ADDI, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ff00000ULL, |
| 0xfff8000000000000ULL, |
| 0x0000000078000000ULL, |
| 0x3c00000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000040100000ULL, |
| 0x1808000000000000ULL, |
| 0ULL, |
| 0x0400000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "addli", TILEGX_OPC_ADDLI, 0x3, 3, TREG_ZERO, 1, |
| { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc000000070000000ULL, |
| 0xf800000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000010000000ULL, |
| 0ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "addx", TILEGX_OPC_ADDX, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0x00000000780c0000ULL, |
| 0x3c06000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050080000ULL, |
| 0x2804000000000000ULL, |
| 0x0000000028000000ULL, |
| 0x1800000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "addxi", TILEGX_OPC_ADDXI, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ff00000ULL, |
| 0xfff8000000000000ULL, |
| 0x0000000078000000ULL, |
| 0x3c00000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000040200000ULL, |
| 0x1810000000000000ULL, |
| 0x0000000008000000ULL, |
| 0x0800000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "addxli", TILEGX_OPC_ADDXLI, 0x3, 3, TREG_ZERO, 1, |
| { { 8, 9, 4 }, { 6, 7, 5 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc000000070000000ULL, |
| 0xf800000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000020000000ULL, |
| 0x0800000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "addxsc", TILEGX_OPC_ADDXSC, 0x3, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050040000ULL, |
| 0x2802000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "and", TILEGX_OPC_AND, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0x00000000780c0000ULL, |
| 0x3c06000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050100000ULL, |
| 0x2808000000000000ULL, |
| 0x0000000050000000ULL, |
| 0x2c00000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "andi", TILEGX_OPC_ANDI, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ff00000ULL, |
| 0xfff8000000000000ULL, |
| 0x0000000078000000ULL, |
| 0x3c00000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000040300000ULL, |
| 0x1818000000000000ULL, |
| 0x0000000010000000ULL, |
| 0x0c00000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "beqz", TILEGX_OPC_BEQZ, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1440000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "beqzt", TILEGX_OPC_BEQZT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1400000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bfexts", TILEGX_OPC_BFEXTS, 0x1, 4, TREG_ZERO, 1, |
| { { 8, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007f000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000034000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bfextu", TILEGX_OPC_BFEXTU, 0x1, 4, TREG_ZERO, 1, |
| { { 8, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007f000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000035000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bfins", TILEGX_OPC_BFINS, 0x1, 4, TREG_ZERO, 1, |
| { { 23, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007f000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000036000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bgez", TILEGX_OPC_BGEZ, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x14c0000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bgezt", TILEGX_OPC_BGEZT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1480000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bgtz", TILEGX_OPC_BGTZ, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1540000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bgtzt", TILEGX_OPC_BGTZT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1500000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "blbc", TILEGX_OPC_BLBC, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x15c0000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "blbct", TILEGX_OPC_BLBCT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1580000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "blbs", TILEGX_OPC_BLBS, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1640000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "blbst", TILEGX_OPC_BLBST, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1600000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "blez", TILEGX_OPC_BLEZ, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x16c0000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "blezt", TILEGX_OPC_BLEZT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1680000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bltz", TILEGX_OPC_BLTZ, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1740000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bltzt", TILEGX_OPC_BLTZT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1700000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bnez", TILEGX_OPC_BNEZ, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x17c0000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "bnezt", TILEGX_OPC_BNEZT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 7, 20 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xffc0000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1780000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "clz", TILEGX_OPC_CLZ, 0x5, 2, TREG_ZERO, 1, |
| { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffff000ULL, |
| 0ULL, |
| 0x00000000780ff000ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000051481000ULL, |
| -1ULL, |
| 0x00000000300c1000ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmoveqz", TILEGX_OPC_CMOVEQZ, 0x5, 3, TREG_ZERO, 1, |
| { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0x00000000780c0000ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050140000ULL, |
| -1ULL, |
| 0x0000000048000000ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmovnez", TILEGX_OPC_CMOVNEZ, 0x5, 3, TREG_ZERO, 1, |
| { { 23, 9, 16 }, { 0, }, { 24, 11, 18 }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0x00000000780c0000ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050180000ULL, |
| -1ULL, |
| 0x0000000048040000ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmpeq", TILEGX_OPC_CMPEQ, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0x00000000780c0000ULL, |
| 0x3c06000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x00000000501c0000ULL, |
| 0x280a000000000000ULL, |
| 0x0000000040000000ULL, |
| 0x2404000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmpeqi", TILEGX_OPC_CMPEQI, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ff00000ULL, |
| 0xfff8000000000000ULL, |
| 0x0000000078000000ULL, |
| 0x3c00000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000040400000ULL, |
| 0x1820000000000000ULL, |
| 0x0000000018000000ULL, |
| 0x1000000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmpexch", TILEGX_OPC_CMPEXCH, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x280e000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmpexch4", TILEGX_OPC_CMPEXCH4, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x280c000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmples", TILEGX_OPC_CMPLES, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0x00000000780c0000ULL, |
| 0x3c06000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050200000ULL, |
| 0x2810000000000000ULL, |
| 0x0000000038000000ULL, |
| 0x2000000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmpleu", TILEGX_OPC_CMPLEU, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0x00000000780c0000ULL, |
| 0x3c06000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050240000ULL, |
| 0x2812000000000000ULL, |
| 0x0000000038040000ULL, |
| 0x2002000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmplts", TILEGX_OPC_CMPLTS, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0x00000000780c0000ULL, |
| 0x3c06000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050280000ULL, |
| 0x2814000000000000ULL, |
| 0x0000000038080000ULL, |
| 0x2004000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmpltsi", TILEGX_OPC_CMPLTSI, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 0 }, { 6, 7, 1 }, { 10, 11, 2 }, { 12, 13, 3 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ff00000ULL, |
| 0xfff8000000000000ULL, |
| 0x0000000078000000ULL, |
| 0x3c00000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000040500000ULL, |
| 0x1828000000000000ULL, |
| 0x0000000020000000ULL, |
| 0x1400000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmpltu", TILEGX_OPC_CMPLTU, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0x00000000780c0000ULL, |
| 0x3c06000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x00000000502c0000ULL, |
| 0x2816000000000000ULL, |
| 0x00000000380c0000ULL, |
| 0x2006000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmpltui", TILEGX_OPC_CMPLTUI, 0x3, 3, TREG_ZERO, 1, |
| { { 8, 9, 0 }, { 6, 7, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ff00000ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000040600000ULL, |
| 0x1830000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmpne", TILEGX_OPC_CMPNE, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0x00000000780c0000ULL, |
| 0x3c06000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050300000ULL, |
| 0x2818000000000000ULL, |
| 0x0000000040040000ULL, |
| 0x2406000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmul", TILEGX_OPC_CMUL, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x00000000504c0000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmula", TILEGX_OPC_CMULA, 0x1, 3, TREG_ZERO, 1, |
| { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050380000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmulaf", TILEGX_OPC_CMULAF, 0x1, 3, TREG_ZERO, 1, |
| { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050340000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmulf", TILEGX_OPC_CMULF, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050400000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmulfr", TILEGX_OPC_CMULFR, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x00000000503c0000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmulh", TILEGX_OPC_CMULH, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050480000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "cmulhr", TILEGX_OPC_CMULHR, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050440000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "crc32_32", TILEGX_OPC_CRC32_32, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050500000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "crc32_8", TILEGX_OPC_CRC32_8, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050540000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ctz", TILEGX_OPC_CTZ, 0x5, 2, TREG_ZERO, 1, |
| { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffff000ULL, |
| 0ULL, |
| 0x00000000780ff000ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000051482000ULL, |
| -1ULL, |
| 0x00000000300c2000ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "dblalign", TILEGX_OPC_DBLALIGN, 0x1, 3, TREG_ZERO, 1, |
| { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050640000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "dblalign2", TILEGX_OPC_DBLALIGN2, 0x3, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050580000ULL, |
| 0x281a000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "dblalign4", TILEGX_OPC_DBLALIGN4, 0x3, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x00000000505c0000ULL, |
| 0x281c000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "dblalign6", TILEGX_OPC_DBLALIGN6, 0x3, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050600000ULL, |
| 0x281e000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "drain", TILEGX_OPC_DRAIN, 0x2, 0, TREG_ZERO, 0, |
| { { 0, }, { }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a080000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "dtlbpr", TILEGX_OPC_DTLBPR, 0x2, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a100000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "exch", TILEGX_OPC_EXCH, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x2822000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "exch4", TILEGX_OPC_EXCH4, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x2820000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fdouble_add_flags", TILEGX_OPC_FDOUBLE_ADD_FLAGS, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x00000000506c0000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fdouble_addsub", TILEGX_OPC_FDOUBLE_ADDSUB, 0x1, 3, TREG_ZERO, 1, |
| { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050680000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fdouble_mul_flags", TILEGX_OPC_FDOUBLE_MUL_FLAGS, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050700000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fdouble_pack1", TILEGX_OPC_FDOUBLE_PACK1, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050740000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fdouble_pack2", TILEGX_OPC_FDOUBLE_PACK2, 0x1, 3, TREG_ZERO, 1, |
| { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050780000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fdouble_sub_flags", TILEGX_OPC_FDOUBLE_SUB_FLAGS, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x00000000507c0000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fdouble_unpack_max", TILEGX_OPC_FDOUBLE_UNPACK_MAX, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050800000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fdouble_unpack_min", TILEGX_OPC_FDOUBLE_UNPACK_MIN, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050840000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fetchadd", TILEGX_OPC_FETCHADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x282a000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fetchadd4", TILEGX_OPC_FETCHADD4, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x2824000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fetchaddgez", TILEGX_OPC_FETCHADDGEZ, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x2828000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fetchaddgez4", TILEGX_OPC_FETCHADDGEZ4, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x2826000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fetchand", TILEGX_OPC_FETCHAND, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x282e000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fetchand4", TILEGX_OPC_FETCHAND4, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x282c000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fetchor", TILEGX_OPC_FETCHOR, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x2832000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fetchor4", TILEGX_OPC_FETCHOR4, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 7, 17 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffe000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x2830000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "finv", TILEGX_OPC_FINV, 0x2, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a180000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "flush", TILEGX_OPC_FLUSH, 0x2, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a280000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "flushwb", TILEGX_OPC_FLUSHWB, 0x2, 0, TREG_ZERO, 1, |
| { { 0, }, { }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a200000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fnop", TILEGX_OPC_FNOP, 0xf, 0, TREG_ZERO, 1, |
| { { }, { }, { }, { }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffff000ULL, |
| 0xfffff80000000000ULL, |
| 0x00000000780ff000ULL, |
| 0x3c07f80000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000051483000ULL, |
| 0x286a300000000000ULL, |
| 0x00000000300c3000ULL, |
| 0x1c06400000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fsingle_add1", TILEGX_OPC_FSINGLE_ADD1, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050880000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fsingle_addsub2", TILEGX_OPC_FSINGLE_ADDSUB2, 0x1, 3, TREG_ZERO, 1, |
| { { 23, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x00000000508c0000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fsingle_mul1", TILEGX_OPC_FSINGLE_MUL1, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050900000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fsingle_mul2", TILEGX_OPC_FSINGLE_MUL2, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050940000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fsingle_pack1", TILEGX_OPC_FSINGLE_PACK1, 0x5, 2, TREG_ZERO, 1, |
| { { 8, 9 }, { 0, }, { 10, 11 }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffff000ULL, |
| 0ULL, |
| 0x00000000780ff000ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000051484000ULL, |
| -1ULL, |
| 0x00000000300c4000ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fsingle_pack2", TILEGX_OPC_FSINGLE_PACK2, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050980000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "fsingle_sub1", TILEGX_OPC_FSINGLE_SUB1, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x00000000509c0000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "icoh", TILEGX_OPC_ICOH, 0x2, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a380000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ill", TILEGX_OPC_ILL, 0xa, 0, TREG_ZERO, 1, |
| { { 0, }, { }, { 0, }, { }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0x3c07f80000000000ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a400000000000ULL, |
| -1ULL, |
| 0x1c06480000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "inv", TILEGX_OPC_INV, 0x2, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a480000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "iret", TILEGX_OPC_IRET, 0x2, 0, TREG_ZERO, 1, |
| { { 0, }, { }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a500000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "j", TILEGX_OPC_J, 0x2, 1, TREG_ZERO, 1, |
| { { 0, }, { 25 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfc00000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x2400000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "jal", TILEGX_OPC_JAL, 0x2, 1, TREG_LR, 1, |
| { { 0, }, { 25 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfc00000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x2000000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "jalr", TILEGX_OPC_JALR, 0xa, 1, TREG_LR, 1, |
| { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0x3c07f80000000000ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a600000000000ULL, |
| -1ULL, |
| 0x1c06580000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "jalrp", TILEGX_OPC_JALRP, 0xa, 1, TREG_LR, 1, |
| { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0x3c07f80000000000ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a580000000000ULL, |
| -1ULL, |
| 0x1c06500000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "jr", TILEGX_OPC_JR, 0xa, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0x3c07f80000000000ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a700000000000ULL, |
| -1ULL, |
| 0x1c06680000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "jrp", TILEGX_OPC_JRP, 0xa, 1, TREG_ZERO, 1, |
| { { 0, }, { 7 }, { 0, }, { 13 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0x3c07f80000000000ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286a680000000000ULL, |
| -1ULL, |
| 0x1c06600000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ld", TILEGX_OPC_LD, 0x12, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc200000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286ae80000000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x8200000004000000ULL |
| } |
| #endif |
| }, |
| { "ld1s", TILEGX_OPC_LD1S, 0x12, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc200000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a780000000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x4000000000000000ULL |
| } |
| #endif |
| }, |
| { "ld1s_add", TILEGX_OPC_LD1S_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1838000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ld1u", TILEGX_OPC_LD1U, 0x12, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc200000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a800000000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x4000000004000000ULL |
| } |
| #endif |
| }, |
| { "ld1u_add", TILEGX_OPC_LD1U_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1840000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ld2s", TILEGX_OPC_LD2S, 0x12, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc200000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a880000000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x4200000000000000ULL |
| } |
| #endif |
| }, |
| { "ld2s_add", TILEGX_OPC_LD2S_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1848000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ld2u", TILEGX_OPC_LD2U, 0x12, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc200000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a900000000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x4200000004000000ULL |
| } |
| #endif |
| }, |
| { "ld2u_add", TILEGX_OPC_LD2U_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1850000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ld4s", TILEGX_OPC_LD4S, 0x12, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc200000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286a980000000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x8000000004000000ULL |
| } |
| #endif |
| }, |
| { "ld4s_add", TILEGX_OPC_LD4S_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1858000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ld4u", TILEGX_OPC_LD4U, 0x12, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 26, 14 } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0xc200000004000000ULL |
| }, |
| { |
| -1ULL, |
| 0x286aa00000000000ULL, |
| -1ULL, |
| -1ULL, |
| 0x8200000000000000ULL |
| } |
| #endif |
| }, |
| { "ld4u_add", TILEGX_OPC_LD4U_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1860000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ld_add", TILEGX_OPC_LD_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x18a0000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldna", TILEGX_OPC_LDNA, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286aa80000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldna_add", TILEGX_OPC_LDNA_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x18a8000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt", TILEGX_OPC_LDNT, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286ae00000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt1s", TILEGX_OPC_LDNT1S, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286ab00000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt1s_add", TILEGX_OPC_LDNT1S_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1868000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt1u", TILEGX_OPC_LDNT1U, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286ab80000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt1u_add", TILEGX_OPC_LDNT1U_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1870000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt2s", TILEGX_OPC_LDNT2S, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286ac00000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt2s_add", TILEGX_OPC_LDNT2S_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1878000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt2u", TILEGX_OPC_LDNT2U, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286ac80000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt2u_add", TILEGX_OPC_LDNT2U_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1880000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt4s", TILEGX_OPC_LDNT4S, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286ad00000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt4s_add", TILEGX_OPC_LDNT4S_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1888000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt4u", TILEGX_OPC_LDNT4U, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286ad80000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt4u_add", TILEGX_OPC_LDNT4U_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1890000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "ldnt_add", TILEGX_OPC_LDNT_ADD, 0x2, 3, TREG_ZERO, 1, |
| { { 0, }, { 6, 15, 1 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x1898000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "lnk", TILEGX_OPC_LNK, 0xa, 1, TREG_ZERO, 1, |
| { { 0, }, { 6 }, { 0, }, { 12 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0x3c07f80000000000ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286af00000000000ULL, |
| -1ULL, |
| 0x1c06700000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "mf", TILEGX_OPC_MF, 0x2, 0, TREG_ZERO, 1, |
| { { 0, }, { }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfffff80000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x286af80000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "mfspr", TILEGX_OPC_MFSPR, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 6, 27 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x18b0000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "mm", TILEGX_OPC_MM, 0x1, 4, TREG_ZERO, 1, |
| { { 23, 9, 21, 22 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007f000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000037000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "mnz", TILEGX_OPC_MNZ, 0xf, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 6, 7, 17 }, { 10, 11, 18 }, { 12, 13, 19 }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0xfffe000000000000ULL, |
| 0x00000000780c0000ULL, |
| 0x3c06000000000000ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050a00000ULL, |
| 0x2834000000000000ULL, |
| 0x0000000048080000ULL, |
| 0x2804000000000000ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "mtspr", TILEGX_OPC_MTSPR, 0x2, 2, TREG_ZERO, 1, |
| { { 0, }, { 28, 7 }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0ULL, |
| 0xfff8000000000000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| -1ULL, |
| 0x18b8000000000000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "mul_hs_hs", TILEGX_OPC_MUL_HS_HS, 0x5, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 10, 11, 18 }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0x00000000780c0000ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050d40000ULL, |
| -1ULL, |
| 0x0000000068000000ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "mul_hs_hu", TILEGX_OPC_MUL_HS_HU, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL |
| }, |
| { |
| 0x0000000050d80000ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL, |
| -1ULL |
| } |
| #endif |
| }, |
| { "mul_hs_ls", TILEGX_OPC_MUL_HS_LS, 0x1, 3, TREG_ZERO, 1, |
| { { 8, 9, 16 }, { 0, }, { 0, }, { 0, }, { 0, } }, |
| #ifndef DISASM_ONLY |
| { |
| 0xc00000007ffc0000ULL, |
| 0ULL, |
| 0ULL, |
| 0ULL, |
|