18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later 28c2ecf20Sopenharmony_ci/* ppc-opc.c -- PowerPC opcode list 38c2ecf20Sopenharmony_ci Copyright (C) 1994-2016 Free Software Foundation, Inc. 48c2ecf20Sopenharmony_ci Written by Ian Lance Taylor, Cygnus Support 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci This file is part of GDB, GAS, and the GNU binutils. 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include <linux/stddef.h> 118c2ecf20Sopenharmony_ci#include <linux/kernel.h> 128c2ecf20Sopenharmony_ci#include <linux/bug.h> 138c2ecf20Sopenharmony_ci#include "nonstdio.h" 148c2ecf20Sopenharmony_ci#include "ppc.h" 158c2ecf20Sopenharmony_ci 168c2ecf20Sopenharmony_ci#define ATTRIBUTE_UNUSED 178c2ecf20Sopenharmony_ci#define _(x) x 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci/* This file holds the PowerPC opcode table. The opcode table 208c2ecf20Sopenharmony_ci includes almost all of the extended instruction mnemonics. This 218c2ecf20Sopenharmony_ci permits the disassembler to use them, and simplifies the assembler 228c2ecf20Sopenharmony_ci logic, at the cost of increasing the table size. The table is 238c2ecf20Sopenharmony_ci strictly constant data, so the compiler should be able to put it in 248c2ecf20Sopenharmony_ci the .text section. 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci This file also holds the operand table. All knowledge about 278c2ecf20Sopenharmony_ci inserting operands into instructions and vice-versa is kept in this 288c2ecf20Sopenharmony_ci file. */ 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci/* Local insertion and extraction functions. */ 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_cistatic unsigned long insert_arx (unsigned long, long, ppc_cpu_t, const char **); 338c2ecf20Sopenharmony_cistatic long extract_arx (unsigned long, ppc_cpu_t, int *); 348c2ecf20Sopenharmony_cistatic unsigned long insert_ary (unsigned long, long, ppc_cpu_t, const char **); 358c2ecf20Sopenharmony_cistatic long extract_ary (unsigned long, ppc_cpu_t, int *); 368c2ecf20Sopenharmony_cistatic unsigned long insert_bat (unsigned long, long, ppc_cpu_t, const char **); 378c2ecf20Sopenharmony_cistatic long extract_bat (unsigned long, ppc_cpu_t, int *); 388c2ecf20Sopenharmony_cistatic unsigned long insert_bba (unsigned long, long, ppc_cpu_t, const char **); 398c2ecf20Sopenharmony_cistatic long extract_bba (unsigned long, ppc_cpu_t, int *); 408c2ecf20Sopenharmony_cistatic unsigned long insert_bdm (unsigned long, long, ppc_cpu_t, const char **); 418c2ecf20Sopenharmony_cistatic long extract_bdm (unsigned long, ppc_cpu_t, int *); 428c2ecf20Sopenharmony_cistatic unsigned long insert_bdp (unsigned long, long, ppc_cpu_t, const char **); 438c2ecf20Sopenharmony_cistatic long extract_bdp (unsigned long, ppc_cpu_t, int *); 448c2ecf20Sopenharmony_cistatic unsigned long insert_bo (unsigned long, long, ppc_cpu_t, const char **); 458c2ecf20Sopenharmony_cistatic long extract_bo (unsigned long, ppc_cpu_t, int *); 468c2ecf20Sopenharmony_cistatic unsigned long insert_boe (unsigned long, long, ppc_cpu_t, const char **); 478c2ecf20Sopenharmony_cistatic long extract_boe (unsigned long, ppc_cpu_t, int *); 488c2ecf20Sopenharmony_cistatic unsigned long insert_esync (unsigned long, long, ppc_cpu_t, const char **); 498c2ecf20Sopenharmony_cistatic unsigned long insert_dcmxs (unsigned long, long, ppc_cpu_t, const char **); 508c2ecf20Sopenharmony_cistatic long extract_dcmxs (unsigned long, ppc_cpu_t, int *); 518c2ecf20Sopenharmony_cistatic unsigned long insert_dxd (unsigned long, long, ppc_cpu_t, const char **); 528c2ecf20Sopenharmony_cistatic long extract_dxd (unsigned long, ppc_cpu_t, int *); 538c2ecf20Sopenharmony_cistatic unsigned long insert_dxdn (unsigned long, long, ppc_cpu_t, const char **); 548c2ecf20Sopenharmony_cistatic long extract_dxdn (unsigned long, ppc_cpu_t, int *); 558c2ecf20Sopenharmony_cistatic unsigned long insert_fxm (unsigned long, long, ppc_cpu_t, const char **); 568c2ecf20Sopenharmony_cistatic long extract_fxm (unsigned long, ppc_cpu_t, int *); 578c2ecf20Sopenharmony_cistatic unsigned long insert_li20 (unsigned long, long, ppc_cpu_t, const char **); 588c2ecf20Sopenharmony_cistatic long extract_li20 (unsigned long, ppc_cpu_t, int *); 598c2ecf20Sopenharmony_cistatic unsigned long insert_ls (unsigned long, long, ppc_cpu_t, const char **); 608c2ecf20Sopenharmony_cistatic unsigned long insert_mbe (unsigned long, long, ppc_cpu_t, const char **); 618c2ecf20Sopenharmony_cistatic long extract_mbe (unsigned long, ppc_cpu_t, int *); 628c2ecf20Sopenharmony_cistatic unsigned long insert_mb6 (unsigned long, long, ppc_cpu_t, const char **); 638c2ecf20Sopenharmony_cistatic long extract_mb6 (unsigned long, ppc_cpu_t, int *); 648c2ecf20Sopenharmony_cistatic long extract_nb (unsigned long, ppc_cpu_t, int *); 658c2ecf20Sopenharmony_cistatic unsigned long insert_nbi (unsigned long, long, ppc_cpu_t, const char **); 668c2ecf20Sopenharmony_cistatic unsigned long insert_nsi (unsigned long, long, ppc_cpu_t, const char **); 678c2ecf20Sopenharmony_cistatic long extract_nsi (unsigned long, ppc_cpu_t, int *); 688c2ecf20Sopenharmony_cistatic unsigned long insert_oimm (unsigned long, long, ppc_cpu_t, const char **); 698c2ecf20Sopenharmony_cistatic long extract_oimm (unsigned long, ppc_cpu_t, int *); 708c2ecf20Sopenharmony_cistatic unsigned long insert_ral (unsigned long, long, ppc_cpu_t, const char **); 718c2ecf20Sopenharmony_cistatic unsigned long insert_ram (unsigned long, long, ppc_cpu_t, const char **); 728c2ecf20Sopenharmony_cistatic unsigned long insert_raq (unsigned long, long, ppc_cpu_t, const char **); 738c2ecf20Sopenharmony_cistatic unsigned long insert_ras (unsigned long, long, ppc_cpu_t, const char **); 748c2ecf20Sopenharmony_cistatic unsigned long insert_rbs (unsigned long, long, ppc_cpu_t, const char **); 758c2ecf20Sopenharmony_cistatic long extract_rbs (unsigned long, ppc_cpu_t, int *); 768c2ecf20Sopenharmony_cistatic unsigned long insert_rbx (unsigned long, long, ppc_cpu_t, const char **); 778c2ecf20Sopenharmony_cistatic unsigned long insert_rx (unsigned long, long, ppc_cpu_t, const char **); 788c2ecf20Sopenharmony_cistatic long extract_rx (unsigned long, ppc_cpu_t, int *); 798c2ecf20Sopenharmony_cistatic unsigned long insert_ry (unsigned long, long, ppc_cpu_t, const char **); 808c2ecf20Sopenharmony_cistatic long extract_ry (unsigned long, ppc_cpu_t, int *); 818c2ecf20Sopenharmony_cistatic unsigned long insert_sh6 (unsigned long, long, ppc_cpu_t, const char **); 828c2ecf20Sopenharmony_cistatic long extract_sh6 (unsigned long, ppc_cpu_t, int *); 838c2ecf20Sopenharmony_cistatic unsigned long insert_sci8 (unsigned long, long, ppc_cpu_t, const char **); 848c2ecf20Sopenharmony_cistatic long extract_sci8 (unsigned long, ppc_cpu_t, int *); 858c2ecf20Sopenharmony_cistatic unsigned long insert_sci8n (unsigned long, long, ppc_cpu_t, const char **); 868c2ecf20Sopenharmony_cistatic long extract_sci8n (unsigned long, ppc_cpu_t, int *); 878c2ecf20Sopenharmony_cistatic unsigned long insert_sd4h (unsigned long, long, ppc_cpu_t, const char **); 888c2ecf20Sopenharmony_cistatic long extract_sd4h (unsigned long, ppc_cpu_t, int *); 898c2ecf20Sopenharmony_cistatic unsigned long insert_sd4w (unsigned long, long, ppc_cpu_t, const char **); 908c2ecf20Sopenharmony_cistatic long extract_sd4w (unsigned long, ppc_cpu_t, int *); 918c2ecf20Sopenharmony_cistatic unsigned long insert_spr (unsigned long, long, ppc_cpu_t, const char **); 928c2ecf20Sopenharmony_cistatic long extract_spr (unsigned long, ppc_cpu_t, int *); 938c2ecf20Sopenharmony_cistatic unsigned long insert_sprg (unsigned long, long, ppc_cpu_t, const char **); 948c2ecf20Sopenharmony_cistatic long extract_sprg (unsigned long, ppc_cpu_t, int *); 958c2ecf20Sopenharmony_cistatic unsigned long insert_tbr (unsigned long, long, ppc_cpu_t, const char **); 968c2ecf20Sopenharmony_cistatic long extract_tbr (unsigned long, ppc_cpu_t, int *); 978c2ecf20Sopenharmony_cistatic unsigned long insert_xt6 (unsigned long, long, ppc_cpu_t, const char **); 988c2ecf20Sopenharmony_cistatic long extract_xt6 (unsigned long, ppc_cpu_t, int *); 998c2ecf20Sopenharmony_cistatic unsigned long insert_xtq6 (unsigned long, long, ppc_cpu_t, const char **); 1008c2ecf20Sopenharmony_cistatic long extract_xtq6 (unsigned long, ppc_cpu_t, int *); 1018c2ecf20Sopenharmony_cistatic unsigned long insert_xa6 (unsigned long, long, ppc_cpu_t, const char **); 1028c2ecf20Sopenharmony_cistatic long extract_xa6 (unsigned long, ppc_cpu_t, int *); 1038c2ecf20Sopenharmony_cistatic unsigned long insert_xb6 (unsigned long, long, ppc_cpu_t, const char **); 1048c2ecf20Sopenharmony_cistatic long extract_xb6 (unsigned long, ppc_cpu_t, int *); 1058c2ecf20Sopenharmony_cistatic unsigned long insert_xb6s (unsigned long, long, ppc_cpu_t, const char **); 1068c2ecf20Sopenharmony_cistatic long extract_xb6s (unsigned long, ppc_cpu_t, int *); 1078c2ecf20Sopenharmony_cistatic unsigned long insert_xc6 (unsigned long, long, ppc_cpu_t, const char **); 1088c2ecf20Sopenharmony_cistatic long extract_xc6 (unsigned long, ppc_cpu_t, int *); 1098c2ecf20Sopenharmony_cistatic unsigned long insert_dm (unsigned long, long, ppc_cpu_t, const char **); 1108c2ecf20Sopenharmony_cistatic long extract_dm (unsigned long, ppc_cpu_t, int *); 1118c2ecf20Sopenharmony_cistatic unsigned long insert_vlesi (unsigned long, long, ppc_cpu_t, const char **); 1128c2ecf20Sopenharmony_cistatic long extract_vlesi (unsigned long, ppc_cpu_t, int *); 1138c2ecf20Sopenharmony_cistatic unsigned long insert_vlensi (unsigned long, long, ppc_cpu_t, const char **); 1148c2ecf20Sopenharmony_cistatic long extract_vlensi (unsigned long, ppc_cpu_t, int *); 1158c2ecf20Sopenharmony_cistatic unsigned long insert_vleui (unsigned long, long, ppc_cpu_t, const char **); 1168c2ecf20Sopenharmony_cistatic long extract_vleui (unsigned long, ppc_cpu_t, int *); 1178c2ecf20Sopenharmony_cistatic unsigned long insert_vleil (unsigned long, long, ppc_cpu_t, const char **); 1188c2ecf20Sopenharmony_cistatic long extract_vleil (unsigned long, ppc_cpu_t, int *); 1198c2ecf20Sopenharmony_ci 1208c2ecf20Sopenharmony_ci/* The operands table. 1218c2ecf20Sopenharmony_ci 1228c2ecf20Sopenharmony_ci The fields are bitm, shift, insert, extract, flags. 1238c2ecf20Sopenharmony_ci 1248c2ecf20Sopenharmony_ci We used to put parens around the various additions, like the one 1258c2ecf20Sopenharmony_ci for BA just below. However, that caused trouble with feeble 1268c2ecf20Sopenharmony_ci compilers with a limit on depth of a parenthesized expression, like 1278c2ecf20Sopenharmony_ci (reportedly) the compiler in Microsoft Developer Studio 5. So we 1288c2ecf20Sopenharmony_ci omit the parens, since the macros are never used in a context where 1298c2ecf20Sopenharmony_ci the addition will be ambiguous. */ 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ciconst struct powerpc_operand powerpc_operands[] = 1328c2ecf20Sopenharmony_ci{ 1338c2ecf20Sopenharmony_ci /* The zero index is used to indicate the end of the list of 1348c2ecf20Sopenharmony_ci operands. */ 1358c2ecf20Sopenharmony_ci#define UNUSED 0 1368c2ecf20Sopenharmony_ci { 0, 0, NULL, NULL, 0 }, 1378c2ecf20Sopenharmony_ci 1388c2ecf20Sopenharmony_ci /* The BA field in an XL form instruction. */ 1398c2ecf20Sopenharmony_ci#define BA UNUSED + 1 1408c2ecf20Sopenharmony_ci /* The BI field in a B form or XL form instruction. */ 1418c2ecf20Sopenharmony_ci#define BI BA 1428c2ecf20Sopenharmony_ci#define BI_MASK (0x1f << 16) 1438c2ecf20Sopenharmony_ci { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR_BIT }, 1448c2ecf20Sopenharmony_ci 1458c2ecf20Sopenharmony_ci /* The BA field in an XL form instruction when it must be the same 1468c2ecf20Sopenharmony_ci as the BT field in the same instruction. */ 1478c2ecf20Sopenharmony_ci#define BAT BA + 1 1488c2ecf20Sopenharmony_ci { 0x1f, 16, insert_bat, extract_bat, PPC_OPERAND_FAKE }, 1498c2ecf20Sopenharmony_ci 1508c2ecf20Sopenharmony_ci /* The BB field in an XL form instruction. */ 1518c2ecf20Sopenharmony_ci#define BB BAT + 1 1528c2ecf20Sopenharmony_ci#define BB_MASK (0x1f << 11) 1538c2ecf20Sopenharmony_ci { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR_BIT }, 1548c2ecf20Sopenharmony_ci 1558c2ecf20Sopenharmony_ci /* The BB field in an XL form instruction when it must be the same 1568c2ecf20Sopenharmony_ci as the BA field in the same instruction. */ 1578c2ecf20Sopenharmony_ci#define BBA BB + 1 1588c2ecf20Sopenharmony_ci /* The VB field in a VX form instruction when it must be the same 1598c2ecf20Sopenharmony_ci as the VA field in the same instruction. */ 1608c2ecf20Sopenharmony_ci#define VBA BBA 1618c2ecf20Sopenharmony_ci { 0x1f, 11, insert_bba, extract_bba, PPC_OPERAND_FAKE }, 1628c2ecf20Sopenharmony_ci 1638c2ecf20Sopenharmony_ci /* The BD field in a B form instruction. The lower two bits are 1648c2ecf20Sopenharmony_ci forced to zero. */ 1658c2ecf20Sopenharmony_ci#define BD BBA + 1 1668c2ecf20Sopenharmony_ci { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ci /* The BD field in a B form instruction when absolute addressing is 1698c2ecf20Sopenharmony_ci used. */ 1708c2ecf20Sopenharmony_ci#define BDA BD + 1 1718c2ecf20Sopenharmony_ci { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 1728c2ecf20Sopenharmony_ci 1738c2ecf20Sopenharmony_ci /* The BD field in a B form instruction when the - modifier is used. 1748c2ecf20Sopenharmony_ci This sets the y bit of the BO field appropriately. */ 1758c2ecf20Sopenharmony_ci#define BDM BDA + 1 1768c2ecf20Sopenharmony_ci { 0xfffc, 0, insert_bdm, extract_bdm, 1778c2ecf20Sopenharmony_ci PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 1788c2ecf20Sopenharmony_ci 1798c2ecf20Sopenharmony_ci /* The BD field in a B form instruction when the - modifier is used 1808c2ecf20Sopenharmony_ci and absolute address is used. */ 1818c2ecf20Sopenharmony_ci#define BDMA BDM + 1 1828c2ecf20Sopenharmony_ci { 0xfffc, 0, insert_bdm, extract_bdm, 1838c2ecf20Sopenharmony_ci PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 1848c2ecf20Sopenharmony_ci 1858c2ecf20Sopenharmony_ci /* The BD field in a B form instruction when the + modifier is used. 1868c2ecf20Sopenharmony_ci This sets the y bit of the BO field appropriately. */ 1878c2ecf20Sopenharmony_ci#define BDP BDMA + 1 1888c2ecf20Sopenharmony_ci { 0xfffc, 0, insert_bdp, extract_bdp, 1898c2ecf20Sopenharmony_ci PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 1908c2ecf20Sopenharmony_ci 1918c2ecf20Sopenharmony_ci /* The BD field in a B form instruction when the + modifier is used 1928c2ecf20Sopenharmony_ci and absolute addressing is used. */ 1938c2ecf20Sopenharmony_ci#define BDPA BDP + 1 1948c2ecf20Sopenharmony_ci { 0xfffc, 0, insert_bdp, extract_bdp, 1958c2ecf20Sopenharmony_ci PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 1968c2ecf20Sopenharmony_ci 1978c2ecf20Sopenharmony_ci /* The BF field in an X or XL form instruction. */ 1988c2ecf20Sopenharmony_ci#define BF BDPA + 1 1998c2ecf20Sopenharmony_ci /* The CRFD field in an X form instruction. */ 2008c2ecf20Sopenharmony_ci#define CRFD BF 2018c2ecf20Sopenharmony_ci /* The CRD field in an XL form instruction. */ 2028c2ecf20Sopenharmony_ci#define CRD BF 2038c2ecf20Sopenharmony_ci { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG }, 2048c2ecf20Sopenharmony_ci 2058c2ecf20Sopenharmony_ci /* The BF field in an X or XL form instruction. */ 2068c2ecf20Sopenharmony_ci#define BFF BF + 1 2078c2ecf20Sopenharmony_ci { 0x7, 23, NULL, NULL, 0 }, 2088c2ecf20Sopenharmony_ci 2098c2ecf20Sopenharmony_ci /* An optional BF field. This is used for comparison instructions, 2108c2ecf20Sopenharmony_ci in which an omitted BF field is taken as zero. */ 2118c2ecf20Sopenharmony_ci#define OBF BFF + 1 2128c2ecf20Sopenharmony_ci { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL }, 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci /* The BFA field in an X or XL form instruction. */ 2158c2ecf20Sopenharmony_ci#define BFA OBF + 1 2168c2ecf20Sopenharmony_ci { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG }, 2178c2ecf20Sopenharmony_ci 2188c2ecf20Sopenharmony_ci /* The BO field in a B form instruction. Certain values are 2198c2ecf20Sopenharmony_ci illegal. */ 2208c2ecf20Sopenharmony_ci#define BO BFA + 1 2218c2ecf20Sopenharmony_ci#define BO_MASK (0x1f << 21) 2228c2ecf20Sopenharmony_ci { 0x1f, 21, insert_bo, extract_bo, 0 }, 2238c2ecf20Sopenharmony_ci 2248c2ecf20Sopenharmony_ci /* The BO field in a B form instruction when the + or - modifier is 2258c2ecf20Sopenharmony_ci used. This is like the BO field, but it must be even. */ 2268c2ecf20Sopenharmony_ci#define BOE BO + 1 2278c2ecf20Sopenharmony_ci { 0x1e, 21, insert_boe, extract_boe, 0 }, 2288c2ecf20Sopenharmony_ci 2298c2ecf20Sopenharmony_ci /* The RM field in an X form instruction. */ 2308c2ecf20Sopenharmony_ci#define RM BOE + 1 2318c2ecf20Sopenharmony_ci { 0x3, 11, NULL, NULL, 0 }, 2328c2ecf20Sopenharmony_ci 2338c2ecf20Sopenharmony_ci#define BH RM + 1 2348c2ecf20Sopenharmony_ci { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2358c2ecf20Sopenharmony_ci 2368c2ecf20Sopenharmony_ci /* The BT field in an X or XL form instruction. */ 2378c2ecf20Sopenharmony_ci#define BT BH + 1 2388c2ecf20Sopenharmony_ci { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT }, 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_ci /* The BI16 field in a BD8 form instruction. */ 2418c2ecf20Sopenharmony_ci#define BI16 BT + 1 2428c2ecf20Sopenharmony_ci { 0x3, 8, NULL, NULL, PPC_OPERAND_CR_BIT }, 2438c2ecf20Sopenharmony_ci 2448c2ecf20Sopenharmony_ci /* The BI32 field in a BD15 form instruction. */ 2458c2ecf20Sopenharmony_ci#define BI32 BI16 + 1 2468c2ecf20Sopenharmony_ci { 0xf, 16, NULL, NULL, PPC_OPERAND_CR_BIT }, 2478c2ecf20Sopenharmony_ci 2488c2ecf20Sopenharmony_ci /* The BO32 field in a BD15 form instruction. */ 2498c2ecf20Sopenharmony_ci#define BO32 BI32 + 1 2508c2ecf20Sopenharmony_ci { 0x3, 20, NULL, NULL, 0 }, 2518c2ecf20Sopenharmony_ci 2528c2ecf20Sopenharmony_ci /* The B8 field in a BD8 form instruction. */ 2538c2ecf20Sopenharmony_ci#define B8 BO32 + 1 2548c2ecf20Sopenharmony_ci { 0x1fe, -1, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 2558c2ecf20Sopenharmony_ci 2568c2ecf20Sopenharmony_ci /* The B15 field in a BD15 form instruction. The lowest bit is 2578c2ecf20Sopenharmony_ci forced to zero. */ 2588c2ecf20Sopenharmony_ci#define B15 B8 + 1 2598c2ecf20Sopenharmony_ci { 0xfffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci /* The B24 field in a BD24 form instruction. The lowest bit is 2628c2ecf20Sopenharmony_ci forced to zero. */ 2638c2ecf20Sopenharmony_ci#define B24 B15 + 1 2648c2ecf20Sopenharmony_ci { 0x1fffffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 2658c2ecf20Sopenharmony_ci 2668c2ecf20Sopenharmony_ci /* The condition register number portion of the BI field in a B form 2678c2ecf20Sopenharmony_ci or XL form instruction. This is used for the extended 2688c2ecf20Sopenharmony_ci conditional branch mnemonics, which set the lower two bits of the 2698c2ecf20Sopenharmony_ci BI field. This field is optional. */ 2708c2ecf20Sopenharmony_ci#define CR B24 + 1 2718c2ecf20Sopenharmony_ci { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL }, 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci /* The CRB field in an X form instruction. */ 2748c2ecf20Sopenharmony_ci#define CRB CR + 1 2758c2ecf20Sopenharmony_ci /* The MB field in an M form instruction. */ 2768c2ecf20Sopenharmony_ci#define MB CRB 2778c2ecf20Sopenharmony_ci#define MB_MASK (0x1f << 6) 2788c2ecf20Sopenharmony_ci { 0x1f, 6, NULL, NULL, 0 }, 2798c2ecf20Sopenharmony_ci 2808c2ecf20Sopenharmony_ci /* The CRD32 field in an XL form instruction. */ 2818c2ecf20Sopenharmony_ci#define CRD32 CRB + 1 2828c2ecf20Sopenharmony_ci { 0x3, 21, NULL, NULL, PPC_OPERAND_CR_REG }, 2838c2ecf20Sopenharmony_ci 2848c2ecf20Sopenharmony_ci /* The CRFS field in an X form instruction. */ 2858c2ecf20Sopenharmony_ci#define CRFS CRD32 + 1 2868c2ecf20Sopenharmony_ci { 0x7, 0, NULL, NULL, PPC_OPERAND_CR_REG }, 2878c2ecf20Sopenharmony_ci 2888c2ecf20Sopenharmony_ci#define CRS CRFS + 1 2898c2ecf20Sopenharmony_ci { 0x3, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL }, 2908c2ecf20Sopenharmony_ci 2918c2ecf20Sopenharmony_ci /* The CT field in an X form instruction. */ 2928c2ecf20Sopenharmony_ci#define CT CRS + 1 2938c2ecf20Sopenharmony_ci /* The MO field in an mbar instruction. */ 2948c2ecf20Sopenharmony_ci#define MO CT 2958c2ecf20Sopenharmony_ci { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 2968c2ecf20Sopenharmony_ci 2978c2ecf20Sopenharmony_ci /* The D field in a D form instruction. This is a displacement off 2988c2ecf20Sopenharmony_ci a register, and implies that the next operand is a register in 2998c2ecf20Sopenharmony_ci parentheses. */ 3008c2ecf20Sopenharmony_ci#define D CT + 1 3018c2ecf20Sopenharmony_ci { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, 3028c2ecf20Sopenharmony_ci 3038c2ecf20Sopenharmony_ci /* The D8 field in a D form instruction. This is a displacement off 3048c2ecf20Sopenharmony_ci a register, and implies that the next operand is a register in 3058c2ecf20Sopenharmony_ci parentheses. */ 3068c2ecf20Sopenharmony_ci#define D8 D + 1 3078c2ecf20Sopenharmony_ci { 0xff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, 3088c2ecf20Sopenharmony_ci 3098c2ecf20Sopenharmony_ci /* The DCMX field in an X form instruction. */ 3108c2ecf20Sopenharmony_ci#define DCMX D8 + 1 3118c2ecf20Sopenharmony_ci { 0x7f, 16, NULL, NULL, 0 }, 3128c2ecf20Sopenharmony_ci 3138c2ecf20Sopenharmony_ci /* The split DCMX field in an X form instruction. */ 3148c2ecf20Sopenharmony_ci#define DCMXS DCMX + 1 3158c2ecf20Sopenharmony_ci { 0x7f, PPC_OPSHIFT_INV, insert_dcmxs, extract_dcmxs, 0 }, 3168c2ecf20Sopenharmony_ci 3178c2ecf20Sopenharmony_ci /* The DQ field in a DQ form instruction. This is like D, but the 3188c2ecf20Sopenharmony_ci lower four bits are forced to zero. */ 3198c2ecf20Sopenharmony_ci#define DQ DCMXS + 1 3208c2ecf20Sopenharmony_ci { 0xfff0, 0, NULL, NULL, 3218c2ecf20Sopenharmony_ci PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ }, 3228c2ecf20Sopenharmony_ci 3238c2ecf20Sopenharmony_ci /* The DS field in a DS form instruction. This is like D, but the 3248c2ecf20Sopenharmony_ci lower two bits are forced to zero. */ 3258c2ecf20Sopenharmony_ci#define DS DQ + 1 3268c2ecf20Sopenharmony_ci { 0xfffc, 0, NULL, NULL, 3278c2ecf20Sopenharmony_ci PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS }, 3288c2ecf20Sopenharmony_ci 3298c2ecf20Sopenharmony_ci /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits 3308c2ecf20Sopenharmony_ci unsigned imediate */ 3318c2ecf20Sopenharmony_ci#define DUIS DS + 1 3328c2ecf20Sopenharmony_ci#define BHRBE DUIS 3338c2ecf20Sopenharmony_ci { 0x3ff, 11, NULL, NULL, 0 }, 3348c2ecf20Sopenharmony_ci 3358c2ecf20Sopenharmony_ci /* The split D field in a DX form instruction. */ 3368c2ecf20Sopenharmony_ci#define DXD DUIS + 1 3378c2ecf20Sopenharmony_ci { 0xffff, PPC_OPSHIFT_INV, insert_dxd, extract_dxd, 3388c2ecf20Sopenharmony_ci PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT}, 3398c2ecf20Sopenharmony_ci 3408c2ecf20Sopenharmony_ci /* The split ND field in a DX form instruction. 3418c2ecf20Sopenharmony_ci This is the same as the DX field, only negated. */ 3428c2ecf20Sopenharmony_ci#define NDXD DXD + 1 3438c2ecf20Sopenharmony_ci { 0xffff, PPC_OPSHIFT_INV, insert_dxdn, extract_dxdn, 3448c2ecf20Sopenharmony_ci PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT}, 3458c2ecf20Sopenharmony_ci 3468c2ecf20Sopenharmony_ci /* The E field in a wrteei instruction. */ 3478c2ecf20Sopenharmony_ci /* And the W bit in the pair singles instructions. */ 3488c2ecf20Sopenharmony_ci /* And the ST field in a VX form instruction. */ 3498c2ecf20Sopenharmony_ci#define E NDXD + 1 3508c2ecf20Sopenharmony_ci#define PSW E 3518c2ecf20Sopenharmony_ci#define ST E 3528c2ecf20Sopenharmony_ci { 0x1, 15, NULL, NULL, 0 }, 3538c2ecf20Sopenharmony_ci 3548c2ecf20Sopenharmony_ci /* The FL1 field in a POWER SC form instruction. */ 3558c2ecf20Sopenharmony_ci#define FL1 E + 1 3568c2ecf20Sopenharmony_ci /* The U field in an X form instruction. */ 3578c2ecf20Sopenharmony_ci#define U FL1 3588c2ecf20Sopenharmony_ci { 0xf, 12, NULL, NULL, 0 }, 3598c2ecf20Sopenharmony_ci 3608c2ecf20Sopenharmony_ci /* The FL2 field in a POWER SC form instruction. */ 3618c2ecf20Sopenharmony_ci#define FL2 FL1 + 1 3628c2ecf20Sopenharmony_ci { 0x7, 2, NULL, NULL, 0 }, 3638c2ecf20Sopenharmony_ci 3648c2ecf20Sopenharmony_ci /* The FLM field in an XFL form instruction. */ 3658c2ecf20Sopenharmony_ci#define FLM FL2 + 1 3668c2ecf20Sopenharmony_ci { 0xff, 17, NULL, NULL, 0 }, 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_ci /* The FRA field in an X or A form instruction. */ 3698c2ecf20Sopenharmony_ci#define FRA FLM + 1 3708c2ecf20Sopenharmony_ci#define FRA_MASK (0x1f << 16) 3718c2ecf20Sopenharmony_ci { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR }, 3728c2ecf20Sopenharmony_ci 3738c2ecf20Sopenharmony_ci /* The FRAp field of DFP instructions. */ 3748c2ecf20Sopenharmony_ci#define FRAp FRA + 1 3758c2ecf20Sopenharmony_ci { 0x1e, 16, NULL, NULL, PPC_OPERAND_FPR }, 3768c2ecf20Sopenharmony_ci 3778c2ecf20Sopenharmony_ci /* The FRB field in an X or A form instruction. */ 3788c2ecf20Sopenharmony_ci#define FRB FRAp + 1 3798c2ecf20Sopenharmony_ci#define FRB_MASK (0x1f << 11) 3808c2ecf20Sopenharmony_ci { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR }, 3818c2ecf20Sopenharmony_ci 3828c2ecf20Sopenharmony_ci /* The FRBp field of DFP instructions. */ 3838c2ecf20Sopenharmony_ci#define FRBp FRB + 1 3848c2ecf20Sopenharmony_ci { 0x1e, 11, NULL, NULL, PPC_OPERAND_FPR }, 3858c2ecf20Sopenharmony_ci 3868c2ecf20Sopenharmony_ci /* The FRC field in an A form instruction. */ 3878c2ecf20Sopenharmony_ci#define FRC FRBp + 1 3888c2ecf20Sopenharmony_ci#define FRC_MASK (0x1f << 6) 3898c2ecf20Sopenharmony_ci { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR }, 3908c2ecf20Sopenharmony_ci 3918c2ecf20Sopenharmony_ci /* The FRS field in an X form instruction or the FRT field in a D, X 3928c2ecf20Sopenharmony_ci or A form instruction. */ 3938c2ecf20Sopenharmony_ci#define FRS FRC + 1 3948c2ecf20Sopenharmony_ci#define FRT FRS 3958c2ecf20Sopenharmony_ci { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR }, 3968c2ecf20Sopenharmony_ci 3978c2ecf20Sopenharmony_ci /* The FRSp field of stfdp or the FRTp field of lfdp and DFP 3988c2ecf20Sopenharmony_ci instructions. */ 3998c2ecf20Sopenharmony_ci#define FRSp FRS + 1 4008c2ecf20Sopenharmony_ci#define FRTp FRSp 4018c2ecf20Sopenharmony_ci { 0x1e, 21, NULL, NULL, PPC_OPERAND_FPR }, 4028c2ecf20Sopenharmony_ci 4038c2ecf20Sopenharmony_ci /* The FXM field in an XFX instruction. */ 4048c2ecf20Sopenharmony_ci#define FXM FRSp + 1 4058c2ecf20Sopenharmony_ci { 0xff, 12, insert_fxm, extract_fxm, 0 }, 4068c2ecf20Sopenharmony_ci 4078c2ecf20Sopenharmony_ci /* Power4 version for mfcr. */ 4088c2ecf20Sopenharmony_ci#define FXM4 FXM + 1 4098c2ecf20Sopenharmony_ci { 0xff, 12, insert_fxm, extract_fxm, 4108c2ecf20Sopenharmony_ci PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL_VALUE}, 4118c2ecf20Sopenharmony_ci /* If the FXM4 operand is ommitted, use the sentinel value -1. */ 4128c2ecf20Sopenharmony_ci { -1, -1, NULL, NULL, 0}, 4138c2ecf20Sopenharmony_ci 4148c2ecf20Sopenharmony_ci /* The IMM20 field in an LI instruction. */ 4158c2ecf20Sopenharmony_ci#define IMM20 FXM4 + 2 4168c2ecf20Sopenharmony_ci { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED}, 4178c2ecf20Sopenharmony_ci 4188c2ecf20Sopenharmony_ci /* The L field in a D or X form instruction. */ 4198c2ecf20Sopenharmony_ci#define L IMM20 + 1 4208c2ecf20Sopenharmony_ci { 0x1, 21, NULL, NULL, 0 }, 4218c2ecf20Sopenharmony_ci 4228c2ecf20Sopenharmony_ci /* The optional L field in tlbie and tlbiel instructions. */ 4238c2ecf20Sopenharmony_ci#define LOPT L + 1 4248c2ecf20Sopenharmony_ci /* The R field in a HTM X form instruction. */ 4258c2ecf20Sopenharmony_ci#define HTM_R LOPT 4268c2ecf20Sopenharmony_ci { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 4278c2ecf20Sopenharmony_ci 4288c2ecf20Sopenharmony_ci /* The optional (for 32-bit) L field in cmp[l][i] instructions. */ 4298c2ecf20Sopenharmony_ci#define L32OPT LOPT + 1 4308c2ecf20Sopenharmony_ci { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL32 }, 4318c2ecf20Sopenharmony_ci 4328c2ecf20Sopenharmony_ci /* The L field in dcbf instruction. */ 4338c2ecf20Sopenharmony_ci#define L2OPT L32OPT + 1 4348c2ecf20Sopenharmony_ci { 0x3, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 4358c2ecf20Sopenharmony_ci 4368c2ecf20Sopenharmony_ci /* The LEV field in a POWER SVC form instruction. */ 4378c2ecf20Sopenharmony_ci#define SVC_LEV L2OPT + 1 4388c2ecf20Sopenharmony_ci { 0x7f, 5, NULL, NULL, 0 }, 4398c2ecf20Sopenharmony_ci 4408c2ecf20Sopenharmony_ci /* The LEV field in an SC form instruction. */ 4418c2ecf20Sopenharmony_ci#define LEV SVC_LEV + 1 4428c2ecf20Sopenharmony_ci { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL }, 4438c2ecf20Sopenharmony_ci 4448c2ecf20Sopenharmony_ci /* The LI field in an I form instruction. The lower two bits are 4458c2ecf20Sopenharmony_ci forced to zero. */ 4468c2ecf20Sopenharmony_ci#define LI LEV + 1 4478c2ecf20Sopenharmony_ci { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 4488c2ecf20Sopenharmony_ci 4498c2ecf20Sopenharmony_ci /* The LI field in an I form instruction when used as an absolute 4508c2ecf20Sopenharmony_ci address. */ 4518c2ecf20Sopenharmony_ci#define LIA LI + 1 4528c2ecf20Sopenharmony_ci { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 4538c2ecf20Sopenharmony_ci 4548c2ecf20Sopenharmony_ci /* The LS or WC field in an X (sync or wait) form instruction. */ 4558c2ecf20Sopenharmony_ci#define LS LIA + 1 4568c2ecf20Sopenharmony_ci#define WC LS 4578c2ecf20Sopenharmony_ci { 0x3, 21, insert_ls, NULL, PPC_OPERAND_OPTIONAL }, 4588c2ecf20Sopenharmony_ci 4598c2ecf20Sopenharmony_ci /* The ME field in an M form instruction. */ 4608c2ecf20Sopenharmony_ci#define ME LS + 1 4618c2ecf20Sopenharmony_ci#define ME_MASK (0x1f << 1) 4628c2ecf20Sopenharmony_ci { 0x1f, 1, NULL, NULL, 0 }, 4638c2ecf20Sopenharmony_ci 4648c2ecf20Sopenharmony_ci /* The MB and ME fields in an M form instruction expressed a single 4658c2ecf20Sopenharmony_ci operand which is a bitmask indicating which bits to select. This 4668c2ecf20Sopenharmony_ci is a two operand form using PPC_OPERAND_NEXT. See the 4678c2ecf20Sopenharmony_ci description in opcode/ppc.h for what this means. */ 4688c2ecf20Sopenharmony_ci#define MBE ME + 1 4698c2ecf20Sopenharmony_ci { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT }, 4708c2ecf20Sopenharmony_ci { -1, 0, insert_mbe, extract_mbe, 0 }, 4718c2ecf20Sopenharmony_ci 4728c2ecf20Sopenharmony_ci /* The MB or ME field in an MD or MDS form instruction. The high 4738c2ecf20Sopenharmony_ci bit is wrapped to the low end. */ 4748c2ecf20Sopenharmony_ci#define MB6 MBE + 2 4758c2ecf20Sopenharmony_ci#define ME6 MB6 4768c2ecf20Sopenharmony_ci#define MB6_MASK (0x3f << 5) 4778c2ecf20Sopenharmony_ci { 0x3f, 5, insert_mb6, extract_mb6, 0 }, 4788c2ecf20Sopenharmony_ci 4798c2ecf20Sopenharmony_ci /* The NB field in an X form instruction. The value 32 is stored as 4808c2ecf20Sopenharmony_ci 0. */ 4818c2ecf20Sopenharmony_ci#define NB MB6 + 1 4828c2ecf20Sopenharmony_ci { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 }, 4838c2ecf20Sopenharmony_ci 4848c2ecf20Sopenharmony_ci /* The NBI field in an lswi instruction, which has special value 4858c2ecf20Sopenharmony_ci restrictions. The value 32 is stored as 0. */ 4868c2ecf20Sopenharmony_ci#define NBI NB + 1 4878c2ecf20Sopenharmony_ci { 0x1f, 11, insert_nbi, extract_nb, PPC_OPERAND_PLUS1 }, 4888c2ecf20Sopenharmony_ci 4898c2ecf20Sopenharmony_ci /* The NSI field in a D form instruction. This is the same as the 4908c2ecf20Sopenharmony_ci SI field, only negated. */ 4918c2ecf20Sopenharmony_ci#define NSI NBI + 1 4928c2ecf20Sopenharmony_ci { 0xffff, 0, insert_nsi, extract_nsi, 4938c2ecf20Sopenharmony_ci PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED }, 4948c2ecf20Sopenharmony_ci 4958c2ecf20Sopenharmony_ci /* The NSI field in a D form instruction when we accept a wide range 4968c2ecf20Sopenharmony_ci of positive values. */ 4978c2ecf20Sopenharmony_ci#define NSISIGNOPT NSI + 1 4988c2ecf20Sopenharmony_ci { 0xffff, 0, insert_nsi, extract_nsi, 4998c2ecf20Sopenharmony_ci PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, 5008c2ecf20Sopenharmony_ci 5018c2ecf20Sopenharmony_ci /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */ 5028c2ecf20Sopenharmony_ci#define RA NSISIGNOPT + 1 5038c2ecf20Sopenharmony_ci#define RA_MASK (0x1f << 16) 5048c2ecf20Sopenharmony_ci { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR }, 5058c2ecf20Sopenharmony_ci 5068c2ecf20Sopenharmony_ci /* As above, but 0 in the RA field means zero, not r0. */ 5078c2ecf20Sopenharmony_ci#define RA0 RA + 1 5088c2ecf20Sopenharmony_ci { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 }, 5098c2ecf20Sopenharmony_ci 5108c2ecf20Sopenharmony_ci /* The RA field in the DQ form lq or an lswx instruction, which have special 5118c2ecf20Sopenharmony_ci value restrictions. */ 5128c2ecf20Sopenharmony_ci#define RAQ RA0 + 1 5138c2ecf20Sopenharmony_ci#define RAX RAQ 5148c2ecf20Sopenharmony_ci { 0x1f, 16, insert_raq, NULL, PPC_OPERAND_GPR_0 }, 5158c2ecf20Sopenharmony_ci 5168c2ecf20Sopenharmony_ci /* The RA field in a D or X form instruction which is an updating 5178c2ecf20Sopenharmony_ci load, which means that the RA field may not be zero and may not 5188c2ecf20Sopenharmony_ci equal the RT field. */ 5198c2ecf20Sopenharmony_ci#define RAL RAQ + 1 5208c2ecf20Sopenharmony_ci { 0x1f, 16, insert_ral, NULL, PPC_OPERAND_GPR_0 }, 5218c2ecf20Sopenharmony_ci 5228c2ecf20Sopenharmony_ci /* The RA field in an lmw instruction, which has special value 5238c2ecf20Sopenharmony_ci restrictions. */ 5248c2ecf20Sopenharmony_ci#define RAM RAL + 1 5258c2ecf20Sopenharmony_ci { 0x1f, 16, insert_ram, NULL, PPC_OPERAND_GPR_0 }, 5268c2ecf20Sopenharmony_ci 5278c2ecf20Sopenharmony_ci /* The RA field in a D or X form instruction which is an updating 5288c2ecf20Sopenharmony_ci store or an updating floating point load, which means that the RA 5298c2ecf20Sopenharmony_ci field may not be zero. */ 5308c2ecf20Sopenharmony_ci#define RAS RAM + 1 5318c2ecf20Sopenharmony_ci { 0x1f, 16, insert_ras, NULL, PPC_OPERAND_GPR_0 }, 5328c2ecf20Sopenharmony_ci 5338c2ecf20Sopenharmony_ci /* The RA field of the tlbwe, dccci and iccci instructions, 5348c2ecf20Sopenharmony_ci which are optional. */ 5358c2ecf20Sopenharmony_ci#define RAOPT RAS + 1 5368c2ecf20Sopenharmony_ci { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL }, 5378c2ecf20Sopenharmony_ci 5388c2ecf20Sopenharmony_ci /* The RB field in an X, XO, M, or MDS form instruction. */ 5398c2ecf20Sopenharmony_ci#define RB RAOPT + 1 5408c2ecf20Sopenharmony_ci#define RB_MASK (0x1f << 11) 5418c2ecf20Sopenharmony_ci { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR }, 5428c2ecf20Sopenharmony_ci 5438c2ecf20Sopenharmony_ci /* The RB field in an X form instruction when it must be the same as 5448c2ecf20Sopenharmony_ci the RS field in the instruction. This is used for extended 5458c2ecf20Sopenharmony_ci mnemonics like mr. */ 5468c2ecf20Sopenharmony_ci#define RBS RB + 1 5478c2ecf20Sopenharmony_ci { 0x1f, 11, insert_rbs, extract_rbs, PPC_OPERAND_FAKE }, 5488c2ecf20Sopenharmony_ci 5498c2ecf20Sopenharmony_ci /* The RB field in an lswx instruction, which has special value 5508c2ecf20Sopenharmony_ci restrictions. */ 5518c2ecf20Sopenharmony_ci#define RBX RBS + 1 5528c2ecf20Sopenharmony_ci { 0x1f, 11, insert_rbx, NULL, PPC_OPERAND_GPR }, 5538c2ecf20Sopenharmony_ci 5548c2ecf20Sopenharmony_ci /* The RB field of the dccci and iccci instructions, which are optional. */ 5558c2ecf20Sopenharmony_ci#define RBOPT RBX + 1 5568c2ecf20Sopenharmony_ci { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL }, 5578c2ecf20Sopenharmony_ci 5588c2ecf20Sopenharmony_ci /* The RC register field in an maddld, maddhd or maddhdu instruction. */ 5598c2ecf20Sopenharmony_ci#define RC RBOPT + 1 5608c2ecf20Sopenharmony_ci { 0x1f, 6, NULL, NULL, PPC_OPERAND_GPR }, 5618c2ecf20Sopenharmony_ci 5628c2ecf20Sopenharmony_ci /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form 5638c2ecf20Sopenharmony_ci instruction or the RT field in a D, DS, X, XFX or XO form 5648c2ecf20Sopenharmony_ci instruction. */ 5658c2ecf20Sopenharmony_ci#define RS RC + 1 5668c2ecf20Sopenharmony_ci#define RT RS 5678c2ecf20Sopenharmony_ci#define RT_MASK (0x1f << 21) 5688c2ecf20Sopenharmony_ci#define RD RS 5698c2ecf20Sopenharmony_ci { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR }, 5708c2ecf20Sopenharmony_ci 5718c2ecf20Sopenharmony_ci /* The RS and RT fields of the DS form stq and DQ form lq instructions, 5728c2ecf20Sopenharmony_ci which have special value restrictions. */ 5738c2ecf20Sopenharmony_ci#define RSQ RS + 1 5748c2ecf20Sopenharmony_ci#define RTQ RSQ 5758c2ecf20Sopenharmony_ci { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR }, 5768c2ecf20Sopenharmony_ci 5778c2ecf20Sopenharmony_ci /* The RS field of the tlbwe instruction, which is optional. */ 5788c2ecf20Sopenharmony_ci#define RSO RSQ + 1 5798c2ecf20Sopenharmony_ci#define RTO RSO 5808c2ecf20Sopenharmony_ci { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL }, 5818c2ecf20Sopenharmony_ci 5828c2ecf20Sopenharmony_ci /* The RX field of the SE_RR form instruction. */ 5838c2ecf20Sopenharmony_ci#define RX RSO + 1 5848c2ecf20Sopenharmony_ci { 0x1f, PPC_OPSHIFT_INV, insert_rx, extract_rx, PPC_OPERAND_GPR }, 5858c2ecf20Sopenharmony_ci 5868c2ecf20Sopenharmony_ci /* The ARX field of the SE_RR form instruction. */ 5878c2ecf20Sopenharmony_ci#define ARX RX + 1 5888c2ecf20Sopenharmony_ci { 0x1f, PPC_OPSHIFT_INV, insert_arx, extract_arx, PPC_OPERAND_GPR }, 5898c2ecf20Sopenharmony_ci 5908c2ecf20Sopenharmony_ci /* The RY field of the SE_RR form instruction. */ 5918c2ecf20Sopenharmony_ci#define RY ARX + 1 5928c2ecf20Sopenharmony_ci#define RZ RY 5938c2ecf20Sopenharmony_ci { 0x1f, PPC_OPSHIFT_INV, insert_ry, extract_ry, PPC_OPERAND_GPR }, 5948c2ecf20Sopenharmony_ci 5958c2ecf20Sopenharmony_ci /* The ARY field of the SE_RR form instruction. */ 5968c2ecf20Sopenharmony_ci#define ARY RY + 1 5978c2ecf20Sopenharmony_ci { 0x1f, PPC_OPSHIFT_INV, insert_ary, extract_ary, PPC_OPERAND_GPR }, 5988c2ecf20Sopenharmony_ci 5998c2ecf20Sopenharmony_ci /* The SCLSCI8 field in a D form instruction. */ 6008c2ecf20Sopenharmony_ci#define SCLSCI8 ARY + 1 6018c2ecf20Sopenharmony_ci { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8, extract_sci8, 0 }, 6028c2ecf20Sopenharmony_ci 6038c2ecf20Sopenharmony_ci /* The SCLSCI8N field in a D form instruction. This is the same as the 6048c2ecf20Sopenharmony_ci SCLSCI8 field, only negated. */ 6058c2ecf20Sopenharmony_ci#define SCLSCI8N SCLSCI8 + 1 6068c2ecf20Sopenharmony_ci { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8n, extract_sci8n, 6078c2ecf20Sopenharmony_ci PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED }, 6088c2ecf20Sopenharmony_ci 6098c2ecf20Sopenharmony_ci /* The SD field of the SD4 form instruction. */ 6108c2ecf20Sopenharmony_ci#define SE_SD SCLSCI8N + 1 6118c2ecf20Sopenharmony_ci { 0xf, 8, NULL, NULL, PPC_OPERAND_PARENS }, 6128c2ecf20Sopenharmony_ci 6138c2ecf20Sopenharmony_ci /* The SD field of the SD4 form instruction, for halfword. */ 6148c2ecf20Sopenharmony_ci#define SE_SDH SE_SD + 1 6158c2ecf20Sopenharmony_ci { 0x1e, PPC_OPSHIFT_INV, insert_sd4h, extract_sd4h, PPC_OPERAND_PARENS }, 6168c2ecf20Sopenharmony_ci 6178c2ecf20Sopenharmony_ci /* The SD field of the SD4 form instruction, for word. */ 6188c2ecf20Sopenharmony_ci#define SE_SDW SE_SDH + 1 6198c2ecf20Sopenharmony_ci { 0x3c, PPC_OPSHIFT_INV, insert_sd4w, extract_sd4w, PPC_OPERAND_PARENS }, 6208c2ecf20Sopenharmony_ci 6218c2ecf20Sopenharmony_ci /* The SH field in an X or M form instruction. */ 6228c2ecf20Sopenharmony_ci#define SH SE_SDW + 1 6238c2ecf20Sopenharmony_ci#define SH_MASK (0x1f << 11) 6248c2ecf20Sopenharmony_ci /* The other UIMM field in a EVX form instruction. */ 6258c2ecf20Sopenharmony_ci#define EVUIMM SH 6268c2ecf20Sopenharmony_ci /* The FC field in an atomic X form instruction. */ 6278c2ecf20Sopenharmony_ci#define FC SH 6288c2ecf20Sopenharmony_ci { 0x1f, 11, NULL, NULL, 0 }, 6298c2ecf20Sopenharmony_ci 6308c2ecf20Sopenharmony_ci /* The SI field in a HTM X form instruction. */ 6318c2ecf20Sopenharmony_ci#define HTM_SI SH + 1 6328c2ecf20Sopenharmony_ci { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED }, 6338c2ecf20Sopenharmony_ci 6348c2ecf20Sopenharmony_ci /* The SH field in an MD form instruction. This is split. */ 6358c2ecf20Sopenharmony_ci#define SH6 HTM_SI + 1 6368c2ecf20Sopenharmony_ci#define SH6_MASK ((0x1f << 11) | (1 << 1)) 6378c2ecf20Sopenharmony_ci { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_sh6, 0 }, 6388c2ecf20Sopenharmony_ci 6398c2ecf20Sopenharmony_ci /* The SH field of the tlbwe instruction, which is optional. */ 6408c2ecf20Sopenharmony_ci#define SHO SH6 + 1 6418c2ecf20Sopenharmony_ci { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL }, 6428c2ecf20Sopenharmony_ci 6438c2ecf20Sopenharmony_ci /* The SI field in a D form instruction. */ 6448c2ecf20Sopenharmony_ci#define SI SHO + 1 6458c2ecf20Sopenharmony_ci { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED }, 6468c2ecf20Sopenharmony_ci 6478c2ecf20Sopenharmony_ci /* The SI field in a D form instruction when we accept a wide range 6488c2ecf20Sopenharmony_ci of positive values. */ 6498c2ecf20Sopenharmony_ci#define SISIGNOPT SI + 1 6508c2ecf20Sopenharmony_ci { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, 6518c2ecf20Sopenharmony_ci 6528c2ecf20Sopenharmony_ci /* The SI8 field in a D form instruction. */ 6538c2ecf20Sopenharmony_ci#define SI8 SISIGNOPT + 1 6548c2ecf20Sopenharmony_ci { 0xff, 0, NULL, NULL, PPC_OPERAND_SIGNED }, 6558c2ecf20Sopenharmony_ci 6568c2ecf20Sopenharmony_ci /* The SPR field in an XFX form instruction. This is flipped--the 6578c2ecf20Sopenharmony_ci lower 5 bits are stored in the upper 5 and vice- versa. */ 6588c2ecf20Sopenharmony_ci#define SPR SI8 + 1 6598c2ecf20Sopenharmony_ci#define PMR SPR 6608c2ecf20Sopenharmony_ci#define TMR SPR 6618c2ecf20Sopenharmony_ci#define SPR_MASK (0x3ff << 11) 6628c2ecf20Sopenharmony_ci { 0x3ff, 11, insert_spr, extract_spr, 0 }, 6638c2ecf20Sopenharmony_ci 6648c2ecf20Sopenharmony_ci /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */ 6658c2ecf20Sopenharmony_ci#define SPRBAT SPR + 1 6668c2ecf20Sopenharmony_ci#define SPRBAT_MASK (0x3 << 17) 6678c2ecf20Sopenharmony_ci { 0x3, 17, NULL, NULL, 0 }, 6688c2ecf20Sopenharmony_ci 6698c2ecf20Sopenharmony_ci /* The SPRG register number in an XFX form m[ft]sprg instruction. */ 6708c2ecf20Sopenharmony_ci#define SPRG SPRBAT + 1 6718c2ecf20Sopenharmony_ci { 0x1f, 16, insert_sprg, extract_sprg, 0 }, 6728c2ecf20Sopenharmony_ci 6738c2ecf20Sopenharmony_ci /* The SR field in an X form instruction. */ 6748c2ecf20Sopenharmony_ci#define SR SPRG + 1 6758c2ecf20Sopenharmony_ci /* The 4-bit UIMM field in a VX form instruction. */ 6768c2ecf20Sopenharmony_ci#define UIMM4 SR 6778c2ecf20Sopenharmony_ci { 0xf, 16, NULL, NULL, 0 }, 6788c2ecf20Sopenharmony_ci 6798c2ecf20Sopenharmony_ci /* The STRM field in an X AltiVec form instruction. */ 6808c2ecf20Sopenharmony_ci#define STRM SR + 1 6818c2ecf20Sopenharmony_ci /* The T field in a tlbilx form instruction. */ 6828c2ecf20Sopenharmony_ci#define T STRM 6838c2ecf20Sopenharmony_ci /* The L field in wclr instructions. */ 6848c2ecf20Sopenharmony_ci#define L2 STRM 6858c2ecf20Sopenharmony_ci { 0x3, 21, NULL, NULL, 0 }, 6868c2ecf20Sopenharmony_ci 6878c2ecf20Sopenharmony_ci /* The ESYNC field in an X (sync) form instruction. */ 6888c2ecf20Sopenharmony_ci#define ESYNC STRM + 1 6898c2ecf20Sopenharmony_ci { 0xf, 16, insert_esync, NULL, PPC_OPERAND_OPTIONAL }, 6908c2ecf20Sopenharmony_ci 6918c2ecf20Sopenharmony_ci /* The SV field in a POWER SC form instruction. */ 6928c2ecf20Sopenharmony_ci#define SV ESYNC + 1 6938c2ecf20Sopenharmony_ci { 0x3fff, 2, NULL, NULL, 0 }, 6948c2ecf20Sopenharmony_ci 6958c2ecf20Sopenharmony_ci /* The TBR field in an XFX form instruction. This is like the SPR 6968c2ecf20Sopenharmony_ci field, but it is optional. */ 6978c2ecf20Sopenharmony_ci#define TBR SV + 1 6988c2ecf20Sopenharmony_ci { 0x3ff, 11, insert_tbr, extract_tbr, 6998c2ecf20Sopenharmony_ci PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL_VALUE}, 7008c2ecf20Sopenharmony_ci /* If the TBR operand is ommitted, use the value 268. */ 7018c2ecf20Sopenharmony_ci { -1, 268, NULL, NULL, 0}, 7028c2ecf20Sopenharmony_ci 7038c2ecf20Sopenharmony_ci /* The TO field in a D or X form instruction. */ 7048c2ecf20Sopenharmony_ci#define TO TBR + 2 7058c2ecf20Sopenharmony_ci#define DUI TO 7068c2ecf20Sopenharmony_ci#define TO_MASK (0x1f << 21) 7078c2ecf20Sopenharmony_ci { 0x1f, 21, NULL, NULL, 0 }, 7088c2ecf20Sopenharmony_ci 7098c2ecf20Sopenharmony_ci /* The UI field in a D form instruction. */ 7108c2ecf20Sopenharmony_ci#define UI TO + 1 7118c2ecf20Sopenharmony_ci { 0xffff, 0, NULL, NULL, 0 }, 7128c2ecf20Sopenharmony_ci 7138c2ecf20Sopenharmony_ci#define UISIGNOPT UI + 1 7148c2ecf20Sopenharmony_ci { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNOPT }, 7158c2ecf20Sopenharmony_ci 7168c2ecf20Sopenharmony_ci /* The IMM field in an SE_IM5 instruction. */ 7178c2ecf20Sopenharmony_ci#define UI5 UISIGNOPT + 1 7188c2ecf20Sopenharmony_ci { 0x1f, 4, NULL, NULL, 0 }, 7198c2ecf20Sopenharmony_ci 7208c2ecf20Sopenharmony_ci /* The OIMM field in an SE_OIM5 instruction. */ 7218c2ecf20Sopenharmony_ci#define OIMM5 UI5 + 1 7228c2ecf20Sopenharmony_ci { 0x1f, PPC_OPSHIFT_INV, insert_oimm, extract_oimm, PPC_OPERAND_PLUS1 }, 7238c2ecf20Sopenharmony_ci 7248c2ecf20Sopenharmony_ci /* The UI7 field in an SE_LI instruction. */ 7258c2ecf20Sopenharmony_ci#define UI7 OIMM5 + 1 7268c2ecf20Sopenharmony_ci { 0x7f, 4, NULL, NULL, 0 }, 7278c2ecf20Sopenharmony_ci 7288c2ecf20Sopenharmony_ci /* The VA field in a VA, VX or VXR form instruction. */ 7298c2ecf20Sopenharmony_ci#define VA UI7 + 1 7308c2ecf20Sopenharmony_ci { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR }, 7318c2ecf20Sopenharmony_ci 7328c2ecf20Sopenharmony_ci /* The VB field in a VA, VX or VXR form instruction. */ 7338c2ecf20Sopenharmony_ci#define VB VA + 1 7348c2ecf20Sopenharmony_ci { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR }, 7358c2ecf20Sopenharmony_ci 7368c2ecf20Sopenharmony_ci /* The VC field in a VA form instruction. */ 7378c2ecf20Sopenharmony_ci#define VC VB + 1 7388c2ecf20Sopenharmony_ci { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR }, 7398c2ecf20Sopenharmony_ci 7408c2ecf20Sopenharmony_ci /* The VD or VS field in a VA, VX, VXR or X form instruction. */ 7418c2ecf20Sopenharmony_ci#define VD VC + 1 7428c2ecf20Sopenharmony_ci#define VS VD 7438c2ecf20Sopenharmony_ci { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR }, 7448c2ecf20Sopenharmony_ci 7458c2ecf20Sopenharmony_ci /* The SIMM field in a VX form instruction, and TE in Z form. */ 7468c2ecf20Sopenharmony_ci#define SIMM VD + 1 7478c2ecf20Sopenharmony_ci#define TE SIMM 7488c2ecf20Sopenharmony_ci { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED}, 7498c2ecf20Sopenharmony_ci 7508c2ecf20Sopenharmony_ci /* The UIMM field in a VX form instruction. */ 7518c2ecf20Sopenharmony_ci#define UIMM SIMM + 1 7528c2ecf20Sopenharmony_ci#define DCTL UIMM 7538c2ecf20Sopenharmony_ci { 0x1f, 16, NULL, NULL, 0 }, 7548c2ecf20Sopenharmony_ci 7558c2ecf20Sopenharmony_ci /* The 3-bit UIMM field in a VX form instruction. */ 7568c2ecf20Sopenharmony_ci#define UIMM3 UIMM + 1 7578c2ecf20Sopenharmony_ci { 0x7, 16, NULL, NULL, 0 }, 7588c2ecf20Sopenharmony_ci 7598c2ecf20Sopenharmony_ci /* The 6-bit UIM field in a X form instruction. */ 7608c2ecf20Sopenharmony_ci#define UIM6 UIMM3 + 1 7618c2ecf20Sopenharmony_ci { 0x3f, 16, NULL, NULL, 0 }, 7628c2ecf20Sopenharmony_ci 7638c2ecf20Sopenharmony_ci /* The SIX field in a VX form instruction. */ 7648c2ecf20Sopenharmony_ci#define SIX UIM6 + 1 7658c2ecf20Sopenharmony_ci { 0xf, 11, NULL, NULL, 0 }, 7668c2ecf20Sopenharmony_ci 7678c2ecf20Sopenharmony_ci /* The PS field in a VX form instruction. */ 7688c2ecf20Sopenharmony_ci#define PS SIX + 1 7698c2ecf20Sopenharmony_ci { 0x1, 9, NULL, NULL, 0 }, 7708c2ecf20Sopenharmony_ci 7718c2ecf20Sopenharmony_ci /* The SHB field in a VA form instruction. */ 7728c2ecf20Sopenharmony_ci#define SHB PS + 1 7738c2ecf20Sopenharmony_ci { 0xf, 6, NULL, NULL, 0 }, 7748c2ecf20Sopenharmony_ci 7758c2ecf20Sopenharmony_ci /* The other UIMM field in a half word EVX form instruction. */ 7768c2ecf20Sopenharmony_ci#define EVUIMM_2 SHB + 1 7778c2ecf20Sopenharmony_ci { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS }, 7788c2ecf20Sopenharmony_ci 7798c2ecf20Sopenharmony_ci /* The other UIMM field in a word EVX form instruction. */ 7808c2ecf20Sopenharmony_ci#define EVUIMM_4 EVUIMM_2 + 1 7818c2ecf20Sopenharmony_ci { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS }, 7828c2ecf20Sopenharmony_ci 7838c2ecf20Sopenharmony_ci /* The other UIMM field in a double EVX form instruction. */ 7848c2ecf20Sopenharmony_ci#define EVUIMM_8 EVUIMM_4 + 1 7858c2ecf20Sopenharmony_ci { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS }, 7868c2ecf20Sopenharmony_ci 7878c2ecf20Sopenharmony_ci /* The WS or DRM field in an X form instruction. */ 7888c2ecf20Sopenharmony_ci#define WS EVUIMM_8 + 1 7898c2ecf20Sopenharmony_ci#define DRM WS 7908c2ecf20Sopenharmony_ci { 0x7, 11, NULL, NULL, 0 }, 7918c2ecf20Sopenharmony_ci 7928c2ecf20Sopenharmony_ci /* PowerPC paired singles extensions. */ 7938c2ecf20Sopenharmony_ci /* W bit in the pair singles instructions for x type instructions. */ 7948c2ecf20Sopenharmony_ci#define PSWM WS + 1 7958c2ecf20Sopenharmony_ci /* The BO16 field in a BD8 form instruction. */ 7968c2ecf20Sopenharmony_ci#define BO16 PSWM 7978c2ecf20Sopenharmony_ci { 0x1, 10, 0, 0, 0 }, 7988c2ecf20Sopenharmony_ci 7998c2ecf20Sopenharmony_ci /* IDX bits for quantization in the pair singles instructions. */ 8008c2ecf20Sopenharmony_ci#define PSQ PSWM + 1 8018c2ecf20Sopenharmony_ci { 0x7, 12, 0, 0, 0 }, 8028c2ecf20Sopenharmony_ci 8038c2ecf20Sopenharmony_ci /* IDX bits for quantization in the pair singles x-type instructions. */ 8048c2ecf20Sopenharmony_ci#define PSQM PSQ + 1 8058c2ecf20Sopenharmony_ci { 0x7, 7, 0, 0, 0 }, 8068c2ecf20Sopenharmony_ci 8078c2ecf20Sopenharmony_ci /* Smaller D field for quantization in the pair singles instructions. */ 8088c2ecf20Sopenharmony_ci#define PSD PSQM + 1 8098c2ecf20Sopenharmony_ci { 0xfff, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, 8108c2ecf20Sopenharmony_ci 8118c2ecf20Sopenharmony_ci /* The L field in an mtmsrd or A form instruction or R or W in an X form. */ 8128c2ecf20Sopenharmony_ci#define A_L PSD + 1 8138c2ecf20Sopenharmony_ci#define W A_L 8148c2ecf20Sopenharmony_ci#define X_R A_L 8158c2ecf20Sopenharmony_ci { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL }, 8168c2ecf20Sopenharmony_ci 8178c2ecf20Sopenharmony_ci /* The RMC or CY field in a Z23 form instruction. */ 8188c2ecf20Sopenharmony_ci#define RMC A_L + 1 8198c2ecf20Sopenharmony_ci#define CY RMC 8208c2ecf20Sopenharmony_ci { 0x3, 9, NULL, NULL, 0 }, 8218c2ecf20Sopenharmony_ci 8228c2ecf20Sopenharmony_ci#define R RMC + 1 8238c2ecf20Sopenharmony_ci { 0x1, 16, NULL, NULL, 0 }, 8248c2ecf20Sopenharmony_ci 8258c2ecf20Sopenharmony_ci#define RIC R + 1 8268c2ecf20Sopenharmony_ci { 0x3, 18, NULL, NULL, PPC_OPERAND_OPTIONAL }, 8278c2ecf20Sopenharmony_ci 8288c2ecf20Sopenharmony_ci#define PRS RIC + 1 8298c2ecf20Sopenharmony_ci { 0x1, 17, NULL, NULL, PPC_OPERAND_OPTIONAL }, 8308c2ecf20Sopenharmony_ci 8318c2ecf20Sopenharmony_ci#define SP PRS + 1 8328c2ecf20Sopenharmony_ci { 0x3, 19, NULL, NULL, 0 }, 8338c2ecf20Sopenharmony_ci 8348c2ecf20Sopenharmony_ci#define S SP + 1 8358c2ecf20Sopenharmony_ci { 0x1, 20, NULL, NULL, 0 }, 8368c2ecf20Sopenharmony_ci 8378c2ecf20Sopenharmony_ci /* The S field in a XL form instruction. */ 8388c2ecf20Sopenharmony_ci#define SXL S + 1 8398c2ecf20Sopenharmony_ci { 0x1, 11, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL_VALUE}, 8408c2ecf20Sopenharmony_ci /* If the SXL operand is ommitted, use the value 1. */ 8418c2ecf20Sopenharmony_ci { -1, 1, NULL, NULL, 0}, 8428c2ecf20Sopenharmony_ci 8438c2ecf20Sopenharmony_ci /* SH field starting at bit position 16. */ 8448c2ecf20Sopenharmony_ci#define SH16 SXL + 2 8458c2ecf20Sopenharmony_ci /* The DCM and DGM fields in a Z form instruction. */ 8468c2ecf20Sopenharmony_ci#define DCM SH16 8478c2ecf20Sopenharmony_ci#define DGM DCM 8488c2ecf20Sopenharmony_ci { 0x3f, 10, NULL, NULL, 0 }, 8498c2ecf20Sopenharmony_ci 8508c2ecf20Sopenharmony_ci /* The EH field in larx instruction. */ 8518c2ecf20Sopenharmony_ci#define EH SH16 + 1 8528c2ecf20Sopenharmony_ci { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL }, 8538c2ecf20Sopenharmony_ci 8548c2ecf20Sopenharmony_ci /* The L field in an mtfsf or XFL form instruction. */ 8558c2ecf20Sopenharmony_ci /* The A field in a HTM X form instruction. */ 8568c2ecf20Sopenharmony_ci#define XFL_L EH + 1 8578c2ecf20Sopenharmony_ci#define HTM_A XFL_L 8588c2ecf20Sopenharmony_ci { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL}, 8598c2ecf20Sopenharmony_ci 8608c2ecf20Sopenharmony_ci /* Xilinx APU related masks and macros */ 8618c2ecf20Sopenharmony_ci#define FCRT XFL_L + 1 8628c2ecf20Sopenharmony_ci#define FCRT_MASK (0x1f << 21) 8638c2ecf20Sopenharmony_ci { 0x1f, 21, 0, 0, PPC_OPERAND_FCR }, 8648c2ecf20Sopenharmony_ci 8658c2ecf20Sopenharmony_ci /* Xilinx FSL related masks and macros */ 8668c2ecf20Sopenharmony_ci#define FSL FCRT + 1 8678c2ecf20Sopenharmony_ci#define FSL_MASK (0x1f << 11) 8688c2ecf20Sopenharmony_ci { 0x1f, 11, 0, 0, PPC_OPERAND_FSL }, 8698c2ecf20Sopenharmony_ci 8708c2ecf20Sopenharmony_ci /* Xilinx UDI related masks and macros */ 8718c2ecf20Sopenharmony_ci#define URT FSL + 1 8728c2ecf20Sopenharmony_ci { 0x1f, 21, 0, 0, PPC_OPERAND_UDI }, 8738c2ecf20Sopenharmony_ci 8748c2ecf20Sopenharmony_ci#define URA URT + 1 8758c2ecf20Sopenharmony_ci { 0x1f, 16, 0, 0, PPC_OPERAND_UDI }, 8768c2ecf20Sopenharmony_ci 8778c2ecf20Sopenharmony_ci#define URB URA + 1 8788c2ecf20Sopenharmony_ci { 0x1f, 11, 0, 0, PPC_OPERAND_UDI }, 8798c2ecf20Sopenharmony_ci 8808c2ecf20Sopenharmony_ci#define URC URB + 1 8818c2ecf20Sopenharmony_ci { 0x1f, 6, 0, 0, PPC_OPERAND_UDI }, 8828c2ecf20Sopenharmony_ci 8838c2ecf20Sopenharmony_ci /* The VLESIMM field in a D form instruction. */ 8848c2ecf20Sopenharmony_ci#define VLESIMM URC + 1 8858c2ecf20Sopenharmony_ci { 0xffff, PPC_OPSHIFT_INV, insert_vlesi, extract_vlesi, 8868c2ecf20Sopenharmony_ci PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, 8878c2ecf20Sopenharmony_ci 8888c2ecf20Sopenharmony_ci /* The VLENSIMM field in a D form instruction. */ 8898c2ecf20Sopenharmony_ci#define VLENSIMM VLESIMM + 1 8908c2ecf20Sopenharmony_ci { 0xffff, PPC_OPSHIFT_INV, insert_vlensi, extract_vlensi, 8918c2ecf20Sopenharmony_ci PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, 8928c2ecf20Sopenharmony_ci 8938c2ecf20Sopenharmony_ci /* The VLEUIMM field in a D form instruction. */ 8948c2ecf20Sopenharmony_ci#define VLEUIMM VLENSIMM + 1 8958c2ecf20Sopenharmony_ci { 0xffff, PPC_OPSHIFT_INV, insert_vleui, extract_vleui, 0 }, 8968c2ecf20Sopenharmony_ci 8978c2ecf20Sopenharmony_ci /* The VLEUIMML field in a D form instruction. */ 8988c2ecf20Sopenharmony_ci#define VLEUIMML VLEUIMM + 1 8998c2ecf20Sopenharmony_ci { 0xffff, PPC_OPSHIFT_INV, insert_vleil, extract_vleil, 0 }, 9008c2ecf20Sopenharmony_ci 9018c2ecf20Sopenharmony_ci /* The XT and XS fields in an XX1 or XX3 form instruction. This is split. */ 9028c2ecf20Sopenharmony_ci#define XS6 VLEUIMML + 1 9038c2ecf20Sopenharmony_ci#define XT6 XS6 9048c2ecf20Sopenharmony_ci { 0x3f, PPC_OPSHIFT_INV, insert_xt6, extract_xt6, PPC_OPERAND_VSR }, 9058c2ecf20Sopenharmony_ci 9068c2ecf20Sopenharmony_ci /* The XT and XS fields in an DQ form VSX instruction. This is split. */ 9078c2ecf20Sopenharmony_ci#define XSQ6 XT6 + 1 9088c2ecf20Sopenharmony_ci#define XTQ6 XSQ6 9098c2ecf20Sopenharmony_ci { 0x3f, PPC_OPSHIFT_INV, insert_xtq6, extract_xtq6, PPC_OPERAND_VSR }, 9108c2ecf20Sopenharmony_ci 9118c2ecf20Sopenharmony_ci /* The XA field in an XX3 form instruction. This is split. */ 9128c2ecf20Sopenharmony_ci#define XA6 XTQ6 + 1 9138c2ecf20Sopenharmony_ci { 0x3f, PPC_OPSHIFT_INV, insert_xa6, extract_xa6, PPC_OPERAND_VSR }, 9148c2ecf20Sopenharmony_ci 9158c2ecf20Sopenharmony_ci /* The XB field in an XX2 or XX3 form instruction. This is split. */ 9168c2ecf20Sopenharmony_ci#define XB6 XA6 + 1 9178c2ecf20Sopenharmony_ci { 0x3f, PPC_OPSHIFT_INV, insert_xb6, extract_xb6, PPC_OPERAND_VSR }, 9188c2ecf20Sopenharmony_ci 9198c2ecf20Sopenharmony_ci /* The XB field in an XX3 form instruction when it must be the same as 9208c2ecf20Sopenharmony_ci the XA field in the instruction. This is used in extended mnemonics 9218c2ecf20Sopenharmony_ci like xvmovdp. This is split. */ 9228c2ecf20Sopenharmony_ci#define XB6S XB6 + 1 9238c2ecf20Sopenharmony_ci { 0x3f, PPC_OPSHIFT_INV, insert_xb6s, extract_xb6s, PPC_OPERAND_FAKE }, 9248c2ecf20Sopenharmony_ci 9258c2ecf20Sopenharmony_ci /* The XC field in an XX4 form instruction. This is split. */ 9268c2ecf20Sopenharmony_ci#define XC6 XB6S + 1 9278c2ecf20Sopenharmony_ci { 0x3f, PPC_OPSHIFT_INV, insert_xc6, extract_xc6, PPC_OPERAND_VSR }, 9288c2ecf20Sopenharmony_ci 9298c2ecf20Sopenharmony_ci /* The DM or SHW field in an XX3 form instruction. */ 9308c2ecf20Sopenharmony_ci#define DM XC6 + 1 9318c2ecf20Sopenharmony_ci#define SHW DM 9328c2ecf20Sopenharmony_ci { 0x3, 8, NULL, NULL, 0 }, 9338c2ecf20Sopenharmony_ci 9348c2ecf20Sopenharmony_ci /* The DM field in an extended mnemonic XX3 form instruction. */ 9358c2ecf20Sopenharmony_ci#define DMEX DM + 1 9368c2ecf20Sopenharmony_ci { 0x3, 8, insert_dm, extract_dm, 0 }, 9378c2ecf20Sopenharmony_ci 9388c2ecf20Sopenharmony_ci /* The UIM field in an XX2 form instruction. */ 9398c2ecf20Sopenharmony_ci#define UIM DMEX + 1 9408c2ecf20Sopenharmony_ci /* The 2-bit UIMM field in a VX form instruction. */ 9418c2ecf20Sopenharmony_ci#define UIMM2 UIM 9428c2ecf20Sopenharmony_ci /* The 2-bit L field in a darn instruction. */ 9438c2ecf20Sopenharmony_ci#define LRAND UIM 9448c2ecf20Sopenharmony_ci { 0x3, 16, NULL, NULL, 0 }, 9458c2ecf20Sopenharmony_ci 9468c2ecf20Sopenharmony_ci#define ERAT_T UIM + 1 9478c2ecf20Sopenharmony_ci { 0x7, 21, NULL, NULL, 0 }, 9488c2ecf20Sopenharmony_ci 9498c2ecf20Sopenharmony_ci#define IH ERAT_T + 1 9508c2ecf20Sopenharmony_ci { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 9518c2ecf20Sopenharmony_ci 9528c2ecf20Sopenharmony_ci /* The 8-bit IMM8 field in a XX1 form instruction. */ 9538c2ecf20Sopenharmony_ci#define IMM8 IH + 1 9548c2ecf20Sopenharmony_ci { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT }, 9558c2ecf20Sopenharmony_ci}; 9568c2ecf20Sopenharmony_ci 9578c2ecf20Sopenharmony_ciconst unsigned int num_powerpc_operands = (sizeof (powerpc_operands) 9588c2ecf20Sopenharmony_ci / sizeof (powerpc_operands[0])); 9598c2ecf20Sopenharmony_ci 9608c2ecf20Sopenharmony_ci/* The functions used to insert and extract complicated operands. */ 9618c2ecf20Sopenharmony_ci 9628c2ecf20Sopenharmony_ci/* The ARX, ARY, RX and RY operands are alternate encodings of GPRs. */ 9638c2ecf20Sopenharmony_ci 9648c2ecf20Sopenharmony_cistatic unsigned long 9658c2ecf20Sopenharmony_ciinsert_arx (unsigned long insn, 9668c2ecf20Sopenharmony_ci long value, 9678c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 9688c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 9698c2ecf20Sopenharmony_ci{ 9708c2ecf20Sopenharmony_ci if (value >= 8 && value < 24) 9718c2ecf20Sopenharmony_ci return insn | ((value - 8) & 0xf); 9728c2ecf20Sopenharmony_ci else 9738c2ecf20Sopenharmony_ci { 9748c2ecf20Sopenharmony_ci *errmsg = _("invalid register"); 9758c2ecf20Sopenharmony_ci return 0; 9768c2ecf20Sopenharmony_ci } 9778c2ecf20Sopenharmony_ci} 9788c2ecf20Sopenharmony_ci 9798c2ecf20Sopenharmony_cistatic long 9808c2ecf20Sopenharmony_ciextract_arx (unsigned long insn, 9818c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 9828c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 9838c2ecf20Sopenharmony_ci{ 9848c2ecf20Sopenharmony_ci return (insn & 0xf) + 8; 9858c2ecf20Sopenharmony_ci} 9868c2ecf20Sopenharmony_ci 9878c2ecf20Sopenharmony_cistatic unsigned long 9888c2ecf20Sopenharmony_ciinsert_ary (unsigned long insn, 9898c2ecf20Sopenharmony_ci long value, 9908c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 9918c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 9928c2ecf20Sopenharmony_ci{ 9938c2ecf20Sopenharmony_ci if (value >= 8 && value < 24) 9948c2ecf20Sopenharmony_ci return insn | (((value - 8) & 0xf) << 4); 9958c2ecf20Sopenharmony_ci else 9968c2ecf20Sopenharmony_ci { 9978c2ecf20Sopenharmony_ci *errmsg = _("invalid register"); 9988c2ecf20Sopenharmony_ci return 0; 9998c2ecf20Sopenharmony_ci } 10008c2ecf20Sopenharmony_ci} 10018c2ecf20Sopenharmony_ci 10028c2ecf20Sopenharmony_cistatic long 10038c2ecf20Sopenharmony_ciextract_ary (unsigned long insn, 10048c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 10058c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 10068c2ecf20Sopenharmony_ci{ 10078c2ecf20Sopenharmony_ci return ((insn >> 4) & 0xf) + 8; 10088c2ecf20Sopenharmony_ci} 10098c2ecf20Sopenharmony_ci 10108c2ecf20Sopenharmony_cistatic unsigned long 10118c2ecf20Sopenharmony_ciinsert_rx (unsigned long insn, 10128c2ecf20Sopenharmony_ci long value, 10138c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 10148c2ecf20Sopenharmony_ci const char **errmsg) 10158c2ecf20Sopenharmony_ci{ 10168c2ecf20Sopenharmony_ci if (value >= 0 && value < 8) 10178c2ecf20Sopenharmony_ci return insn | value; 10188c2ecf20Sopenharmony_ci else if (value >= 24 && value <= 31) 10198c2ecf20Sopenharmony_ci return insn | (value - 16); 10208c2ecf20Sopenharmony_ci else 10218c2ecf20Sopenharmony_ci { 10228c2ecf20Sopenharmony_ci *errmsg = _("invalid register"); 10238c2ecf20Sopenharmony_ci return 0; 10248c2ecf20Sopenharmony_ci } 10258c2ecf20Sopenharmony_ci} 10268c2ecf20Sopenharmony_ci 10278c2ecf20Sopenharmony_cistatic long 10288c2ecf20Sopenharmony_ciextract_rx (unsigned long insn, 10298c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 10308c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 10318c2ecf20Sopenharmony_ci{ 10328c2ecf20Sopenharmony_ci int value = insn & 0xf; 10338c2ecf20Sopenharmony_ci if (value >= 0 && value < 8) 10348c2ecf20Sopenharmony_ci return value; 10358c2ecf20Sopenharmony_ci else 10368c2ecf20Sopenharmony_ci return value + 16; 10378c2ecf20Sopenharmony_ci} 10388c2ecf20Sopenharmony_ci 10398c2ecf20Sopenharmony_cistatic unsigned long 10408c2ecf20Sopenharmony_ciinsert_ry (unsigned long insn, 10418c2ecf20Sopenharmony_ci long value, 10428c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 10438c2ecf20Sopenharmony_ci const char **errmsg) 10448c2ecf20Sopenharmony_ci{ 10458c2ecf20Sopenharmony_ci if (value >= 0 && value < 8) 10468c2ecf20Sopenharmony_ci return insn | (value << 4); 10478c2ecf20Sopenharmony_ci else if (value >= 24 && value <= 31) 10488c2ecf20Sopenharmony_ci return insn | ((value - 16) << 4); 10498c2ecf20Sopenharmony_ci else 10508c2ecf20Sopenharmony_ci { 10518c2ecf20Sopenharmony_ci *errmsg = _("invalid register"); 10528c2ecf20Sopenharmony_ci return 0; 10538c2ecf20Sopenharmony_ci } 10548c2ecf20Sopenharmony_ci} 10558c2ecf20Sopenharmony_ci 10568c2ecf20Sopenharmony_cistatic long 10578c2ecf20Sopenharmony_ciextract_ry (unsigned long insn, 10588c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 10598c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 10608c2ecf20Sopenharmony_ci{ 10618c2ecf20Sopenharmony_ci int value = (insn >> 4) & 0xf; 10628c2ecf20Sopenharmony_ci if (value >= 0 && value < 8) 10638c2ecf20Sopenharmony_ci return value; 10648c2ecf20Sopenharmony_ci else 10658c2ecf20Sopenharmony_ci return value + 16; 10668c2ecf20Sopenharmony_ci} 10678c2ecf20Sopenharmony_ci 10688c2ecf20Sopenharmony_ci/* The BA field in an XL form instruction when it must be the same as 10698c2ecf20Sopenharmony_ci the BT field in the same instruction. This operand is marked FAKE. 10708c2ecf20Sopenharmony_ci The insertion function just copies the BT field into the BA field, 10718c2ecf20Sopenharmony_ci and the extraction function just checks that the fields are the 10728c2ecf20Sopenharmony_ci same. */ 10738c2ecf20Sopenharmony_ci 10748c2ecf20Sopenharmony_cistatic unsigned long 10758c2ecf20Sopenharmony_ciinsert_bat (unsigned long insn, 10768c2ecf20Sopenharmony_ci long value ATTRIBUTE_UNUSED, 10778c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 10788c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 10798c2ecf20Sopenharmony_ci{ 10808c2ecf20Sopenharmony_ci return insn | (((insn >> 21) & 0x1f) << 16); 10818c2ecf20Sopenharmony_ci} 10828c2ecf20Sopenharmony_ci 10838c2ecf20Sopenharmony_cistatic long 10848c2ecf20Sopenharmony_ciextract_bat (unsigned long insn, 10858c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 10868c2ecf20Sopenharmony_ci int *invalid) 10878c2ecf20Sopenharmony_ci{ 10888c2ecf20Sopenharmony_ci if (((insn >> 21) & 0x1f) != ((insn >> 16) & 0x1f)) 10898c2ecf20Sopenharmony_ci *invalid = 1; 10908c2ecf20Sopenharmony_ci return 0; 10918c2ecf20Sopenharmony_ci} 10928c2ecf20Sopenharmony_ci 10938c2ecf20Sopenharmony_ci/* The BB field in an XL form instruction when it must be the same as 10948c2ecf20Sopenharmony_ci the BA field in the same instruction. This operand is marked FAKE. 10958c2ecf20Sopenharmony_ci The insertion function just copies the BA field into the BB field, 10968c2ecf20Sopenharmony_ci and the extraction function just checks that the fields are the 10978c2ecf20Sopenharmony_ci same. */ 10988c2ecf20Sopenharmony_ci 10998c2ecf20Sopenharmony_cistatic unsigned long 11008c2ecf20Sopenharmony_ciinsert_bba (unsigned long insn, 11018c2ecf20Sopenharmony_ci long value ATTRIBUTE_UNUSED, 11028c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 11038c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 11048c2ecf20Sopenharmony_ci{ 11058c2ecf20Sopenharmony_ci return insn | (((insn >> 16) & 0x1f) << 11); 11068c2ecf20Sopenharmony_ci} 11078c2ecf20Sopenharmony_ci 11088c2ecf20Sopenharmony_cistatic long 11098c2ecf20Sopenharmony_ciextract_bba (unsigned long insn, 11108c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 11118c2ecf20Sopenharmony_ci int *invalid) 11128c2ecf20Sopenharmony_ci{ 11138c2ecf20Sopenharmony_ci if (((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f)) 11148c2ecf20Sopenharmony_ci *invalid = 1; 11158c2ecf20Sopenharmony_ci return 0; 11168c2ecf20Sopenharmony_ci} 11178c2ecf20Sopenharmony_ci 11188c2ecf20Sopenharmony_ci/* The BD field in a B form instruction when the - modifier is used. 11198c2ecf20Sopenharmony_ci This modifier means that the branch is not expected to be taken. 11208c2ecf20Sopenharmony_ci For chips built to versions of the architecture prior to version 2 11218c2ecf20Sopenharmony_ci (ie. not Power4 compatible), we set the y bit of the BO field to 1 11228c2ecf20Sopenharmony_ci if the offset is negative. When extracting, we require that the y 11238c2ecf20Sopenharmony_ci bit be 1 and that the offset be positive, since if the y bit is 0 11248c2ecf20Sopenharmony_ci we just want to print the normal form of the instruction. 11258c2ecf20Sopenharmony_ci Power4 compatible targets use two bits, "a", and "t", instead of 11268c2ecf20Sopenharmony_ci the "y" bit. "at" == 00 => no hint, "at" == 01 => unpredictable, 11278c2ecf20Sopenharmony_ci "at" == 10 => not taken, "at" == 11 => taken. The "t" bit is 00001 11288c2ecf20Sopenharmony_ci in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000 11298c2ecf20Sopenharmony_ci for branch on CTR. We only handle the taken/not-taken hint here. 11308c2ecf20Sopenharmony_ci Note that we don't relax the conditions tested here when 11318c2ecf20Sopenharmony_ci disassembling with -Many because insns using extract_bdm and 11328c2ecf20Sopenharmony_ci extract_bdp always occur in pairs. One or the other will always 11338c2ecf20Sopenharmony_ci be valid. */ 11348c2ecf20Sopenharmony_ci 11358c2ecf20Sopenharmony_ci#define ISA_V2 (PPC_OPCODE_POWER4 | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN) 11368c2ecf20Sopenharmony_ci 11378c2ecf20Sopenharmony_cistatic unsigned long 11388c2ecf20Sopenharmony_ciinsert_bdm (unsigned long insn, 11398c2ecf20Sopenharmony_ci long value, 11408c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 11418c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 11428c2ecf20Sopenharmony_ci{ 11438c2ecf20Sopenharmony_ci if ((dialect & ISA_V2) == 0) 11448c2ecf20Sopenharmony_ci { 11458c2ecf20Sopenharmony_ci if ((value & 0x8000) != 0) 11468c2ecf20Sopenharmony_ci insn |= 1 << 21; 11478c2ecf20Sopenharmony_ci } 11488c2ecf20Sopenharmony_ci else 11498c2ecf20Sopenharmony_ci { 11508c2ecf20Sopenharmony_ci if ((insn & (0x14 << 21)) == (0x04 << 21)) 11518c2ecf20Sopenharmony_ci insn |= 0x02 << 21; 11528c2ecf20Sopenharmony_ci else if ((insn & (0x14 << 21)) == (0x10 << 21)) 11538c2ecf20Sopenharmony_ci insn |= 0x08 << 21; 11548c2ecf20Sopenharmony_ci } 11558c2ecf20Sopenharmony_ci return insn | (value & 0xfffc); 11568c2ecf20Sopenharmony_ci} 11578c2ecf20Sopenharmony_ci 11588c2ecf20Sopenharmony_cistatic long 11598c2ecf20Sopenharmony_ciextract_bdm (unsigned long insn, 11608c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 11618c2ecf20Sopenharmony_ci int *invalid) 11628c2ecf20Sopenharmony_ci{ 11638c2ecf20Sopenharmony_ci if ((dialect & ISA_V2) == 0) 11648c2ecf20Sopenharmony_ci { 11658c2ecf20Sopenharmony_ci if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0)) 11668c2ecf20Sopenharmony_ci *invalid = 1; 11678c2ecf20Sopenharmony_ci } 11688c2ecf20Sopenharmony_ci else 11698c2ecf20Sopenharmony_ci { 11708c2ecf20Sopenharmony_ci if ((insn & (0x17 << 21)) != (0x06 << 21) 11718c2ecf20Sopenharmony_ci && (insn & (0x1d << 21)) != (0x18 << 21)) 11728c2ecf20Sopenharmony_ci *invalid = 1; 11738c2ecf20Sopenharmony_ci } 11748c2ecf20Sopenharmony_ci 11758c2ecf20Sopenharmony_ci return ((insn & 0xfffc) ^ 0x8000) - 0x8000; 11768c2ecf20Sopenharmony_ci} 11778c2ecf20Sopenharmony_ci 11788c2ecf20Sopenharmony_ci/* The BD field in a B form instruction when the + modifier is used. 11798c2ecf20Sopenharmony_ci This is like BDM, above, except that the branch is expected to be 11808c2ecf20Sopenharmony_ci taken. */ 11818c2ecf20Sopenharmony_ci 11828c2ecf20Sopenharmony_cistatic unsigned long 11838c2ecf20Sopenharmony_ciinsert_bdp (unsigned long insn, 11848c2ecf20Sopenharmony_ci long value, 11858c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 11868c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 11878c2ecf20Sopenharmony_ci{ 11888c2ecf20Sopenharmony_ci if ((dialect & ISA_V2) == 0) 11898c2ecf20Sopenharmony_ci { 11908c2ecf20Sopenharmony_ci if ((value & 0x8000) == 0) 11918c2ecf20Sopenharmony_ci insn |= 1 << 21; 11928c2ecf20Sopenharmony_ci } 11938c2ecf20Sopenharmony_ci else 11948c2ecf20Sopenharmony_ci { 11958c2ecf20Sopenharmony_ci if ((insn & (0x14 << 21)) == (0x04 << 21)) 11968c2ecf20Sopenharmony_ci insn |= 0x03 << 21; 11978c2ecf20Sopenharmony_ci else if ((insn & (0x14 << 21)) == (0x10 << 21)) 11988c2ecf20Sopenharmony_ci insn |= 0x09 << 21; 11998c2ecf20Sopenharmony_ci } 12008c2ecf20Sopenharmony_ci return insn | (value & 0xfffc); 12018c2ecf20Sopenharmony_ci} 12028c2ecf20Sopenharmony_ci 12038c2ecf20Sopenharmony_cistatic long 12048c2ecf20Sopenharmony_ciextract_bdp (unsigned long insn, 12058c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 12068c2ecf20Sopenharmony_ci int *invalid) 12078c2ecf20Sopenharmony_ci{ 12088c2ecf20Sopenharmony_ci if ((dialect & ISA_V2) == 0) 12098c2ecf20Sopenharmony_ci { 12108c2ecf20Sopenharmony_ci if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0)) 12118c2ecf20Sopenharmony_ci *invalid = 1; 12128c2ecf20Sopenharmony_ci } 12138c2ecf20Sopenharmony_ci else 12148c2ecf20Sopenharmony_ci { 12158c2ecf20Sopenharmony_ci if ((insn & (0x17 << 21)) != (0x07 << 21) 12168c2ecf20Sopenharmony_ci && (insn & (0x1d << 21)) != (0x19 << 21)) 12178c2ecf20Sopenharmony_ci *invalid = 1; 12188c2ecf20Sopenharmony_ci } 12198c2ecf20Sopenharmony_ci 12208c2ecf20Sopenharmony_ci return ((insn & 0xfffc) ^ 0x8000) - 0x8000; 12218c2ecf20Sopenharmony_ci} 12228c2ecf20Sopenharmony_ci 12238c2ecf20Sopenharmony_cistatic inline int 12248c2ecf20Sopenharmony_civalid_bo_pre_v2 (long value) 12258c2ecf20Sopenharmony_ci{ 12268c2ecf20Sopenharmony_ci /* Certain encodings have bits that are required to be zero. 12278c2ecf20Sopenharmony_ci These are (z must be zero, y may be anything): 12288c2ecf20Sopenharmony_ci 0000y 12298c2ecf20Sopenharmony_ci 0001y 12308c2ecf20Sopenharmony_ci 001zy 12318c2ecf20Sopenharmony_ci 0100y 12328c2ecf20Sopenharmony_ci 0101y 12338c2ecf20Sopenharmony_ci 011zy 12348c2ecf20Sopenharmony_ci 1z00y 12358c2ecf20Sopenharmony_ci 1z01y 12368c2ecf20Sopenharmony_ci 1z1zz 12378c2ecf20Sopenharmony_ci */ 12388c2ecf20Sopenharmony_ci if ((value & 0x14) == 0) 12398c2ecf20Sopenharmony_ci return 1; 12408c2ecf20Sopenharmony_ci else if ((value & 0x14) == 0x4) 12418c2ecf20Sopenharmony_ci return (value & 0x2) == 0; 12428c2ecf20Sopenharmony_ci else if ((value & 0x14) == 0x10) 12438c2ecf20Sopenharmony_ci return (value & 0x8) == 0; 12448c2ecf20Sopenharmony_ci else 12458c2ecf20Sopenharmony_ci return value == 0x14; 12468c2ecf20Sopenharmony_ci} 12478c2ecf20Sopenharmony_ci 12488c2ecf20Sopenharmony_cistatic inline int 12498c2ecf20Sopenharmony_civalid_bo_post_v2 (long value) 12508c2ecf20Sopenharmony_ci{ 12518c2ecf20Sopenharmony_ci /* Certain encodings have bits that are required to be zero. 12528c2ecf20Sopenharmony_ci These are (z must be zero, a & t may be anything): 12538c2ecf20Sopenharmony_ci 0000z 12548c2ecf20Sopenharmony_ci 0001z 12558c2ecf20Sopenharmony_ci 001at 12568c2ecf20Sopenharmony_ci 0100z 12578c2ecf20Sopenharmony_ci 0101z 12588c2ecf20Sopenharmony_ci 011at 12598c2ecf20Sopenharmony_ci 1a00t 12608c2ecf20Sopenharmony_ci 1a01t 12618c2ecf20Sopenharmony_ci 1z1zz 12628c2ecf20Sopenharmony_ci */ 12638c2ecf20Sopenharmony_ci if ((value & 0x14) == 0) 12648c2ecf20Sopenharmony_ci return (value & 0x1) == 0; 12658c2ecf20Sopenharmony_ci else if ((value & 0x14) == 0x14) 12668c2ecf20Sopenharmony_ci return value == 0x14; 12678c2ecf20Sopenharmony_ci else 12688c2ecf20Sopenharmony_ci return 1; 12698c2ecf20Sopenharmony_ci} 12708c2ecf20Sopenharmony_ci 12718c2ecf20Sopenharmony_ci/* Check for legal values of a BO field. */ 12728c2ecf20Sopenharmony_ci 12738c2ecf20Sopenharmony_cistatic int 12748c2ecf20Sopenharmony_civalid_bo (long value, ppc_cpu_t dialect, int extract) 12758c2ecf20Sopenharmony_ci{ 12768c2ecf20Sopenharmony_ci int valid_y = valid_bo_pre_v2 (value); 12778c2ecf20Sopenharmony_ci int valid_at = valid_bo_post_v2 (value); 12788c2ecf20Sopenharmony_ci 12798c2ecf20Sopenharmony_ci /* When disassembling with -Many, accept either encoding on the 12808c2ecf20Sopenharmony_ci second pass through opcodes. */ 12818c2ecf20Sopenharmony_ci if (extract && dialect == ~(ppc_cpu_t) PPC_OPCODE_ANY) 12828c2ecf20Sopenharmony_ci return valid_y || valid_at; 12838c2ecf20Sopenharmony_ci if ((dialect & ISA_V2) == 0) 12848c2ecf20Sopenharmony_ci return valid_y; 12858c2ecf20Sopenharmony_ci else 12868c2ecf20Sopenharmony_ci return valid_at; 12878c2ecf20Sopenharmony_ci} 12888c2ecf20Sopenharmony_ci 12898c2ecf20Sopenharmony_ci/* The BO field in a B form instruction. Warn about attempts to set 12908c2ecf20Sopenharmony_ci the field to an illegal value. */ 12918c2ecf20Sopenharmony_ci 12928c2ecf20Sopenharmony_cistatic unsigned long 12938c2ecf20Sopenharmony_ciinsert_bo (unsigned long insn, 12948c2ecf20Sopenharmony_ci long value, 12958c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 12968c2ecf20Sopenharmony_ci const char **errmsg) 12978c2ecf20Sopenharmony_ci{ 12988c2ecf20Sopenharmony_ci if (!valid_bo (value, dialect, 0)) 12998c2ecf20Sopenharmony_ci *errmsg = _("invalid conditional option"); 13008c2ecf20Sopenharmony_ci else if (PPC_OP (insn) == 19 && (insn & 0x400) && ! (value & 4)) 13018c2ecf20Sopenharmony_ci *errmsg = _("invalid counter access"); 13028c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 21); 13038c2ecf20Sopenharmony_ci} 13048c2ecf20Sopenharmony_ci 13058c2ecf20Sopenharmony_cistatic long 13068c2ecf20Sopenharmony_ciextract_bo (unsigned long insn, 13078c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 13088c2ecf20Sopenharmony_ci int *invalid) 13098c2ecf20Sopenharmony_ci{ 13108c2ecf20Sopenharmony_ci long value; 13118c2ecf20Sopenharmony_ci 13128c2ecf20Sopenharmony_ci value = (insn >> 21) & 0x1f; 13138c2ecf20Sopenharmony_ci if (!valid_bo (value, dialect, 1)) 13148c2ecf20Sopenharmony_ci *invalid = 1; 13158c2ecf20Sopenharmony_ci return value; 13168c2ecf20Sopenharmony_ci} 13178c2ecf20Sopenharmony_ci 13188c2ecf20Sopenharmony_ci/* The BO field in a B form instruction when the + or - modifier is 13198c2ecf20Sopenharmony_ci used. This is like the BO field, but it must be even. When 13208c2ecf20Sopenharmony_ci extracting it, we force it to be even. */ 13218c2ecf20Sopenharmony_ci 13228c2ecf20Sopenharmony_cistatic unsigned long 13238c2ecf20Sopenharmony_ciinsert_boe (unsigned long insn, 13248c2ecf20Sopenharmony_ci long value, 13258c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 13268c2ecf20Sopenharmony_ci const char **errmsg) 13278c2ecf20Sopenharmony_ci{ 13288c2ecf20Sopenharmony_ci if (!valid_bo (value, dialect, 0)) 13298c2ecf20Sopenharmony_ci *errmsg = _("invalid conditional option"); 13308c2ecf20Sopenharmony_ci else if (PPC_OP (insn) == 19 && (insn & 0x400) && ! (value & 4)) 13318c2ecf20Sopenharmony_ci *errmsg = _("invalid counter access"); 13328c2ecf20Sopenharmony_ci else if ((value & 1) != 0) 13338c2ecf20Sopenharmony_ci *errmsg = _("attempt to set y bit when using + or - modifier"); 13348c2ecf20Sopenharmony_ci 13358c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 21); 13368c2ecf20Sopenharmony_ci} 13378c2ecf20Sopenharmony_ci 13388c2ecf20Sopenharmony_cistatic long 13398c2ecf20Sopenharmony_ciextract_boe (unsigned long insn, 13408c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 13418c2ecf20Sopenharmony_ci int *invalid) 13428c2ecf20Sopenharmony_ci{ 13438c2ecf20Sopenharmony_ci long value; 13448c2ecf20Sopenharmony_ci 13458c2ecf20Sopenharmony_ci value = (insn >> 21) & 0x1f; 13468c2ecf20Sopenharmony_ci if (!valid_bo (value, dialect, 1)) 13478c2ecf20Sopenharmony_ci *invalid = 1; 13488c2ecf20Sopenharmony_ci return value & 0x1e; 13498c2ecf20Sopenharmony_ci} 13508c2ecf20Sopenharmony_ci 13518c2ecf20Sopenharmony_ci/* The DCMX field in a X form instruction when the field is split 13528c2ecf20Sopenharmony_ci into separate DC, DM and DX fields. */ 13538c2ecf20Sopenharmony_ci 13548c2ecf20Sopenharmony_cistatic unsigned long 13558c2ecf20Sopenharmony_ciinsert_dcmxs (unsigned long insn, 13568c2ecf20Sopenharmony_ci long value, 13578c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 13588c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 13598c2ecf20Sopenharmony_ci{ 13608c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3) | (value & 0x40); 13618c2ecf20Sopenharmony_ci} 13628c2ecf20Sopenharmony_ci 13638c2ecf20Sopenharmony_cistatic long 13648c2ecf20Sopenharmony_ciextract_dcmxs (unsigned long insn, 13658c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 13668c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 13678c2ecf20Sopenharmony_ci{ 13688c2ecf20Sopenharmony_ci return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f); 13698c2ecf20Sopenharmony_ci} 13708c2ecf20Sopenharmony_ci 13718c2ecf20Sopenharmony_ci/* The D field in a DX form instruction when the field is split 13728c2ecf20Sopenharmony_ci into separate D0, D1 and D2 fields. */ 13738c2ecf20Sopenharmony_ci 13748c2ecf20Sopenharmony_cistatic unsigned long 13758c2ecf20Sopenharmony_ciinsert_dxd (unsigned long insn, 13768c2ecf20Sopenharmony_ci long value, 13778c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 13788c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 13798c2ecf20Sopenharmony_ci{ 13808c2ecf20Sopenharmony_ci return insn | (value & 0xffc1) | ((value & 0x3e) << 15); 13818c2ecf20Sopenharmony_ci} 13828c2ecf20Sopenharmony_ci 13838c2ecf20Sopenharmony_cistatic long 13848c2ecf20Sopenharmony_ciextract_dxd (unsigned long insn, 13858c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 13868c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 13878c2ecf20Sopenharmony_ci{ 13888c2ecf20Sopenharmony_ci unsigned long dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e); 13898c2ecf20Sopenharmony_ci return (dxd ^ 0x8000) - 0x8000; 13908c2ecf20Sopenharmony_ci} 13918c2ecf20Sopenharmony_ci 13928c2ecf20Sopenharmony_cistatic unsigned long 13938c2ecf20Sopenharmony_ciinsert_dxdn (unsigned long insn, 13948c2ecf20Sopenharmony_ci long value, 13958c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 13968c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 13978c2ecf20Sopenharmony_ci{ 13988c2ecf20Sopenharmony_ci return insert_dxd (insn, -value, dialect, errmsg); 13998c2ecf20Sopenharmony_ci} 14008c2ecf20Sopenharmony_ci 14018c2ecf20Sopenharmony_cistatic long 14028c2ecf20Sopenharmony_ciextract_dxdn (unsigned long insn, 14038c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 14048c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 14058c2ecf20Sopenharmony_ci{ 14068c2ecf20Sopenharmony_ci return -extract_dxd (insn, dialect, invalid); 14078c2ecf20Sopenharmony_ci} 14088c2ecf20Sopenharmony_ci 14098c2ecf20Sopenharmony_ci/* FXM mask in mfcr and mtcrf instructions. */ 14108c2ecf20Sopenharmony_ci 14118c2ecf20Sopenharmony_cistatic unsigned long 14128c2ecf20Sopenharmony_ciinsert_fxm (unsigned long insn, 14138c2ecf20Sopenharmony_ci long value, 14148c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 14158c2ecf20Sopenharmony_ci const char **errmsg) 14168c2ecf20Sopenharmony_ci{ 14178c2ecf20Sopenharmony_ci /* If we're handling the mfocrf and mtocrf insns ensure that exactly 14188c2ecf20Sopenharmony_ci one bit of the mask field is set. */ 14198c2ecf20Sopenharmony_ci if ((insn & (1 << 20)) != 0) 14208c2ecf20Sopenharmony_ci { 14218c2ecf20Sopenharmony_ci if (value == 0 || (value & -value) != value) 14228c2ecf20Sopenharmony_ci { 14238c2ecf20Sopenharmony_ci *errmsg = _("invalid mask field"); 14248c2ecf20Sopenharmony_ci value = 0; 14258c2ecf20Sopenharmony_ci } 14268c2ecf20Sopenharmony_ci } 14278c2ecf20Sopenharmony_ci 14288c2ecf20Sopenharmony_ci /* If only one bit of the FXM field is set, we can use the new form 14298c2ecf20Sopenharmony_ci of the instruction, which is faster. Unlike the Power4 branch hint 14308c2ecf20Sopenharmony_ci encoding, this is not backward compatible. Do not generate the 14318c2ecf20Sopenharmony_ci new form unless -mpower4 has been given, or -many and the two 14328c2ecf20Sopenharmony_ci operand form of mfcr was used. */ 14338c2ecf20Sopenharmony_ci else if (value > 0 14348c2ecf20Sopenharmony_ci && (value & -value) == value 14358c2ecf20Sopenharmony_ci && ((dialect & PPC_OPCODE_POWER4) != 0 14368c2ecf20Sopenharmony_ci || ((dialect & PPC_OPCODE_ANY) != 0 14378c2ecf20Sopenharmony_ci && (insn & (0x3ff << 1)) == 19 << 1))) 14388c2ecf20Sopenharmony_ci insn |= 1 << 20; 14398c2ecf20Sopenharmony_ci 14408c2ecf20Sopenharmony_ci /* Any other value on mfcr is an error. */ 14418c2ecf20Sopenharmony_ci else if ((insn & (0x3ff << 1)) == 19 << 1) 14428c2ecf20Sopenharmony_ci { 14438c2ecf20Sopenharmony_ci /* A value of -1 means we used the one operand form of 14448c2ecf20Sopenharmony_ci mfcr which is valid. */ 14458c2ecf20Sopenharmony_ci if (value != -1) 14468c2ecf20Sopenharmony_ci *errmsg = _("invalid mfcr mask"); 14478c2ecf20Sopenharmony_ci value = 0; 14488c2ecf20Sopenharmony_ci } 14498c2ecf20Sopenharmony_ci 14508c2ecf20Sopenharmony_ci return insn | ((value & 0xff) << 12); 14518c2ecf20Sopenharmony_ci} 14528c2ecf20Sopenharmony_ci 14538c2ecf20Sopenharmony_cistatic long 14548c2ecf20Sopenharmony_ciextract_fxm (unsigned long insn, 14558c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 14568c2ecf20Sopenharmony_ci int *invalid) 14578c2ecf20Sopenharmony_ci{ 14588c2ecf20Sopenharmony_ci long mask = (insn >> 12) & 0xff; 14598c2ecf20Sopenharmony_ci 14608c2ecf20Sopenharmony_ci /* Is this a Power4 insn? */ 14618c2ecf20Sopenharmony_ci if ((insn & (1 << 20)) != 0) 14628c2ecf20Sopenharmony_ci { 14638c2ecf20Sopenharmony_ci /* Exactly one bit of MASK should be set. */ 14648c2ecf20Sopenharmony_ci if (mask == 0 || (mask & -mask) != mask) 14658c2ecf20Sopenharmony_ci *invalid = 1; 14668c2ecf20Sopenharmony_ci } 14678c2ecf20Sopenharmony_ci 14688c2ecf20Sopenharmony_ci /* Check that non-power4 form of mfcr has a zero MASK. */ 14698c2ecf20Sopenharmony_ci else if ((insn & (0x3ff << 1)) == 19 << 1) 14708c2ecf20Sopenharmony_ci { 14718c2ecf20Sopenharmony_ci if (mask != 0) 14728c2ecf20Sopenharmony_ci *invalid = 1; 14738c2ecf20Sopenharmony_ci else 14748c2ecf20Sopenharmony_ci mask = -1; 14758c2ecf20Sopenharmony_ci } 14768c2ecf20Sopenharmony_ci 14778c2ecf20Sopenharmony_ci return mask; 14788c2ecf20Sopenharmony_ci} 14798c2ecf20Sopenharmony_ci 14808c2ecf20Sopenharmony_cistatic unsigned long 14818c2ecf20Sopenharmony_ciinsert_li20 (unsigned long insn, 14828c2ecf20Sopenharmony_ci long value, 14838c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 14848c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 14858c2ecf20Sopenharmony_ci{ 14868c2ecf20Sopenharmony_ci return insn | ((value & 0xf0000) >> 5) | ((value & 0x0f800) << 5) | (value & 0x7ff); 14878c2ecf20Sopenharmony_ci} 14888c2ecf20Sopenharmony_ci 14898c2ecf20Sopenharmony_cistatic long 14908c2ecf20Sopenharmony_ciextract_li20 (unsigned long insn, 14918c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 14928c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 14938c2ecf20Sopenharmony_ci{ 14948c2ecf20Sopenharmony_ci long ext = ((insn & 0x4000) == 0x4000) ? 0xfff00000 : 0x00000000; 14958c2ecf20Sopenharmony_ci 14968c2ecf20Sopenharmony_ci return ext 14978c2ecf20Sopenharmony_ci | (((insn >> 11) & 0xf) << 16) 14988c2ecf20Sopenharmony_ci | (((insn >> 17) & 0xf) << 12) 14998c2ecf20Sopenharmony_ci | (((insn >> 16) & 0x1) << 11) 15008c2ecf20Sopenharmony_ci | (insn & 0x7ff); 15018c2ecf20Sopenharmony_ci} 15028c2ecf20Sopenharmony_ci 15038c2ecf20Sopenharmony_ci/* The 2-bit L field in a SYNC or WC field in a WAIT instruction. 15048c2ecf20Sopenharmony_ci For SYNC, some L values are reserved: 15058c2ecf20Sopenharmony_ci * Value 3 is reserved on newer server cpus. 15068c2ecf20Sopenharmony_ci * Values 2 and 3 are reserved on all other cpus. */ 15078c2ecf20Sopenharmony_ci 15088c2ecf20Sopenharmony_cistatic unsigned long 15098c2ecf20Sopenharmony_ciinsert_ls (unsigned long insn, 15108c2ecf20Sopenharmony_ci long value, 15118c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 15128c2ecf20Sopenharmony_ci const char **errmsg) 15138c2ecf20Sopenharmony_ci{ 15148c2ecf20Sopenharmony_ci /* For SYNC, some L values are illegal. */ 15158c2ecf20Sopenharmony_ci if (((insn >> 1) & 0x3ff) == 598) 15168c2ecf20Sopenharmony_ci { 15178c2ecf20Sopenharmony_ci long max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1; 15188c2ecf20Sopenharmony_ci if (value > max_lvalue) 15198c2ecf20Sopenharmony_ci { 15208c2ecf20Sopenharmony_ci *errmsg = _("illegal L operand value"); 15218c2ecf20Sopenharmony_ci return insn; 15228c2ecf20Sopenharmony_ci } 15238c2ecf20Sopenharmony_ci } 15248c2ecf20Sopenharmony_ci 15258c2ecf20Sopenharmony_ci return insn | ((value & 0x3) << 21); 15268c2ecf20Sopenharmony_ci} 15278c2ecf20Sopenharmony_ci 15288c2ecf20Sopenharmony_ci/* The 4-bit E field in a sync instruction that accepts 2 operands. 15298c2ecf20Sopenharmony_ci If ESYNC is non-zero, then the L field must be either 0 or 1 and 15308c2ecf20Sopenharmony_ci the complement of ESYNC-bit2. */ 15318c2ecf20Sopenharmony_ci 15328c2ecf20Sopenharmony_cistatic unsigned long 15338c2ecf20Sopenharmony_ciinsert_esync (unsigned long insn, 15348c2ecf20Sopenharmony_ci long value, 15358c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 15368c2ecf20Sopenharmony_ci const char **errmsg) 15378c2ecf20Sopenharmony_ci{ 15388c2ecf20Sopenharmony_ci unsigned long ls = (insn >> 21) & 0x03; 15398c2ecf20Sopenharmony_ci 15408c2ecf20Sopenharmony_ci if (value == 0) 15418c2ecf20Sopenharmony_ci { 15428c2ecf20Sopenharmony_ci if (((dialect & PPC_OPCODE_E6500) != 0 && ls > 1) 15438c2ecf20Sopenharmony_ci || ((dialect & PPC_OPCODE_POWER9) != 0 && ls > 2)) 15448c2ecf20Sopenharmony_ci *errmsg = _("illegal L operand value"); 15458c2ecf20Sopenharmony_ci return insn; 15468c2ecf20Sopenharmony_ci } 15478c2ecf20Sopenharmony_ci 15488c2ecf20Sopenharmony_ci if ((ls & ~0x1) 15498c2ecf20Sopenharmony_ci || (((value >> 1) & 0x1) ^ ls) == 0) 15508c2ecf20Sopenharmony_ci *errmsg = _("incompatible L operand value"); 15518c2ecf20Sopenharmony_ci 15528c2ecf20Sopenharmony_ci return insn | ((value & 0xf) << 16); 15538c2ecf20Sopenharmony_ci} 15548c2ecf20Sopenharmony_ci 15558c2ecf20Sopenharmony_ci/* The MB and ME fields in an M form instruction expressed as a single 15568c2ecf20Sopenharmony_ci operand which is itself a bitmask. The extraction function always 15578c2ecf20Sopenharmony_ci marks it as invalid, since we never want to recognize an 15588c2ecf20Sopenharmony_ci instruction which uses a field of this type. */ 15598c2ecf20Sopenharmony_ci 15608c2ecf20Sopenharmony_cistatic unsigned long 15618c2ecf20Sopenharmony_ciinsert_mbe (unsigned long insn, 15628c2ecf20Sopenharmony_ci long value, 15638c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 15648c2ecf20Sopenharmony_ci const char **errmsg) 15658c2ecf20Sopenharmony_ci{ 15668c2ecf20Sopenharmony_ci unsigned long uval, mask; 15678c2ecf20Sopenharmony_ci int mb, me, mx, count, last; 15688c2ecf20Sopenharmony_ci 15698c2ecf20Sopenharmony_ci uval = value; 15708c2ecf20Sopenharmony_ci 15718c2ecf20Sopenharmony_ci if (uval == 0) 15728c2ecf20Sopenharmony_ci { 15738c2ecf20Sopenharmony_ci *errmsg = _("illegal bitmask"); 15748c2ecf20Sopenharmony_ci return insn; 15758c2ecf20Sopenharmony_ci } 15768c2ecf20Sopenharmony_ci 15778c2ecf20Sopenharmony_ci mb = 0; 15788c2ecf20Sopenharmony_ci me = 32; 15798c2ecf20Sopenharmony_ci if ((uval & 1) != 0) 15808c2ecf20Sopenharmony_ci last = 1; 15818c2ecf20Sopenharmony_ci else 15828c2ecf20Sopenharmony_ci last = 0; 15838c2ecf20Sopenharmony_ci count = 0; 15848c2ecf20Sopenharmony_ci 15858c2ecf20Sopenharmony_ci /* mb: location of last 0->1 transition */ 15868c2ecf20Sopenharmony_ci /* me: location of last 1->0 transition */ 15878c2ecf20Sopenharmony_ci /* count: # transitions */ 15888c2ecf20Sopenharmony_ci 15898c2ecf20Sopenharmony_ci for (mx = 0, mask = 1L << 31; mx < 32; ++mx, mask >>= 1) 15908c2ecf20Sopenharmony_ci { 15918c2ecf20Sopenharmony_ci if ((uval & mask) && !last) 15928c2ecf20Sopenharmony_ci { 15938c2ecf20Sopenharmony_ci ++count; 15948c2ecf20Sopenharmony_ci mb = mx; 15958c2ecf20Sopenharmony_ci last = 1; 15968c2ecf20Sopenharmony_ci } 15978c2ecf20Sopenharmony_ci else if (!(uval & mask) && last) 15988c2ecf20Sopenharmony_ci { 15998c2ecf20Sopenharmony_ci ++count; 16008c2ecf20Sopenharmony_ci me = mx; 16018c2ecf20Sopenharmony_ci last = 0; 16028c2ecf20Sopenharmony_ci } 16038c2ecf20Sopenharmony_ci } 16048c2ecf20Sopenharmony_ci if (me == 0) 16058c2ecf20Sopenharmony_ci me = 32; 16068c2ecf20Sopenharmony_ci 16078c2ecf20Sopenharmony_ci if (count != 2 && (count != 0 || ! last)) 16088c2ecf20Sopenharmony_ci *errmsg = _("illegal bitmask"); 16098c2ecf20Sopenharmony_ci 16108c2ecf20Sopenharmony_ci return insn | (mb << 6) | ((me - 1) << 1); 16118c2ecf20Sopenharmony_ci} 16128c2ecf20Sopenharmony_ci 16138c2ecf20Sopenharmony_cistatic long 16148c2ecf20Sopenharmony_ciextract_mbe (unsigned long insn, 16158c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 16168c2ecf20Sopenharmony_ci int *invalid) 16178c2ecf20Sopenharmony_ci{ 16188c2ecf20Sopenharmony_ci long ret; 16198c2ecf20Sopenharmony_ci int mb, me; 16208c2ecf20Sopenharmony_ci int i; 16218c2ecf20Sopenharmony_ci 16228c2ecf20Sopenharmony_ci *invalid = 1; 16238c2ecf20Sopenharmony_ci 16248c2ecf20Sopenharmony_ci mb = (insn >> 6) & 0x1f; 16258c2ecf20Sopenharmony_ci me = (insn >> 1) & 0x1f; 16268c2ecf20Sopenharmony_ci if (mb < me + 1) 16278c2ecf20Sopenharmony_ci { 16288c2ecf20Sopenharmony_ci ret = 0; 16298c2ecf20Sopenharmony_ci for (i = mb; i <= me; i++) 16308c2ecf20Sopenharmony_ci ret |= 1L << (31 - i); 16318c2ecf20Sopenharmony_ci } 16328c2ecf20Sopenharmony_ci else if (mb == me + 1) 16338c2ecf20Sopenharmony_ci ret = ~0; 16348c2ecf20Sopenharmony_ci else /* (mb > me + 1) */ 16358c2ecf20Sopenharmony_ci { 16368c2ecf20Sopenharmony_ci ret = ~0; 16378c2ecf20Sopenharmony_ci for (i = me + 1; i < mb; i++) 16388c2ecf20Sopenharmony_ci ret &= ~(1L << (31 - i)); 16398c2ecf20Sopenharmony_ci } 16408c2ecf20Sopenharmony_ci return ret; 16418c2ecf20Sopenharmony_ci} 16428c2ecf20Sopenharmony_ci 16438c2ecf20Sopenharmony_ci/* The MB or ME field in an MD or MDS form instruction. The high bit 16448c2ecf20Sopenharmony_ci is wrapped to the low end. */ 16458c2ecf20Sopenharmony_ci 16468c2ecf20Sopenharmony_cistatic unsigned long 16478c2ecf20Sopenharmony_ciinsert_mb6 (unsigned long insn, 16488c2ecf20Sopenharmony_ci long value, 16498c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 16508c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 16518c2ecf20Sopenharmony_ci{ 16528c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 6) | (value & 0x20); 16538c2ecf20Sopenharmony_ci} 16548c2ecf20Sopenharmony_ci 16558c2ecf20Sopenharmony_cistatic long 16568c2ecf20Sopenharmony_ciextract_mb6 (unsigned long insn, 16578c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 16588c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 16598c2ecf20Sopenharmony_ci{ 16608c2ecf20Sopenharmony_ci return ((insn >> 6) & 0x1f) | (insn & 0x20); 16618c2ecf20Sopenharmony_ci} 16628c2ecf20Sopenharmony_ci 16638c2ecf20Sopenharmony_ci/* The NB field in an X form instruction. The value 32 is stored as 16648c2ecf20Sopenharmony_ci 0. */ 16658c2ecf20Sopenharmony_ci 16668c2ecf20Sopenharmony_cistatic long 16678c2ecf20Sopenharmony_ciextract_nb (unsigned long insn, 16688c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 16698c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 16708c2ecf20Sopenharmony_ci{ 16718c2ecf20Sopenharmony_ci long ret; 16728c2ecf20Sopenharmony_ci 16738c2ecf20Sopenharmony_ci ret = (insn >> 11) & 0x1f; 16748c2ecf20Sopenharmony_ci if (ret == 0) 16758c2ecf20Sopenharmony_ci ret = 32; 16768c2ecf20Sopenharmony_ci return ret; 16778c2ecf20Sopenharmony_ci} 16788c2ecf20Sopenharmony_ci 16798c2ecf20Sopenharmony_ci/* The NB field in an lswi instruction, which has special value 16808c2ecf20Sopenharmony_ci restrictions. The value 32 is stored as 0. */ 16818c2ecf20Sopenharmony_ci 16828c2ecf20Sopenharmony_cistatic unsigned long 16838c2ecf20Sopenharmony_ciinsert_nbi (unsigned long insn, 16848c2ecf20Sopenharmony_ci long value, 16858c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 16868c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 16878c2ecf20Sopenharmony_ci{ 16888c2ecf20Sopenharmony_ci long rtvalue = (insn & RT_MASK) >> 21; 16898c2ecf20Sopenharmony_ci long ravalue = (insn & RA_MASK) >> 16; 16908c2ecf20Sopenharmony_ci 16918c2ecf20Sopenharmony_ci if (value == 0) 16928c2ecf20Sopenharmony_ci value = 32; 16938c2ecf20Sopenharmony_ci if (rtvalue + (value + 3) / 4 > (rtvalue > ravalue ? ravalue + 32 16948c2ecf20Sopenharmony_ci : ravalue)) 16958c2ecf20Sopenharmony_ci *errmsg = _("address register in load range"); 16968c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 11); 16978c2ecf20Sopenharmony_ci} 16988c2ecf20Sopenharmony_ci 16998c2ecf20Sopenharmony_ci/* The NSI field in a D form instruction. This is the same as the SI 17008c2ecf20Sopenharmony_ci field, only negated. The extraction function always marks it as 17018c2ecf20Sopenharmony_ci invalid, since we never want to recognize an instruction which uses 17028c2ecf20Sopenharmony_ci a field of this type. */ 17038c2ecf20Sopenharmony_ci 17048c2ecf20Sopenharmony_cistatic unsigned long 17058c2ecf20Sopenharmony_ciinsert_nsi (unsigned long insn, 17068c2ecf20Sopenharmony_ci long value, 17078c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 17088c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 17098c2ecf20Sopenharmony_ci{ 17108c2ecf20Sopenharmony_ci return insn | (-value & 0xffff); 17118c2ecf20Sopenharmony_ci} 17128c2ecf20Sopenharmony_ci 17138c2ecf20Sopenharmony_cistatic long 17148c2ecf20Sopenharmony_ciextract_nsi (unsigned long insn, 17158c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 17168c2ecf20Sopenharmony_ci int *invalid) 17178c2ecf20Sopenharmony_ci{ 17188c2ecf20Sopenharmony_ci *invalid = 1; 17198c2ecf20Sopenharmony_ci return -(((insn & 0xffff) ^ 0x8000) - 0x8000); 17208c2ecf20Sopenharmony_ci} 17218c2ecf20Sopenharmony_ci 17228c2ecf20Sopenharmony_ci/* The RA field in a D or X form instruction which is an updating 17238c2ecf20Sopenharmony_ci load, which means that the RA field may not be zero and may not 17248c2ecf20Sopenharmony_ci equal the RT field. */ 17258c2ecf20Sopenharmony_ci 17268c2ecf20Sopenharmony_cistatic unsigned long 17278c2ecf20Sopenharmony_ciinsert_ral (unsigned long insn, 17288c2ecf20Sopenharmony_ci long value, 17298c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 17308c2ecf20Sopenharmony_ci const char **errmsg) 17318c2ecf20Sopenharmony_ci{ 17328c2ecf20Sopenharmony_ci if (value == 0 17338c2ecf20Sopenharmony_ci || (unsigned long) value == ((insn >> 21) & 0x1f)) 17348c2ecf20Sopenharmony_ci *errmsg = "invalid register operand when updating"; 17358c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 16); 17368c2ecf20Sopenharmony_ci} 17378c2ecf20Sopenharmony_ci 17388c2ecf20Sopenharmony_ci/* The RA field in an lmw instruction, which has special value 17398c2ecf20Sopenharmony_ci restrictions. */ 17408c2ecf20Sopenharmony_ci 17418c2ecf20Sopenharmony_cistatic unsigned long 17428c2ecf20Sopenharmony_ciinsert_ram (unsigned long insn, 17438c2ecf20Sopenharmony_ci long value, 17448c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 17458c2ecf20Sopenharmony_ci const char **errmsg) 17468c2ecf20Sopenharmony_ci{ 17478c2ecf20Sopenharmony_ci if ((unsigned long) value >= ((insn >> 21) & 0x1f)) 17488c2ecf20Sopenharmony_ci *errmsg = _("index register in load range"); 17498c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 16); 17508c2ecf20Sopenharmony_ci} 17518c2ecf20Sopenharmony_ci 17528c2ecf20Sopenharmony_ci/* The RA field in the DQ form lq or an lswx instruction, which have special 17538c2ecf20Sopenharmony_ci value restrictions. */ 17548c2ecf20Sopenharmony_ci 17558c2ecf20Sopenharmony_cistatic unsigned long 17568c2ecf20Sopenharmony_ciinsert_raq (unsigned long insn, 17578c2ecf20Sopenharmony_ci long value, 17588c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 17598c2ecf20Sopenharmony_ci const char **errmsg) 17608c2ecf20Sopenharmony_ci{ 17618c2ecf20Sopenharmony_ci long rtvalue = (insn & RT_MASK) >> 21; 17628c2ecf20Sopenharmony_ci 17638c2ecf20Sopenharmony_ci if (value == rtvalue) 17648c2ecf20Sopenharmony_ci *errmsg = _("source and target register operands must be different"); 17658c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 16); 17668c2ecf20Sopenharmony_ci} 17678c2ecf20Sopenharmony_ci 17688c2ecf20Sopenharmony_ci/* The RA field in a D or X form instruction which is an updating 17698c2ecf20Sopenharmony_ci store or an updating floating point load, which means that the RA 17708c2ecf20Sopenharmony_ci field may not be zero. */ 17718c2ecf20Sopenharmony_ci 17728c2ecf20Sopenharmony_cistatic unsigned long 17738c2ecf20Sopenharmony_ciinsert_ras (unsigned long insn, 17748c2ecf20Sopenharmony_ci long value, 17758c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 17768c2ecf20Sopenharmony_ci const char **errmsg) 17778c2ecf20Sopenharmony_ci{ 17788c2ecf20Sopenharmony_ci if (value == 0) 17798c2ecf20Sopenharmony_ci *errmsg = _("invalid register operand when updating"); 17808c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 16); 17818c2ecf20Sopenharmony_ci} 17828c2ecf20Sopenharmony_ci 17838c2ecf20Sopenharmony_ci/* The RB field in an X form instruction when it must be the same as 17848c2ecf20Sopenharmony_ci the RS field in the instruction. This is used for extended 17858c2ecf20Sopenharmony_ci mnemonics like mr. This operand is marked FAKE. The insertion 17868c2ecf20Sopenharmony_ci function just copies the BT field into the BA field, and the 17878c2ecf20Sopenharmony_ci extraction function just checks that the fields are the same. */ 17888c2ecf20Sopenharmony_ci 17898c2ecf20Sopenharmony_cistatic unsigned long 17908c2ecf20Sopenharmony_ciinsert_rbs (unsigned long insn, 17918c2ecf20Sopenharmony_ci long value ATTRIBUTE_UNUSED, 17928c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 17938c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 17948c2ecf20Sopenharmony_ci{ 17958c2ecf20Sopenharmony_ci return insn | (((insn >> 21) & 0x1f) << 11); 17968c2ecf20Sopenharmony_ci} 17978c2ecf20Sopenharmony_ci 17988c2ecf20Sopenharmony_cistatic long 17998c2ecf20Sopenharmony_ciextract_rbs (unsigned long insn, 18008c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 18018c2ecf20Sopenharmony_ci int *invalid) 18028c2ecf20Sopenharmony_ci{ 18038c2ecf20Sopenharmony_ci if (((insn >> 21) & 0x1f) != ((insn >> 11) & 0x1f)) 18048c2ecf20Sopenharmony_ci *invalid = 1; 18058c2ecf20Sopenharmony_ci return 0; 18068c2ecf20Sopenharmony_ci} 18078c2ecf20Sopenharmony_ci 18088c2ecf20Sopenharmony_ci/* The RB field in an lswx instruction, which has special value 18098c2ecf20Sopenharmony_ci restrictions. */ 18108c2ecf20Sopenharmony_ci 18118c2ecf20Sopenharmony_cistatic unsigned long 18128c2ecf20Sopenharmony_ciinsert_rbx (unsigned long insn, 18138c2ecf20Sopenharmony_ci long value, 18148c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 18158c2ecf20Sopenharmony_ci const char **errmsg) 18168c2ecf20Sopenharmony_ci{ 18178c2ecf20Sopenharmony_ci long rtvalue = (insn & RT_MASK) >> 21; 18188c2ecf20Sopenharmony_ci 18198c2ecf20Sopenharmony_ci if (value == rtvalue) 18208c2ecf20Sopenharmony_ci *errmsg = _("source and target register operands must be different"); 18218c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 11); 18228c2ecf20Sopenharmony_ci} 18238c2ecf20Sopenharmony_ci 18248c2ecf20Sopenharmony_ci/* The SCI8 field is made up of SCL and {U,N}I8 fields. */ 18258c2ecf20Sopenharmony_cistatic unsigned long 18268c2ecf20Sopenharmony_ciinsert_sci8 (unsigned long insn, 18278c2ecf20Sopenharmony_ci long value, 18288c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 18298c2ecf20Sopenharmony_ci const char **errmsg) 18308c2ecf20Sopenharmony_ci{ 18318c2ecf20Sopenharmony_ci unsigned int fill_scale = 0; 18328c2ecf20Sopenharmony_ci unsigned long ui8 = value; 18338c2ecf20Sopenharmony_ci 18348c2ecf20Sopenharmony_ci if ((ui8 & 0xffffff00) == 0) 18358c2ecf20Sopenharmony_ci ; 18368c2ecf20Sopenharmony_ci else if ((ui8 & 0xffffff00) == 0xffffff00) 18378c2ecf20Sopenharmony_ci fill_scale = 0x400; 18388c2ecf20Sopenharmony_ci else if ((ui8 & 0xffff00ff) == 0) 18398c2ecf20Sopenharmony_ci { 18408c2ecf20Sopenharmony_ci fill_scale = 1 << 8; 18418c2ecf20Sopenharmony_ci ui8 >>= 8; 18428c2ecf20Sopenharmony_ci } 18438c2ecf20Sopenharmony_ci else if ((ui8 & 0xffff00ff) == 0xffff00ff) 18448c2ecf20Sopenharmony_ci { 18458c2ecf20Sopenharmony_ci fill_scale = 0x400 | (1 << 8); 18468c2ecf20Sopenharmony_ci ui8 >>= 8; 18478c2ecf20Sopenharmony_ci } 18488c2ecf20Sopenharmony_ci else if ((ui8 & 0xff00ffff) == 0) 18498c2ecf20Sopenharmony_ci { 18508c2ecf20Sopenharmony_ci fill_scale = 2 << 8; 18518c2ecf20Sopenharmony_ci ui8 >>= 16; 18528c2ecf20Sopenharmony_ci } 18538c2ecf20Sopenharmony_ci else if ((ui8 & 0xff00ffff) == 0xff00ffff) 18548c2ecf20Sopenharmony_ci { 18558c2ecf20Sopenharmony_ci fill_scale = 0x400 | (2 << 8); 18568c2ecf20Sopenharmony_ci ui8 >>= 16; 18578c2ecf20Sopenharmony_ci } 18588c2ecf20Sopenharmony_ci else if ((ui8 & 0x00ffffff) == 0) 18598c2ecf20Sopenharmony_ci { 18608c2ecf20Sopenharmony_ci fill_scale = 3 << 8; 18618c2ecf20Sopenharmony_ci ui8 >>= 24; 18628c2ecf20Sopenharmony_ci } 18638c2ecf20Sopenharmony_ci else if ((ui8 & 0x00ffffff) == 0x00ffffff) 18648c2ecf20Sopenharmony_ci { 18658c2ecf20Sopenharmony_ci fill_scale = 0x400 | (3 << 8); 18668c2ecf20Sopenharmony_ci ui8 >>= 24; 18678c2ecf20Sopenharmony_ci } 18688c2ecf20Sopenharmony_ci else 18698c2ecf20Sopenharmony_ci { 18708c2ecf20Sopenharmony_ci *errmsg = _("illegal immediate value"); 18718c2ecf20Sopenharmony_ci ui8 = 0; 18728c2ecf20Sopenharmony_ci } 18738c2ecf20Sopenharmony_ci 18748c2ecf20Sopenharmony_ci return insn | fill_scale | (ui8 & 0xff); 18758c2ecf20Sopenharmony_ci} 18768c2ecf20Sopenharmony_ci 18778c2ecf20Sopenharmony_cistatic long 18788c2ecf20Sopenharmony_ciextract_sci8 (unsigned long insn, 18798c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 18808c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 18818c2ecf20Sopenharmony_ci{ 18828c2ecf20Sopenharmony_ci int fill = insn & 0x400; 18838c2ecf20Sopenharmony_ci int scale_factor = (insn & 0x300) >> 5; 18848c2ecf20Sopenharmony_ci long value = (insn & 0xff) << scale_factor; 18858c2ecf20Sopenharmony_ci 18868c2ecf20Sopenharmony_ci if (fill != 0) 18878c2ecf20Sopenharmony_ci value |= ~((long) 0xff << scale_factor); 18888c2ecf20Sopenharmony_ci return value; 18898c2ecf20Sopenharmony_ci} 18908c2ecf20Sopenharmony_ci 18918c2ecf20Sopenharmony_cistatic unsigned long 18928c2ecf20Sopenharmony_ciinsert_sci8n (unsigned long insn, 18938c2ecf20Sopenharmony_ci long value, 18948c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 18958c2ecf20Sopenharmony_ci const char **errmsg) 18968c2ecf20Sopenharmony_ci{ 18978c2ecf20Sopenharmony_ci return insert_sci8 (insn, -value, dialect, errmsg); 18988c2ecf20Sopenharmony_ci} 18998c2ecf20Sopenharmony_ci 19008c2ecf20Sopenharmony_cistatic long 19018c2ecf20Sopenharmony_ciextract_sci8n (unsigned long insn, 19028c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 19038c2ecf20Sopenharmony_ci int *invalid) 19048c2ecf20Sopenharmony_ci{ 19058c2ecf20Sopenharmony_ci return -extract_sci8 (insn, dialect, invalid); 19068c2ecf20Sopenharmony_ci} 19078c2ecf20Sopenharmony_ci 19088c2ecf20Sopenharmony_cistatic unsigned long 19098c2ecf20Sopenharmony_ciinsert_sd4h (unsigned long insn, 19108c2ecf20Sopenharmony_ci long value, 19118c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 19128c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 19138c2ecf20Sopenharmony_ci{ 19148c2ecf20Sopenharmony_ci return insn | ((value & 0x1e) << 7); 19158c2ecf20Sopenharmony_ci} 19168c2ecf20Sopenharmony_ci 19178c2ecf20Sopenharmony_cistatic long 19188c2ecf20Sopenharmony_ciextract_sd4h (unsigned long insn, 19198c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 19208c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 19218c2ecf20Sopenharmony_ci{ 19228c2ecf20Sopenharmony_ci return ((insn >> 8) & 0xf) << 1; 19238c2ecf20Sopenharmony_ci} 19248c2ecf20Sopenharmony_ci 19258c2ecf20Sopenharmony_cistatic unsigned long 19268c2ecf20Sopenharmony_ciinsert_sd4w (unsigned long insn, 19278c2ecf20Sopenharmony_ci long value, 19288c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 19298c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 19308c2ecf20Sopenharmony_ci{ 19318c2ecf20Sopenharmony_ci return insn | ((value & 0x3c) << 6); 19328c2ecf20Sopenharmony_ci} 19338c2ecf20Sopenharmony_ci 19348c2ecf20Sopenharmony_cistatic long 19358c2ecf20Sopenharmony_ciextract_sd4w (unsigned long insn, 19368c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 19378c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 19388c2ecf20Sopenharmony_ci{ 19398c2ecf20Sopenharmony_ci return ((insn >> 8) & 0xf) << 2; 19408c2ecf20Sopenharmony_ci} 19418c2ecf20Sopenharmony_ci 19428c2ecf20Sopenharmony_cistatic unsigned long 19438c2ecf20Sopenharmony_ciinsert_oimm (unsigned long insn, 19448c2ecf20Sopenharmony_ci long value, 19458c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 19468c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 19478c2ecf20Sopenharmony_ci{ 19488c2ecf20Sopenharmony_ci return insn | (((value - 1) & 0x1f) << 4); 19498c2ecf20Sopenharmony_ci} 19508c2ecf20Sopenharmony_ci 19518c2ecf20Sopenharmony_cistatic long 19528c2ecf20Sopenharmony_ciextract_oimm (unsigned long insn, 19538c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 19548c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 19558c2ecf20Sopenharmony_ci{ 19568c2ecf20Sopenharmony_ci return ((insn >> 4) & 0x1f) + 1; 19578c2ecf20Sopenharmony_ci} 19588c2ecf20Sopenharmony_ci 19598c2ecf20Sopenharmony_ci/* The SH field in an MD form instruction. This is split. */ 19608c2ecf20Sopenharmony_ci 19618c2ecf20Sopenharmony_cistatic unsigned long 19628c2ecf20Sopenharmony_ciinsert_sh6 (unsigned long insn, 19638c2ecf20Sopenharmony_ci long value, 19648c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 19658c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 19668c2ecf20Sopenharmony_ci{ 19678c2ecf20Sopenharmony_ci /* SH6 operand in the rldixor instructions. */ 19688c2ecf20Sopenharmony_ci if (PPC_OP (insn) == 4) 19698c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 5); 19708c2ecf20Sopenharmony_ci else 19718c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4); 19728c2ecf20Sopenharmony_ci} 19738c2ecf20Sopenharmony_ci 19748c2ecf20Sopenharmony_cistatic long 19758c2ecf20Sopenharmony_ciextract_sh6 (unsigned long insn, 19768c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 19778c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 19788c2ecf20Sopenharmony_ci{ 19798c2ecf20Sopenharmony_ci /* SH6 operand in the rldixor instructions. */ 19808c2ecf20Sopenharmony_ci if (PPC_OP (insn) == 4) 19818c2ecf20Sopenharmony_ci return ((insn >> 6) & 0x1f) | ((insn << 5) & 0x20); 19828c2ecf20Sopenharmony_ci else 19838c2ecf20Sopenharmony_ci return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20); 19848c2ecf20Sopenharmony_ci} 19858c2ecf20Sopenharmony_ci 19868c2ecf20Sopenharmony_ci/* The SPR field in an XFX form instruction. This is flipped--the 19878c2ecf20Sopenharmony_ci lower 5 bits are stored in the upper 5 and vice- versa. */ 19888c2ecf20Sopenharmony_ci 19898c2ecf20Sopenharmony_cistatic unsigned long 19908c2ecf20Sopenharmony_ciinsert_spr (unsigned long insn, 19918c2ecf20Sopenharmony_ci long value, 19928c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 19938c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 19948c2ecf20Sopenharmony_ci{ 19958c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6); 19968c2ecf20Sopenharmony_ci} 19978c2ecf20Sopenharmony_ci 19988c2ecf20Sopenharmony_cistatic long 19998c2ecf20Sopenharmony_ciextract_spr (unsigned long insn, 20008c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 20018c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 20028c2ecf20Sopenharmony_ci{ 20038c2ecf20Sopenharmony_ci return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0); 20048c2ecf20Sopenharmony_ci} 20058c2ecf20Sopenharmony_ci 20068c2ecf20Sopenharmony_ci/* Some dialects have 8 SPRG registers instead of the standard 4. */ 20078c2ecf20Sopenharmony_ci#define ALLOW8_SPRG (PPC_OPCODE_BOOKE | PPC_OPCODE_405) 20088c2ecf20Sopenharmony_ci 20098c2ecf20Sopenharmony_cistatic unsigned long 20108c2ecf20Sopenharmony_ciinsert_sprg (unsigned long insn, 20118c2ecf20Sopenharmony_ci long value, 20128c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 20138c2ecf20Sopenharmony_ci const char **errmsg) 20148c2ecf20Sopenharmony_ci{ 20158c2ecf20Sopenharmony_ci if (value > 7 20168c2ecf20Sopenharmony_ci || (value > 3 && (dialect & ALLOW8_SPRG) == 0)) 20178c2ecf20Sopenharmony_ci *errmsg = _("invalid sprg number"); 20188c2ecf20Sopenharmony_ci 20198c2ecf20Sopenharmony_ci /* If this is mfsprg4..7 then use spr 260..263 which can be read in 20208c2ecf20Sopenharmony_ci user mode. Anything else must use spr 272..279. */ 20218c2ecf20Sopenharmony_ci if (value <= 3 || (insn & 0x100) != 0) 20228c2ecf20Sopenharmony_ci value |= 0x10; 20238c2ecf20Sopenharmony_ci 20248c2ecf20Sopenharmony_ci return insn | ((value & 0x17) << 16); 20258c2ecf20Sopenharmony_ci} 20268c2ecf20Sopenharmony_ci 20278c2ecf20Sopenharmony_cistatic long 20288c2ecf20Sopenharmony_ciextract_sprg (unsigned long insn, 20298c2ecf20Sopenharmony_ci ppc_cpu_t dialect, 20308c2ecf20Sopenharmony_ci int *invalid) 20318c2ecf20Sopenharmony_ci{ 20328c2ecf20Sopenharmony_ci unsigned long val = (insn >> 16) & 0x1f; 20338c2ecf20Sopenharmony_ci 20348c2ecf20Sopenharmony_ci /* mfsprg can use 260..263 and 272..279. mtsprg only uses spr 272..279 20358c2ecf20Sopenharmony_ci If not BOOKE, 405 or VLE, then both use only 272..275. */ 20368c2ecf20Sopenharmony_ci if ((val - 0x10 > 3 && (dialect & ALLOW8_SPRG) == 0) 20378c2ecf20Sopenharmony_ci || (val - 0x10 > 7 && (insn & 0x100) != 0) 20388c2ecf20Sopenharmony_ci || val <= 3 20398c2ecf20Sopenharmony_ci || (val & 8) != 0) 20408c2ecf20Sopenharmony_ci *invalid = 1; 20418c2ecf20Sopenharmony_ci return val & 7; 20428c2ecf20Sopenharmony_ci} 20438c2ecf20Sopenharmony_ci 20448c2ecf20Sopenharmony_ci/* The TBR field in an XFX instruction. This is just like SPR, but it 20458c2ecf20Sopenharmony_ci is optional. */ 20468c2ecf20Sopenharmony_ci 20478c2ecf20Sopenharmony_cistatic unsigned long 20488c2ecf20Sopenharmony_ciinsert_tbr (unsigned long insn, 20498c2ecf20Sopenharmony_ci long value, 20508c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 20518c2ecf20Sopenharmony_ci const char **errmsg) 20528c2ecf20Sopenharmony_ci{ 20538c2ecf20Sopenharmony_ci if (value != 268 && value != 269) 20548c2ecf20Sopenharmony_ci *errmsg = _("invalid tbr number"); 20558c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6); 20568c2ecf20Sopenharmony_ci} 20578c2ecf20Sopenharmony_ci 20588c2ecf20Sopenharmony_cistatic long 20598c2ecf20Sopenharmony_ciextract_tbr (unsigned long insn, 20608c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 20618c2ecf20Sopenharmony_ci int *invalid) 20628c2ecf20Sopenharmony_ci{ 20638c2ecf20Sopenharmony_ci long ret; 20648c2ecf20Sopenharmony_ci 20658c2ecf20Sopenharmony_ci ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0); 20668c2ecf20Sopenharmony_ci if (ret != 268 && ret != 269) 20678c2ecf20Sopenharmony_ci *invalid = 1; 20688c2ecf20Sopenharmony_ci return ret; 20698c2ecf20Sopenharmony_ci} 20708c2ecf20Sopenharmony_ci 20718c2ecf20Sopenharmony_ci/* The XT and XS fields in an XX1 or XX3 form instruction. This is split. */ 20728c2ecf20Sopenharmony_ci 20738c2ecf20Sopenharmony_cistatic unsigned long 20748c2ecf20Sopenharmony_ciinsert_xt6 (unsigned long insn, 20758c2ecf20Sopenharmony_ci long value, 20768c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 20778c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 20788c2ecf20Sopenharmony_ci{ 20798c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5); 20808c2ecf20Sopenharmony_ci} 20818c2ecf20Sopenharmony_ci 20828c2ecf20Sopenharmony_cistatic long 20838c2ecf20Sopenharmony_ciextract_xt6 (unsigned long insn, 20848c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 20858c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 20868c2ecf20Sopenharmony_ci{ 20878c2ecf20Sopenharmony_ci return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f); 20888c2ecf20Sopenharmony_ci} 20898c2ecf20Sopenharmony_ci 20908c2ecf20Sopenharmony_ci/* The XT and XS fields in an DQ form VSX instruction. This is split. */ 20918c2ecf20Sopenharmony_cistatic unsigned long 20928c2ecf20Sopenharmony_ciinsert_xtq6 (unsigned long insn, 20938c2ecf20Sopenharmony_ci long value, 20948c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 20958c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 20968c2ecf20Sopenharmony_ci{ 20978c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2); 20988c2ecf20Sopenharmony_ci} 20998c2ecf20Sopenharmony_ci 21008c2ecf20Sopenharmony_cistatic long 21018c2ecf20Sopenharmony_ciextract_xtq6 (unsigned long insn, 21028c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 21038c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 21048c2ecf20Sopenharmony_ci{ 21058c2ecf20Sopenharmony_ci return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f); 21068c2ecf20Sopenharmony_ci} 21078c2ecf20Sopenharmony_ci 21088c2ecf20Sopenharmony_ci/* The XA field in an XX3 form instruction. This is split. */ 21098c2ecf20Sopenharmony_ci 21108c2ecf20Sopenharmony_cistatic unsigned long 21118c2ecf20Sopenharmony_ciinsert_xa6 (unsigned long insn, 21128c2ecf20Sopenharmony_ci long value, 21138c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 21148c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 21158c2ecf20Sopenharmony_ci{ 21168c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3); 21178c2ecf20Sopenharmony_ci} 21188c2ecf20Sopenharmony_ci 21198c2ecf20Sopenharmony_cistatic long 21208c2ecf20Sopenharmony_ciextract_xa6 (unsigned long insn, 21218c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 21228c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 21238c2ecf20Sopenharmony_ci{ 21248c2ecf20Sopenharmony_ci return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f); 21258c2ecf20Sopenharmony_ci} 21268c2ecf20Sopenharmony_ci 21278c2ecf20Sopenharmony_ci/* The XB field in an XX3 form instruction. This is split. */ 21288c2ecf20Sopenharmony_ci 21298c2ecf20Sopenharmony_cistatic unsigned long 21308c2ecf20Sopenharmony_ciinsert_xb6 (unsigned long insn, 21318c2ecf20Sopenharmony_ci long value, 21328c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 21338c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 21348c2ecf20Sopenharmony_ci{ 21358c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4); 21368c2ecf20Sopenharmony_ci} 21378c2ecf20Sopenharmony_ci 21388c2ecf20Sopenharmony_cistatic long 21398c2ecf20Sopenharmony_ciextract_xb6 (unsigned long insn, 21408c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 21418c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 21428c2ecf20Sopenharmony_ci{ 21438c2ecf20Sopenharmony_ci return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f); 21448c2ecf20Sopenharmony_ci} 21458c2ecf20Sopenharmony_ci 21468c2ecf20Sopenharmony_ci/* The XB field in an XX3 form instruction when it must be the same as 21478c2ecf20Sopenharmony_ci the XA field in the instruction. This is used for extended 21488c2ecf20Sopenharmony_ci mnemonics like xvmovdp. This operand is marked FAKE. The insertion 21498c2ecf20Sopenharmony_ci function just copies the XA field into the XB field, and the 21508c2ecf20Sopenharmony_ci extraction function just checks that the fields are the same. */ 21518c2ecf20Sopenharmony_ci 21528c2ecf20Sopenharmony_cistatic unsigned long 21538c2ecf20Sopenharmony_ciinsert_xb6s (unsigned long insn, 21548c2ecf20Sopenharmony_ci long value ATTRIBUTE_UNUSED, 21558c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 21568c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 21578c2ecf20Sopenharmony_ci{ 21588c2ecf20Sopenharmony_ci return insn | (((insn >> 16) & 0x1f) << 11) | (((insn >> 2) & 0x1) << 1); 21598c2ecf20Sopenharmony_ci} 21608c2ecf20Sopenharmony_ci 21618c2ecf20Sopenharmony_cistatic long 21628c2ecf20Sopenharmony_ciextract_xb6s (unsigned long insn, 21638c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 21648c2ecf20Sopenharmony_ci int *invalid) 21658c2ecf20Sopenharmony_ci{ 21668c2ecf20Sopenharmony_ci if ((((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f)) 21678c2ecf20Sopenharmony_ci || (((insn >> 2) & 0x1) != ((insn >> 1) & 0x1))) 21688c2ecf20Sopenharmony_ci *invalid = 1; 21698c2ecf20Sopenharmony_ci return 0; 21708c2ecf20Sopenharmony_ci} 21718c2ecf20Sopenharmony_ci 21728c2ecf20Sopenharmony_ci/* The XC field in an XX4 form instruction. This is split. */ 21738c2ecf20Sopenharmony_ci 21748c2ecf20Sopenharmony_cistatic unsigned long 21758c2ecf20Sopenharmony_ciinsert_xc6 (unsigned long insn, 21768c2ecf20Sopenharmony_ci long value, 21778c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 21788c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 21798c2ecf20Sopenharmony_ci{ 21808c2ecf20Sopenharmony_ci return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2); 21818c2ecf20Sopenharmony_ci} 21828c2ecf20Sopenharmony_ci 21838c2ecf20Sopenharmony_cistatic long 21848c2ecf20Sopenharmony_ciextract_xc6 (unsigned long insn, 21858c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 21868c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 21878c2ecf20Sopenharmony_ci{ 21888c2ecf20Sopenharmony_ci return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f); 21898c2ecf20Sopenharmony_ci} 21908c2ecf20Sopenharmony_ci 21918c2ecf20Sopenharmony_cistatic unsigned long 21928c2ecf20Sopenharmony_ciinsert_dm (unsigned long insn, 21938c2ecf20Sopenharmony_ci long value, 21948c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 21958c2ecf20Sopenharmony_ci const char **errmsg) 21968c2ecf20Sopenharmony_ci{ 21978c2ecf20Sopenharmony_ci if (value != 0 && value != 1) 21988c2ecf20Sopenharmony_ci *errmsg = _("invalid constant"); 21998c2ecf20Sopenharmony_ci return insn | (((value) ? 3 : 0) << 8); 22008c2ecf20Sopenharmony_ci} 22018c2ecf20Sopenharmony_ci 22028c2ecf20Sopenharmony_cistatic long 22038c2ecf20Sopenharmony_ciextract_dm (unsigned long insn, 22048c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 22058c2ecf20Sopenharmony_ci int *invalid) 22068c2ecf20Sopenharmony_ci{ 22078c2ecf20Sopenharmony_ci long value; 22088c2ecf20Sopenharmony_ci 22098c2ecf20Sopenharmony_ci value = (insn >> 8) & 3; 22108c2ecf20Sopenharmony_ci if (value != 0 && value != 3) 22118c2ecf20Sopenharmony_ci *invalid = 1; 22128c2ecf20Sopenharmony_ci return (value) ? 1 : 0; 22138c2ecf20Sopenharmony_ci} 22148c2ecf20Sopenharmony_ci 22158c2ecf20Sopenharmony_ci/* The VLESIMM field in an I16A form instruction. This is split. */ 22168c2ecf20Sopenharmony_ci 22178c2ecf20Sopenharmony_cistatic unsigned long 22188c2ecf20Sopenharmony_ciinsert_vlesi (unsigned long insn, 22198c2ecf20Sopenharmony_ci long value, 22208c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 22218c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 22228c2ecf20Sopenharmony_ci{ 22238c2ecf20Sopenharmony_ci return insn | ((value & 0xf800) << 10) | (value & 0x7ff); 22248c2ecf20Sopenharmony_ci} 22258c2ecf20Sopenharmony_ci 22268c2ecf20Sopenharmony_cistatic long 22278c2ecf20Sopenharmony_ciextract_vlesi (unsigned long insn, 22288c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 22298c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 22308c2ecf20Sopenharmony_ci{ 22318c2ecf20Sopenharmony_ci long value = ((insn >> 10) & 0xf800) | (insn & 0x7ff); 22328c2ecf20Sopenharmony_ci value = (value ^ 0x8000) - 0x8000; 22338c2ecf20Sopenharmony_ci return value; 22348c2ecf20Sopenharmony_ci} 22358c2ecf20Sopenharmony_ci 22368c2ecf20Sopenharmony_cistatic unsigned long 22378c2ecf20Sopenharmony_ciinsert_vlensi (unsigned long insn, 22388c2ecf20Sopenharmony_ci long value, 22398c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 22408c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 22418c2ecf20Sopenharmony_ci{ 22428c2ecf20Sopenharmony_ci value = -value; 22438c2ecf20Sopenharmony_ci return insn | ((value & 0xf800) << 10) | (value & 0x7ff); 22448c2ecf20Sopenharmony_ci} 22458c2ecf20Sopenharmony_cistatic long 22468c2ecf20Sopenharmony_ciextract_vlensi (unsigned long insn, 22478c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 22488c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 22498c2ecf20Sopenharmony_ci{ 22508c2ecf20Sopenharmony_ci long value = ((insn >> 10) & 0xf800) | (insn & 0x7ff); 22518c2ecf20Sopenharmony_ci value = (value ^ 0x8000) - 0x8000; 22528c2ecf20Sopenharmony_ci /* Don't use for disassembly. */ 22538c2ecf20Sopenharmony_ci *invalid = 1; 22548c2ecf20Sopenharmony_ci return -value; 22558c2ecf20Sopenharmony_ci} 22568c2ecf20Sopenharmony_ci 22578c2ecf20Sopenharmony_ci/* The VLEUIMM field in an I16A form instruction. This is split. */ 22588c2ecf20Sopenharmony_ci 22598c2ecf20Sopenharmony_cistatic unsigned long 22608c2ecf20Sopenharmony_ciinsert_vleui (unsigned long insn, 22618c2ecf20Sopenharmony_ci long value, 22628c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 22638c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 22648c2ecf20Sopenharmony_ci{ 22658c2ecf20Sopenharmony_ci return insn | ((value & 0xf800) << 10) | (value & 0x7ff); 22668c2ecf20Sopenharmony_ci} 22678c2ecf20Sopenharmony_ci 22688c2ecf20Sopenharmony_cistatic long 22698c2ecf20Sopenharmony_ciextract_vleui (unsigned long insn, 22708c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 22718c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 22728c2ecf20Sopenharmony_ci{ 22738c2ecf20Sopenharmony_ci return ((insn >> 10) & 0xf800) | (insn & 0x7ff); 22748c2ecf20Sopenharmony_ci} 22758c2ecf20Sopenharmony_ci 22768c2ecf20Sopenharmony_ci/* The VLEUIMML field in an I16L form instruction. This is split. */ 22778c2ecf20Sopenharmony_ci 22788c2ecf20Sopenharmony_cistatic unsigned long 22798c2ecf20Sopenharmony_ciinsert_vleil (unsigned long insn, 22808c2ecf20Sopenharmony_ci long value, 22818c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 22828c2ecf20Sopenharmony_ci const char **errmsg ATTRIBUTE_UNUSED) 22838c2ecf20Sopenharmony_ci{ 22848c2ecf20Sopenharmony_ci return insn | ((value & 0xf800) << 5) | (value & 0x7ff); 22858c2ecf20Sopenharmony_ci} 22868c2ecf20Sopenharmony_ci 22878c2ecf20Sopenharmony_cistatic long 22888c2ecf20Sopenharmony_ciextract_vleil (unsigned long insn, 22898c2ecf20Sopenharmony_ci ppc_cpu_t dialect ATTRIBUTE_UNUSED, 22908c2ecf20Sopenharmony_ci int *invalid ATTRIBUTE_UNUSED) 22918c2ecf20Sopenharmony_ci{ 22928c2ecf20Sopenharmony_ci return ((insn >> 5) & 0xf800) | (insn & 0x7ff); 22938c2ecf20Sopenharmony_ci} 22948c2ecf20Sopenharmony_ci 22958c2ecf20Sopenharmony_ci 22968c2ecf20Sopenharmony_ci/* Macros used to form opcodes. */ 22978c2ecf20Sopenharmony_ci 22988c2ecf20Sopenharmony_ci/* The main opcode. */ 22998c2ecf20Sopenharmony_ci#define OP(x) ((((unsigned long)(x)) & 0x3f) << 26) 23008c2ecf20Sopenharmony_ci#define OP_MASK OP (0x3f) 23018c2ecf20Sopenharmony_ci 23028c2ecf20Sopenharmony_ci/* The main opcode combined with a trap code in the TO field of a D 23038c2ecf20Sopenharmony_ci form instruction. Used for extended mnemonics for the trap 23048c2ecf20Sopenharmony_ci instructions. */ 23058c2ecf20Sopenharmony_ci#define OPTO(x,to) (OP (x) | ((((unsigned long)(to)) & 0x1f) << 21)) 23068c2ecf20Sopenharmony_ci#define OPTO_MASK (OP_MASK | TO_MASK) 23078c2ecf20Sopenharmony_ci 23088c2ecf20Sopenharmony_ci/* The main opcode combined with a comparison size bit in the L field 23098c2ecf20Sopenharmony_ci of a D form or X form instruction. Used for extended mnemonics for 23108c2ecf20Sopenharmony_ci the comparison instructions. */ 23118c2ecf20Sopenharmony_ci#define OPL(x,l) (OP (x) | ((((unsigned long)(l)) & 1) << 21)) 23128c2ecf20Sopenharmony_ci#define OPL_MASK OPL (0x3f,1) 23138c2ecf20Sopenharmony_ci 23148c2ecf20Sopenharmony_ci/* The main opcode combined with an update code in D form instruction. 23158c2ecf20Sopenharmony_ci Used for extended mnemonics for VLE memory instructions. */ 23168c2ecf20Sopenharmony_ci#define OPVUP(x,vup) (OP (x) | ((((unsigned long)(vup)) & 0xff) << 8)) 23178c2ecf20Sopenharmony_ci#define OPVUP_MASK OPVUP (0x3f, 0xff) 23188c2ecf20Sopenharmony_ci 23198c2ecf20Sopenharmony_ci/* The main opcode combined with an update code and the RT fields specified in 23208c2ecf20Sopenharmony_ci D form instruction. Used for VLE volatile context save/restore 23218c2ecf20Sopenharmony_ci instructions. */ 23228c2ecf20Sopenharmony_ci#define OPVUPRT(x,vup,rt) (OPVUP (x, vup) | ((((unsigned long)(rt)) & 0x1f) << 21)) 23238c2ecf20Sopenharmony_ci#define OPVUPRT_MASK OPVUPRT (0x3f, 0xff, 0x1f) 23248c2ecf20Sopenharmony_ci 23258c2ecf20Sopenharmony_ci/* An A form instruction. */ 23268c2ecf20Sopenharmony_ci#define A(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1) | (((unsigned long)(rc)) & 1)) 23278c2ecf20Sopenharmony_ci#define A_MASK A (0x3f, 0x1f, 1) 23288c2ecf20Sopenharmony_ci 23298c2ecf20Sopenharmony_ci/* An A_MASK with the FRB field fixed. */ 23308c2ecf20Sopenharmony_ci#define AFRB_MASK (A_MASK | FRB_MASK) 23318c2ecf20Sopenharmony_ci 23328c2ecf20Sopenharmony_ci/* An A_MASK with the FRC field fixed. */ 23338c2ecf20Sopenharmony_ci#define AFRC_MASK (A_MASK | FRC_MASK) 23348c2ecf20Sopenharmony_ci 23358c2ecf20Sopenharmony_ci/* An A_MASK with the FRA and FRC fields fixed. */ 23368c2ecf20Sopenharmony_ci#define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK) 23378c2ecf20Sopenharmony_ci 23388c2ecf20Sopenharmony_ci/* An AFRAFRC_MASK, but with L bit clear. */ 23398c2ecf20Sopenharmony_ci#define AFRALFRC_MASK (AFRAFRC_MASK & ~((unsigned long) 1 << 16)) 23408c2ecf20Sopenharmony_ci 23418c2ecf20Sopenharmony_ci/* A B form instruction. */ 23428c2ecf20Sopenharmony_ci#define B(op, aa, lk) (OP (op) | ((((unsigned long)(aa)) & 1) << 1) | ((lk) & 1)) 23438c2ecf20Sopenharmony_ci#define B_MASK B (0x3f, 1, 1) 23448c2ecf20Sopenharmony_ci 23458c2ecf20Sopenharmony_ci/* A BD8 form instruction. This is a 16-bit instruction. */ 23468c2ecf20Sopenharmony_ci#define BD8(op, aa, lk) (((((unsigned long)(op)) & 0x3f) << 10) | (((aa) & 1) << 9) | (((lk) & 1) << 8)) 23478c2ecf20Sopenharmony_ci#define BD8_MASK BD8 (0x3f, 1, 1) 23488c2ecf20Sopenharmony_ci 23498c2ecf20Sopenharmony_ci/* Another BD8 form instruction. This is a 16-bit instruction. */ 23508c2ecf20Sopenharmony_ci#define BD8IO(op) ((((unsigned long)(op)) & 0x1f) << 11) 23518c2ecf20Sopenharmony_ci#define BD8IO_MASK BD8IO (0x1f) 23528c2ecf20Sopenharmony_ci 23538c2ecf20Sopenharmony_ci/* A BD8 form instruction for simplified mnemonics. */ 23548c2ecf20Sopenharmony_ci#define EBD8IO(op, bo, bi) (BD8IO ((op)) | ((bo) << 10) | ((bi) << 8)) 23558c2ecf20Sopenharmony_ci/* A mask that excludes BO32 and BI32. */ 23568c2ecf20Sopenharmony_ci#define EBD8IO1_MASK 0xf800 23578c2ecf20Sopenharmony_ci/* A mask that includes BO32 and excludes BI32. */ 23588c2ecf20Sopenharmony_ci#define EBD8IO2_MASK 0xfc00 23598c2ecf20Sopenharmony_ci/* A mask that include BO32 AND BI32. */ 23608c2ecf20Sopenharmony_ci#define EBD8IO3_MASK 0xff00 23618c2ecf20Sopenharmony_ci 23628c2ecf20Sopenharmony_ci/* A BD15 form instruction. */ 23638c2ecf20Sopenharmony_ci#define BD15(op, aa, lk) (OP (op) | ((((unsigned long)(aa)) & 0xf) << 22) | ((lk) & 1)) 23648c2ecf20Sopenharmony_ci#define BD15_MASK BD15 (0x3f, 0xf, 1) 23658c2ecf20Sopenharmony_ci 23668c2ecf20Sopenharmony_ci/* A BD15 form instruction for extended conditional branch mnemonics. */ 23678c2ecf20Sopenharmony_ci#define EBD15(op, aa, bo, lk) (((op) & 0x3f) << 26) | (((aa) & 0xf) << 22) | (((bo) & 0x3) << 20) | ((lk) & 1) 23688c2ecf20Sopenharmony_ci#define EBD15_MASK 0xfff00001 23698c2ecf20Sopenharmony_ci 23708c2ecf20Sopenharmony_ci/* A BD15 form instruction for extended conditional branch mnemonics with BI. */ 23718c2ecf20Sopenharmony_ci#define EBD15BI(op, aa, bo, bi, lk) (((op) & 0x3f) << 26) \ 23728c2ecf20Sopenharmony_ci | (((aa) & 0xf) << 22) \ 23738c2ecf20Sopenharmony_ci | (((bo) & 0x3) << 20) \ 23748c2ecf20Sopenharmony_ci | (((bi) & 0x3) << 16) \ 23758c2ecf20Sopenharmony_ci | ((lk) & 1) 23768c2ecf20Sopenharmony_ci#define EBD15BI_MASK 0xfff30001 23778c2ecf20Sopenharmony_ci 23788c2ecf20Sopenharmony_ci/* A BD24 form instruction. */ 23798c2ecf20Sopenharmony_ci#define BD24(op, aa, lk) (OP (op) | ((((unsigned long)(aa)) & 1) << 25) | ((lk) & 1)) 23808c2ecf20Sopenharmony_ci#define BD24_MASK BD24 (0x3f, 1, 1) 23818c2ecf20Sopenharmony_ci 23828c2ecf20Sopenharmony_ci/* A B form instruction setting the BO field. */ 23838c2ecf20Sopenharmony_ci#define BBO(op, bo, aa, lk) (B ((op), (aa), (lk)) | ((((unsigned long)(bo)) & 0x1f) << 21)) 23848c2ecf20Sopenharmony_ci#define BBO_MASK BBO (0x3f, 0x1f, 1, 1) 23858c2ecf20Sopenharmony_ci 23868c2ecf20Sopenharmony_ci/* A BBO_MASK with the y bit of the BO field removed. This permits 23878c2ecf20Sopenharmony_ci matching a conditional branch regardless of the setting of the y 23888c2ecf20Sopenharmony_ci bit. Similarly for the 'at' bits used for power4 branch hints. */ 23898c2ecf20Sopenharmony_ci#define Y_MASK (((unsigned long) 1) << 21) 23908c2ecf20Sopenharmony_ci#define AT1_MASK (((unsigned long) 3) << 21) 23918c2ecf20Sopenharmony_ci#define AT2_MASK (((unsigned long) 9) << 21) 23928c2ecf20Sopenharmony_ci#define BBOY_MASK (BBO_MASK &~ Y_MASK) 23938c2ecf20Sopenharmony_ci#define BBOAT_MASK (BBO_MASK &~ AT1_MASK) 23948c2ecf20Sopenharmony_ci 23958c2ecf20Sopenharmony_ci/* A B form instruction setting the BO field and the condition bits of 23968c2ecf20Sopenharmony_ci the BI field. */ 23978c2ecf20Sopenharmony_ci#define BBOCB(op, bo, cb, aa, lk) \ 23988c2ecf20Sopenharmony_ci (BBO ((op), (bo), (aa), (lk)) | ((((unsigned long)(cb)) & 0x3) << 16)) 23998c2ecf20Sopenharmony_ci#define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1) 24008c2ecf20Sopenharmony_ci 24018c2ecf20Sopenharmony_ci/* A BBOCB_MASK with the y bit of the BO field removed. */ 24028c2ecf20Sopenharmony_ci#define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK) 24038c2ecf20Sopenharmony_ci#define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK) 24048c2ecf20Sopenharmony_ci#define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK) 24058c2ecf20Sopenharmony_ci 24068c2ecf20Sopenharmony_ci/* A BBOYCB_MASK in which the BI field is fixed. */ 24078c2ecf20Sopenharmony_ci#define BBOYBI_MASK (BBOYCB_MASK | BI_MASK) 24088c2ecf20Sopenharmony_ci#define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK) 24098c2ecf20Sopenharmony_ci 24108c2ecf20Sopenharmony_ci/* A VLE C form instruction. */ 24118c2ecf20Sopenharmony_ci#define C_LK(x, lk) (((((unsigned long)(x)) & 0x7fff) << 1) | ((lk) & 1)) 24128c2ecf20Sopenharmony_ci#define C_LK_MASK C_LK(0x7fff, 1) 24138c2ecf20Sopenharmony_ci#define C(x) ((((unsigned long)(x)) & 0xffff)) 24148c2ecf20Sopenharmony_ci#define C_MASK C(0xffff) 24158c2ecf20Sopenharmony_ci 24168c2ecf20Sopenharmony_ci/* An Context form instruction. */ 24178c2ecf20Sopenharmony_ci#define CTX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7)) 24188c2ecf20Sopenharmony_ci#define CTX_MASK CTX(0x3f, 0x7) 24198c2ecf20Sopenharmony_ci 24208c2ecf20Sopenharmony_ci/* A User Context form instruction. */ 24218c2ecf20Sopenharmony_ci#define UCTX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f)) 24228c2ecf20Sopenharmony_ci#define UCTX_MASK UCTX(0x3f, 0x1f) 24238c2ecf20Sopenharmony_ci 24248c2ecf20Sopenharmony_ci/* The main opcode mask with the RA field clear. */ 24258c2ecf20Sopenharmony_ci#define DRA_MASK (OP_MASK | RA_MASK) 24268c2ecf20Sopenharmony_ci 24278c2ecf20Sopenharmony_ci/* A DQ form VSX instruction. */ 24288c2ecf20Sopenharmony_ci#define DQX(op, xop) (OP (op) | ((xop) & 0x7)) 24298c2ecf20Sopenharmony_ci#define DQX_MASK DQX (0x3f, 7) 24308c2ecf20Sopenharmony_ci 24318c2ecf20Sopenharmony_ci/* A DS form instruction. */ 24328c2ecf20Sopenharmony_ci#define DSO(op, xop) (OP (op) | ((xop) & 0x3)) 24338c2ecf20Sopenharmony_ci#define DS_MASK DSO (0x3f, 3) 24348c2ecf20Sopenharmony_ci 24358c2ecf20Sopenharmony_ci/* An DX form instruction. */ 24368c2ecf20Sopenharmony_ci#define DX(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1)) 24378c2ecf20Sopenharmony_ci#define DX_MASK DX (0x3f, 0x1f) 24388c2ecf20Sopenharmony_ci 24398c2ecf20Sopenharmony_ci/* An EVSEL form instruction. */ 24408c2ecf20Sopenharmony_ci#define EVSEL(op, xop) (OP (op) | (((unsigned long)(xop)) & 0xff) << 3) 24418c2ecf20Sopenharmony_ci#define EVSEL_MASK EVSEL(0x3f, 0xff) 24428c2ecf20Sopenharmony_ci 24438c2ecf20Sopenharmony_ci/* An IA16 form instruction. */ 24448c2ecf20Sopenharmony_ci#define IA16(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f) << 11) 24458c2ecf20Sopenharmony_ci#define IA16_MASK IA16(0x3f, 0x1f) 24468c2ecf20Sopenharmony_ci 24478c2ecf20Sopenharmony_ci/* An I16A form instruction. */ 24488c2ecf20Sopenharmony_ci#define I16A(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f) << 11) 24498c2ecf20Sopenharmony_ci#define I16A_MASK I16A(0x3f, 0x1f) 24508c2ecf20Sopenharmony_ci 24518c2ecf20Sopenharmony_ci/* An I16L form instruction. */ 24528c2ecf20Sopenharmony_ci#define I16L(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f) << 11) 24538c2ecf20Sopenharmony_ci#define I16L_MASK I16L(0x3f, 0x1f) 24548c2ecf20Sopenharmony_ci 24558c2ecf20Sopenharmony_ci/* An IM7 form instruction. */ 24568c2ecf20Sopenharmony_ci#define IM7(op) ((((unsigned long)(op)) & 0x1f) << 11) 24578c2ecf20Sopenharmony_ci#define IM7_MASK IM7(0x1f) 24588c2ecf20Sopenharmony_ci 24598c2ecf20Sopenharmony_ci/* An M form instruction. */ 24608c2ecf20Sopenharmony_ci#define M(op, rc) (OP (op) | ((rc) & 1)) 24618c2ecf20Sopenharmony_ci#define M_MASK M (0x3f, 1) 24628c2ecf20Sopenharmony_ci 24638c2ecf20Sopenharmony_ci/* An LI20 form instruction. */ 24648c2ecf20Sopenharmony_ci#define LI20(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1) << 15) 24658c2ecf20Sopenharmony_ci#define LI20_MASK LI20(0x3f, 0x1) 24668c2ecf20Sopenharmony_ci 24678c2ecf20Sopenharmony_ci/* An M form instruction with the ME field specified. */ 24688c2ecf20Sopenharmony_ci#define MME(op, me, rc) (M ((op), (rc)) | ((((unsigned long)(me)) & 0x1f) << 1)) 24698c2ecf20Sopenharmony_ci 24708c2ecf20Sopenharmony_ci/* An M_MASK with the MB and ME fields fixed. */ 24718c2ecf20Sopenharmony_ci#define MMBME_MASK (M_MASK | MB_MASK | ME_MASK) 24728c2ecf20Sopenharmony_ci 24738c2ecf20Sopenharmony_ci/* An M_MASK with the SH and ME fields fixed. */ 24748c2ecf20Sopenharmony_ci#define MSHME_MASK (M_MASK | SH_MASK | ME_MASK) 24758c2ecf20Sopenharmony_ci 24768c2ecf20Sopenharmony_ci/* An MD form instruction. */ 24778c2ecf20Sopenharmony_ci#define MD(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x7) << 2) | ((rc) & 1)) 24788c2ecf20Sopenharmony_ci#define MD_MASK MD (0x3f, 0x7, 1) 24798c2ecf20Sopenharmony_ci 24808c2ecf20Sopenharmony_ci/* An MD_MASK with the MB field fixed. */ 24818c2ecf20Sopenharmony_ci#define MDMB_MASK (MD_MASK | MB6_MASK) 24828c2ecf20Sopenharmony_ci 24838c2ecf20Sopenharmony_ci/* An MD_MASK with the SH field fixed. */ 24848c2ecf20Sopenharmony_ci#define MDSH_MASK (MD_MASK | SH6_MASK) 24858c2ecf20Sopenharmony_ci 24868c2ecf20Sopenharmony_ci/* An MDS form instruction. */ 24878c2ecf20Sopenharmony_ci#define MDS(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0xf) << 1) | ((rc) & 1)) 24888c2ecf20Sopenharmony_ci#define MDS_MASK MDS (0x3f, 0xf, 1) 24898c2ecf20Sopenharmony_ci 24908c2ecf20Sopenharmony_ci/* An MDS_MASK with the MB field fixed. */ 24918c2ecf20Sopenharmony_ci#define MDSMB_MASK (MDS_MASK | MB6_MASK) 24928c2ecf20Sopenharmony_ci 24938c2ecf20Sopenharmony_ci/* An SC form instruction. */ 24948c2ecf20Sopenharmony_ci#define SC(op, sa, lk) (OP (op) | ((((unsigned long)(sa)) & 1) << 1) | ((lk) & 1)) 24958c2ecf20Sopenharmony_ci#define SC_MASK (OP_MASK | (((unsigned long)0x3ff) << 16) | (((unsigned long)1) << 1) | 1) 24968c2ecf20Sopenharmony_ci 24978c2ecf20Sopenharmony_ci/* An SCI8 form instruction. */ 24988c2ecf20Sopenharmony_ci#define SCI8(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 11)) 24998c2ecf20Sopenharmony_ci#define SCI8_MASK SCI8(0x3f, 0x1f) 25008c2ecf20Sopenharmony_ci 25018c2ecf20Sopenharmony_ci/* An SCI8 form instruction. */ 25028c2ecf20Sopenharmony_ci#define SCI8BF(op, fop, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 11) | (((fop) & 7) << 23)) 25038c2ecf20Sopenharmony_ci#define SCI8BF_MASK SCI8BF(0x3f, 7, 0x1f) 25048c2ecf20Sopenharmony_ci 25058c2ecf20Sopenharmony_ci/* An SD4 form instruction. This is a 16-bit instruction. */ 25068c2ecf20Sopenharmony_ci#define SD4(op) ((((unsigned long)(op)) & 0xf) << 12) 25078c2ecf20Sopenharmony_ci#define SD4_MASK SD4(0xf) 25088c2ecf20Sopenharmony_ci 25098c2ecf20Sopenharmony_ci/* An SE_IM5 form instruction. This is a 16-bit instruction. */ 25108c2ecf20Sopenharmony_ci#define SE_IM5(op, xop) (((((unsigned long)(op)) & 0x3f) << 10) | (((xop) & 0x1) << 9)) 25118c2ecf20Sopenharmony_ci#define SE_IM5_MASK SE_IM5(0x3f, 1) 25128c2ecf20Sopenharmony_ci 25138c2ecf20Sopenharmony_ci/* An SE_R form instruction. This is a 16-bit instruction. */ 25148c2ecf20Sopenharmony_ci#define SE_R(op, xop) (((((unsigned long)(op)) & 0x3f) << 10) | (((xop) & 0x3f) << 4)) 25158c2ecf20Sopenharmony_ci#define SE_R_MASK SE_R(0x3f, 0x3f) 25168c2ecf20Sopenharmony_ci 25178c2ecf20Sopenharmony_ci/* An SE_RR form instruction. This is a 16-bit instruction. */ 25188c2ecf20Sopenharmony_ci#define SE_RR(op, xop) (((((unsigned long)(op)) & 0x3f) << 10) | (((xop) & 0x3) << 8)) 25198c2ecf20Sopenharmony_ci#define SE_RR_MASK SE_RR(0x3f, 3) 25208c2ecf20Sopenharmony_ci 25218c2ecf20Sopenharmony_ci/* A VX form instruction. */ 25228c2ecf20Sopenharmony_ci#define VX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7ff)) 25238c2ecf20Sopenharmony_ci 25248c2ecf20Sopenharmony_ci/* The mask for an VX form instruction. */ 25258c2ecf20Sopenharmony_ci#define VX_MASK VX(0x3f, 0x7ff) 25268c2ecf20Sopenharmony_ci 25278c2ecf20Sopenharmony_ci/* A VX_MASK with the VA field fixed. */ 25288c2ecf20Sopenharmony_ci#define VXVA_MASK (VX_MASK | (0x1f << 16)) 25298c2ecf20Sopenharmony_ci 25308c2ecf20Sopenharmony_ci/* A VX_MASK with the VB field fixed. */ 25318c2ecf20Sopenharmony_ci#define VXVB_MASK (VX_MASK | (0x1f << 11)) 25328c2ecf20Sopenharmony_ci 25338c2ecf20Sopenharmony_ci/* A VX_MASK with the VA and VB fields fixed. */ 25348c2ecf20Sopenharmony_ci#define VXVAVB_MASK (VX_MASK | (0x1f << 16) | (0x1f << 11)) 25358c2ecf20Sopenharmony_ci 25368c2ecf20Sopenharmony_ci/* A VX_MASK with the VD and VA fields fixed. */ 25378c2ecf20Sopenharmony_ci#define VXVDVA_MASK (VX_MASK | (0x1f << 21) | (0x1f << 16)) 25388c2ecf20Sopenharmony_ci 25398c2ecf20Sopenharmony_ci/* A VX_MASK with a UIMM4 field. */ 25408c2ecf20Sopenharmony_ci#define VXUIMM4_MASK (VX_MASK | (0x1 << 20)) 25418c2ecf20Sopenharmony_ci 25428c2ecf20Sopenharmony_ci/* A VX_MASK with a UIMM3 field. */ 25438c2ecf20Sopenharmony_ci#define VXUIMM3_MASK (VX_MASK | (0x3 << 19)) 25448c2ecf20Sopenharmony_ci 25458c2ecf20Sopenharmony_ci/* A VX_MASK with a UIMM2 field. */ 25468c2ecf20Sopenharmony_ci#define VXUIMM2_MASK (VX_MASK | (0x7 << 18)) 25478c2ecf20Sopenharmony_ci 25488c2ecf20Sopenharmony_ci/* A VX_MASK with a PS field. */ 25498c2ecf20Sopenharmony_ci#define VXPS_MASK (VX_MASK & ~(0x1 << 9)) 25508c2ecf20Sopenharmony_ci 25518c2ecf20Sopenharmony_ci/* A VX_MASK with the VA field fixed with a PS field. */ 25528c2ecf20Sopenharmony_ci#define VXVAPS_MASK ((VX_MASK | (0x1f << 16)) & ~(0x1 << 9)) 25538c2ecf20Sopenharmony_ci 25548c2ecf20Sopenharmony_ci/* A VA form instruction. */ 25558c2ecf20Sopenharmony_ci#define VXA(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x03f)) 25568c2ecf20Sopenharmony_ci 25578c2ecf20Sopenharmony_ci/* The mask for an VA form instruction. */ 25588c2ecf20Sopenharmony_ci#define VXA_MASK VXA(0x3f, 0x3f) 25598c2ecf20Sopenharmony_ci 25608c2ecf20Sopenharmony_ci/* A VXA_MASK with a SHB field. */ 25618c2ecf20Sopenharmony_ci#define VXASHB_MASK (VXA_MASK | (1 << 10)) 25628c2ecf20Sopenharmony_ci 25638c2ecf20Sopenharmony_ci/* A VXR form instruction. */ 25648c2ecf20Sopenharmony_ci#define VXR(op, xop, rc) (OP (op) | (((rc) & 1) << 10) | (((unsigned long)(xop)) & 0x3ff)) 25658c2ecf20Sopenharmony_ci 25668c2ecf20Sopenharmony_ci/* The mask for a VXR form instruction. */ 25678c2ecf20Sopenharmony_ci#define VXR_MASK VXR(0x3f, 0x3ff, 1) 25688c2ecf20Sopenharmony_ci 25698c2ecf20Sopenharmony_ci/* A VX form instruction with a VA tertiary opcode. */ 25708c2ecf20Sopenharmony_ci#define VXVA(op, xop, vaop) (VX(op,xop) | (((vaop) & 0x1f) << 16)) 25718c2ecf20Sopenharmony_ci 25728c2ecf20Sopenharmony_ci#define VXASH(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1)) 25738c2ecf20Sopenharmony_ci#define VXASH_MASK VXASH (0x3f, 0x1f) 25748c2ecf20Sopenharmony_ci 25758c2ecf20Sopenharmony_ci/* An X form instruction. */ 25768c2ecf20Sopenharmony_ci#define X(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1)) 25778c2ecf20Sopenharmony_ci 25788c2ecf20Sopenharmony_ci/* A X form instruction for Quad-Precision FP Instructions. */ 25798c2ecf20Sopenharmony_ci#define XVA(op, xop, vaop) (X(op,xop) | (((vaop) & 0x1f) << 16)) 25808c2ecf20Sopenharmony_ci 25818c2ecf20Sopenharmony_ci/* An EX form instruction. */ 25828c2ecf20Sopenharmony_ci#define EX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7ff)) 25838c2ecf20Sopenharmony_ci 25848c2ecf20Sopenharmony_ci/* The mask for an EX form instruction. */ 25858c2ecf20Sopenharmony_ci#define EX_MASK EX (0x3f, 0x7ff) 25868c2ecf20Sopenharmony_ci 25878c2ecf20Sopenharmony_ci/* An XX2 form instruction. */ 25888c2ecf20Sopenharmony_ci#define XX2(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 2)) 25898c2ecf20Sopenharmony_ci 25908c2ecf20Sopenharmony_ci/* A XX2 form instruction with the VA bits specified. */ 25918c2ecf20Sopenharmony_ci#define XX2VA(op, xop, vaop) (XX2(op,xop) | (((vaop) & 0x1f) << 16)) 25928c2ecf20Sopenharmony_ci 25938c2ecf20Sopenharmony_ci/* An XX3 form instruction. */ 25948c2ecf20Sopenharmony_ci#define XX3(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0xff) << 3)) 25958c2ecf20Sopenharmony_ci 25968c2ecf20Sopenharmony_ci/* An XX3 form instruction with the RC bit specified. */ 25978c2ecf20Sopenharmony_ci#define XX3RC(op, xop, rc) (OP (op) | (((rc) & 1) << 10) | ((((unsigned long)(xop)) & 0x7f) << 3)) 25988c2ecf20Sopenharmony_ci 25998c2ecf20Sopenharmony_ci/* An XX4 form instruction. */ 26008c2ecf20Sopenharmony_ci#define XX4(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3) << 4)) 26018c2ecf20Sopenharmony_ci 26028c2ecf20Sopenharmony_ci/* A Z form instruction. */ 26038c2ecf20Sopenharmony_ci#define Z(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 1)) 26048c2ecf20Sopenharmony_ci 26058c2ecf20Sopenharmony_ci/* An X form instruction with the RC bit specified. */ 26068c2ecf20Sopenharmony_ci#define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1)) 26078c2ecf20Sopenharmony_ci 26088c2ecf20Sopenharmony_ci/* A X form instruction for Quad-Precision FP Instructions with RC bit. */ 26098c2ecf20Sopenharmony_ci#define XVARC(op, xop, vaop, rc) (XVA ((op), (xop), (vaop)) | ((rc) & 1)) 26108c2ecf20Sopenharmony_ci 26118c2ecf20Sopenharmony_ci/* An X form instruction with the RA bits specified as two ops. */ 26128c2ecf20Sopenharmony_ci#define XMMF(op, xop, mop0, mop1) (X ((op), (xop)) | ((mop0) & 3) << 19 | ((mop1) & 7) << 16) 26138c2ecf20Sopenharmony_ci 26148c2ecf20Sopenharmony_ci/* A Z form instruction with the RC bit specified. */ 26158c2ecf20Sopenharmony_ci#define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1)) 26168c2ecf20Sopenharmony_ci 26178c2ecf20Sopenharmony_ci/* The mask for an X form instruction. */ 26188c2ecf20Sopenharmony_ci#define X_MASK XRC (0x3f, 0x3ff, 1) 26198c2ecf20Sopenharmony_ci 26208c2ecf20Sopenharmony_ci/* The mask for an X form instruction with the BF bits specified. */ 26218c2ecf20Sopenharmony_ci#define XBF_MASK (X_MASK | (3 << 21)) 26228c2ecf20Sopenharmony_ci 26238c2ecf20Sopenharmony_ci/* An X form wait instruction with everything filled in except the WC field. */ 26248c2ecf20Sopenharmony_ci#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK) 26258c2ecf20Sopenharmony_ci 26268c2ecf20Sopenharmony_ci/* The mask for an XX1 form instruction. */ 26278c2ecf20Sopenharmony_ci#define XX1_MASK X (0x3f, 0x3ff) 26288c2ecf20Sopenharmony_ci 26298c2ecf20Sopenharmony_ci/* An XX1_MASK with the RB field fixed. */ 26308c2ecf20Sopenharmony_ci#define XX1RB_MASK (XX1_MASK | RB_MASK) 26318c2ecf20Sopenharmony_ci 26328c2ecf20Sopenharmony_ci/* The mask for an XX2 form instruction. */ 26338c2ecf20Sopenharmony_ci#define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16)) 26348c2ecf20Sopenharmony_ci 26358c2ecf20Sopenharmony_ci/* The mask for an XX2 form instruction with the UIM bits specified. */ 26368c2ecf20Sopenharmony_ci#define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18)) 26378c2ecf20Sopenharmony_ci 26388c2ecf20Sopenharmony_ci/* The mask for an XX2 form instruction with the 4 UIM bits specified. */ 26398c2ecf20Sopenharmony_ci#define XX2UIM4_MASK (XX2 (0x3f, 0x1ff) | (1 << 20)) 26408c2ecf20Sopenharmony_ci 26418c2ecf20Sopenharmony_ci/* The mask for an XX2 form instruction with the BF bits specified. */ 26428c2ecf20Sopenharmony_ci#define XX2BF_MASK (XX2_MASK | (3 << 21) | (1)) 26438c2ecf20Sopenharmony_ci 26448c2ecf20Sopenharmony_ci/* The mask for an XX2 form instruction with the BF and DCMX bits specified. */ 26458c2ecf20Sopenharmony_ci#define XX2BFD_MASK (XX2 (0x3f, 0x1ff) | 1) 26468c2ecf20Sopenharmony_ci 26478c2ecf20Sopenharmony_ci/* The mask for an XX2 form instruction with a split DCMX bits specified. */ 26488c2ecf20Sopenharmony_ci#define XX2DCMXS_MASK XX2 (0x3f, 0x1ee) 26498c2ecf20Sopenharmony_ci 26508c2ecf20Sopenharmony_ci/* The mask for an XX3 form instruction. */ 26518c2ecf20Sopenharmony_ci#define XX3_MASK XX3 (0x3f, 0xff) 26528c2ecf20Sopenharmony_ci 26538c2ecf20Sopenharmony_ci/* The mask for an XX3 form instruction with the BF bits specified. */ 26548c2ecf20Sopenharmony_ci#define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1)) 26558c2ecf20Sopenharmony_ci 26568c2ecf20Sopenharmony_ci/* The mask for an XX3 form instruction with the DM or SHW bits specified. */ 26578c2ecf20Sopenharmony_ci#define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10)) 26588c2ecf20Sopenharmony_ci#define XX3SHW_MASK XX3DM_MASK 26598c2ecf20Sopenharmony_ci 26608c2ecf20Sopenharmony_ci/* The mask for an XX4 form instruction. */ 26618c2ecf20Sopenharmony_ci#define XX4_MASK XX4 (0x3f, 0x3) 26628c2ecf20Sopenharmony_ci 26638c2ecf20Sopenharmony_ci/* An X form wait instruction with everything filled in except the WC field. */ 26648c2ecf20Sopenharmony_ci#define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK) 26658c2ecf20Sopenharmony_ci 26668c2ecf20Sopenharmony_ci/* The mask for an XMMF form instruction. */ 26678c2ecf20Sopenharmony_ci#define XMMF_MASK (XMMF (0x3f, 0x3ff, 3, 7) | (1)) 26688c2ecf20Sopenharmony_ci 26698c2ecf20Sopenharmony_ci/* The mask for a Z form instruction. */ 26708c2ecf20Sopenharmony_ci#define Z_MASK ZRC (0x3f, 0x1ff, 1) 26718c2ecf20Sopenharmony_ci#define Z2_MASK ZRC (0x3f, 0xff, 1) 26728c2ecf20Sopenharmony_ci 26738c2ecf20Sopenharmony_ci/* An X_MASK with the RA/VA field fixed. */ 26748c2ecf20Sopenharmony_ci#define XRA_MASK (X_MASK | RA_MASK) 26758c2ecf20Sopenharmony_ci#define XVA_MASK XRA_MASK 26768c2ecf20Sopenharmony_ci 26778c2ecf20Sopenharmony_ci/* An XRA_MASK with the A_L/W field clear. */ 26788c2ecf20Sopenharmony_ci#define XWRA_MASK (XRA_MASK & ~((unsigned long) 1 << 16)) 26798c2ecf20Sopenharmony_ci#define XRLA_MASK XWRA_MASK 26808c2ecf20Sopenharmony_ci 26818c2ecf20Sopenharmony_ci/* An X_MASK with the RB field fixed. */ 26828c2ecf20Sopenharmony_ci#define XRB_MASK (X_MASK | RB_MASK) 26838c2ecf20Sopenharmony_ci 26848c2ecf20Sopenharmony_ci/* An X_MASK with the RT field fixed. */ 26858c2ecf20Sopenharmony_ci#define XRT_MASK (X_MASK | RT_MASK) 26868c2ecf20Sopenharmony_ci 26878c2ecf20Sopenharmony_ci/* An XRT_MASK mask with the L bits clear. */ 26888c2ecf20Sopenharmony_ci#define XLRT_MASK (XRT_MASK & ~((unsigned long) 0x3 << 21)) 26898c2ecf20Sopenharmony_ci 26908c2ecf20Sopenharmony_ci/* An X_MASK with the RA and RB fields fixed. */ 26918c2ecf20Sopenharmony_ci#define XRARB_MASK (X_MASK | RA_MASK | RB_MASK) 26928c2ecf20Sopenharmony_ci 26938c2ecf20Sopenharmony_ci/* An XBF_MASK with the RA and RB fields fixed. */ 26948c2ecf20Sopenharmony_ci#define XBFRARB_MASK (XBF_MASK | RA_MASK | RB_MASK) 26958c2ecf20Sopenharmony_ci 26968c2ecf20Sopenharmony_ci/* An XRARB_MASK, but with the L bit clear. */ 26978c2ecf20Sopenharmony_ci#define XRLARB_MASK (XRARB_MASK & ~((unsigned long) 1 << 16)) 26988c2ecf20Sopenharmony_ci 26998c2ecf20Sopenharmony_ci/* An XRARB_MASK, but with the L bits in a darn instruction clear. */ 27008c2ecf20Sopenharmony_ci#define XLRAND_MASK (XRARB_MASK & ~((unsigned long) 3 << 16)) 27018c2ecf20Sopenharmony_ci 27028c2ecf20Sopenharmony_ci/* An X_MASK with the RT and RA fields fixed. */ 27038c2ecf20Sopenharmony_ci#define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK) 27048c2ecf20Sopenharmony_ci 27058c2ecf20Sopenharmony_ci/* An X_MASK with the RT and RB fields fixed. */ 27068c2ecf20Sopenharmony_ci#define XRTRB_MASK (X_MASK | RT_MASK | RB_MASK) 27078c2ecf20Sopenharmony_ci 27088c2ecf20Sopenharmony_ci/* An XRTRA_MASK, but with L bit clear. */ 27098c2ecf20Sopenharmony_ci#define XRTLRA_MASK (XRTRA_MASK & ~((unsigned long) 1 << 21)) 27108c2ecf20Sopenharmony_ci 27118c2ecf20Sopenharmony_ci/* An X_MASK with the RT, RA and RB fields fixed. */ 27128c2ecf20Sopenharmony_ci#define XRTRARB_MASK (X_MASK | RT_MASK | RA_MASK | RB_MASK) 27138c2ecf20Sopenharmony_ci 27148c2ecf20Sopenharmony_ci/* An XRTRARB_MASK, but with L bit clear. */ 27158c2ecf20Sopenharmony_ci#define XRTLRARB_MASK (XRTRARB_MASK & ~((unsigned long) 1 << 21)) 27168c2ecf20Sopenharmony_ci 27178c2ecf20Sopenharmony_ci/* An XRTRARB_MASK, but with A bit clear. */ 27188c2ecf20Sopenharmony_ci#define XRTARARB_MASK (XRTRARB_MASK & ~((unsigned long) 1 << 25)) 27198c2ecf20Sopenharmony_ci 27208c2ecf20Sopenharmony_ci/* An XRTRARB_MASK, but with BF bits clear. */ 27218c2ecf20Sopenharmony_ci#define XRTBFRARB_MASK (XRTRARB_MASK & ~((unsigned long) 7 << 23)) 27228c2ecf20Sopenharmony_ci 27238c2ecf20Sopenharmony_ci/* An X form instruction with the L bit specified. */ 27248c2ecf20Sopenharmony_ci#define XOPL(op, xop, l) (X ((op), (xop)) | ((((unsigned long)(l)) & 1) << 21)) 27258c2ecf20Sopenharmony_ci 27268c2ecf20Sopenharmony_ci/* An X form instruction with the L bits specified. */ 27278c2ecf20Sopenharmony_ci#define XOPL2(op, xop, l) (X ((op), (xop)) | ((((unsigned long)(l)) & 3) << 21)) 27288c2ecf20Sopenharmony_ci 27298c2ecf20Sopenharmony_ci/* An X form instruction with the L bit and RC bit specified. */ 27308c2ecf20Sopenharmony_ci#define XRCL(op, xop, l, rc) (XRC ((op), (xop), (rc)) | ((((unsigned long)(l)) & 1) << 21)) 27318c2ecf20Sopenharmony_ci 27328c2ecf20Sopenharmony_ci/* An X form instruction with RT fields specified */ 27338c2ecf20Sopenharmony_ci#define XRT(op, xop, rt) (X ((op), (xop)) \ 27348c2ecf20Sopenharmony_ci | ((((unsigned long)(rt)) & 0x1f) << 21)) 27358c2ecf20Sopenharmony_ci 27368c2ecf20Sopenharmony_ci/* An X form instruction with RT and RA fields specified */ 27378c2ecf20Sopenharmony_ci#define XRTRA(op, xop, rt, ra) (X ((op), (xop)) \ 27388c2ecf20Sopenharmony_ci | ((((unsigned long)(rt)) & 0x1f) << 21) \ 27398c2ecf20Sopenharmony_ci | ((((unsigned long)(ra)) & 0x1f) << 16)) 27408c2ecf20Sopenharmony_ci 27418c2ecf20Sopenharmony_ci/* The mask for an X form comparison instruction. */ 27428c2ecf20Sopenharmony_ci#define XCMP_MASK (X_MASK | (((unsigned long)1) << 22)) 27438c2ecf20Sopenharmony_ci 27448c2ecf20Sopenharmony_ci/* The mask for an X form comparison instruction with the L field 27458c2ecf20Sopenharmony_ci fixed. */ 27468c2ecf20Sopenharmony_ci#define XCMPL_MASK (XCMP_MASK | (((unsigned long)1) << 21)) 27478c2ecf20Sopenharmony_ci 27488c2ecf20Sopenharmony_ci/* An X form trap instruction with the TO field specified. */ 27498c2ecf20Sopenharmony_ci#define XTO(op, xop, to) (X ((op), (xop)) | ((((unsigned long)(to)) & 0x1f) << 21)) 27508c2ecf20Sopenharmony_ci#define XTO_MASK (X_MASK | TO_MASK) 27518c2ecf20Sopenharmony_ci 27528c2ecf20Sopenharmony_ci/* An X form tlb instruction with the SH field specified. */ 27538c2ecf20Sopenharmony_ci#define XTLB(op, xop, sh) (X ((op), (xop)) | ((((unsigned long)(sh)) & 0x1f) << 11)) 27548c2ecf20Sopenharmony_ci#define XTLB_MASK (X_MASK | SH_MASK) 27558c2ecf20Sopenharmony_ci 27568c2ecf20Sopenharmony_ci/* An X form sync instruction. */ 27578c2ecf20Sopenharmony_ci#define XSYNC(op, xop, l) (X ((op), (xop)) | ((((unsigned long)(l)) & 3) << 21)) 27588c2ecf20Sopenharmony_ci 27598c2ecf20Sopenharmony_ci/* An X form sync instruction with everything filled in except the LS field. */ 27608c2ecf20Sopenharmony_ci#define XSYNC_MASK (0xff9fffff) 27618c2ecf20Sopenharmony_ci 27628c2ecf20Sopenharmony_ci/* An X form sync instruction with everything filled in except the L and E fields. */ 27638c2ecf20Sopenharmony_ci#define XSYNCLE_MASK (0xff90ffff) 27648c2ecf20Sopenharmony_ci 27658c2ecf20Sopenharmony_ci/* An X_MASK, but with the EH bit clear. */ 27668c2ecf20Sopenharmony_ci#define XEH_MASK (X_MASK & ~((unsigned long )1)) 27678c2ecf20Sopenharmony_ci 27688c2ecf20Sopenharmony_ci/* An X form AltiVec dss instruction. */ 27698c2ecf20Sopenharmony_ci#define XDSS(op, xop, a) (X ((op), (xop)) | ((((unsigned long)(a)) & 1) << 25)) 27708c2ecf20Sopenharmony_ci#define XDSS_MASK XDSS(0x3f, 0x3ff, 1) 27718c2ecf20Sopenharmony_ci 27728c2ecf20Sopenharmony_ci/* An XFL form instruction. */ 27738c2ecf20Sopenharmony_ci#define XFL(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1) | (((unsigned long)(rc)) & 1)) 27748c2ecf20Sopenharmony_ci#define XFL_MASK XFL (0x3f, 0x3ff, 1) 27758c2ecf20Sopenharmony_ci 27768c2ecf20Sopenharmony_ci/* An X form isel instruction. */ 27778c2ecf20Sopenharmony_ci#define XISEL(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1)) 27788c2ecf20Sopenharmony_ci#define XISEL_MASK XISEL(0x3f, 0x1f) 27798c2ecf20Sopenharmony_ci 27808c2ecf20Sopenharmony_ci/* An XL form instruction with the LK field set to 0. */ 27818c2ecf20Sopenharmony_ci#define XL(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1)) 27828c2ecf20Sopenharmony_ci 27838c2ecf20Sopenharmony_ci/* An XL form instruction which uses the LK field. */ 27848c2ecf20Sopenharmony_ci#define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1)) 27858c2ecf20Sopenharmony_ci 27868c2ecf20Sopenharmony_ci/* The mask for an XL form instruction. */ 27878c2ecf20Sopenharmony_ci#define XL_MASK XLLK (0x3f, 0x3ff, 1) 27888c2ecf20Sopenharmony_ci 27898c2ecf20Sopenharmony_ci/* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear. */ 27908c2ecf20Sopenharmony_ci#define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11)) 27918c2ecf20Sopenharmony_ci 27928c2ecf20Sopenharmony_ci/* An XL form instruction which explicitly sets the BO field. */ 27938c2ecf20Sopenharmony_ci#define XLO(op, bo, xop, lk) \ 27948c2ecf20Sopenharmony_ci (XLLK ((op), (xop), (lk)) | ((((unsigned long)(bo)) & 0x1f) << 21)) 27958c2ecf20Sopenharmony_ci#define XLO_MASK (XL_MASK | BO_MASK) 27968c2ecf20Sopenharmony_ci 27978c2ecf20Sopenharmony_ci/* An XL form instruction which explicitly sets the y bit of the BO 27988c2ecf20Sopenharmony_ci field. */ 27998c2ecf20Sopenharmony_ci#define XLYLK(op, xop, y, lk) (XLLK ((op), (xop), (lk)) | ((((unsigned long)(y)) & 1) << 21)) 28008c2ecf20Sopenharmony_ci#define XLYLK_MASK (XL_MASK | Y_MASK) 28018c2ecf20Sopenharmony_ci 28028c2ecf20Sopenharmony_ci/* An XL form instruction which sets the BO field and the condition 28038c2ecf20Sopenharmony_ci bits of the BI field. */ 28048c2ecf20Sopenharmony_ci#define XLOCB(op, bo, cb, xop, lk) \ 28058c2ecf20Sopenharmony_ci (XLO ((op), (bo), (xop), (lk)) | ((((unsigned long)(cb)) & 3) << 16)) 28068c2ecf20Sopenharmony_ci#define XLOCB_MASK XLOCB (0x3f, 0x1f, 0x3, 0x3ff, 1) 28078c2ecf20Sopenharmony_ci 28088c2ecf20Sopenharmony_ci/* An XL_MASK or XLYLK_MASK or XLOCB_MASK with the BB field fixed. */ 28098c2ecf20Sopenharmony_ci#define XLBB_MASK (XL_MASK | BB_MASK) 28108c2ecf20Sopenharmony_ci#define XLYBB_MASK (XLYLK_MASK | BB_MASK) 28118c2ecf20Sopenharmony_ci#define XLBOCBBB_MASK (XLOCB_MASK | BB_MASK) 28128c2ecf20Sopenharmony_ci 28138c2ecf20Sopenharmony_ci/* A mask for branch instructions using the BH field. */ 28148c2ecf20Sopenharmony_ci#define XLBH_MASK (XL_MASK | (0x1c << 11)) 28158c2ecf20Sopenharmony_ci 28168c2ecf20Sopenharmony_ci/* An XL_MASK with the BO and BB fields fixed. */ 28178c2ecf20Sopenharmony_ci#define XLBOBB_MASK (XL_MASK | BO_MASK | BB_MASK) 28188c2ecf20Sopenharmony_ci 28198c2ecf20Sopenharmony_ci/* An XL_MASK with the BO, BI and BB fields fixed. */ 28208c2ecf20Sopenharmony_ci#define XLBOBIBB_MASK (XL_MASK | BO_MASK | BI_MASK | BB_MASK) 28218c2ecf20Sopenharmony_ci 28228c2ecf20Sopenharmony_ci/* An X form mbar instruction with MO field. */ 28238c2ecf20Sopenharmony_ci#define XMBAR(op, xop, mo) (X ((op), (xop)) | ((((unsigned long)(mo)) & 1) << 21)) 28248c2ecf20Sopenharmony_ci 28258c2ecf20Sopenharmony_ci/* An XO form instruction. */ 28268c2ecf20Sopenharmony_ci#define XO(op, xop, oe, rc) \ 28278c2ecf20Sopenharmony_ci (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 1) | ((((unsigned long)(oe)) & 1) << 10) | (((unsigned long)(rc)) & 1)) 28288c2ecf20Sopenharmony_ci#define XO_MASK XO (0x3f, 0x1ff, 1, 1) 28298c2ecf20Sopenharmony_ci 28308c2ecf20Sopenharmony_ci/* An XO_MASK with the RB field fixed. */ 28318c2ecf20Sopenharmony_ci#define XORB_MASK (XO_MASK | RB_MASK) 28328c2ecf20Sopenharmony_ci 28338c2ecf20Sopenharmony_ci/* An XOPS form instruction for paired singles. */ 28348c2ecf20Sopenharmony_ci#define XOPS(op, xop, rc) \ 28358c2ecf20Sopenharmony_ci (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1) | (((unsigned long)(rc)) & 1)) 28368c2ecf20Sopenharmony_ci#define XOPS_MASK XOPS (0x3f, 0x3ff, 1) 28378c2ecf20Sopenharmony_ci 28388c2ecf20Sopenharmony_ci 28398c2ecf20Sopenharmony_ci/* An XS form instruction. */ 28408c2ecf20Sopenharmony_ci#define XS(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 2) | (((unsigned long)(rc)) & 1)) 28418c2ecf20Sopenharmony_ci#define XS_MASK XS (0x3f, 0x1ff, 1) 28428c2ecf20Sopenharmony_ci 28438c2ecf20Sopenharmony_ci/* A mask for the FXM version of an XFX form instruction. */ 28448c2ecf20Sopenharmony_ci#define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20)) 28458c2ecf20Sopenharmony_ci 28468c2ecf20Sopenharmony_ci/* An XFX form instruction with the FXM field filled in. */ 28478c2ecf20Sopenharmony_ci#define XFXM(op, xop, fxm, p4) \ 28488c2ecf20Sopenharmony_ci (X ((op), (xop)) | ((((unsigned long)(fxm)) & 0xff) << 12) \ 28498c2ecf20Sopenharmony_ci | ((unsigned long)(p4) << 20)) 28508c2ecf20Sopenharmony_ci 28518c2ecf20Sopenharmony_ci/* An XFX form instruction with the SPR field filled in. */ 28528c2ecf20Sopenharmony_ci#define XSPR(op, xop, spr) \ 28538c2ecf20Sopenharmony_ci (X ((op), (xop)) | ((((unsigned long)(spr)) & 0x1f) << 16) | ((((unsigned long)(spr)) & 0x3e0) << 6)) 28548c2ecf20Sopenharmony_ci#define XSPR_MASK (X_MASK | SPR_MASK) 28558c2ecf20Sopenharmony_ci 28568c2ecf20Sopenharmony_ci/* An XFX form instruction with the SPR field filled in except for the 28578c2ecf20Sopenharmony_ci SPRBAT field. */ 28588c2ecf20Sopenharmony_ci#define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK) 28598c2ecf20Sopenharmony_ci 28608c2ecf20Sopenharmony_ci/* An XFX form instruction with the SPR field filled in except for the 28618c2ecf20Sopenharmony_ci SPRG field. */ 28628c2ecf20Sopenharmony_ci#define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16)) 28638c2ecf20Sopenharmony_ci 28648c2ecf20Sopenharmony_ci/* An X form instruction with everything filled in except the E field. */ 28658c2ecf20Sopenharmony_ci#define XE_MASK (0xffff7fff) 28668c2ecf20Sopenharmony_ci 28678c2ecf20Sopenharmony_ci/* An X form user context instruction. */ 28688c2ecf20Sopenharmony_ci#define XUC(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f)) 28698c2ecf20Sopenharmony_ci#define XUC_MASK XUC(0x3f, 0x1f) 28708c2ecf20Sopenharmony_ci 28718c2ecf20Sopenharmony_ci/* An XW form instruction. */ 28728c2ecf20Sopenharmony_ci#define XW(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x3f) << 1) | ((rc) & 1)) 28738c2ecf20Sopenharmony_ci/* The mask for a G form instruction. rc not supported at present. */ 28748c2ecf20Sopenharmony_ci#define XW_MASK XW (0x3f, 0x3f, 0) 28758c2ecf20Sopenharmony_ci 28768c2ecf20Sopenharmony_ci/* An APU form instruction. */ 28778c2ecf20Sopenharmony_ci#define APU(op, xop, rc) (OP (op) | (((unsigned long)(xop)) & 0x3ff) << 1 | ((rc) & 1)) 28788c2ecf20Sopenharmony_ci 28798c2ecf20Sopenharmony_ci/* The mask for an APU form instruction. */ 28808c2ecf20Sopenharmony_ci#define APU_MASK APU (0x3f, 0x3ff, 1) 28818c2ecf20Sopenharmony_ci#define APU_RT_MASK (APU_MASK | RT_MASK) 28828c2ecf20Sopenharmony_ci#define APU_RA_MASK (APU_MASK | RA_MASK) 28838c2ecf20Sopenharmony_ci 28848c2ecf20Sopenharmony_ci/* The BO encodings used in extended conditional branch mnemonics. */ 28858c2ecf20Sopenharmony_ci#define BODNZF (0x0) 28868c2ecf20Sopenharmony_ci#define BODNZFP (0x1) 28878c2ecf20Sopenharmony_ci#define BODZF (0x2) 28888c2ecf20Sopenharmony_ci#define BODZFP (0x3) 28898c2ecf20Sopenharmony_ci#define BODNZT (0x8) 28908c2ecf20Sopenharmony_ci#define BODNZTP (0x9) 28918c2ecf20Sopenharmony_ci#define BODZT (0xa) 28928c2ecf20Sopenharmony_ci#define BODZTP (0xb) 28938c2ecf20Sopenharmony_ci 28948c2ecf20Sopenharmony_ci#define BOF (0x4) 28958c2ecf20Sopenharmony_ci#define BOFP (0x5) 28968c2ecf20Sopenharmony_ci#define BOFM4 (0x6) 28978c2ecf20Sopenharmony_ci#define BOFP4 (0x7) 28988c2ecf20Sopenharmony_ci#define BOT (0xc) 28998c2ecf20Sopenharmony_ci#define BOTP (0xd) 29008c2ecf20Sopenharmony_ci#define BOTM4 (0xe) 29018c2ecf20Sopenharmony_ci#define BOTP4 (0xf) 29028c2ecf20Sopenharmony_ci 29038c2ecf20Sopenharmony_ci#define BODNZ (0x10) 29048c2ecf20Sopenharmony_ci#define BODNZP (0x11) 29058c2ecf20Sopenharmony_ci#define BODZ (0x12) 29068c2ecf20Sopenharmony_ci#define BODZP (0x13) 29078c2ecf20Sopenharmony_ci#define BODNZM4 (0x18) 29088c2ecf20Sopenharmony_ci#define BODNZP4 (0x19) 29098c2ecf20Sopenharmony_ci#define BODZM4 (0x1a) 29108c2ecf20Sopenharmony_ci#define BODZP4 (0x1b) 29118c2ecf20Sopenharmony_ci 29128c2ecf20Sopenharmony_ci#define BOU (0x14) 29138c2ecf20Sopenharmony_ci 29148c2ecf20Sopenharmony_ci/* The BO16 encodings used in extended VLE conditional branch mnemonics. */ 29158c2ecf20Sopenharmony_ci#define BO16F (0x0) 29168c2ecf20Sopenharmony_ci#define BO16T (0x1) 29178c2ecf20Sopenharmony_ci 29188c2ecf20Sopenharmony_ci/* The BO32 encodings used in extended VLE conditional branch mnemonics. */ 29198c2ecf20Sopenharmony_ci#define BO32F (0x0) 29208c2ecf20Sopenharmony_ci#define BO32T (0x1) 29218c2ecf20Sopenharmony_ci#define BO32DNZ (0x2) 29228c2ecf20Sopenharmony_ci#define BO32DZ (0x3) 29238c2ecf20Sopenharmony_ci 29248c2ecf20Sopenharmony_ci/* The BI condition bit encodings used in extended conditional branch 29258c2ecf20Sopenharmony_ci mnemonics. */ 29268c2ecf20Sopenharmony_ci#define CBLT (0) 29278c2ecf20Sopenharmony_ci#define CBGT (1) 29288c2ecf20Sopenharmony_ci#define CBEQ (2) 29298c2ecf20Sopenharmony_ci#define CBSO (3) 29308c2ecf20Sopenharmony_ci 29318c2ecf20Sopenharmony_ci/* The TO encodings used in extended trap mnemonics. */ 29328c2ecf20Sopenharmony_ci#define TOLGT (0x1) 29338c2ecf20Sopenharmony_ci#define TOLLT (0x2) 29348c2ecf20Sopenharmony_ci#define TOEQ (0x4) 29358c2ecf20Sopenharmony_ci#define TOLGE (0x5) 29368c2ecf20Sopenharmony_ci#define TOLNL (0x5) 29378c2ecf20Sopenharmony_ci#define TOLLE (0x6) 29388c2ecf20Sopenharmony_ci#define TOLNG (0x6) 29398c2ecf20Sopenharmony_ci#define TOGT (0x8) 29408c2ecf20Sopenharmony_ci#define TOGE (0xc) 29418c2ecf20Sopenharmony_ci#define TONL (0xc) 29428c2ecf20Sopenharmony_ci#define TOLT (0x10) 29438c2ecf20Sopenharmony_ci#define TOLE (0x14) 29448c2ecf20Sopenharmony_ci#define TONG (0x14) 29458c2ecf20Sopenharmony_ci#define TONE (0x18) 29468c2ecf20Sopenharmony_ci#define TOU (0x1f) 29478c2ecf20Sopenharmony_ci 29488c2ecf20Sopenharmony_ci/* Smaller names for the flags so each entry in the opcodes table will 29498c2ecf20Sopenharmony_ci fit on a single line. */ 29508c2ecf20Sopenharmony_ci#undef PPC 29518c2ecf20Sopenharmony_ci#define PPC PPC_OPCODE_PPC 29528c2ecf20Sopenharmony_ci#define PPCCOM PPC_OPCODE_PPC | PPC_OPCODE_COMMON 29538c2ecf20Sopenharmony_ci#define POWER4 PPC_OPCODE_POWER4 29548c2ecf20Sopenharmony_ci#define POWER5 PPC_OPCODE_POWER5 29558c2ecf20Sopenharmony_ci#define POWER6 PPC_OPCODE_POWER6 29568c2ecf20Sopenharmony_ci#define POWER7 PPC_OPCODE_POWER7 29578c2ecf20Sopenharmony_ci#define POWER8 PPC_OPCODE_POWER8 29588c2ecf20Sopenharmony_ci#define POWER9 PPC_OPCODE_POWER9 29598c2ecf20Sopenharmony_ci#define CELL PPC_OPCODE_CELL 29608c2ecf20Sopenharmony_ci#define PPC64 PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE 29618c2ecf20Sopenharmony_ci#define NON32 (PPC_OPCODE_64 | PPC_OPCODE_POWER4 \ 29628c2ecf20Sopenharmony_ci | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN) 29638c2ecf20Sopenharmony_ci#define PPC403 PPC_OPCODE_403 29648c2ecf20Sopenharmony_ci#define PPC405 PPC_OPCODE_405 29658c2ecf20Sopenharmony_ci#define PPC440 PPC_OPCODE_440 29668c2ecf20Sopenharmony_ci#define PPC464 PPC440 29678c2ecf20Sopenharmony_ci#define PPC476 PPC_OPCODE_476 29688c2ecf20Sopenharmony_ci#define PPC750 PPC_OPCODE_750 29698c2ecf20Sopenharmony_ci#define PPC7450 PPC_OPCODE_7450 29708c2ecf20Sopenharmony_ci#define PPC860 PPC_OPCODE_860 29718c2ecf20Sopenharmony_ci#define PPCPS PPC_OPCODE_PPCPS 29728c2ecf20Sopenharmony_ci#define PPCVEC PPC_OPCODE_ALTIVEC 29738c2ecf20Sopenharmony_ci#define PPCVEC2 PPC_OPCODE_ALTIVEC2 29748c2ecf20Sopenharmony_ci#define PPCVEC3 PPC_OPCODE_ALTIVEC2 29758c2ecf20Sopenharmony_ci#define PPCVSX PPC_OPCODE_VSX 29768c2ecf20Sopenharmony_ci#define PPCVSX2 PPC_OPCODE_VSX 29778c2ecf20Sopenharmony_ci#define PPCVSX3 PPC_OPCODE_VSX3 29788c2ecf20Sopenharmony_ci#define POWER PPC_OPCODE_POWER 29798c2ecf20Sopenharmony_ci#define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2 29808c2ecf20Sopenharmony_ci#define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON 29818c2ecf20Sopenharmony_ci#define PPCPWR2 PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON 29828c2ecf20Sopenharmony_ci#define COM PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON 29838c2ecf20Sopenharmony_ci#define M601 PPC_OPCODE_POWER | PPC_OPCODE_601 29848c2ecf20Sopenharmony_ci#define PWRCOM PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON 29858c2ecf20Sopenharmony_ci#define MFDEC1 PPC_OPCODE_POWER 29868c2ecf20Sopenharmony_ci#define MFDEC2 PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE | PPC_OPCODE_TITAN 29878c2ecf20Sopenharmony_ci#define BOOKE PPC_OPCODE_BOOKE 29888c2ecf20Sopenharmony_ci#define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS 29898c2ecf20Sopenharmony_ci#define PPCE300 PPC_OPCODE_E300 29908c2ecf20Sopenharmony_ci#define PPCSPE PPC_OPCODE_SPE 29918c2ecf20Sopenharmony_ci#define PPCISEL PPC_OPCODE_ISEL 29928c2ecf20Sopenharmony_ci#define PPCEFS PPC_OPCODE_EFS 29938c2ecf20Sopenharmony_ci#define PPCBRLK PPC_OPCODE_BRLOCK 29948c2ecf20Sopenharmony_ci#define PPCPMR PPC_OPCODE_PMR 29958c2ecf20Sopenharmony_ci#define PPCTMR PPC_OPCODE_TMR 29968c2ecf20Sopenharmony_ci#define PPCCHLK PPC_OPCODE_CACHELCK 29978c2ecf20Sopenharmony_ci#define PPCRFMCI PPC_OPCODE_RFMCI 29988c2ecf20Sopenharmony_ci#define E500MC PPC_OPCODE_E500MC 29998c2ecf20Sopenharmony_ci#define PPCA2 PPC_OPCODE_A2 30008c2ecf20Sopenharmony_ci#define TITAN PPC_OPCODE_TITAN 30018c2ecf20Sopenharmony_ci#define MULHW PPC_OPCODE_405 | PPC_OPCODE_440 | TITAN 30028c2ecf20Sopenharmony_ci#define E500 PPC_OPCODE_E500 30038c2ecf20Sopenharmony_ci#define E6500 PPC_OPCODE_E6500 30048c2ecf20Sopenharmony_ci#define PPCVLE PPC_OPCODE_VLE 30058c2ecf20Sopenharmony_ci#define PPCHTM PPC_OPCODE_HTM 30068c2ecf20Sopenharmony_ci#define E200Z4 PPC_OPCODE_E200Z4 30078c2ecf20Sopenharmony_ci/* The list of embedded processors that use the embedded operand ordering 30088c2ecf20Sopenharmony_ci for the 3 operand dcbt and dcbtst instructions. */ 30098c2ecf20Sopenharmony_ci#define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \ 30108c2ecf20Sopenharmony_ci | PPC_OPCODE_A2) 30118c2ecf20Sopenharmony_ci 30128c2ecf20Sopenharmony_ci 30138c2ecf20Sopenharmony_ci 30148c2ecf20Sopenharmony_ci/* The opcode table. 30158c2ecf20Sopenharmony_ci 30168c2ecf20Sopenharmony_ci The format of the opcode table is: 30178c2ecf20Sopenharmony_ci 30188c2ecf20Sopenharmony_ci NAME OPCODE MASK FLAGS ANTI {OPERANDS} 30198c2ecf20Sopenharmony_ci 30208c2ecf20Sopenharmony_ci NAME is the name of the instruction. 30218c2ecf20Sopenharmony_ci OPCODE is the instruction opcode. 30228c2ecf20Sopenharmony_ci MASK is the opcode mask; this is used to tell the disassembler 30238c2ecf20Sopenharmony_ci which bits in the actual opcode must match OPCODE. 30248c2ecf20Sopenharmony_ci FLAGS are flags indicating which processors support the instruction. 30258c2ecf20Sopenharmony_ci ANTI indicates which processors don't support the instruction. 30268c2ecf20Sopenharmony_ci OPERANDS is the list of operands. 30278c2ecf20Sopenharmony_ci 30288c2ecf20Sopenharmony_ci The disassembler reads the table in order and prints the first 30298c2ecf20Sopenharmony_ci instruction which matches, so this table is sorted to put more 30308c2ecf20Sopenharmony_ci specific instructions before more general instructions. 30318c2ecf20Sopenharmony_ci 30328c2ecf20Sopenharmony_ci This table must be sorted by major opcode. Please try to keep it 30338c2ecf20Sopenharmony_ci vaguely sorted within major opcode too, except of course where 30348c2ecf20Sopenharmony_ci constrained otherwise by disassembler operation. */ 30358c2ecf20Sopenharmony_ci 30368c2ecf20Sopenharmony_ciconst struct powerpc_opcode powerpc_opcodes[] = { 30378c2ecf20Sopenharmony_ci{"attn", X(0,256), X_MASK, POWER4|PPCA2, PPC476|PPCVLE, {0}}, 30388c2ecf20Sopenharmony_ci{"tdlgti", OPTO(2,TOLGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30398c2ecf20Sopenharmony_ci{"tdllti", OPTO(2,TOLLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30408c2ecf20Sopenharmony_ci{"tdeqi", OPTO(2,TOEQ), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30418c2ecf20Sopenharmony_ci{"tdlgei", OPTO(2,TOLGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30428c2ecf20Sopenharmony_ci{"tdlnli", OPTO(2,TOLNL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30438c2ecf20Sopenharmony_ci{"tdllei", OPTO(2,TOLLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30448c2ecf20Sopenharmony_ci{"tdlngi", OPTO(2,TOLNG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30458c2ecf20Sopenharmony_ci{"tdgti", OPTO(2,TOGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30468c2ecf20Sopenharmony_ci{"tdgei", OPTO(2,TOGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30478c2ecf20Sopenharmony_ci{"tdnli", OPTO(2,TONL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30488c2ecf20Sopenharmony_ci{"tdlti", OPTO(2,TOLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30498c2ecf20Sopenharmony_ci{"tdlei", OPTO(2,TOLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30508c2ecf20Sopenharmony_ci{"tdngi", OPTO(2,TONG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30518c2ecf20Sopenharmony_ci{"tdnei", OPTO(2,TONE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30528c2ecf20Sopenharmony_ci{"tdui", OPTO(2,TOU), OPTO_MASK, PPC64, PPCVLE, {RA, SI}}, 30538c2ecf20Sopenharmony_ci{"tdi", OP(2), OP_MASK, PPC64, PPCVLE, {TO, RA, SI}}, 30548c2ecf20Sopenharmony_ci 30558c2ecf20Sopenharmony_ci{"twlgti", OPTO(3,TOLGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30568c2ecf20Sopenharmony_ci{"tlgti", OPTO(3,TOLGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30578c2ecf20Sopenharmony_ci{"twllti", OPTO(3,TOLLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30588c2ecf20Sopenharmony_ci{"tllti", OPTO(3,TOLLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30598c2ecf20Sopenharmony_ci{"tweqi", OPTO(3,TOEQ), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30608c2ecf20Sopenharmony_ci{"teqi", OPTO(3,TOEQ), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30618c2ecf20Sopenharmony_ci{"twlgei", OPTO(3,TOLGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30628c2ecf20Sopenharmony_ci{"tlgei", OPTO(3,TOLGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30638c2ecf20Sopenharmony_ci{"twlnli", OPTO(3,TOLNL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30648c2ecf20Sopenharmony_ci{"tlnli", OPTO(3,TOLNL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30658c2ecf20Sopenharmony_ci{"twllei", OPTO(3,TOLLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30668c2ecf20Sopenharmony_ci{"tllei", OPTO(3,TOLLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30678c2ecf20Sopenharmony_ci{"twlngi", OPTO(3,TOLNG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30688c2ecf20Sopenharmony_ci{"tlngi", OPTO(3,TOLNG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30698c2ecf20Sopenharmony_ci{"twgti", OPTO(3,TOGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30708c2ecf20Sopenharmony_ci{"tgti", OPTO(3,TOGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30718c2ecf20Sopenharmony_ci{"twgei", OPTO(3,TOGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30728c2ecf20Sopenharmony_ci{"tgei", OPTO(3,TOGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30738c2ecf20Sopenharmony_ci{"twnli", OPTO(3,TONL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30748c2ecf20Sopenharmony_ci{"tnli", OPTO(3,TONL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30758c2ecf20Sopenharmony_ci{"twlti", OPTO(3,TOLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30768c2ecf20Sopenharmony_ci{"tlti", OPTO(3,TOLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30778c2ecf20Sopenharmony_ci{"twlei", OPTO(3,TOLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30788c2ecf20Sopenharmony_ci{"tlei", OPTO(3,TOLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30798c2ecf20Sopenharmony_ci{"twngi", OPTO(3,TONG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30808c2ecf20Sopenharmony_ci{"tngi", OPTO(3,TONG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30818c2ecf20Sopenharmony_ci{"twnei", OPTO(3,TONE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30828c2ecf20Sopenharmony_ci{"tnei", OPTO(3,TONE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30838c2ecf20Sopenharmony_ci{"twui", OPTO(3,TOU), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}}, 30848c2ecf20Sopenharmony_ci{"tui", OPTO(3,TOU), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}}, 30858c2ecf20Sopenharmony_ci{"twi", OP(3), OP_MASK, PPCCOM, PPCVLE, {TO, RA, SI}}, 30868c2ecf20Sopenharmony_ci{"ti", OP(3), OP_MASK, PWRCOM, PPCVLE, {TO, RA, SI}}, 30878c2ecf20Sopenharmony_ci 30888c2ecf20Sopenharmony_ci{"ps_cmpu0", X (4, 0), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}}, 30898c2ecf20Sopenharmony_ci{"vaddubm", VX (4, 0), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 30908c2ecf20Sopenharmony_ci{"vmul10cuq", VX (4, 1), VXVB_MASK, PPCVEC3, 0, {VD, VA}}, 30918c2ecf20Sopenharmony_ci{"vmaxub", VX (4, 2), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 30928c2ecf20Sopenharmony_ci{"vrlb", VX (4, 4), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 30938c2ecf20Sopenharmony_ci{"vcmpequb", VXR(4, 6,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 30948c2ecf20Sopenharmony_ci{"vcmpneb", VXR(4, 7,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 30958c2ecf20Sopenharmony_ci{"vmuloub", VX (4, 8), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 30968c2ecf20Sopenharmony_ci{"vaddfp", VX (4, 10), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 30978c2ecf20Sopenharmony_ci{"psq_lx", XW (4, 6,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}}, 30988c2ecf20Sopenharmony_ci{"vmrghb", VX (4, 12), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 30998c2ecf20Sopenharmony_ci{"psq_stx", XW (4, 7,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}}, 31008c2ecf20Sopenharmony_ci{"vpkuhum", VX (4, 14), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31018c2ecf20Sopenharmony_ci{"mulhhwu", XRC(4, 8,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 31028c2ecf20Sopenharmony_ci{"mulhhwu.", XRC(4, 8,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 31038c2ecf20Sopenharmony_ci{"ps_sum0", A (4, 10,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31048c2ecf20Sopenharmony_ci{"ps_sum0.", A (4, 10,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31058c2ecf20Sopenharmony_ci{"ps_sum1", A (4, 11,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31068c2ecf20Sopenharmony_ci{"ps_sum1.", A (4, 11,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31078c2ecf20Sopenharmony_ci{"ps_muls0", A (4, 12,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 31088c2ecf20Sopenharmony_ci{"machhwu", XO (4, 12,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 31098c2ecf20Sopenharmony_ci{"ps_muls0.", A (4, 12,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 31108c2ecf20Sopenharmony_ci{"machhwu.", XO (4, 12,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 31118c2ecf20Sopenharmony_ci{"ps_muls1", A (4, 13,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 31128c2ecf20Sopenharmony_ci{"ps_muls1.", A (4, 13,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 31138c2ecf20Sopenharmony_ci{"ps_madds0", A (4, 14,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31148c2ecf20Sopenharmony_ci{"ps_madds0.", A (4, 14,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31158c2ecf20Sopenharmony_ci{"ps_madds1", A (4, 15,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31168c2ecf20Sopenharmony_ci{"ps_madds1.", A (4, 15,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31178c2ecf20Sopenharmony_ci{"vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31188c2ecf20Sopenharmony_ci{"vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31198c2ecf20Sopenharmony_ci{"vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31208c2ecf20Sopenharmony_ci{"vmsumudm", VXA(4, 35), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}}, 31218c2ecf20Sopenharmony_ci{"ps_div", A (4, 18,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 31228c2ecf20Sopenharmony_ci{"vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31238c2ecf20Sopenharmony_ci{"ps_div.", A (4, 18,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 31248c2ecf20Sopenharmony_ci{"vmsummbm", VXA(4, 37), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31258c2ecf20Sopenharmony_ci{"vmsumuhm", VXA(4, 38), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31268c2ecf20Sopenharmony_ci{"vmsumuhs", VXA(4, 39), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31278c2ecf20Sopenharmony_ci{"ps_sub", A (4, 20,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 31288c2ecf20Sopenharmony_ci{"vmsumshm", VXA(4, 40), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31298c2ecf20Sopenharmony_ci{"ps_sub.", A (4, 20,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 31308c2ecf20Sopenharmony_ci{"vmsumshs", VXA(4, 41), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31318c2ecf20Sopenharmony_ci{"ps_add", A (4, 21,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 31328c2ecf20Sopenharmony_ci{"vsel", VXA(4, 42), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31338c2ecf20Sopenharmony_ci{"ps_add.", A (4, 21,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 31348c2ecf20Sopenharmony_ci{"vperm", VXA(4, 43), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}}, 31358c2ecf20Sopenharmony_ci{"vsldoi", VXA(4, 44), VXASHB_MASK, PPCVEC, 0, {VD, VA, VB, SHB}}, 31368c2ecf20Sopenharmony_ci{"vpermxor", VXA(4, 45), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}}, 31378c2ecf20Sopenharmony_ci{"ps_sel", A (4, 23,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31388c2ecf20Sopenharmony_ci{"vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}}, 31398c2ecf20Sopenharmony_ci{"ps_sel.", A (4, 23,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31408c2ecf20Sopenharmony_ci{"vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}}, 31418c2ecf20Sopenharmony_ci{"ps_res", A (4, 24,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}}, 31428c2ecf20Sopenharmony_ci{"maddhd", VXA(4, 48), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}}, 31438c2ecf20Sopenharmony_ci{"ps_res.", A (4, 24,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}}, 31448c2ecf20Sopenharmony_ci{"maddhdu", VXA(4, 49), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}}, 31458c2ecf20Sopenharmony_ci{"ps_mul", A (4, 25,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 31468c2ecf20Sopenharmony_ci{"ps_mul.", A (4, 25,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}}, 31478c2ecf20Sopenharmony_ci{"maddld", VXA(4, 51), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}}, 31488c2ecf20Sopenharmony_ci{"ps_rsqrte", A (4, 26,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}}, 31498c2ecf20Sopenharmony_ci{"ps_rsqrte.", A (4, 26,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}}, 31508c2ecf20Sopenharmony_ci{"ps_msub", A (4, 28,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31518c2ecf20Sopenharmony_ci{"ps_msub.", A (4, 28,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31528c2ecf20Sopenharmony_ci{"ps_madd", A (4, 29,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31538c2ecf20Sopenharmony_ci{"ps_madd.", A (4, 29,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31548c2ecf20Sopenharmony_ci{"vpermr", VXA(4, 59), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}}, 31558c2ecf20Sopenharmony_ci{"ps_nmsub", A (4, 30,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31568c2ecf20Sopenharmony_ci{"vaddeuqm", VXA(4, 60), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}}, 31578c2ecf20Sopenharmony_ci{"ps_nmsub.", A (4, 30,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31588c2ecf20Sopenharmony_ci{"vaddecuq", VXA(4, 61), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}}, 31598c2ecf20Sopenharmony_ci{"ps_nmadd", A (4, 31,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31608c2ecf20Sopenharmony_ci{"vsubeuqm", VXA(4, 62), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}}, 31618c2ecf20Sopenharmony_ci{"ps_nmadd.", A (4, 31,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}}, 31628c2ecf20Sopenharmony_ci{"vsubecuq", VXA(4, 63), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}}, 31638c2ecf20Sopenharmony_ci{"ps_cmpo0", X (4, 32), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}}, 31648c2ecf20Sopenharmony_ci{"vadduhm", VX (4, 64), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31658c2ecf20Sopenharmony_ci{"vmul10ecuq", VX (4, 65), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 31668c2ecf20Sopenharmony_ci{"vmaxuh", VX (4, 66), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31678c2ecf20Sopenharmony_ci{"vrlh", VX (4, 68), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31688c2ecf20Sopenharmony_ci{"vcmpequh", VXR(4, 70,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 31698c2ecf20Sopenharmony_ci{"vcmpneh", VXR(4, 71,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 31708c2ecf20Sopenharmony_ci{"vmulouh", VX (4, 72), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31718c2ecf20Sopenharmony_ci{"vsubfp", VX (4, 74), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31728c2ecf20Sopenharmony_ci{"psq_lux", XW (4, 38,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}}, 31738c2ecf20Sopenharmony_ci{"vmrghh", VX (4, 76), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31748c2ecf20Sopenharmony_ci{"psq_stux", XW (4, 39,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}}, 31758c2ecf20Sopenharmony_ci{"vpkuwum", VX (4, 78), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31768c2ecf20Sopenharmony_ci{"ps_neg", XRC(4, 40,0), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 31778c2ecf20Sopenharmony_ci{"mulhhw", XRC(4, 40,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 31788c2ecf20Sopenharmony_ci{"ps_neg.", XRC(4, 40,1), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 31798c2ecf20Sopenharmony_ci{"mulhhw.", XRC(4, 40,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 31808c2ecf20Sopenharmony_ci{"machhw", XO (4, 44,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 31818c2ecf20Sopenharmony_ci{"machhw.", XO (4, 44,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 31828c2ecf20Sopenharmony_ci{"nmachhw", XO (4, 46,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 31838c2ecf20Sopenharmony_ci{"nmachhw.", XO (4, 46,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 31848c2ecf20Sopenharmony_ci{"ps_cmpu1", X (4, 64), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}}, 31858c2ecf20Sopenharmony_ci{"vadduwm", VX (4, 128), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31868c2ecf20Sopenharmony_ci{"vmaxuw", VX (4, 130), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31878c2ecf20Sopenharmony_ci{"vrlw", VX (4, 132), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31888c2ecf20Sopenharmony_ci{"vrlwmi", VX (4, 133), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 31898c2ecf20Sopenharmony_ci{"vcmpequw", VXR(4, 134,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 31908c2ecf20Sopenharmony_ci{"vcmpnew", VXR(4, 135,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 31918c2ecf20Sopenharmony_ci{"vmulouw", VX (4, 136), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 31928c2ecf20Sopenharmony_ci{"vmuluwm", VX (4, 137), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 31938c2ecf20Sopenharmony_ci{"vmrghw", VX (4, 140), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31948c2ecf20Sopenharmony_ci{"vpkuhus", VX (4, 142), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 31958c2ecf20Sopenharmony_ci{"ps_mr", XRC(4, 72,0), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 31968c2ecf20Sopenharmony_ci{"ps_mr.", XRC(4, 72,1), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 31978c2ecf20Sopenharmony_ci{"machhwsu", XO (4, 76,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 31988c2ecf20Sopenharmony_ci{"machhwsu.", XO (4, 76,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 31998c2ecf20Sopenharmony_ci{"ps_cmpo1", X (4, 96), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}}, 32008c2ecf20Sopenharmony_ci{"vaddudm", VX (4, 192), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 32018c2ecf20Sopenharmony_ci{"vmaxud", VX (4, 194), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 32028c2ecf20Sopenharmony_ci{"vrld", VX (4, 196), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 32038c2ecf20Sopenharmony_ci{"vrldmi", VX (4, 197), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 32048c2ecf20Sopenharmony_ci{"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 32058c2ecf20Sopenharmony_ci{"vcmpequd", VXR(4, 199,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 32068c2ecf20Sopenharmony_ci{"vpkuwus", VX (4, 206), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32078c2ecf20Sopenharmony_ci{"machhws", XO (4, 108,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32088c2ecf20Sopenharmony_ci{"machhws.", XO (4, 108,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32098c2ecf20Sopenharmony_ci{"nmachhws", XO (4, 110,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32108c2ecf20Sopenharmony_ci{"nmachhws.", XO (4, 110,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32118c2ecf20Sopenharmony_ci{"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 32128c2ecf20Sopenharmony_ci{"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32138c2ecf20Sopenharmony_ci{"vslb", VX (4, 260), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32148c2ecf20Sopenharmony_ci{"vcmpnezb", VXR(4, 263,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 32158c2ecf20Sopenharmony_ci{"vmulosb", VX (4, 264), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32168c2ecf20Sopenharmony_ci{"vrefp", VX (4, 266), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 32178c2ecf20Sopenharmony_ci{"vmrglb", VX (4, 268), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32188c2ecf20Sopenharmony_ci{"vpkshus", VX (4, 270), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32198c2ecf20Sopenharmony_ci{"ps_nabs", XRC(4, 136,0), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 32208c2ecf20Sopenharmony_ci{"mulchwu", XRC(4, 136,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 32218c2ecf20Sopenharmony_ci{"ps_nabs.", XRC(4, 136,1), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 32228c2ecf20Sopenharmony_ci{"mulchwu.", XRC(4, 136,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 32238c2ecf20Sopenharmony_ci{"macchwu", XO (4, 140,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32248c2ecf20Sopenharmony_ci{"macchwu.", XO (4, 140,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32258c2ecf20Sopenharmony_ci{"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 32268c2ecf20Sopenharmony_ci{"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32278c2ecf20Sopenharmony_ci{"vslh", VX (4, 324), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32288c2ecf20Sopenharmony_ci{"vcmpnezh", VXR(4, 327,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 32298c2ecf20Sopenharmony_ci{"vmulosh", VX (4, 328), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32308c2ecf20Sopenharmony_ci{"vrsqrtefp", VX (4, 330), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 32318c2ecf20Sopenharmony_ci{"vmrglh", VX (4, 332), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32328c2ecf20Sopenharmony_ci{"vpkswus", VX (4, 334), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32338c2ecf20Sopenharmony_ci{"mulchw", XRC(4, 168,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 32348c2ecf20Sopenharmony_ci{"mulchw.", XRC(4, 168,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 32358c2ecf20Sopenharmony_ci{"macchw", XO (4, 172,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32368c2ecf20Sopenharmony_ci{"macchw.", XO (4, 172,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32378c2ecf20Sopenharmony_ci{"nmacchw", XO (4, 174,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32388c2ecf20Sopenharmony_ci{"nmacchw.", XO (4, 174,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32398c2ecf20Sopenharmony_ci{"vaddcuw", VX (4, 384), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32408c2ecf20Sopenharmony_ci{"vmaxsw", VX (4, 386), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32418c2ecf20Sopenharmony_ci{"vslw", VX (4, 388), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32428c2ecf20Sopenharmony_ci{"vrlwnm", VX (4, 389), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 32438c2ecf20Sopenharmony_ci{"vcmpnezw", VXR(4, 391,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 32448c2ecf20Sopenharmony_ci{"vmulosw", VX (4, 392), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 32458c2ecf20Sopenharmony_ci{"vexptefp", VX (4, 394), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 32468c2ecf20Sopenharmony_ci{"vmrglw", VX (4, 396), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32478c2ecf20Sopenharmony_ci{"vpkshss", VX (4, 398), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32488c2ecf20Sopenharmony_ci{"macchwsu", XO (4, 204,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32498c2ecf20Sopenharmony_ci{"macchwsu.", XO (4, 204,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32508c2ecf20Sopenharmony_ci{"vmaxsd", VX (4, 450), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 32518c2ecf20Sopenharmony_ci{"vsl", VX (4, 452), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32528c2ecf20Sopenharmony_ci{"vrldnm", VX (4, 453), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 32538c2ecf20Sopenharmony_ci{"vcmpgefp", VXR(4, 454,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 32548c2ecf20Sopenharmony_ci{"vlogefp", VX (4, 458), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 32558c2ecf20Sopenharmony_ci{"vpkswss", VX (4, 462), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32568c2ecf20Sopenharmony_ci{"macchws", XO (4, 236,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32578c2ecf20Sopenharmony_ci{"macchws.", XO (4, 236,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32588c2ecf20Sopenharmony_ci{"nmacchws", XO (4, 238,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32598c2ecf20Sopenharmony_ci{"nmacchws.", XO (4, 238,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 32608c2ecf20Sopenharmony_ci{"evaddw", VX (4, 512), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32618c2ecf20Sopenharmony_ci{"vaddubs", VX (4, 512), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32628c2ecf20Sopenharmony_ci{"vmul10uq", VX (4, 513), VXVB_MASK, PPCVEC3, 0, {VD, VA}}, 32638c2ecf20Sopenharmony_ci{"evaddiw", VX (4, 514), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}}, 32648c2ecf20Sopenharmony_ci{"vminub", VX (4, 514), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32658c2ecf20Sopenharmony_ci{"evsubfw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32668c2ecf20Sopenharmony_ci{"evsubw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RB, RA}}, 32678c2ecf20Sopenharmony_ci{"vsrb", VX (4, 516), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32688c2ecf20Sopenharmony_ci{"evsubifw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, UIMM, RB}}, 32698c2ecf20Sopenharmony_ci{"evsubiw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}}, 32708c2ecf20Sopenharmony_ci{"vcmpgtub", VXR(4, 518,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 32718c2ecf20Sopenharmony_ci{"evabs", VX (4, 520), VX_MASK, PPCSPE, 0, {RS, RA}}, 32728c2ecf20Sopenharmony_ci{"vmuleub", VX (4, 520), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 32738c2ecf20Sopenharmony_ci{"evneg", VX (4, 521), VX_MASK, PPCSPE, 0, {RS, RA}}, 32748c2ecf20Sopenharmony_ci{"evextsb", VX (4, 522), VX_MASK, PPCSPE, 0, {RS, RA}}, 32758c2ecf20Sopenharmony_ci{"vrfin", VX (4, 522), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 32768c2ecf20Sopenharmony_ci{"evextsh", VX (4, 523), VX_MASK, PPCSPE, 0, {RS, RA}}, 32778c2ecf20Sopenharmony_ci{"evrndw", VX (4, 524), VX_MASK, PPCSPE, 0, {RS, RA}}, 32788c2ecf20Sopenharmony_ci{"vspltb", VX (4, 524), VXUIMM4_MASK, PPCVEC, 0, {VD, VB, UIMM4}}, 32798c2ecf20Sopenharmony_ci{"vextractub", VX (4, 525), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 32808c2ecf20Sopenharmony_ci{"evcntlzw", VX (4, 525), VX_MASK, PPCSPE, 0, {RS, RA}}, 32818c2ecf20Sopenharmony_ci{"evcntlsw", VX (4, 526), VX_MASK, PPCSPE, 0, {RS, RA}}, 32828c2ecf20Sopenharmony_ci{"vupkhsb", VX (4, 526), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 32838c2ecf20Sopenharmony_ci{"brinc", VX (4, 527), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32848c2ecf20Sopenharmony_ci{"ps_abs", XRC(4, 264,0), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 32858c2ecf20Sopenharmony_ci{"ps_abs.", XRC(4, 264,1), XRA_MASK, PPCPS, 0, {FRT, FRB}}, 32868c2ecf20Sopenharmony_ci{"evand", VX (4, 529), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32878c2ecf20Sopenharmony_ci{"evandc", VX (4, 530), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32888c2ecf20Sopenharmony_ci{"evxor", VX (4, 534), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32898c2ecf20Sopenharmony_ci{"evmr", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RA, BBA}}, 32908c2ecf20Sopenharmony_ci{"evor", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32918c2ecf20Sopenharmony_ci{"evnor", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32928c2ecf20Sopenharmony_ci{"evnot", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RA, BBA}}, 32938c2ecf20Sopenharmony_ci{"get", APU(4, 268,0), APU_RA_MASK, PPC405, 0, {RT, FSL}}, 32948c2ecf20Sopenharmony_ci{"eveqv", VX (4, 537), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32958c2ecf20Sopenharmony_ci{"evorc", VX (4, 539), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32968c2ecf20Sopenharmony_ci{"evnand", VX (4, 542), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32978c2ecf20Sopenharmony_ci{"evsrwu", VX (4, 544), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32988c2ecf20Sopenharmony_ci{"evsrws", VX (4, 545), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 32998c2ecf20Sopenharmony_ci{"evsrwiu", VX (4, 546), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}}, 33008c2ecf20Sopenharmony_ci{"evsrwis", VX (4, 547), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}}, 33018c2ecf20Sopenharmony_ci{"evslw", VX (4, 548), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 33028c2ecf20Sopenharmony_ci{"evslwi", VX (4, 550), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}}, 33038c2ecf20Sopenharmony_ci{"evrlw", VX (4, 552), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 33048c2ecf20Sopenharmony_ci{"evsplati", VX (4, 553), VX_MASK, PPCSPE, 0, {RS, SIMM}}, 33058c2ecf20Sopenharmony_ci{"evrlwi", VX (4, 554), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}}, 33068c2ecf20Sopenharmony_ci{"evsplatfi", VX (4, 555), VX_MASK, PPCSPE, 0, {RS, SIMM}}, 33078c2ecf20Sopenharmony_ci{"evmergehi", VX (4, 556), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 33088c2ecf20Sopenharmony_ci{"evmergelo", VX (4, 557), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 33098c2ecf20Sopenharmony_ci{"evmergehilo", VX (4, 558), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 33108c2ecf20Sopenharmony_ci{"evmergelohi", VX (4, 559), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 33118c2ecf20Sopenharmony_ci{"evcmpgtu", VX (4, 560), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33128c2ecf20Sopenharmony_ci{"evcmpgts", VX (4, 561), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33138c2ecf20Sopenharmony_ci{"evcmpltu", VX (4, 562), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33148c2ecf20Sopenharmony_ci{"evcmplts", VX (4, 563), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33158c2ecf20Sopenharmony_ci{"evcmpeq", VX (4, 564), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33168c2ecf20Sopenharmony_ci{"cget", APU(4, 284,0), APU_RA_MASK, PPC405, 0, {RT, FSL}}, 33178c2ecf20Sopenharmony_ci{"vadduhs", VX (4, 576), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 33188c2ecf20Sopenharmony_ci{"vmul10euq", VX (4, 577), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 33198c2ecf20Sopenharmony_ci{"vminuh", VX (4, 578), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 33208c2ecf20Sopenharmony_ci{"vsrh", VX (4, 580), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 33218c2ecf20Sopenharmony_ci{"vcmpgtuh", VXR(4, 582,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 33228c2ecf20Sopenharmony_ci{"vmuleuh", VX (4, 584), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 33238c2ecf20Sopenharmony_ci{"vrfiz", VX (4, 586), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 33248c2ecf20Sopenharmony_ci{"vsplth", VX (4, 588), VXUIMM3_MASK, PPCVEC, 0, {VD, VB, UIMM3}}, 33258c2ecf20Sopenharmony_ci{"vextractuh", VX (4, 589), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 33268c2ecf20Sopenharmony_ci{"vupkhsh", VX (4, 590), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 33278c2ecf20Sopenharmony_ci{"nget", APU(4, 300,0), APU_RA_MASK, PPC405, 0, {RT, FSL}}, 33288c2ecf20Sopenharmony_ci{"evsel", EVSEL(4,79), EVSEL_MASK, PPCSPE, 0, {RS, RA, RB, CRFS}}, 33298c2ecf20Sopenharmony_ci{"ncget", APU(4, 316,0), APU_RA_MASK, PPC405, 0, {RT, FSL}}, 33308c2ecf20Sopenharmony_ci{"evfsadd", VX (4, 640), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 33318c2ecf20Sopenharmony_ci{"vadduws", VX (4, 640), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 33328c2ecf20Sopenharmony_ci{"evfssub", VX (4, 641), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 33338c2ecf20Sopenharmony_ci{"vminuw", VX (4, 642), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 33348c2ecf20Sopenharmony_ci{"evfsabs", VX (4, 644), VX_MASK, PPCSPE, 0, {RS, RA}}, 33358c2ecf20Sopenharmony_ci{"vsrw", VX (4, 644), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 33368c2ecf20Sopenharmony_ci{"evfsnabs", VX (4, 645), VX_MASK, PPCSPE, 0, {RS, RA}}, 33378c2ecf20Sopenharmony_ci{"evfsneg", VX (4, 646), VX_MASK, PPCSPE, 0, {RS, RA}}, 33388c2ecf20Sopenharmony_ci{"vcmpgtuw", VXR(4, 646,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 33398c2ecf20Sopenharmony_ci{"vmuleuw", VX (4, 648), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 33408c2ecf20Sopenharmony_ci{"evfsmul", VX (4, 648), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 33418c2ecf20Sopenharmony_ci{"evfsdiv", VX (4, 649), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 33428c2ecf20Sopenharmony_ci{"vrfip", VX (4, 650), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 33438c2ecf20Sopenharmony_ci{"evfscmpgt", VX (4, 652), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33448c2ecf20Sopenharmony_ci{"vspltw", VX (4, 652), VXUIMM2_MASK, PPCVEC, 0, {VD, VB, UIMM2}}, 33458c2ecf20Sopenharmony_ci{"vextractuw", VX (4, 653), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 33468c2ecf20Sopenharmony_ci{"evfscmplt", VX (4, 653), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33478c2ecf20Sopenharmony_ci{"evfscmpeq", VX (4, 654), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33488c2ecf20Sopenharmony_ci{"vupklsb", VX (4, 654), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 33498c2ecf20Sopenharmony_ci{"evfscfui", VX (4, 656), VX_MASK, PPCSPE, 0, {RS, RB}}, 33508c2ecf20Sopenharmony_ci{"evfscfsi", VX (4, 657), VX_MASK, PPCSPE, 0, {RS, RB}}, 33518c2ecf20Sopenharmony_ci{"evfscfuf", VX (4, 658), VX_MASK, PPCSPE, 0, {RS, RB}}, 33528c2ecf20Sopenharmony_ci{"evfscfsf", VX (4, 659), VX_MASK, PPCSPE, 0, {RS, RB}}, 33538c2ecf20Sopenharmony_ci{"evfsctui", VX (4, 660), VX_MASK, PPCSPE, 0, {RS, RB}}, 33548c2ecf20Sopenharmony_ci{"evfsctsi", VX (4, 661), VX_MASK, PPCSPE, 0, {RS, RB}}, 33558c2ecf20Sopenharmony_ci{"evfsctuf", VX (4, 662), VX_MASK, PPCSPE, 0, {RS, RB}}, 33568c2ecf20Sopenharmony_ci{"evfsctsf", VX (4, 663), VX_MASK, PPCSPE, 0, {RS, RB}}, 33578c2ecf20Sopenharmony_ci{"evfsctuiz", VX (4, 664), VX_MASK, PPCSPE, 0, {RS, RB}}, 33588c2ecf20Sopenharmony_ci{"put", APU(4, 332,0), APU_RT_MASK, PPC405, 0, {RA, FSL}}, 33598c2ecf20Sopenharmony_ci{"evfsctsiz", VX (4, 666), VX_MASK, PPCSPE, 0, {RS, RB}}, 33608c2ecf20Sopenharmony_ci{"evfststgt", VX (4, 668), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33618c2ecf20Sopenharmony_ci{"evfststlt", VX (4, 669), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33628c2ecf20Sopenharmony_ci{"evfststeq", VX (4, 670), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}}, 33638c2ecf20Sopenharmony_ci{"cput", APU(4, 348,0), APU_RT_MASK, PPC405, 0, {RA, FSL}}, 33648c2ecf20Sopenharmony_ci{"efsadd", VX (4, 704), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 33658c2ecf20Sopenharmony_ci{"efssub", VX (4, 705), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 33668c2ecf20Sopenharmony_ci{"vminud", VX (4, 706), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 33678c2ecf20Sopenharmony_ci{"efsabs", VX (4, 708), VX_MASK, PPCEFS, 0, {RS, RA}}, 33688c2ecf20Sopenharmony_ci{"vsr", VX (4, 708), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 33698c2ecf20Sopenharmony_ci{"efsnabs", VX (4, 709), VX_MASK, PPCEFS, 0, {RS, RA}}, 33708c2ecf20Sopenharmony_ci{"efsneg", VX (4, 710), VX_MASK, PPCEFS, 0, {RS, RA}}, 33718c2ecf20Sopenharmony_ci{"vcmpgtfp", VXR(4, 710,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 33728c2ecf20Sopenharmony_ci{"vcmpgtud", VXR(4, 711,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 33738c2ecf20Sopenharmony_ci{"efsmul", VX (4, 712), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 33748c2ecf20Sopenharmony_ci{"efsdiv", VX (4, 713), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 33758c2ecf20Sopenharmony_ci{"vrfim", VX (4, 714), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 33768c2ecf20Sopenharmony_ci{"efscmpgt", VX (4, 716), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 33778c2ecf20Sopenharmony_ci{"vextractd", VX (4, 717), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 33788c2ecf20Sopenharmony_ci{"efscmplt", VX (4, 717), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 33798c2ecf20Sopenharmony_ci{"efscmpeq", VX (4, 718), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 33808c2ecf20Sopenharmony_ci{"vupklsh", VX (4, 718), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 33818c2ecf20Sopenharmony_ci{"efscfd", VX (4, 719), VX_MASK, PPCEFS, 0, {RS, RB}}, 33828c2ecf20Sopenharmony_ci{"efscfui", VX (4, 720), VX_MASK, PPCEFS, 0, {RS, RB}}, 33838c2ecf20Sopenharmony_ci{"efscfsi", VX (4, 721), VX_MASK, PPCEFS, 0, {RS, RB}}, 33848c2ecf20Sopenharmony_ci{"efscfuf", VX (4, 722), VX_MASK, PPCEFS, 0, {RS, RB}}, 33858c2ecf20Sopenharmony_ci{"efscfsf", VX (4, 723), VX_MASK, PPCEFS, 0, {RS, RB}}, 33868c2ecf20Sopenharmony_ci{"efsctui", VX (4, 724), VX_MASK, PPCEFS, 0, {RS, RB}}, 33878c2ecf20Sopenharmony_ci{"efsctsi", VX (4, 725), VX_MASK, PPCEFS, 0, {RS, RB}}, 33888c2ecf20Sopenharmony_ci{"efsctuf", VX (4, 726), VX_MASK, PPCEFS, 0, {RS, RB}}, 33898c2ecf20Sopenharmony_ci{"efsctsf", VX (4, 727), VX_MASK, PPCEFS, 0, {RS, RB}}, 33908c2ecf20Sopenharmony_ci{"efsctuiz", VX (4, 728), VX_MASK, PPCEFS, 0, {RS, RB}}, 33918c2ecf20Sopenharmony_ci{"nput", APU(4, 364,0), APU_RT_MASK, PPC405, 0, {RA, FSL}}, 33928c2ecf20Sopenharmony_ci{"efsctsiz", VX (4, 730), VX_MASK, PPCEFS, 0, {RS, RB}}, 33938c2ecf20Sopenharmony_ci{"efststgt", VX (4, 732), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 33948c2ecf20Sopenharmony_ci{"efststlt", VX (4, 733), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 33958c2ecf20Sopenharmony_ci{"efststeq", VX (4, 734), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 33968c2ecf20Sopenharmony_ci{"efdadd", VX (4, 736), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 33978c2ecf20Sopenharmony_ci{"efdsub", VX (4, 737), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 33988c2ecf20Sopenharmony_ci{"efdcfuid", VX (4, 738), VX_MASK, PPCEFS, 0, {RS, RB}}, 33998c2ecf20Sopenharmony_ci{"efdcfsid", VX (4, 739), VX_MASK, PPCEFS, 0, {RS, RB}}, 34008c2ecf20Sopenharmony_ci{"efdabs", VX (4, 740), VX_MASK, PPCEFS, 0, {RS, RA}}, 34018c2ecf20Sopenharmony_ci{"efdnabs", VX (4, 741), VX_MASK, PPCEFS, 0, {RS, RA}}, 34028c2ecf20Sopenharmony_ci{"efdneg", VX (4, 742), VX_MASK, PPCEFS, 0, {RS, RA}}, 34038c2ecf20Sopenharmony_ci{"efdmul", VX (4, 744), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 34048c2ecf20Sopenharmony_ci{"efddiv", VX (4, 745), VX_MASK, PPCEFS, 0, {RS, RA, RB}}, 34058c2ecf20Sopenharmony_ci{"efdctuidz", VX (4, 746), VX_MASK, PPCEFS, 0, {RS, RB}}, 34068c2ecf20Sopenharmony_ci{"efdctsidz", VX (4, 747), VX_MASK, PPCEFS, 0, {RS, RB}}, 34078c2ecf20Sopenharmony_ci{"efdcmpgt", VX (4, 748), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 34088c2ecf20Sopenharmony_ci{"efdcmplt", VX (4, 749), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 34098c2ecf20Sopenharmony_ci{"efdcmpeq", VX (4, 750), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 34108c2ecf20Sopenharmony_ci{"efdcfs", VX (4, 751), VX_MASK, PPCEFS, 0, {RS, RB}}, 34118c2ecf20Sopenharmony_ci{"efdcfui", VX (4, 752), VX_MASK, PPCEFS, 0, {RS, RB}}, 34128c2ecf20Sopenharmony_ci{"efdcfsi", VX (4, 753), VX_MASK, PPCEFS, 0, {RS, RB}}, 34138c2ecf20Sopenharmony_ci{"efdcfuf", VX (4, 754), VX_MASK, PPCEFS, 0, {RS, RB}}, 34148c2ecf20Sopenharmony_ci{"efdcfsf", VX (4, 755), VX_MASK, PPCEFS, 0, {RS, RB}}, 34158c2ecf20Sopenharmony_ci{"efdctui", VX (4, 756), VX_MASK, PPCEFS, 0, {RS, RB}}, 34168c2ecf20Sopenharmony_ci{"efdctsi", VX (4, 757), VX_MASK, PPCEFS, 0, {RS, RB}}, 34178c2ecf20Sopenharmony_ci{"efdctuf", VX (4, 758), VX_MASK, PPCEFS, 0, {RS, RB}}, 34188c2ecf20Sopenharmony_ci{"efdctsf", VX (4, 759), VX_MASK, PPCEFS, 0, {RS, RB}}, 34198c2ecf20Sopenharmony_ci{"efdctuiz", VX (4, 760), VX_MASK, PPCEFS, 0, {RS, RB}}, 34208c2ecf20Sopenharmony_ci{"ncput", APU(4, 380,0), APU_RT_MASK, PPC405, 0, {RA, FSL}}, 34218c2ecf20Sopenharmony_ci{"efdctsiz", VX (4, 762), VX_MASK, PPCEFS, 0, {RS, RB}}, 34228c2ecf20Sopenharmony_ci{"efdtstgt", VX (4, 764), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 34238c2ecf20Sopenharmony_ci{"efdtstlt", VX (4, 765), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 34248c2ecf20Sopenharmony_ci{"efdtsteq", VX (4, 766), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}}, 34258c2ecf20Sopenharmony_ci{"evlddx", VX (4, 768), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34268c2ecf20Sopenharmony_ci{"vaddsbs", VX (4, 768), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34278c2ecf20Sopenharmony_ci{"evldd", VX (4, 769), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 34288c2ecf20Sopenharmony_ci{"evldwx", VX (4, 770), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34298c2ecf20Sopenharmony_ci{"vminsb", VX (4, 770), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34308c2ecf20Sopenharmony_ci{"evldw", VX (4, 771), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 34318c2ecf20Sopenharmony_ci{"evldhx", VX (4, 772), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34328c2ecf20Sopenharmony_ci{"vsrab", VX (4, 772), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34338c2ecf20Sopenharmony_ci{"evldh", VX (4, 773), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 34348c2ecf20Sopenharmony_ci{"vcmpgtsb", VXR(4, 774,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 34358c2ecf20Sopenharmony_ci{"evlhhesplatx",VX (4, 776), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34368c2ecf20Sopenharmony_ci{"vmulesb", VX (4, 776), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34378c2ecf20Sopenharmony_ci{"evlhhesplat", VX (4, 777), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}}, 34388c2ecf20Sopenharmony_ci{"vcfux", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 34398c2ecf20Sopenharmony_ci{"vcuxwfp", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 34408c2ecf20Sopenharmony_ci{"evlhhousplatx",VX(4, 780), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34418c2ecf20Sopenharmony_ci{"vspltisb", VX (4, 780), VXVB_MASK, PPCVEC, 0, {VD, SIMM}}, 34428c2ecf20Sopenharmony_ci{"vinsertb", VX (4, 781), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 34438c2ecf20Sopenharmony_ci{"evlhhousplat",VX (4, 781), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}}, 34448c2ecf20Sopenharmony_ci{"evlhhossplatx",VX(4, 782), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34458c2ecf20Sopenharmony_ci{"vpkpx", VX (4, 782), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34468c2ecf20Sopenharmony_ci{"evlhhossplat",VX (4, 783), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}}, 34478c2ecf20Sopenharmony_ci{"mullhwu", XRC(4, 392,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 34488c2ecf20Sopenharmony_ci{"evlwhex", VX (4, 784), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34498c2ecf20Sopenharmony_ci{"mullhwu.", XRC(4, 392,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 34508c2ecf20Sopenharmony_ci{"evlwhe", VX (4, 785), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 34518c2ecf20Sopenharmony_ci{"evlwhoux", VX (4, 788), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34528c2ecf20Sopenharmony_ci{"evlwhou", VX (4, 789), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 34538c2ecf20Sopenharmony_ci{"evlwhosx", VX (4, 790), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34548c2ecf20Sopenharmony_ci{"evlwhos", VX (4, 791), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 34558c2ecf20Sopenharmony_ci{"maclhwu", XO (4, 396,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}}, 34568c2ecf20Sopenharmony_ci{"evlwwsplatx", VX (4, 792), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34578c2ecf20Sopenharmony_ci{"maclhwu.", XO (4, 396,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}}, 34588c2ecf20Sopenharmony_ci{"evlwwsplat", VX (4, 793), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 34598c2ecf20Sopenharmony_ci{"evlwhsplatx", VX (4, 796), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34608c2ecf20Sopenharmony_ci{"evlwhsplat", VX (4, 797), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 34618c2ecf20Sopenharmony_ci{"evstddx", VX (4, 800), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34628c2ecf20Sopenharmony_ci{"evstdd", VX (4, 801), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 34638c2ecf20Sopenharmony_ci{"evstdwx", VX (4, 802), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34648c2ecf20Sopenharmony_ci{"evstdw", VX (4, 803), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 34658c2ecf20Sopenharmony_ci{"evstdhx", VX (4, 804), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34668c2ecf20Sopenharmony_ci{"evstdh", VX (4, 805), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}}, 34678c2ecf20Sopenharmony_ci{"evstwhex", VX (4, 816), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34688c2ecf20Sopenharmony_ci{"evstwhe", VX (4, 817), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 34698c2ecf20Sopenharmony_ci{"evstwhox", VX (4, 820), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34708c2ecf20Sopenharmony_ci{"evstwho", VX (4, 821), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 34718c2ecf20Sopenharmony_ci{"evstwwex", VX (4, 824), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34728c2ecf20Sopenharmony_ci{"evstwwe", VX (4, 825), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 34738c2ecf20Sopenharmony_ci{"evstwwox", VX (4, 828), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 34748c2ecf20Sopenharmony_ci{"evstwwo", VX (4, 829), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}}, 34758c2ecf20Sopenharmony_ci{"vaddshs", VX (4, 832), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34768c2ecf20Sopenharmony_ci{"bcdcpsgn.", VX (4, 833), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 34778c2ecf20Sopenharmony_ci{"vminsh", VX (4, 834), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34788c2ecf20Sopenharmony_ci{"vsrah", VX (4, 836), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34798c2ecf20Sopenharmony_ci{"vcmpgtsh", VXR(4, 838,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 34808c2ecf20Sopenharmony_ci{"vmulesh", VX (4, 840), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34818c2ecf20Sopenharmony_ci{"vcfsx", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 34828c2ecf20Sopenharmony_ci{"vcsxwfp", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 34838c2ecf20Sopenharmony_ci{"vspltish", VX (4, 844), VXVB_MASK, PPCVEC, 0, {VD, SIMM}}, 34848c2ecf20Sopenharmony_ci{"vinserth", VX (4, 845), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 34858c2ecf20Sopenharmony_ci{"vupkhpx", VX (4, 846), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 34868c2ecf20Sopenharmony_ci{"mullhw", XRC(4, 424,0), X_MASK, MULHW, 0, {RT, RA, RB}}, 34878c2ecf20Sopenharmony_ci{"mullhw.", XRC(4, 424,1), X_MASK, MULHW, 0, {RT, RA, RB}}, 34888c2ecf20Sopenharmony_ci{"maclhw", XO (4, 428,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}}, 34898c2ecf20Sopenharmony_ci{"maclhw.", XO (4, 428,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}}, 34908c2ecf20Sopenharmony_ci{"nmaclhw", XO (4, 430,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}}, 34918c2ecf20Sopenharmony_ci{"nmaclhw.", XO (4, 430,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}}, 34928c2ecf20Sopenharmony_ci{"vaddsws", VX (4, 896), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34938c2ecf20Sopenharmony_ci{"vminsw", VX (4, 898), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34948c2ecf20Sopenharmony_ci{"vsraw", VX (4, 900), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 34958c2ecf20Sopenharmony_ci{"vcmpgtsw", VXR(4, 902,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 34968c2ecf20Sopenharmony_ci{"vmulesw", VX (4, 904), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 34978c2ecf20Sopenharmony_ci{"vctuxs", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 34988c2ecf20Sopenharmony_ci{"vcfpuxws", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 34998c2ecf20Sopenharmony_ci{"vspltisw", VX (4, 908), VXVB_MASK, PPCVEC, 0, {VD, SIMM}}, 35008c2ecf20Sopenharmony_ci{"vinsertw", VX (4, 909), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 35018c2ecf20Sopenharmony_ci{"maclhwsu", XO (4, 460,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35028c2ecf20Sopenharmony_ci{"maclhwsu.", XO (4, 460,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35038c2ecf20Sopenharmony_ci{"vminsd", VX (4, 962), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 35048c2ecf20Sopenharmony_ci{"vsrad", VX (4, 964), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 35058c2ecf20Sopenharmony_ci{"vcmpbfp", VXR(4, 966,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 35068c2ecf20Sopenharmony_ci{"vcmpgtsd", VXR(4, 967,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 35078c2ecf20Sopenharmony_ci{"vctsxs", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 35088c2ecf20Sopenharmony_ci{"vcfpsxws", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}}, 35098c2ecf20Sopenharmony_ci{"vinsertd", VX (4, 973), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}}, 35108c2ecf20Sopenharmony_ci{"vupklpx", VX (4, 974), VXVA_MASK, PPCVEC, 0, {VD, VB}}, 35118c2ecf20Sopenharmony_ci{"maclhws", XO (4, 492,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35128c2ecf20Sopenharmony_ci{"maclhws.", XO (4, 492,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35138c2ecf20Sopenharmony_ci{"nmaclhws", XO (4, 494,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35148c2ecf20Sopenharmony_ci{"nmaclhws.", XO (4, 494,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35158c2ecf20Sopenharmony_ci{"vsububm", VX (4,1024), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35168c2ecf20Sopenharmony_ci{"bcdadd.", VX (4,1025), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}}, 35178c2ecf20Sopenharmony_ci{"vavgub", VX (4,1026), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35188c2ecf20Sopenharmony_ci{"vabsdub", VX (4,1027), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 35198c2ecf20Sopenharmony_ci{"evmhessf", VX (4,1027), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35208c2ecf20Sopenharmony_ci{"vand", VX (4,1028), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35218c2ecf20Sopenharmony_ci{"vcmpequb.", VXR(4, 6,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 35228c2ecf20Sopenharmony_ci{"vcmpneb.", VXR(4, 7,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 35238c2ecf20Sopenharmony_ci{"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 35248c2ecf20Sopenharmony_ci{"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 35258c2ecf20Sopenharmony_ci{"evmhossf", VX (4,1031), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35268c2ecf20Sopenharmony_ci{"vpmsumb", VX (4,1032), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 35278c2ecf20Sopenharmony_ci{"evmheumi", VX (4,1032), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35288c2ecf20Sopenharmony_ci{"evmhesmi", VX (4,1033), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35298c2ecf20Sopenharmony_ci{"vmaxfp", VX (4,1034), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35308c2ecf20Sopenharmony_ci{"evmhesmf", VX (4,1035), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35318c2ecf20Sopenharmony_ci{"evmhoumi", VX (4,1036), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35328c2ecf20Sopenharmony_ci{"vslo", VX (4,1036), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35338c2ecf20Sopenharmony_ci{"evmhosmi", VX (4,1037), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35348c2ecf20Sopenharmony_ci{"evmhosmf", VX (4,1039), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35358c2ecf20Sopenharmony_ci{"machhwuo", XO (4, 12,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35368c2ecf20Sopenharmony_ci{"machhwuo.", XO (4, 12,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35378c2ecf20Sopenharmony_ci{"ps_merge00", XOPS(4,528,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 35388c2ecf20Sopenharmony_ci{"ps_merge00.", XOPS(4,528,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 35398c2ecf20Sopenharmony_ci{"evmhessfa", VX (4,1059), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35408c2ecf20Sopenharmony_ci{"evmhossfa", VX (4,1063), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35418c2ecf20Sopenharmony_ci{"evmheumia", VX (4,1064), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35428c2ecf20Sopenharmony_ci{"evmhesmia", VX (4,1065), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35438c2ecf20Sopenharmony_ci{"evmhesmfa", VX (4,1067), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35448c2ecf20Sopenharmony_ci{"evmhoumia", VX (4,1068), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35458c2ecf20Sopenharmony_ci{"evmhosmia", VX (4,1069), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35468c2ecf20Sopenharmony_ci{"evmhosmfa", VX (4,1071), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35478c2ecf20Sopenharmony_ci{"vsubuhm", VX (4,1088), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35488c2ecf20Sopenharmony_ci{"bcdsub.", VX (4,1089), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}}, 35498c2ecf20Sopenharmony_ci{"vavguh", VX (4,1090), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35508c2ecf20Sopenharmony_ci{"vabsduh", VX (4,1091), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 35518c2ecf20Sopenharmony_ci{"vandc", VX (4,1092), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35528c2ecf20Sopenharmony_ci{"vcmpequh.", VXR(4, 70,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 35538c2ecf20Sopenharmony_ci{"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 35548c2ecf20Sopenharmony_ci{"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 35558c2ecf20Sopenharmony_ci{"vcmpneh.", VXR(4, 71,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 35568c2ecf20Sopenharmony_ci{"evmwhssf", VX (4,1095), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35578c2ecf20Sopenharmony_ci{"vpmsumh", VX (4,1096), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 35588c2ecf20Sopenharmony_ci{"evmwlumi", VX (4,1096), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35598c2ecf20Sopenharmony_ci{"vminfp", VX (4,1098), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35608c2ecf20Sopenharmony_ci{"evmwhumi", VX (4,1100), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35618c2ecf20Sopenharmony_ci{"vsro", VX (4,1100), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35628c2ecf20Sopenharmony_ci{"evmwhsmi", VX (4,1101), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35638c2ecf20Sopenharmony_ci{"vpkudum", VX (4,1102), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 35648c2ecf20Sopenharmony_ci{"evmwhsmf", VX (4,1103), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35658c2ecf20Sopenharmony_ci{"evmwssf", VX (4,1107), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35668c2ecf20Sopenharmony_ci{"machhwo", XO (4, 44,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35678c2ecf20Sopenharmony_ci{"evmwumi", VX (4,1112), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35688c2ecf20Sopenharmony_ci{"machhwo.", XO (4, 44,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35698c2ecf20Sopenharmony_ci{"evmwsmi", VX (4,1113), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35708c2ecf20Sopenharmony_ci{"evmwsmf", VX (4,1115), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35718c2ecf20Sopenharmony_ci{"nmachhwo", XO (4, 46,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35728c2ecf20Sopenharmony_ci{"nmachhwo.", XO (4, 46,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35738c2ecf20Sopenharmony_ci{"ps_merge01", XOPS(4,560,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 35748c2ecf20Sopenharmony_ci{"ps_merge01.", XOPS(4,560,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 35758c2ecf20Sopenharmony_ci{"evmwhssfa", VX (4,1127), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35768c2ecf20Sopenharmony_ci{"evmwlumia", VX (4,1128), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35778c2ecf20Sopenharmony_ci{"evmwhumia", VX (4,1132), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35788c2ecf20Sopenharmony_ci{"evmwhsmia", VX (4,1133), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35798c2ecf20Sopenharmony_ci{"evmwhsmfa", VX (4,1135), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35808c2ecf20Sopenharmony_ci{"evmwssfa", VX (4,1139), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35818c2ecf20Sopenharmony_ci{"evmwumia", VX (4,1144), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35828c2ecf20Sopenharmony_ci{"evmwsmia", VX (4,1145), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35838c2ecf20Sopenharmony_ci{"evmwsmfa", VX (4,1147), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 35848c2ecf20Sopenharmony_ci{"vsubuwm", VX (4,1152), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35858c2ecf20Sopenharmony_ci{"bcdus.", VX (4,1153), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 35868c2ecf20Sopenharmony_ci{"vavguw", VX (4,1154), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35878c2ecf20Sopenharmony_ci{"vabsduw", VX (4,1155), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 35888c2ecf20Sopenharmony_ci{"vmr", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VA, VBA}}, 35898c2ecf20Sopenharmony_ci{"vor", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 35908c2ecf20Sopenharmony_ci{"vcmpnew.", VXR(4, 135,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 35918c2ecf20Sopenharmony_ci{"vpmsumw", VX (4,1160), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 35928c2ecf20Sopenharmony_ci{"vcmpequw.", VXR(4, 134,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 35938c2ecf20Sopenharmony_ci{"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 35948c2ecf20Sopenharmony_ci{"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 35958c2ecf20Sopenharmony_ci{"machhwsuo", XO (4, 76,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35968c2ecf20Sopenharmony_ci{"machhwsuo.", XO (4, 76,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 35978c2ecf20Sopenharmony_ci{"ps_merge10", XOPS(4,592,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 35988c2ecf20Sopenharmony_ci{"ps_merge10.", XOPS(4,592,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 35998c2ecf20Sopenharmony_ci{"vsubudm", VX (4,1216), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36008c2ecf20Sopenharmony_ci{"evaddusiaaw", VX (4,1216), VX_MASK, PPCSPE, 0, {RS, RA}}, 36018c2ecf20Sopenharmony_ci{"bcds.", VX (4,1217), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}}, 36028c2ecf20Sopenharmony_ci{"evaddssiaaw", VX (4,1217), VX_MASK, PPCSPE, 0, {RS, RA}}, 36038c2ecf20Sopenharmony_ci{"evsubfusiaaw",VX (4,1218), VX_MASK, PPCSPE, 0, {RS, RA}}, 36048c2ecf20Sopenharmony_ci{"evsubfssiaaw",VX (4,1219), VX_MASK, PPCSPE, 0, {RS, RA}}, 36058c2ecf20Sopenharmony_ci{"evmra", VX (4,1220), VX_MASK, PPCSPE, 0, {RS, RA}}, 36068c2ecf20Sopenharmony_ci{"vxor", VX (4,1220), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 36078c2ecf20Sopenharmony_ci{"evdivws", VX (4,1222), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36088c2ecf20Sopenharmony_ci{"vcmpeqfp.", VXR(4, 198,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 36098c2ecf20Sopenharmony_ci{"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 36108c2ecf20Sopenharmony_ci{"vcmpequd.", VXR(4, 199,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36118c2ecf20Sopenharmony_ci{"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 36128c2ecf20Sopenharmony_ci{"evdivwu", VX (4,1223), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36138c2ecf20Sopenharmony_ci{"vpmsumd", VX (4,1224), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36148c2ecf20Sopenharmony_ci{"evaddumiaaw", VX (4,1224), VX_MASK, PPCSPE, 0, {RS, RA}}, 36158c2ecf20Sopenharmony_ci{"evaddsmiaaw", VX (4,1225), VX_MASK, PPCSPE, 0, {RS, RA}}, 36168c2ecf20Sopenharmony_ci{"evsubfumiaaw",VX (4,1226), VX_MASK, PPCSPE, 0, {RS, RA}}, 36178c2ecf20Sopenharmony_ci{"evsubfsmiaaw",VX (4,1227), VX_MASK, PPCSPE, 0, {RS, RA}}, 36188c2ecf20Sopenharmony_ci{"vpkudus", VX (4,1230), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36198c2ecf20Sopenharmony_ci{"machhwso", XO (4, 108,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 36208c2ecf20Sopenharmony_ci{"machhwso.", XO (4, 108,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 36218c2ecf20Sopenharmony_ci{"nmachhwso", XO (4, 110,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 36228c2ecf20Sopenharmony_ci{"nmachhwso.", XO (4, 110,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 36238c2ecf20Sopenharmony_ci{"ps_merge11", XOPS(4,624,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 36248c2ecf20Sopenharmony_ci{"ps_merge11.", XOPS(4,624,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}}, 36258c2ecf20Sopenharmony_ci{"vsubuqm", VX (4,1280), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36268c2ecf20Sopenharmony_ci{"evmheusiaaw", VX (4,1280), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36278c2ecf20Sopenharmony_ci{"bcdtrunc.", VX (4,1281), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}}, 36288c2ecf20Sopenharmony_ci{"evmhessiaaw", VX (4,1281), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36298c2ecf20Sopenharmony_ci{"vavgsb", VX (4,1282), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 36308c2ecf20Sopenharmony_ci{"evmhessfaaw", VX (4,1283), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36318c2ecf20Sopenharmony_ci{"evmhousiaaw", VX (4,1284), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36328c2ecf20Sopenharmony_ci{"vnot", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VA, VBA}}, 36338c2ecf20Sopenharmony_ci{"vnor", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 36348c2ecf20Sopenharmony_ci{"evmhossiaaw", VX (4,1285), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36358c2ecf20Sopenharmony_ci{"udi4fcm.", APU(4, 643,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 36368c2ecf20Sopenharmony_ci{"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 36378c2ecf20Sopenharmony_ci{"vcmpnezb.", VXR(4, 263,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 36388c2ecf20Sopenharmony_ci{"evmhossfaaw", VX (4,1287), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36398c2ecf20Sopenharmony_ci{"evmheumiaaw", VX (4,1288), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36408c2ecf20Sopenharmony_ci{"vcipher", VX (4,1288), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36418c2ecf20Sopenharmony_ci{"vcipherlast", VX (4,1289), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36428c2ecf20Sopenharmony_ci{"evmhesmiaaw", VX (4,1289), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36438c2ecf20Sopenharmony_ci{"evmhesmfaaw", VX (4,1291), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36448c2ecf20Sopenharmony_ci{"vgbbd", VX (4,1292), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 36458c2ecf20Sopenharmony_ci{"evmhoumiaaw", VX (4,1292), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36468c2ecf20Sopenharmony_ci{"evmhosmiaaw", VX (4,1293), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36478c2ecf20Sopenharmony_ci{"evmhosmfaaw", VX (4,1295), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36488c2ecf20Sopenharmony_ci{"macchwuo", XO (4, 140,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 36498c2ecf20Sopenharmony_ci{"macchwuo.", XO (4, 140,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 36508c2ecf20Sopenharmony_ci{"evmhegumiaa", VX (4,1320), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36518c2ecf20Sopenharmony_ci{"evmhegsmiaa", VX (4,1321), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36528c2ecf20Sopenharmony_ci{"evmhegsmfaa", VX (4,1323), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36538c2ecf20Sopenharmony_ci{"evmhogumiaa", VX (4,1324), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36548c2ecf20Sopenharmony_ci{"evmhogsmiaa", VX (4,1325), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36558c2ecf20Sopenharmony_ci{"evmhogsmfaa", VX (4,1327), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36568c2ecf20Sopenharmony_ci{"vsubcuq", VX (4,1344), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36578c2ecf20Sopenharmony_ci{"evmwlusiaaw", VX (4,1344), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36588c2ecf20Sopenharmony_ci{"bcdutrunc.", VX (4,1345), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 36598c2ecf20Sopenharmony_ci{"evmwlssiaaw", VX (4,1345), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36608c2ecf20Sopenharmony_ci{"vavgsh", VX (4,1346), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 36618c2ecf20Sopenharmony_ci{"vorc", VX (4,1348), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36628c2ecf20Sopenharmony_ci{"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 36638c2ecf20Sopenharmony_ci{"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 36648c2ecf20Sopenharmony_ci{"vcmpnezh.", VXR(4, 327,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 36658c2ecf20Sopenharmony_ci{"vncipher", VX (4,1352), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36668c2ecf20Sopenharmony_ci{"evmwlumiaaw", VX (4,1352), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36678c2ecf20Sopenharmony_ci{"vncipherlast",VX (4,1353), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36688c2ecf20Sopenharmony_ci{"evmwlsmiaaw", VX (4,1353), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36698c2ecf20Sopenharmony_ci{"vbpermq", VX (4,1356), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36708c2ecf20Sopenharmony_ci{"vpksdus", VX (4,1358), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36718c2ecf20Sopenharmony_ci{"evmwssfaa", VX (4,1363), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36728c2ecf20Sopenharmony_ci{"macchwo", XO (4, 172,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 36738c2ecf20Sopenharmony_ci{"evmwumiaa", VX (4,1368), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36748c2ecf20Sopenharmony_ci{"macchwo.", XO (4, 172,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 36758c2ecf20Sopenharmony_ci{"evmwsmiaa", VX (4,1369), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36768c2ecf20Sopenharmony_ci{"evmwsmfaa", VX (4,1371), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36778c2ecf20Sopenharmony_ci{"nmacchwo", XO (4, 174,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 36788c2ecf20Sopenharmony_ci{"nmacchwo.", XO (4, 174,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 36798c2ecf20Sopenharmony_ci{"evmheusianw", VX (4,1408), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36808c2ecf20Sopenharmony_ci{"vsubcuw", VX (4,1408), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 36818c2ecf20Sopenharmony_ci{"evmhessianw", VX (4,1409), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36828c2ecf20Sopenharmony_ci{"bcdctsq.", VXVA(4,1409,0), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 36838c2ecf20Sopenharmony_ci{"bcdcfsq.", VXVA(4,1409,2), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}}, 36848c2ecf20Sopenharmony_ci{"bcdctz.", VXVA(4,1409,4), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}}, 36858c2ecf20Sopenharmony_ci{"bcdctn.", VXVA(4,1409,5), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 36868c2ecf20Sopenharmony_ci{"bcdcfz.", VXVA(4,1409,6), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}}, 36878c2ecf20Sopenharmony_ci{"bcdcfn.", VXVA(4,1409,7), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}}, 36888c2ecf20Sopenharmony_ci{"bcdsetsgn.", VXVA(4,1409,31), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}}, 36898c2ecf20Sopenharmony_ci{"vavgsw", VX (4,1410), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 36908c2ecf20Sopenharmony_ci{"evmhessfanw", VX (4,1411), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36918c2ecf20Sopenharmony_ci{"vnand", VX (4,1412), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 36928c2ecf20Sopenharmony_ci{"evmhousianw", VX (4,1412), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36938c2ecf20Sopenharmony_ci{"evmhossianw", VX (4,1413), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36948c2ecf20Sopenharmony_ci{"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 36958c2ecf20Sopenharmony_ci{"udi6fcm", APU(4, 707,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 36968c2ecf20Sopenharmony_ci{"vcmpnezw.", VXR(4, 391,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}}, 36978c2ecf20Sopenharmony_ci{"evmhossfanw", VX (4,1415), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36988c2ecf20Sopenharmony_ci{"evmheumianw", VX (4,1416), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 36998c2ecf20Sopenharmony_ci{"evmhesmianw", VX (4,1417), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37008c2ecf20Sopenharmony_ci{"evmhesmfanw", VX (4,1419), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37018c2ecf20Sopenharmony_ci{"evmhoumianw", VX (4,1420), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37028c2ecf20Sopenharmony_ci{"evmhosmianw", VX (4,1421), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37038c2ecf20Sopenharmony_ci{"evmhosmfanw", VX (4,1423), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37048c2ecf20Sopenharmony_ci{"macchwsuo", XO (4, 204,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 37058c2ecf20Sopenharmony_ci{"macchwsuo.", XO (4, 204,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 37068c2ecf20Sopenharmony_ci{"evmhegumian", VX (4,1448), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37078c2ecf20Sopenharmony_ci{"evmhegsmian", VX (4,1449), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37088c2ecf20Sopenharmony_ci{"evmhegsmfan", VX (4,1451), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37098c2ecf20Sopenharmony_ci{"evmhogumian", VX (4,1452), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37108c2ecf20Sopenharmony_ci{"evmhogsmian", VX (4,1453), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37118c2ecf20Sopenharmony_ci{"evmhogsmfan", VX (4,1455), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37128c2ecf20Sopenharmony_ci{"evmwlusianw", VX (4,1472), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37138c2ecf20Sopenharmony_ci{"bcdsr.", VX (4,1473), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}}, 37148c2ecf20Sopenharmony_ci{"evmwlssianw", VX (4,1473), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37158c2ecf20Sopenharmony_ci{"vsld", VX (4,1476), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 37168c2ecf20Sopenharmony_ci{"vcmpgefp.", VXR(4, 454,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 37178c2ecf20Sopenharmony_ci{"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 37188c2ecf20Sopenharmony_ci{"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}}, 37198c2ecf20Sopenharmony_ci{"vsbox", VX (4,1480), VXVB_MASK, PPCVEC2, 0, {VD, VA}}, 37208c2ecf20Sopenharmony_ci{"evmwlumianw", VX (4,1480), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37218c2ecf20Sopenharmony_ci{"evmwlsmianw", VX (4,1481), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37228c2ecf20Sopenharmony_ci{"vbpermd", VX (4,1484), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 37238c2ecf20Sopenharmony_ci{"vpksdss", VX (4,1486), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 37248c2ecf20Sopenharmony_ci{"evmwssfan", VX (4,1491), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37258c2ecf20Sopenharmony_ci{"macchwso", XO (4, 236,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 37268c2ecf20Sopenharmony_ci{"evmwumian", VX (4,1496), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37278c2ecf20Sopenharmony_ci{"macchwso.", XO (4, 236,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 37288c2ecf20Sopenharmony_ci{"evmwsmian", VX (4,1497), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37298c2ecf20Sopenharmony_ci{"evmwsmfan", VX (4,1499), VX_MASK, PPCSPE, 0, {RS, RA, RB}}, 37308c2ecf20Sopenharmony_ci{"nmacchwso", XO (4, 238,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 37318c2ecf20Sopenharmony_ci{"nmacchwso.", XO (4, 238,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 37328c2ecf20Sopenharmony_ci{"vsububs", VX (4,1536), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 37338c2ecf20Sopenharmony_ci{"vclzlsbb", VXVA(4,1538,0), VXVA_MASK, PPCVEC3, 0, {RT, VB}}, 37348c2ecf20Sopenharmony_ci{"vctzlsbb", VXVA(4,1538,1), VXVA_MASK, PPCVEC3, 0, {RT, VB}}, 37358c2ecf20Sopenharmony_ci{"vnegw", VXVA(4,1538,6), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37368c2ecf20Sopenharmony_ci{"vnegd", VXVA(4,1538,7), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37378c2ecf20Sopenharmony_ci{"vprtybw", VXVA(4,1538,8), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37388c2ecf20Sopenharmony_ci{"vprtybd", VXVA(4,1538,9), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37398c2ecf20Sopenharmony_ci{"vprtybq", VXVA(4,1538,10), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37408c2ecf20Sopenharmony_ci{"vextsb2w", VXVA(4,1538,16), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37418c2ecf20Sopenharmony_ci{"vextsh2w", VXVA(4,1538,17), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37428c2ecf20Sopenharmony_ci{"vextsb2d", VXVA(4,1538,24), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37438c2ecf20Sopenharmony_ci{"vextsh2d", VXVA(4,1538,25), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37448c2ecf20Sopenharmony_ci{"vextsw2d", VXVA(4,1538,26), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37458c2ecf20Sopenharmony_ci{"vctzb", VXVA(4,1538,28), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37468c2ecf20Sopenharmony_ci{"vctzh", VXVA(4,1538,29), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37478c2ecf20Sopenharmony_ci{"vctzw", VXVA(4,1538,30), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37488c2ecf20Sopenharmony_ci{"vctzd", VXVA(4,1538,31), VXVA_MASK, PPCVEC3, 0, {VD, VB}}, 37498c2ecf20Sopenharmony_ci{"mfvscr", VX (4,1540), VXVAVB_MASK, PPCVEC, 0, {VD}}, 37508c2ecf20Sopenharmony_ci{"vcmpgtub.", VXR(4, 518,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 37518c2ecf20Sopenharmony_ci{"udi8fcm.", APU(4, 771,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37528c2ecf20Sopenharmony_ci{"udi8fcm", APU(4, 771,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37538c2ecf20Sopenharmony_ci{"vsum4ubs", VX (4,1544), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 37548c2ecf20Sopenharmony_ci{"vextublx", VX (4,1549), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 37558c2ecf20Sopenharmony_ci{"vsubuhs", VX (4,1600), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 37568c2ecf20Sopenharmony_ci{"mtvscr", VX (4,1604), VXVDVA_MASK, PPCVEC, 0, {VB}}, 37578c2ecf20Sopenharmony_ci{"vcmpgtuh.", VXR(4, 582,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 37588c2ecf20Sopenharmony_ci{"vsum4shs", VX (4,1608), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 37598c2ecf20Sopenharmony_ci{"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37608c2ecf20Sopenharmony_ci{"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37618c2ecf20Sopenharmony_ci{"vextuhlx", VX (4,1613), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 37628c2ecf20Sopenharmony_ci{"vupkhsw", VX (4,1614), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 37638c2ecf20Sopenharmony_ci{"vsubuws", VX (4,1664), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 37648c2ecf20Sopenharmony_ci{"vshasigmaw", VX (4,1666), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}}, 37658c2ecf20Sopenharmony_ci{"veqv", VX (4,1668), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 37668c2ecf20Sopenharmony_ci{"vcmpgtuw.", VXR(4, 646,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 37678c2ecf20Sopenharmony_ci{"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37688c2ecf20Sopenharmony_ci{"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37698c2ecf20Sopenharmony_ci{"vsum2sws", VX (4,1672), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 37708c2ecf20Sopenharmony_ci{"vmrgow", VX (4,1676), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 37718c2ecf20Sopenharmony_ci{"vextuwlx", VX (4,1677), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 37728c2ecf20Sopenharmony_ci{"vshasigmad", VX (4,1730), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}}, 37738c2ecf20Sopenharmony_ci{"vsrd", VX (4,1732), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 37748c2ecf20Sopenharmony_ci{"vcmpgtfp.", VXR(4, 710,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 37758c2ecf20Sopenharmony_ci{"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37768c2ecf20Sopenharmony_ci{"vcmpgtud.", VXR(4, 711,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 37778c2ecf20Sopenharmony_ci{"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37788c2ecf20Sopenharmony_ci{"vupklsw", VX (4,1742), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 37798c2ecf20Sopenharmony_ci{"vsubsbs", VX (4,1792), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 37808c2ecf20Sopenharmony_ci{"vclzb", VX (4,1794), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 37818c2ecf20Sopenharmony_ci{"vpopcntb", VX (4,1795), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 37828c2ecf20Sopenharmony_ci{"vsrv", VX (4,1796), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 37838c2ecf20Sopenharmony_ci{"vcmpgtsb.", VXR(4, 774,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 37848c2ecf20Sopenharmony_ci{"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37858c2ecf20Sopenharmony_ci{"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37868c2ecf20Sopenharmony_ci{"vsum4sbs", VX (4,1800), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 37878c2ecf20Sopenharmony_ci{"vextubrx", VX (4,1805), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 37888c2ecf20Sopenharmony_ci{"maclhwuo", XO (4, 396,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 37898c2ecf20Sopenharmony_ci{"maclhwuo.", XO (4, 396,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 37908c2ecf20Sopenharmony_ci{"vsubshs", VX (4,1856), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 37918c2ecf20Sopenharmony_ci{"vclzh", VX (4,1858), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 37928c2ecf20Sopenharmony_ci{"vpopcnth", VX (4,1859), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 37938c2ecf20Sopenharmony_ci{"vslv", VX (4,1860), VX_MASK, PPCVEC3, 0, {VD, VA, VB}}, 37948c2ecf20Sopenharmony_ci{"vcmpgtsh.", VXR(4, 838,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 37958c2ecf20Sopenharmony_ci{"vextuhrx", VX (4,1869), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 37968c2ecf20Sopenharmony_ci{"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37978c2ecf20Sopenharmony_ci{"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 37988c2ecf20Sopenharmony_ci{"maclhwo", XO (4, 428,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 37998c2ecf20Sopenharmony_ci{"maclhwo.", XO (4, 428,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 38008c2ecf20Sopenharmony_ci{"nmaclhwo", XO (4, 430,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 38018c2ecf20Sopenharmony_ci{"nmaclhwo.", XO (4, 430,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 38028c2ecf20Sopenharmony_ci{"vsubsws", VX (4,1920), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 38038c2ecf20Sopenharmony_ci{"vclzw", VX (4,1922), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 38048c2ecf20Sopenharmony_ci{"vpopcntw", VX (4,1923), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 38058c2ecf20Sopenharmony_ci{"vcmpgtsw.", VXR(4, 902,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 38068c2ecf20Sopenharmony_ci{"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 38078c2ecf20Sopenharmony_ci{"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 38088c2ecf20Sopenharmony_ci{"vsumsws", VX (4,1928), VX_MASK, PPCVEC, 0, {VD, VA, VB}}, 38098c2ecf20Sopenharmony_ci{"vmrgew", VX (4,1932), VX_MASK, PPCVEC2, 0, {VD, VA, VB}}, 38108c2ecf20Sopenharmony_ci{"vextuwrx", VX (4,1933), VX_MASK, PPCVEC3, 0, {RT, RA, VB}}, 38118c2ecf20Sopenharmony_ci{"maclhwsuo", XO (4, 460,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 38128c2ecf20Sopenharmony_ci{"maclhwsuo.", XO (4, 460,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 38138c2ecf20Sopenharmony_ci{"vclzd", VX (4,1986), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 38148c2ecf20Sopenharmony_ci{"vpopcntd", VX (4,1987), VXVA_MASK, PPCVEC2, 0, {VD, VB}}, 38158c2ecf20Sopenharmony_ci{"vcmpbfp.", VXR(4, 966,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}}, 38168c2ecf20Sopenharmony_ci{"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 38178c2ecf20Sopenharmony_ci{"vcmpgtsd.", VXR(4, 967,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}}, 38188c2ecf20Sopenharmony_ci{"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}}, 38198c2ecf20Sopenharmony_ci{"maclhwso", XO (4, 492,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 38208c2ecf20Sopenharmony_ci{"maclhwso.", XO (4, 492,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 38218c2ecf20Sopenharmony_ci{"nmaclhwso", XO (4, 494,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}}, 38228c2ecf20Sopenharmony_ci{"nmaclhwso.", XO (4, 494,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}}, 38238c2ecf20Sopenharmony_ci{"dcbz_l", X (4,1014), XRT_MASK, PPCPS, 0, {RA, RB}}, 38248c2ecf20Sopenharmony_ci 38258c2ecf20Sopenharmony_ci{"mulli", OP(7), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}}, 38268c2ecf20Sopenharmony_ci{"muli", OP(7), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}}, 38278c2ecf20Sopenharmony_ci 38288c2ecf20Sopenharmony_ci{"subfic", OP(8), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}}, 38298c2ecf20Sopenharmony_ci{"sfi", OP(8), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}}, 38308c2ecf20Sopenharmony_ci 38318c2ecf20Sopenharmony_ci{"dozi", OP(9), OP_MASK, M601, PPCVLE, {RT, RA, SI}}, 38328c2ecf20Sopenharmony_ci 38338c2ecf20Sopenharmony_ci{"cmplwi", OPL(10,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, UISIGNOPT}}, 38348c2ecf20Sopenharmony_ci{"cmpldi", OPL(10,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, UISIGNOPT}}, 38358c2ecf20Sopenharmony_ci{"cmpli", OP(10), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, UISIGNOPT}}, 38368c2ecf20Sopenharmony_ci{"cmpli", OP(10), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, UISIGNOPT}}, 38378c2ecf20Sopenharmony_ci 38388c2ecf20Sopenharmony_ci{"cmpwi", OPL(11,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, SI}}, 38398c2ecf20Sopenharmony_ci{"cmpdi", OPL(11,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, SI}}, 38408c2ecf20Sopenharmony_ci{"cmpi", OP(11), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, SI}}, 38418c2ecf20Sopenharmony_ci{"cmpi", OP(11), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, SI}}, 38428c2ecf20Sopenharmony_ci 38438c2ecf20Sopenharmony_ci{"addic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}}, 38448c2ecf20Sopenharmony_ci{"ai", OP(12), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}}, 38458c2ecf20Sopenharmony_ci{"subic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}}, 38468c2ecf20Sopenharmony_ci 38478c2ecf20Sopenharmony_ci{"addic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}}, 38488c2ecf20Sopenharmony_ci{"ai.", OP(13), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}}, 38498c2ecf20Sopenharmony_ci{"subic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}}, 38508c2ecf20Sopenharmony_ci 38518c2ecf20Sopenharmony_ci{"li", OP(14), DRA_MASK, PPCCOM, PPCVLE, {RT, SI}}, 38528c2ecf20Sopenharmony_ci{"lil", OP(14), DRA_MASK, PWRCOM, PPCVLE, {RT, SI}}, 38538c2ecf20Sopenharmony_ci{"addi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SI}}, 38548c2ecf20Sopenharmony_ci{"cal", OP(14), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}}, 38558c2ecf20Sopenharmony_ci{"subi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSI}}, 38568c2ecf20Sopenharmony_ci{"la", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}}, 38578c2ecf20Sopenharmony_ci 38588c2ecf20Sopenharmony_ci{"lis", OP(15), DRA_MASK, PPCCOM, PPCVLE, {RT, SISIGNOPT}}, 38598c2ecf20Sopenharmony_ci{"liu", OP(15), DRA_MASK, PWRCOM, PPCVLE, {RT, SISIGNOPT}}, 38608c2ecf20Sopenharmony_ci{"addis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SISIGNOPT}}, 38618c2ecf20Sopenharmony_ci{"cau", OP(15), OP_MASK, PWRCOM, PPCVLE, {RT, RA0, SISIGNOPT}}, 38628c2ecf20Sopenharmony_ci{"subis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSISIGNOPT}}, 38638c2ecf20Sopenharmony_ci 38648c2ecf20Sopenharmony_ci{"bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}}, 38658c2ecf20Sopenharmony_ci{"bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}}, 38668c2ecf20Sopenharmony_ci{"bdnz", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}}, 38678c2ecf20Sopenharmony_ci{"bdn", BBO(16,BODNZ,0,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}}, 38688c2ecf20Sopenharmony_ci{"bdnzl-", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}}, 38698c2ecf20Sopenharmony_ci{"bdnzl+", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}}, 38708c2ecf20Sopenharmony_ci{"bdnzl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}}, 38718c2ecf20Sopenharmony_ci{"bdnl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}}, 38728c2ecf20Sopenharmony_ci{"bdnza-", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}}, 38738c2ecf20Sopenharmony_ci{"bdnza+", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}}, 38748c2ecf20Sopenharmony_ci{"bdnza", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}}, 38758c2ecf20Sopenharmony_ci{"bdna", BBO(16,BODNZ,1,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}}, 38768c2ecf20Sopenharmony_ci{"bdnzla-", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}}, 38778c2ecf20Sopenharmony_ci{"bdnzla+", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}}, 38788c2ecf20Sopenharmony_ci{"bdnzla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}}, 38798c2ecf20Sopenharmony_ci{"bdnla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}}, 38808c2ecf20Sopenharmony_ci{"bdz-", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}}, 38818c2ecf20Sopenharmony_ci{"bdz+", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}}, 38828c2ecf20Sopenharmony_ci{"bdz", BBO(16,BODZ,0,0), BBOATBI_MASK, COM, PPCVLE, {BD}}, 38838c2ecf20Sopenharmony_ci{"bdzl-", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}}, 38848c2ecf20Sopenharmony_ci{"bdzl+", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}}, 38858c2ecf20Sopenharmony_ci{"bdzl", BBO(16,BODZ,0,1), BBOATBI_MASK, COM, PPCVLE, {BD}}, 38868c2ecf20Sopenharmony_ci{"bdza-", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}}, 38878c2ecf20Sopenharmony_ci{"bdza+", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}}, 38888c2ecf20Sopenharmony_ci{"bdza", BBO(16,BODZ,1,0), BBOATBI_MASK, COM, PPCVLE, {BDA}}, 38898c2ecf20Sopenharmony_ci{"bdzla-", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}}, 38908c2ecf20Sopenharmony_ci{"bdzla+", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}}, 38918c2ecf20Sopenharmony_ci{"bdzla", BBO(16,BODZ,1,1), BBOATBI_MASK, COM, PPCVLE, {BDA}}, 38928c2ecf20Sopenharmony_ci 38938c2ecf20Sopenharmony_ci{"bge-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 38948c2ecf20Sopenharmony_ci{"bge+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 38958c2ecf20Sopenharmony_ci{"bge", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 38968c2ecf20Sopenharmony_ci{"bnl-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 38978c2ecf20Sopenharmony_ci{"bnl+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 38988c2ecf20Sopenharmony_ci{"bnl", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 38998c2ecf20Sopenharmony_ci{"bgel-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39008c2ecf20Sopenharmony_ci{"bgel+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39018c2ecf20Sopenharmony_ci{"bgel", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39028c2ecf20Sopenharmony_ci{"bnll-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39038c2ecf20Sopenharmony_ci{"bnll+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39048c2ecf20Sopenharmony_ci{"bnll", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39058c2ecf20Sopenharmony_ci{"bgea-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39068c2ecf20Sopenharmony_ci{"bgea+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39078c2ecf20Sopenharmony_ci{"bgea", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39088c2ecf20Sopenharmony_ci{"bnla-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39098c2ecf20Sopenharmony_ci{"bnla+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39108c2ecf20Sopenharmony_ci{"bnla", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39118c2ecf20Sopenharmony_ci{"bgela-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39128c2ecf20Sopenharmony_ci{"bgela+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39138c2ecf20Sopenharmony_ci{"bgela", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39148c2ecf20Sopenharmony_ci{"bnlla-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39158c2ecf20Sopenharmony_ci{"bnlla+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39168c2ecf20Sopenharmony_ci{"bnlla", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39178c2ecf20Sopenharmony_ci{"ble-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39188c2ecf20Sopenharmony_ci{"ble+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39198c2ecf20Sopenharmony_ci{"ble", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39208c2ecf20Sopenharmony_ci{"bng-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39218c2ecf20Sopenharmony_ci{"bng+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39228c2ecf20Sopenharmony_ci{"bng", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39238c2ecf20Sopenharmony_ci{"blel-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39248c2ecf20Sopenharmony_ci{"blel+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39258c2ecf20Sopenharmony_ci{"blel", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39268c2ecf20Sopenharmony_ci{"bngl-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39278c2ecf20Sopenharmony_ci{"bngl+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39288c2ecf20Sopenharmony_ci{"bngl", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39298c2ecf20Sopenharmony_ci{"blea-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39308c2ecf20Sopenharmony_ci{"blea+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39318c2ecf20Sopenharmony_ci{"blea", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39328c2ecf20Sopenharmony_ci{"bnga-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39338c2ecf20Sopenharmony_ci{"bnga+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39348c2ecf20Sopenharmony_ci{"bnga", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39358c2ecf20Sopenharmony_ci{"blela-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39368c2ecf20Sopenharmony_ci{"blela+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39378c2ecf20Sopenharmony_ci{"blela", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39388c2ecf20Sopenharmony_ci{"bngla-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39398c2ecf20Sopenharmony_ci{"bngla+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39408c2ecf20Sopenharmony_ci{"bngla", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39418c2ecf20Sopenharmony_ci{"bne-", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39428c2ecf20Sopenharmony_ci{"bne+", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39438c2ecf20Sopenharmony_ci{"bne", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39448c2ecf20Sopenharmony_ci{"bnel-", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39458c2ecf20Sopenharmony_ci{"bnel+", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39468c2ecf20Sopenharmony_ci{"bnel", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39478c2ecf20Sopenharmony_ci{"bnea-", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39488c2ecf20Sopenharmony_ci{"bnea+", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39498c2ecf20Sopenharmony_ci{"bnea", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39508c2ecf20Sopenharmony_ci{"bnela-", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39518c2ecf20Sopenharmony_ci{"bnela+", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39528c2ecf20Sopenharmony_ci{"bnela", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39538c2ecf20Sopenharmony_ci{"bns-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39548c2ecf20Sopenharmony_ci{"bns+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39558c2ecf20Sopenharmony_ci{"bns", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39568c2ecf20Sopenharmony_ci{"bnu-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39578c2ecf20Sopenharmony_ci{"bnu+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39588c2ecf20Sopenharmony_ci{"bnu", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}}, 39598c2ecf20Sopenharmony_ci{"bnsl-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39608c2ecf20Sopenharmony_ci{"bnsl+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39618c2ecf20Sopenharmony_ci{"bnsl", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39628c2ecf20Sopenharmony_ci{"bnul-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39638c2ecf20Sopenharmony_ci{"bnul+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39648c2ecf20Sopenharmony_ci{"bnul", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}}, 39658c2ecf20Sopenharmony_ci{"bnsa-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39668c2ecf20Sopenharmony_ci{"bnsa+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39678c2ecf20Sopenharmony_ci{"bnsa", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39688c2ecf20Sopenharmony_ci{"bnua-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39698c2ecf20Sopenharmony_ci{"bnua+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39708c2ecf20Sopenharmony_ci{"bnua", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}}, 39718c2ecf20Sopenharmony_ci{"bnsla-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39728c2ecf20Sopenharmony_ci{"bnsla+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39738c2ecf20Sopenharmony_ci{"bnsla", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39748c2ecf20Sopenharmony_ci{"bnula-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39758c2ecf20Sopenharmony_ci{"bnula+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39768c2ecf20Sopenharmony_ci{"bnula", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}}, 39778c2ecf20Sopenharmony_ci 39788c2ecf20Sopenharmony_ci{"blt-", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39798c2ecf20Sopenharmony_ci{"blt+", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39808c2ecf20Sopenharmony_ci{"blt", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39818c2ecf20Sopenharmony_ci{"bltl-", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39828c2ecf20Sopenharmony_ci{"bltl+", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39838c2ecf20Sopenharmony_ci{"bltl", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39848c2ecf20Sopenharmony_ci{"blta-", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39858c2ecf20Sopenharmony_ci{"blta+", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39868c2ecf20Sopenharmony_ci{"blta", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39878c2ecf20Sopenharmony_ci{"bltla-", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39888c2ecf20Sopenharmony_ci{"bltla+", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39898c2ecf20Sopenharmony_ci{"bltla", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39908c2ecf20Sopenharmony_ci{"bgt-", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39918c2ecf20Sopenharmony_ci{"bgt+", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39928c2ecf20Sopenharmony_ci{"bgt", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39938c2ecf20Sopenharmony_ci{"bgtl-", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 39948c2ecf20Sopenharmony_ci{"bgtl+", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 39958c2ecf20Sopenharmony_ci{"bgtl", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 39968c2ecf20Sopenharmony_ci{"bgta-", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 39978c2ecf20Sopenharmony_ci{"bgta+", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 39988c2ecf20Sopenharmony_ci{"bgta", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 39998c2ecf20Sopenharmony_ci{"bgtla-", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 40008c2ecf20Sopenharmony_ci{"bgtla+", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 40018c2ecf20Sopenharmony_ci{"bgtla", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 40028c2ecf20Sopenharmony_ci{"beq-", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 40038c2ecf20Sopenharmony_ci{"beq+", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 40048c2ecf20Sopenharmony_ci{"beq", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 40058c2ecf20Sopenharmony_ci{"beql-", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 40068c2ecf20Sopenharmony_ci{"beql+", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 40078c2ecf20Sopenharmony_ci{"beql", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 40088c2ecf20Sopenharmony_ci{"beqa-", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 40098c2ecf20Sopenharmony_ci{"beqa+", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 40108c2ecf20Sopenharmony_ci{"beqa", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 40118c2ecf20Sopenharmony_ci{"beqla-", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 40128c2ecf20Sopenharmony_ci{"beqla+", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 40138c2ecf20Sopenharmony_ci{"beqla", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 40148c2ecf20Sopenharmony_ci{"bso-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 40158c2ecf20Sopenharmony_ci{"bso+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 40168c2ecf20Sopenharmony_ci{"bso", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 40178c2ecf20Sopenharmony_ci{"bun-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 40188c2ecf20Sopenharmony_ci{"bun+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 40198c2ecf20Sopenharmony_ci{"bun", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}}, 40208c2ecf20Sopenharmony_ci{"bsol-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 40218c2ecf20Sopenharmony_ci{"bsol+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 40228c2ecf20Sopenharmony_ci{"bsol", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}}, 40238c2ecf20Sopenharmony_ci{"bunl-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}}, 40248c2ecf20Sopenharmony_ci{"bunl+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}}, 40258c2ecf20Sopenharmony_ci{"bunl", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}}, 40268c2ecf20Sopenharmony_ci{"bsoa-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 40278c2ecf20Sopenharmony_ci{"bsoa+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 40288c2ecf20Sopenharmony_ci{"bsoa", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 40298c2ecf20Sopenharmony_ci{"buna-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 40308c2ecf20Sopenharmony_ci{"buna+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 40318c2ecf20Sopenharmony_ci{"buna", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}}, 40328c2ecf20Sopenharmony_ci{"bsola-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 40338c2ecf20Sopenharmony_ci{"bsola+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 40348c2ecf20Sopenharmony_ci{"bsola", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}}, 40358c2ecf20Sopenharmony_ci{"bunla-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}}, 40368c2ecf20Sopenharmony_ci{"bunla+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}}, 40378c2ecf20Sopenharmony_ci{"bunla", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}}, 40388c2ecf20Sopenharmony_ci 40398c2ecf20Sopenharmony_ci{"bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 40408c2ecf20Sopenharmony_ci{"bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 40418c2ecf20Sopenharmony_ci{"bdnzf", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 40428c2ecf20Sopenharmony_ci{"bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 40438c2ecf20Sopenharmony_ci{"bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 40448c2ecf20Sopenharmony_ci{"bdnzfl", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 40458c2ecf20Sopenharmony_ci{"bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 40468c2ecf20Sopenharmony_ci{"bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 40478c2ecf20Sopenharmony_ci{"bdnzfa", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 40488c2ecf20Sopenharmony_ci{"bdnzfla-", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 40498c2ecf20Sopenharmony_ci{"bdnzfla+", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 40508c2ecf20Sopenharmony_ci{"bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 40518c2ecf20Sopenharmony_ci{"bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 40528c2ecf20Sopenharmony_ci{"bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 40538c2ecf20Sopenharmony_ci{"bdzf", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 40548c2ecf20Sopenharmony_ci{"bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 40558c2ecf20Sopenharmony_ci{"bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 40568c2ecf20Sopenharmony_ci{"bdzfl", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 40578c2ecf20Sopenharmony_ci{"bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 40588c2ecf20Sopenharmony_ci{"bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 40598c2ecf20Sopenharmony_ci{"bdzfa", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 40608c2ecf20Sopenharmony_ci{"bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 40618c2ecf20Sopenharmony_ci{"bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 40628c2ecf20Sopenharmony_ci{"bdzfla", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 40638c2ecf20Sopenharmony_ci 40648c2ecf20Sopenharmony_ci{"bf-", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}}, 40658c2ecf20Sopenharmony_ci{"bf+", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}}, 40668c2ecf20Sopenharmony_ci{"bf", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}}, 40678c2ecf20Sopenharmony_ci{"bbf", BBO(16,BOF,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}}, 40688c2ecf20Sopenharmony_ci{"bfl-", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}}, 40698c2ecf20Sopenharmony_ci{"bfl+", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}}, 40708c2ecf20Sopenharmony_ci{"bfl", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}}, 40718c2ecf20Sopenharmony_ci{"bbfl", BBO(16,BOF,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}}, 40728c2ecf20Sopenharmony_ci{"bfa-", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}}, 40738c2ecf20Sopenharmony_ci{"bfa+", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}}, 40748c2ecf20Sopenharmony_ci{"bfa", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 40758c2ecf20Sopenharmony_ci{"bbfa", BBO(16,BOF,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}}, 40768c2ecf20Sopenharmony_ci{"bfla-", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}}, 40778c2ecf20Sopenharmony_ci{"bfla+", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}}, 40788c2ecf20Sopenharmony_ci{"bfla", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 40798c2ecf20Sopenharmony_ci{"bbfla", BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}}, 40808c2ecf20Sopenharmony_ci 40818c2ecf20Sopenharmony_ci{"bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 40828c2ecf20Sopenharmony_ci{"bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 40838c2ecf20Sopenharmony_ci{"bdnzt", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 40848c2ecf20Sopenharmony_ci{"bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 40858c2ecf20Sopenharmony_ci{"bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 40868c2ecf20Sopenharmony_ci{"bdnztl", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 40878c2ecf20Sopenharmony_ci{"bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 40888c2ecf20Sopenharmony_ci{"bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 40898c2ecf20Sopenharmony_ci{"bdnzta", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 40908c2ecf20Sopenharmony_ci{"bdnztla-", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 40918c2ecf20Sopenharmony_ci{"bdnztla+", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 40928c2ecf20Sopenharmony_ci{"bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 40938c2ecf20Sopenharmony_ci{"bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 40948c2ecf20Sopenharmony_ci{"bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 40958c2ecf20Sopenharmony_ci{"bdzt", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 40968c2ecf20Sopenharmony_ci{"bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}}, 40978c2ecf20Sopenharmony_ci{"bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}}, 40988c2ecf20Sopenharmony_ci{"bdztl", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}}, 40998c2ecf20Sopenharmony_ci{"bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 41008c2ecf20Sopenharmony_ci{"bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 41018c2ecf20Sopenharmony_ci{"bdzta", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 41028c2ecf20Sopenharmony_ci{"bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}}, 41038c2ecf20Sopenharmony_ci{"bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}}, 41048c2ecf20Sopenharmony_ci{"bdztla", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 41058c2ecf20Sopenharmony_ci 41068c2ecf20Sopenharmony_ci{"bt-", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}}, 41078c2ecf20Sopenharmony_ci{"bt+", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}}, 41088c2ecf20Sopenharmony_ci{"bt", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}}, 41098c2ecf20Sopenharmony_ci{"bbt", BBO(16,BOT,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}}, 41108c2ecf20Sopenharmony_ci{"btl-", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}}, 41118c2ecf20Sopenharmony_ci{"btl+", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}}, 41128c2ecf20Sopenharmony_ci{"btl", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}}, 41138c2ecf20Sopenharmony_ci{"bbtl", BBO(16,BOT,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}}, 41148c2ecf20Sopenharmony_ci{"bta-", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}}, 41158c2ecf20Sopenharmony_ci{"bta+", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}}, 41168c2ecf20Sopenharmony_ci{"bta", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 41178c2ecf20Sopenharmony_ci{"bbta", BBO(16,BOT,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}}, 41188c2ecf20Sopenharmony_ci{"btla-", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}}, 41198c2ecf20Sopenharmony_ci{"btla+", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}}, 41208c2ecf20Sopenharmony_ci{"btla", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}}, 41218c2ecf20Sopenharmony_ci{"bbtla", BBO(16,BOT,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}}, 41228c2ecf20Sopenharmony_ci 41238c2ecf20Sopenharmony_ci{"bc-", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDM}}, 41248c2ecf20Sopenharmony_ci{"bc+", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDP}}, 41258c2ecf20Sopenharmony_ci{"bc", B(16,0,0), B_MASK, COM, PPCVLE, {BO, BI, BD}}, 41268c2ecf20Sopenharmony_ci{"bcl-", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDM}}, 41278c2ecf20Sopenharmony_ci{"bcl+", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDP}}, 41288c2ecf20Sopenharmony_ci{"bcl", B(16,0,1), B_MASK, COM, PPCVLE, {BO, BI, BD}}, 41298c2ecf20Sopenharmony_ci{"bca-", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDMA}}, 41308c2ecf20Sopenharmony_ci{"bca+", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDPA}}, 41318c2ecf20Sopenharmony_ci{"bca", B(16,1,0), B_MASK, COM, PPCVLE, {BO, BI, BDA}}, 41328c2ecf20Sopenharmony_ci{"bcla-", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDMA}}, 41338c2ecf20Sopenharmony_ci{"bcla+", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDPA}}, 41348c2ecf20Sopenharmony_ci{"bcla", B(16,1,1), B_MASK, COM, PPCVLE, {BO, BI, BDA}}, 41358c2ecf20Sopenharmony_ci 41368c2ecf20Sopenharmony_ci{"svc", SC(17,0,0), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}}, 41378c2ecf20Sopenharmony_ci{"svcl", SC(17,0,1), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}}, 41388c2ecf20Sopenharmony_ci{"sc", SC(17,1,0), SC_MASK, PPC, PPCVLE, {LEV}}, 41398c2ecf20Sopenharmony_ci{"svca", SC(17,1,0), SC_MASK, PWRCOM, PPCVLE, {SV}}, 41408c2ecf20Sopenharmony_ci{"svcla", SC(17,1,1), SC_MASK, POWER, PPCVLE, {SV}}, 41418c2ecf20Sopenharmony_ci 41428c2ecf20Sopenharmony_ci{"b", B(18,0,0), B_MASK, COM, PPCVLE, {LI}}, 41438c2ecf20Sopenharmony_ci{"bl", B(18,0,1), B_MASK, COM, PPCVLE, {LI}}, 41448c2ecf20Sopenharmony_ci{"ba", B(18,1,0), B_MASK, COM, PPCVLE, {LIA}}, 41458c2ecf20Sopenharmony_ci{"bla", B(18,1,1), B_MASK, COM, PPCVLE, {LIA}}, 41468c2ecf20Sopenharmony_ci 41478c2ecf20Sopenharmony_ci{"mcrf", XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}}, 41488c2ecf20Sopenharmony_ci 41498c2ecf20Sopenharmony_ci{"addpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, DXD}}, 41508c2ecf20Sopenharmony_ci{"subpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, NDXD}}, 41518c2ecf20Sopenharmony_ci 41528c2ecf20Sopenharmony_ci{"bdnzlr", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 41538c2ecf20Sopenharmony_ci{"bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 41548c2ecf20Sopenharmony_ci{"bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 41558c2ecf20Sopenharmony_ci{"bdnzlrl-", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 41568c2ecf20Sopenharmony_ci{"bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 41578c2ecf20Sopenharmony_ci{"bdnzlrl+", XLO(19,BODNZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 41588c2ecf20Sopenharmony_ci{"bdzlr", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 41598c2ecf20Sopenharmony_ci{"bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 41608c2ecf20Sopenharmony_ci{"bdzlrl", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 41618c2ecf20Sopenharmony_ci{"bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 41628c2ecf20Sopenharmony_ci{"bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 41638c2ecf20Sopenharmony_ci{"bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}}, 41648c2ecf20Sopenharmony_ci{"blr", XLO(19,BOU,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 41658c2ecf20Sopenharmony_ci{"br", XLO(19,BOU,16,0), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}}, 41668c2ecf20Sopenharmony_ci{"blrl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}}, 41678c2ecf20Sopenharmony_ci{"brl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}}, 41688c2ecf20Sopenharmony_ci{"bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 41698c2ecf20Sopenharmony_ci{"bdnzlrl-", XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 41708c2ecf20Sopenharmony_ci{"bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 41718c2ecf20Sopenharmony_ci{"bdnzlrl+", XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 41728c2ecf20Sopenharmony_ci{"bdzlr-", XLO(19,BODZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 41738c2ecf20Sopenharmony_ci{"bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 41748c2ecf20Sopenharmony_ci{"bdzlr+", XLO(19,BODZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 41758c2ecf20Sopenharmony_ci{"bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}}, 41768c2ecf20Sopenharmony_ci 41778c2ecf20Sopenharmony_ci{"bgelr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 41788c2ecf20Sopenharmony_ci{"bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 41798c2ecf20Sopenharmony_ci{"bger", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 41808c2ecf20Sopenharmony_ci{"bnllr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 41818c2ecf20Sopenharmony_ci{"bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 41828c2ecf20Sopenharmony_ci{"bnlr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 41838c2ecf20Sopenharmony_ci{"bgelrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 41848c2ecf20Sopenharmony_ci{"bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 41858c2ecf20Sopenharmony_ci{"bgerl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 41868c2ecf20Sopenharmony_ci{"bnllrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 41878c2ecf20Sopenharmony_ci{"bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 41888c2ecf20Sopenharmony_ci{"bnlrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 41898c2ecf20Sopenharmony_ci{"blelr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 41908c2ecf20Sopenharmony_ci{"blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 41918c2ecf20Sopenharmony_ci{"bler", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 41928c2ecf20Sopenharmony_ci{"bnglr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 41938c2ecf20Sopenharmony_ci{"bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 41948c2ecf20Sopenharmony_ci{"bngr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 41958c2ecf20Sopenharmony_ci{"blelrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 41968c2ecf20Sopenharmony_ci{"blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 41978c2ecf20Sopenharmony_ci{"blerl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 41988c2ecf20Sopenharmony_ci{"bnglrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 41998c2ecf20Sopenharmony_ci{"bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42008c2ecf20Sopenharmony_ci{"bngrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42018c2ecf20Sopenharmony_ci{"bnelr", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42028c2ecf20Sopenharmony_ci{"bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42038c2ecf20Sopenharmony_ci{"bner", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42048c2ecf20Sopenharmony_ci{"bnelrl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42058c2ecf20Sopenharmony_ci{"bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42068c2ecf20Sopenharmony_ci{"bnerl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42078c2ecf20Sopenharmony_ci{"bnslr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42088c2ecf20Sopenharmony_ci{"bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42098c2ecf20Sopenharmony_ci{"bnsr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42108c2ecf20Sopenharmony_ci{"bnulr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42118c2ecf20Sopenharmony_ci{"bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42128c2ecf20Sopenharmony_ci{"bnslrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42138c2ecf20Sopenharmony_ci{"bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42148c2ecf20Sopenharmony_ci{"bnsrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42158c2ecf20Sopenharmony_ci{"bnulrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42168c2ecf20Sopenharmony_ci{"bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42178c2ecf20Sopenharmony_ci{"bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42188c2ecf20Sopenharmony_ci{"bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42198c2ecf20Sopenharmony_ci{"bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42208c2ecf20Sopenharmony_ci{"bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42218c2ecf20Sopenharmony_ci{"blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42228c2ecf20Sopenharmony_ci{"bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42238c2ecf20Sopenharmony_ci{"blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42248c2ecf20Sopenharmony_ci{"bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42258c2ecf20Sopenharmony_ci{"bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42268c2ecf20Sopenharmony_ci{"bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42278c2ecf20Sopenharmony_ci{"bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42288c2ecf20Sopenharmony_ci{"bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42298c2ecf20Sopenharmony_ci{"bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42308c2ecf20Sopenharmony_ci{"bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42318c2ecf20Sopenharmony_ci{"bgelr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42328c2ecf20Sopenharmony_ci{"bnllr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42338c2ecf20Sopenharmony_ci{"bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42348c2ecf20Sopenharmony_ci{"bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42358c2ecf20Sopenharmony_ci{"blelr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42368c2ecf20Sopenharmony_ci{"bnglr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42378c2ecf20Sopenharmony_ci{"blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42388c2ecf20Sopenharmony_ci{"bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42398c2ecf20Sopenharmony_ci{"bnelr-", XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42408c2ecf20Sopenharmony_ci{"bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42418c2ecf20Sopenharmony_ci{"bnslr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42428c2ecf20Sopenharmony_ci{"bnulr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42438c2ecf20Sopenharmony_ci{"bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42448c2ecf20Sopenharmony_ci{"bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42458c2ecf20Sopenharmony_ci{"bgelr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42468c2ecf20Sopenharmony_ci{"bnllr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42478c2ecf20Sopenharmony_ci{"bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42488c2ecf20Sopenharmony_ci{"bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42498c2ecf20Sopenharmony_ci{"blelr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42508c2ecf20Sopenharmony_ci{"bnglr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42518c2ecf20Sopenharmony_ci{"blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42528c2ecf20Sopenharmony_ci{"bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42538c2ecf20Sopenharmony_ci{"bnelr+", XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42548c2ecf20Sopenharmony_ci{"bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42558c2ecf20Sopenharmony_ci{"bnslr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42568c2ecf20Sopenharmony_ci{"bnulr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42578c2ecf20Sopenharmony_ci{"bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42588c2ecf20Sopenharmony_ci{"bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42598c2ecf20Sopenharmony_ci{"bltlr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42608c2ecf20Sopenharmony_ci{"bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42618c2ecf20Sopenharmony_ci{"bltr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42628c2ecf20Sopenharmony_ci{"bltlrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42638c2ecf20Sopenharmony_ci{"bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42648c2ecf20Sopenharmony_ci{"bltrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42658c2ecf20Sopenharmony_ci{"bgtlr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42668c2ecf20Sopenharmony_ci{"bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42678c2ecf20Sopenharmony_ci{"bgtr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42688c2ecf20Sopenharmony_ci{"bgtlrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42698c2ecf20Sopenharmony_ci{"bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42708c2ecf20Sopenharmony_ci{"bgtrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42718c2ecf20Sopenharmony_ci{"beqlr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42728c2ecf20Sopenharmony_ci{"beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42738c2ecf20Sopenharmony_ci{"beqr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42748c2ecf20Sopenharmony_ci{"beqlrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42758c2ecf20Sopenharmony_ci{"beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42768c2ecf20Sopenharmony_ci{"beqrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42778c2ecf20Sopenharmony_ci{"bsolr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42788c2ecf20Sopenharmony_ci{"bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42798c2ecf20Sopenharmony_ci{"bsor", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42808c2ecf20Sopenharmony_ci{"bunlr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42818c2ecf20Sopenharmony_ci{"bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42828c2ecf20Sopenharmony_ci{"bsolrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42838c2ecf20Sopenharmony_ci{"bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42848c2ecf20Sopenharmony_ci{"bsorl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}}, 42858c2ecf20Sopenharmony_ci{"bunlrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 42868c2ecf20Sopenharmony_ci{"bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42878c2ecf20Sopenharmony_ci{"bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42888c2ecf20Sopenharmony_ci{"bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42898c2ecf20Sopenharmony_ci{"bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42908c2ecf20Sopenharmony_ci{"bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42918c2ecf20Sopenharmony_ci{"beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42928c2ecf20Sopenharmony_ci{"beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42938c2ecf20Sopenharmony_ci{"bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42948c2ecf20Sopenharmony_ci{"bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42958c2ecf20Sopenharmony_ci{"bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42968c2ecf20Sopenharmony_ci{"bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 42978c2ecf20Sopenharmony_ci{"bltlr-", XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42988c2ecf20Sopenharmony_ci{"bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 42998c2ecf20Sopenharmony_ci{"bgtlr-", XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43008c2ecf20Sopenharmony_ci{"bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43018c2ecf20Sopenharmony_ci{"beqlr-", XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43028c2ecf20Sopenharmony_ci{"beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43038c2ecf20Sopenharmony_ci{"bsolr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43048c2ecf20Sopenharmony_ci{"bunlr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43058c2ecf20Sopenharmony_ci{"bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43068c2ecf20Sopenharmony_ci{"bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43078c2ecf20Sopenharmony_ci{"bltlr+", XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43088c2ecf20Sopenharmony_ci{"bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43098c2ecf20Sopenharmony_ci{"bgtlr+", XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43108c2ecf20Sopenharmony_ci{"bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43118c2ecf20Sopenharmony_ci{"beqlr+", XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43128c2ecf20Sopenharmony_ci{"beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43138c2ecf20Sopenharmony_ci{"bsolr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43148c2ecf20Sopenharmony_ci{"bunlr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43158c2ecf20Sopenharmony_ci{"bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43168c2ecf20Sopenharmony_ci{"bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 43178c2ecf20Sopenharmony_ci 43188c2ecf20Sopenharmony_ci{"bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43198c2ecf20Sopenharmony_ci{"bdnzflr-", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43208c2ecf20Sopenharmony_ci{"bdnzflrl", XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43218c2ecf20Sopenharmony_ci{"bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43228c2ecf20Sopenharmony_ci{"bdnzflr+", XLO(19,BODNZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43238c2ecf20Sopenharmony_ci{"bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43248c2ecf20Sopenharmony_ci{"bdzflr", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43258c2ecf20Sopenharmony_ci{"bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43268c2ecf20Sopenharmony_ci{"bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43278c2ecf20Sopenharmony_ci{"bdzflrl-", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43288c2ecf20Sopenharmony_ci{"bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43298c2ecf20Sopenharmony_ci{"bdzflrl+", XLO(19,BODZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43308c2ecf20Sopenharmony_ci{"bflr", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43318c2ecf20Sopenharmony_ci{"bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43328c2ecf20Sopenharmony_ci{"bbfr", XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}}, 43338c2ecf20Sopenharmony_ci{"bflrl", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43348c2ecf20Sopenharmony_ci{"bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43358c2ecf20Sopenharmony_ci{"bbfrl", XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}}, 43368c2ecf20Sopenharmony_ci{"bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43378c2ecf20Sopenharmony_ci{"bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43388c2ecf20Sopenharmony_ci{"bflr-", XLO(19,BOFM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 43398c2ecf20Sopenharmony_ci{"bflrl-", XLO(19,BOFM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 43408c2ecf20Sopenharmony_ci{"bflr+", XLO(19,BOFP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 43418c2ecf20Sopenharmony_ci{"bflrl+", XLO(19,BOFP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 43428c2ecf20Sopenharmony_ci{"bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43438c2ecf20Sopenharmony_ci{"bdnztlr-", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43448c2ecf20Sopenharmony_ci{"bdnztlrl", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43458c2ecf20Sopenharmony_ci{"bdnztlrl-", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43468c2ecf20Sopenharmony_ci{"bdnztlr+", XLO(19,BODNZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43478c2ecf20Sopenharmony_ci{"bdnztlrl+", XLO(19,BODNZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43488c2ecf20Sopenharmony_ci{"bdztlr", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43498c2ecf20Sopenharmony_ci{"bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43508c2ecf20Sopenharmony_ci{"bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43518c2ecf20Sopenharmony_ci{"bdztlrl-", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43528c2ecf20Sopenharmony_ci{"bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43538c2ecf20Sopenharmony_ci{"bdztlrl+", XLO(19,BODZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43548c2ecf20Sopenharmony_ci{"btlr", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43558c2ecf20Sopenharmony_ci{"btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43568c2ecf20Sopenharmony_ci{"bbtr", XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}}, 43578c2ecf20Sopenharmony_ci{"btlrl", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 43588c2ecf20Sopenharmony_ci{"btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43598c2ecf20Sopenharmony_ci{"bbtrl", XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}}, 43608c2ecf20Sopenharmony_ci{"btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43618c2ecf20Sopenharmony_ci{"btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 43628c2ecf20Sopenharmony_ci{"btlr-", XLO(19,BOTM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 43638c2ecf20Sopenharmony_ci{"btlrl-", XLO(19,BOTM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 43648c2ecf20Sopenharmony_ci{"btlr+", XLO(19,BOTP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 43658c2ecf20Sopenharmony_ci{"btlrl+", XLO(19,BOTP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 43668c2ecf20Sopenharmony_ci 43678c2ecf20Sopenharmony_ci{"bclr-", XLYLK(19,16,0,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 43688c2ecf20Sopenharmony_ci{"bclrl-", XLYLK(19,16,0,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 43698c2ecf20Sopenharmony_ci{"bclr+", XLYLK(19,16,1,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 43708c2ecf20Sopenharmony_ci{"bclrl+", XLYLK(19,16,1,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 43718c2ecf20Sopenharmony_ci{"bclr", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}}, 43728c2ecf20Sopenharmony_ci{"bcr", XLLK(19,16,0), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}}, 43738c2ecf20Sopenharmony_ci{"bclrl", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}}, 43748c2ecf20Sopenharmony_ci{"bcrl", XLLK(19,16,1), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}}, 43758c2ecf20Sopenharmony_ci 43768c2ecf20Sopenharmony_ci{"rfid", XL(19,18), 0xffffffff, PPC64, PPCVLE, {0}}, 43778c2ecf20Sopenharmony_ci 43788c2ecf20Sopenharmony_ci{"crnot", XL(19,33), XL_MASK, PPCCOM, PPCVLE, {BT, BA, BBA}}, 43798c2ecf20Sopenharmony_ci{"crnor", XL(19,33), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 43808c2ecf20Sopenharmony_ci{"rfmci", X(19,38), 0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCVLE, {0}}, 43818c2ecf20Sopenharmony_ci 43828c2ecf20Sopenharmony_ci{"rfdi", XL(19,39), 0xffffffff, E500MC, PPCVLE, {0}}, 43838c2ecf20Sopenharmony_ci{"rfi", XL(19,50), 0xffffffff, COM, PPCVLE, {0}}, 43848c2ecf20Sopenharmony_ci{"rfci", XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCVLE, {0}}, 43858c2ecf20Sopenharmony_ci 43868c2ecf20Sopenharmony_ci{"rfsvc", XL(19,82), 0xffffffff, POWER, PPCVLE, {0}}, 43878c2ecf20Sopenharmony_ci 43888c2ecf20Sopenharmony_ci{"rfgi", XL(19,102), 0xffffffff, E500MC|PPCA2, PPCVLE, {0}}, 43898c2ecf20Sopenharmony_ci 43908c2ecf20Sopenharmony_ci{"crandc", XL(19,129), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 43918c2ecf20Sopenharmony_ci 43928c2ecf20Sopenharmony_ci{"rfebb", XL(19,146), XLS_MASK, POWER8, PPCVLE, {SXL}}, 43938c2ecf20Sopenharmony_ci 43948c2ecf20Sopenharmony_ci{"isync", XL(19,150), 0xffffffff, PPCCOM, PPCVLE, {0}}, 43958c2ecf20Sopenharmony_ci{"ics", XL(19,150), 0xffffffff, PWRCOM, PPCVLE, {0}}, 43968c2ecf20Sopenharmony_ci 43978c2ecf20Sopenharmony_ci{"crclr", XL(19,193), XL_MASK, PPCCOM, PPCVLE, {BT, BAT, BBA}}, 43988c2ecf20Sopenharmony_ci{"crxor", XL(19,193), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 43998c2ecf20Sopenharmony_ci 44008c2ecf20Sopenharmony_ci{"dnh", X(19,198), X_MASK, E500MC, PPCVLE, {DUI, DUIS}}, 44018c2ecf20Sopenharmony_ci 44028c2ecf20Sopenharmony_ci{"crnand", XL(19,225), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 44038c2ecf20Sopenharmony_ci 44048c2ecf20Sopenharmony_ci{"crand", XL(19,257), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 44058c2ecf20Sopenharmony_ci 44068c2ecf20Sopenharmony_ci{"hrfid", XL(19,274), 0xffffffff, POWER5|CELL, PPC476|PPCVLE, {0}}, 44078c2ecf20Sopenharmony_ci 44088c2ecf20Sopenharmony_ci{"crset", XL(19,289), XL_MASK, PPCCOM, PPCVLE, {BT, BAT, BBA}}, 44098c2ecf20Sopenharmony_ci{"creqv", XL(19,289), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 44108c2ecf20Sopenharmony_ci 44118c2ecf20Sopenharmony_ci{"urfid", XL(19,306), 0xffffffff, POWER9, PPCVLE, {0}}, 44128c2ecf20Sopenharmony_ci{"stop", XL(19,370), 0xffffffff, POWER9, PPCVLE, {0}}, 44138c2ecf20Sopenharmony_ci 44148c2ecf20Sopenharmony_ci{"doze", XL(19,402), 0xffffffff, POWER6, POWER9|PPCVLE, {0}}, 44158c2ecf20Sopenharmony_ci 44168c2ecf20Sopenharmony_ci{"crorc", XL(19,417), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 44178c2ecf20Sopenharmony_ci 44188c2ecf20Sopenharmony_ci{"nap", XL(19,434), 0xffffffff, POWER6, POWER9|PPCVLE, {0}}, 44198c2ecf20Sopenharmony_ci 44208c2ecf20Sopenharmony_ci{"crmove", XL(19,449), XL_MASK, PPCCOM, PPCVLE, {BT, BA, BBA}}, 44218c2ecf20Sopenharmony_ci{"cror", XL(19,449), XL_MASK, COM, PPCVLE, {BT, BA, BB}}, 44228c2ecf20Sopenharmony_ci 44238c2ecf20Sopenharmony_ci{"sleep", XL(19,466), 0xffffffff, POWER6, POWER9|PPCVLE, {0}}, 44248c2ecf20Sopenharmony_ci{"rvwinkle", XL(19,498), 0xffffffff, POWER6, POWER9|PPCVLE, {0}}, 44258c2ecf20Sopenharmony_ci 44268c2ecf20Sopenharmony_ci{"bctr", XLO(19,BOU,528,0), XLBOBIBB_MASK, COM, PPCVLE, {0}}, 44278c2ecf20Sopenharmony_ci{"bctrl", XLO(19,BOU,528,1), XLBOBIBB_MASK, COM, PPCVLE, {0}}, 44288c2ecf20Sopenharmony_ci 44298c2ecf20Sopenharmony_ci{"bgectr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44308c2ecf20Sopenharmony_ci{"bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44318c2ecf20Sopenharmony_ci{"bnlctr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44328c2ecf20Sopenharmony_ci{"bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44338c2ecf20Sopenharmony_ci{"bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44348c2ecf20Sopenharmony_ci{"bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44358c2ecf20Sopenharmony_ci{"bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44368c2ecf20Sopenharmony_ci{"bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44378c2ecf20Sopenharmony_ci{"blectr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44388c2ecf20Sopenharmony_ci{"blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44398c2ecf20Sopenharmony_ci{"bngctr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44408c2ecf20Sopenharmony_ci{"bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44418c2ecf20Sopenharmony_ci{"blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44428c2ecf20Sopenharmony_ci{"blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44438c2ecf20Sopenharmony_ci{"bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44448c2ecf20Sopenharmony_ci{"bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44458c2ecf20Sopenharmony_ci{"bnectr", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44468c2ecf20Sopenharmony_ci{"bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44478c2ecf20Sopenharmony_ci{"bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44488c2ecf20Sopenharmony_ci{"bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44498c2ecf20Sopenharmony_ci{"bnsctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44508c2ecf20Sopenharmony_ci{"bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44518c2ecf20Sopenharmony_ci{"bnuctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44528c2ecf20Sopenharmony_ci{"bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44538c2ecf20Sopenharmony_ci{"bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44548c2ecf20Sopenharmony_ci{"bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44558c2ecf20Sopenharmony_ci{"bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 44568c2ecf20Sopenharmony_ci{"bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44578c2ecf20Sopenharmony_ci{"bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44588c2ecf20Sopenharmony_ci{"bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44598c2ecf20Sopenharmony_ci{"bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44608c2ecf20Sopenharmony_ci{"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44618c2ecf20Sopenharmony_ci{"blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44628c2ecf20Sopenharmony_ci{"bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44638c2ecf20Sopenharmony_ci{"blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44648c2ecf20Sopenharmony_ci{"bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44658c2ecf20Sopenharmony_ci{"bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44668c2ecf20Sopenharmony_ci{"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44678c2ecf20Sopenharmony_ci{"bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44688c2ecf20Sopenharmony_ci{"bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44698c2ecf20Sopenharmony_ci{"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44708c2ecf20Sopenharmony_ci{"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 44718c2ecf20Sopenharmony_ci{"bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44728c2ecf20Sopenharmony_ci{"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44738c2ecf20Sopenharmony_ci{"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44748c2ecf20Sopenharmony_ci{"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44758c2ecf20Sopenharmony_ci{"blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44768c2ecf20Sopenharmony_ci{"bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44778c2ecf20Sopenharmony_ci{"blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44788c2ecf20Sopenharmony_ci{"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44798c2ecf20Sopenharmony_ci{"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44808c2ecf20Sopenharmony_ci{"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44818c2ecf20Sopenharmony_ci{"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44828c2ecf20Sopenharmony_ci{"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44838c2ecf20Sopenharmony_ci{"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44848c2ecf20Sopenharmony_ci{"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44858c2ecf20Sopenharmony_ci{"bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44868c2ecf20Sopenharmony_ci{"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44878c2ecf20Sopenharmony_ci{"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44888c2ecf20Sopenharmony_ci{"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44898c2ecf20Sopenharmony_ci{"blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44908c2ecf20Sopenharmony_ci{"bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44918c2ecf20Sopenharmony_ci{"blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44928c2ecf20Sopenharmony_ci{"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44938c2ecf20Sopenharmony_ci{"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44948c2ecf20Sopenharmony_ci{"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44958c2ecf20Sopenharmony_ci{"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44968c2ecf20Sopenharmony_ci{"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44978c2ecf20Sopenharmony_ci{"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44988c2ecf20Sopenharmony_ci{"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 44998c2ecf20Sopenharmony_ci{"bltctr", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 45008c2ecf20Sopenharmony_ci{"bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45018c2ecf20Sopenharmony_ci{"bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 45028c2ecf20Sopenharmony_ci{"bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45038c2ecf20Sopenharmony_ci{"bgtctr", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 45048c2ecf20Sopenharmony_ci{"bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45058c2ecf20Sopenharmony_ci{"bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 45068c2ecf20Sopenharmony_ci{"bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45078c2ecf20Sopenharmony_ci{"beqctr", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 45088c2ecf20Sopenharmony_ci{"beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45098c2ecf20Sopenharmony_ci{"beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 45108c2ecf20Sopenharmony_ci{"beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45118c2ecf20Sopenharmony_ci{"bsoctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 45128c2ecf20Sopenharmony_ci{"bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45138c2ecf20Sopenharmony_ci{"bunctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 45148c2ecf20Sopenharmony_ci{"bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45158c2ecf20Sopenharmony_ci{"bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 45168c2ecf20Sopenharmony_ci{"bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45178c2ecf20Sopenharmony_ci{"bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}}, 45188c2ecf20Sopenharmony_ci{"bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45198c2ecf20Sopenharmony_ci{"bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45208c2ecf20Sopenharmony_ci{"bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45218c2ecf20Sopenharmony_ci{"bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45228c2ecf20Sopenharmony_ci{"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45238c2ecf20Sopenharmony_ci{"beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45248c2ecf20Sopenharmony_ci{"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45258c2ecf20Sopenharmony_ci{"bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45268c2ecf20Sopenharmony_ci{"bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45278c2ecf20Sopenharmony_ci{"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45288c2ecf20Sopenharmony_ci{"bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}}, 45298c2ecf20Sopenharmony_ci{"bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45308c2ecf20Sopenharmony_ci{"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45318c2ecf20Sopenharmony_ci{"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45328c2ecf20Sopenharmony_ci{"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45338c2ecf20Sopenharmony_ci{"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45348c2ecf20Sopenharmony_ci{"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45358c2ecf20Sopenharmony_ci{"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45368c2ecf20Sopenharmony_ci{"bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45378c2ecf20Sopenharmony_ci{"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45388c2ecf20Sopenharmony_ci{"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45398c2ecf20Sopenharmony_ci{"bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45408c2ecf20Sopenharmony_ci{"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45418c2ecf20Sopenharmony_ci{"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45428c2ecf20Sopenharmony_ci{"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45438c2ecf20Sopenharmony_ci{"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45448c2ecf20Sopenharmony_ci{"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45458c2ecf20Sopenharmony_ci{"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45468c2ecf20Sopenharmony_ci{"bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45478c2ecf20Sopenharmony_ci{"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45488c2ecf20Sopenharmony_ci{"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}}, 45498c2ecf20Sopenharmony_ci 45508c2ecf20Sopenharmony_ci{"bfctr", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 45518c2ecf20Sopenharmony_ci{"bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 45528c2ecf20Sopenharmony_ci{"bfctrl", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 45538c2ecf20Sopenharmony_ci{"bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 45548c2ecf20Sopenharmony_ci{"bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 45558c2ecf20Sopenharmony_ci{"bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 45568c2ecf20Sopenharmony_ci{"bfctr-", XLO(19,BOFM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 45578c2ecf20Sopenharmony_ci{"bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 45588c2ecf20Sopenharmony_ci{"bfctr+", XLO(19,BOFP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 45598c2ecf20Sopenharmony_ci{"bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 45608c2ecf20Sopenharmony_ci{"btctr", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 45618c2ecf20Sopenharmony_ci{"btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 45628c2ecf20Sopenharmony_ci{"btctrl", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}}, 45638c2ecf20Sopenharmony_ci{"btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 45648c2ecf20Sopenharmony_ci{"btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 45658c2ecf20Sopenharmony_ci{"btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}}, 45668c2ecf20Sopenharmony_ci{"btctr-", XLO(19,BOTM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 45678c2ecf20Sopenharmony_ci{"btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 45688c2ecf20Sopenharmony_ci{"btctr+", XLO(19,BOTP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 45698c2ecf20Sopenharmony_ci{"btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}}, 45708c2ecf20Sopenharmony_ci 45718c2ecf20Sopenharmony_ci{"bcctr-", XLYLK(19,528,0,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 45728c2ecf20Sopenharmony_ci{"bcctrl-", XLYLK(19,528,0,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 45738c2ecf20Sopenharmony_ci{"bcctr+", XLYLK(19,528,1,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 45748c2ecf20Sopenharmony_ci{"bcctrl+", XLYLK(19,528,1,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}}, 45758c2ecf20Sopenharmony_ci{"bcctr", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}}, 45768c2ecf20Sopenharmony_ci{"bcc", XLLK(19,528,0), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}}, 45778c2ecf20Sopenharmony_ci{"bcctrl", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}}, 45788c2ecf20Sopenharmony_ci{"bccl", XLLK(19,528,1), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}}, 45798c2ecf20Sopenharmony_ci 45808c2ecf20Sopenharmony_ci{"bctar-", XLYLK(19,560,0,0), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}}, 45818c2ecf20Sopenharmony_ci{"bctarl-", XLYLK(19,560,0,1), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}}, 45828c2ecf20Sopenharmony_ci{"bctar+", XLYLK(19,560,1,0), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}}, 45838c2ecf20Sopenharmony_ci{"bctarl+", XLYLK(19,560,1,1), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}}, 45848c2ecf20Sopenharmony_ci{"bctar", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}}, 45858c2ecf20Sopenharmony_ci{"bctarl", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}}, 45868c2ecf20Sopenharmony_ci 45878c2ecf20Sopenharmony_ci{"rlwimi", M(20,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 45888c2ecf20Sopenharmony_ci{"rlimi", M(20,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 45898c2ecf20Sopenharmony_ci 45908c2ecf20Sopenharmony_ci{"rlwimi.", M(20,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 45918c2ecf20Sopenharmony_ci{"rlimi.", M(20,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 45928c2ecf20Sopenharmony_ci 45938c2ecf20Sopenharmony_ci{"rotlwi", MME(21,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}}, 45948c2ecf20Sopenharmony_ci{"clrlwi", MME(21,31,0), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}}, 45958c2ecf20Sopenharmony_ci{"rlwinm", M(21,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 45968c2ecf20Sopenharmony_ci{"rlinm", M(21,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 45978c2ecf20Sopenharmony_ci{"rotlwi.", MME(21,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}}, 45988c2ecf20Sopenharmony_ci{"clrlwi.", MME(21,31,1), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}}, 45998c2ecf20Sopenharmony_ci{"rlwinm.", M(21,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 46008c2ecf20Sopenharmony_ci{"rlinm.", M(21,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}}, 46018c2ecf20Sopenharmony_ci 46028c2ecf20Sopenharmony_ci{"rlmi", M(22,0), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}}, 46038c2ecf20Sopenharmony_ci{"rlmi.", M(22,1), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}}, 46048c2ecf20Sopenharmony_ci 46058c2ecf20Sopenharmony_ci{"rotlw", MME(23,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}}, 46068c2ecf20Sopenharmony_ci{"rlwnm", M(23,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}}, 46078c2ecf20Sopenharmony_ci{"rlnm", M(23,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}}, 46088c2ecf20Sopenharmony_ci{"rotlw.", MME(23,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}}, 46098c2ecf20Sopenharmony_ci{"rlwnm.", M(23,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}}, 46108c2ecf20Sopenharmony_ci{"rlnm.", M(23,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}}, 46118c2ecf20Sopenharmony_ci 46128c2ecf20Sopenharmony_ci{"nop", OP(24), 0xffffffff, PPCCOM, PPCVLE, {0}}, 46138c2ecf20Sopenharmony_ci{"ori", OP(24), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 46148c2ecf20Sopenharmony_ci{"oril", OP(24), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 46158c2ecf20Sopenharmony_ci 46168c2ecf20Sopenharmony_ci{"oris", OP(25), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 46178c2ecf20Sopenharmony_ci{"oriu", OP(25), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 46188c2ecf20Sopenharmony_ci 46198c2ecf20Sopenharmony_ci{"xnop", OP(26), 0xffffffff, PPCCOM, PPCVLE, {0}}, 46208c2ecf20Sopenharmony_ci{"xori", OP(26), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 46218c2ecf20Sopenharmony_ci{"xoril", OP(26), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 46228c2ecf20Sopenharmony_ci 46238c2ecf20Sopenharmony_ci{"xoris", OP(27), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 46248c2ecf20Sopenharmony_ci{"xoriu", OP(27), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 46258c2ecf20Sopenharmony_ci 46268c2ecf20Sopenharmony_ci{"andi.", OP(28), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 46278c2ecf20Sopenharmony_ci{"andil.", OP(28), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 46288c2ecf20Sopenharmony_ci 46298c2ecf20Sopenharmony_ci{"andis.", OP(29), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}}, 46308c2ecf20Sopenharmony_ci{"andiu.", OP(29), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}}, 46318c2ecf20Sopenharmony_ci 46328c2ecf20Sopenharmony_ci{"rotldi", MD(30,0,0), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}}, 46338c2ecf20Sopenharmony_ci{"clrldi", MD(30,0,0), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}}, 46348c2ecf20Sopenharmony_ci{"rldicl", MD(30,0,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 46358c2ecf20Sopenharmony_ci{"rotldi.", MD(30,0,1), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}}, 46368c2ecf20Sopenharmony_ci{"clrldi.", MD(30,0,1), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}}, 46378c2ecf20Sopenharmony_ci{"rldicl.", MD(30,0,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 46388c2ecf20Sopenharmony_ci 46398c2ecf20Sopenharmony_ci{"rldicr", MD(30,1,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}}, 46408c2ecf20Sopenharmony_ci{"rldicr.", MD(30,1,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}}, 46418c2ecf20Sopenharmony_ci 46428c2ecf20Sopenharmony_ci{"rldic", MD(30,2,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 46438c2ecf20Sopenharmony_ci{"rldic.", MD(30,2,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 46448c2ecf20Sopenharmony_ci 46458c2ecf20Sopenharmony_ci{"rldimi", MD(30,3,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 46468c2ecf20Sopenharmony_ci{"rldimi.", MD(30,3,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}}, 46478c2ecf20Sopenharmony_ci 46488c2ecf20Sopenharmony_ci{"rotld", MDS(30,8,0), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}}, 46498c2ecf20Sopenharmony_ci{"rldcl", MDS(30,8,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}}, 46508c2ecf20Sopenharmony_ci{"rotld.", MDS(30,8,1), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}}, 46518c2ecf20Sopenharmony_ci{"rldcl.", MDS(30,8,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}}, 46528c2ecf20Sopenharmony_ci 46538c2ecf20Sopenharmony_ci{"rldcr", MDS(30,9,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}}, 46548c2ecf20Sopenharmony_ci{"rldcr.", MDS(30,9,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}}, 46558c2ecf20Sopenharmony_ci 46568c2ecf20Sopenharmony_ci{"cmpw", XOPL(31,0,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}}, 46578c2ecf20Sopenharmony_ci{"cmpd", XOPL(31,0,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}}, 46588c2ecf20Sopenharmony_ci{"cmp", X(31,0), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}}, 46598c2ecf20Sopenharmony_ci{"cmp", X(31,0), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}}, 46608c2ecf20Sopenharmony_ci 46618c2ecf20Sopenharmony_ci{"twlgt", XTO(31,4,TOLGT), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46628c2ecf20Sopenharmony_ci{"tlgt", XTO(31,4,TOLGT), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46638c2ecf20Sopenharmony_ci{"twllt", XTO(31,4,TOLLT), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46648c2ecf20Sopenharmony_ci{"tllt", XTO(31,4,TOLLT), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46658c2ecf20Sopenharmony_ci{"tweq", XTO(31,4,TOEQ), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46668c2ecf20Sopenharmony_ci{"teq", XTO(31,4,TOEQ), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46678c2ecf20Sopenharmony_ci{"twlge", XTO(31,4,TOLGE), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46688c2ecf20Sopenharmony_ci{"tlge", XTO(31,4,TOLGE), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46698c2ecf20Sopenharmony_ci{"twlnl", XTO(31,4,TOLNL), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46708c2ecf20Sopenharmony_ci{"tlnl", XTO(31,4,TOLNL), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46718c2ecf20Sopenharmony_ci{"twlle", XTO(31,4,TOLLE), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46728c2ecf20Sopenharmony_ci{"tlle", XTO(31,4,TOLLE), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46738c2ecf20Sopenharmony_ci{"twlng", XTO(31,4,TOLNG), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46748c2ecf20Sopenharmony_ci{"tlng", XTO(31,4,TOLNG), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46758c2ecf20Sopenharmony_ci{"twgt", XTO(31,4,TOGT), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46768c2ecf20Sopenharmony_ci{"tgt", XTO(31,4,TOGT), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46778c2ecf20Sopenharmony_ci{"twge", XTO(31,4,TOGE), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46788c2ecf20Sopenharmony_ci{"tge", XTO(31,4,TOGE), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46798c2ecf20Sopenharmony_ci{"twnl", XTO(31,4,TONL), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46808c2ecf20Sopenharmony_ci{"tnl", XTO(31,4,TONL), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46818c2ecf20Sopenharmony_ci{"twlt", XTO(31,4,TOLT), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46828c2ecf20Sopenharmony_ci{"tlt", XTO(31,4,TOLT), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46838c2ecf20Sopenharmony_ci{"twle", XTO(31,4,TOLE), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46848c2ecf20Sopenharmony_ci{"tle", XTO(31,4,TOLE), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46858c2ecf20Sopenharmony_ci{"twng", XTO(31,4,TONG), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46868c2ecf20Sopenharmony_ci{"tng", XTO(31,4,TONG), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46878c2ecf20Sopenharmony_ci{"twne", XTO(31,4,TONE), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46888c2ecf20Sopenharmony_ci{"tne", XTO(31,4,TONE), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46898c2ecf20Sopenharmony_ci{"trap", XTO(31,4,TOU), 0xffffffff, PPCCOM, 0, {0}}, 46908c2ecf20Sopenharmony_ci{"twu", XTO(31,4,TOU), XTO_MASK, PPCCOM, 0, {RA, RB}}, 46918c2ecf20Sopenharmony_ci{"tu", XTO(31,4,TOU), XTO_MASK, PWRCOM, 0, {RA, RB}}, 46928c2ecf20Sopenharmony_ci{"tw", X(31,4), X_MASK, PPCCOM, 0, {TO, RA, RB}}, 46938c2ecf20Sopenharmony_ci{"t", X(31,4), X_MASK, PWRCOM, 0, {TO, RA, RB}}, 46948c2ecf20Sopenharmony_ci 46958c2ecf20Sopenharmony_ci{"lvsl", X(31,6), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 46968c2ecf20Sopenharmony_ci{"lvebx", X(31,7), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 46978c2ecf20Sopenharmony_ci{"lbfcmx", APU(31,7,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 46988c2ecf20Sopenharmony_ci 46998c2ecf20Sopenharmony_ci{"subfc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 47008c2ecf20Sopenharmony_ci{"sf", XO(31,8,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 47018c2ecf20Sopenharmony_ci{"subc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}}, 47028c2ecf20Sopenharmony_ci{"subfc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 47038c2ecf20Sopenharmony_ci{"sf.", XO(31,8,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 47048c2ecf20Sopenharmony_ci{"subc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}}, 47058c2ecf20Sopenharmony_ci 47068c2ecf20Sopenharmony_ci{"mulhdu", XO(31,9,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 47078c2ecf20Sopenharmony_ci{"mulhdu.", XO(31,9,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 47088c2ecf20Sopenharmony_ci 47098c2ecf20Sopenharmony_ci{"addc", XO(31,10,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 47108c2ecf20Sopenharmony_ci{"a", XO(31,10,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 47118c2ecf20Sopenharmony_ci{"addc.", XO(31,10,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 47128c2ecf20Sopenharmony_ci{"a.", XO(31,10,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 47138c2ecf20Sopenharmony_ci 47148c2ecf20Sopenharmony_ci{"mulhwu", XO(31,11,0,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 47158c2ecf20Sopenharmony_ci{"mulhwu.", XO(31,11,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 47168c2ecf20Sopenharmony_ci 47178c2ecf20Sopenharmony_ci{"lxsiwzx", X(31,12), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}}, 47188c2ecf20Sopenharmony_ci 47198c2ecf20Sopenharmony_ci{"isellt", X(31,15), X_MASK, PPCISEL, 0, {RT, RA0, RB}}, 47208c2ecf20Sopenharmony_ci 47218c2ecf20Sopenharmony_ci{"tlbilxlpid", XTO(31,18,0), XTO_MASK, E500MC|PPCA2, 0, {0}}, 47228c2ecf20Sopenharmony_ci{"tlbilxpid", XTO(31,18,1), XTO_MASK, E500MC|PPCA2, 0, {0}}, 47238c2ecf20Sopenharmony_ci{"tlbilxva", XTO(31,18,3), XTO_MASK, E500MC|PPCA2, 0, {RA0, RB}}, 47248c2ecf20Sopenharmony_ci{"tlbilx", X(31,18), X_MASK, E500MC|PPCA2, 0, {T, RA0, RB}}, 47258c2ecf20Sopenharmony_ci 47268c2ecf20Sopenharmony_ci{"mfcr", XFXM(31,19,0,0), XFXFXM_MASK, COM, 0, {RT, FXM4}}, 47278c2ecf20Sopenharmony_ci{"mfocrf", XFXM(31,19,0,1), XFXFXM_MASK, COM, 0, {RT, FXM}}, 47288c2ecf20Sopenharmony_ci 47298c2ecf20Sopenharmony_ci{"lwarx", X(31,20), XEH_MASK, PPC, 0, {RT, RA0, RB, EH}}, 47308c2ecf20Sopenharmony_ci 47318c2ecf20Sopenharmony_ci{"ldx", X(31,21), X_MASK, PPC64, 0, {RT, RA0, RB}}, 47328c2ecf20Sopenharmony_ci 47338c2ecf20Sopenharmony_ci{"icbt", X(31,22), X_MASK, BOOKE|PPCE300|PPCA2|PPC476, 0, {CT, RA0, RB}}, 47348c2ecf20Sopenharmony_ci 47358c2ecf20Sopenharmony_ci{"lwzx", X(31,23), X_MASK, PPCCOM, 0, {RT, RA0, RB}}, 47368c2ecf20Sopenharmony_ci{"lx", X(31,23), X_MASK, PWRCOM, 0, {RT, RA, RB}}, 47378c2ecf20Sopenharmony_ci 47388c2ecf20Sopenharmony_ci{"slw", XRC(31,24,0), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 47398c2ecf20Sopenharmony_ci{"sl", XRC(31,24,0), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 47408c2ecf20Sopenharmony_ci{"slw.", XRC(31,24,1), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 47418c2ecf20Sopenharmony_ci{"sl.", XRC(31,24,1), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 47428c2ecf20Sopenharmony_ci 47438c2ecf20Sopenharmony_ci{"cntlzw", XRC(31,26,0), XRB_MASK, PPCCOM, 0, {RA, RS}}, 47448c2ecf20Sopenharmony_ci{"cntlz", XRC(31,26,0), XRB_MASK, PWRCOM, 0, {RA, RS}}, 47458c2ecf20Sopenharmony_ci{"cntlzw.", XRC(31,26,1), XRB_MASK, PPCCOM, 0, {RA, RS}}, 47468c2ecf20Sopenharmony_ci{"cntlz.", XRC(31,26,1), XRB_MASK, PWRCOM, 0, {RA, RS}}, 47478c2ecf20Sopenharmony_ci 47488c2ecf20Sopenharmony_ci{"sld", XRC(31,27,0), X_MASK, PPC64, 0, {RA, RS, RB}}, 47498c2ecf20Sopenharmony_ci{"sld.", XRC(31,27,1), X_MASK, PPC64, 0, {RA, RS, RB}}, 47508c2ecf20Sopenharmony_ci 47518c2ecf20Sopenharmony_ci{"and", XRC(31,28,0), X_MASK, COM, 0, {RA, RS, RB}}, 47528c2ecf20Sopenharmony_ci{"and.", XRC(31,28,1), X_MASK, COM, 0, {RA, RS, RB}}, 47538c2ecf20Sopenharmony_ci 47548c2ecf20Sopenharmony_ci{"maskg", XRC(31,29,0), X_MASK, M601, PPCA2, {RA, RS, RB}}, 47558c2ecf20Sopenharmony_ci{"maskg.", XRC(31,29,1), X_MASK, M601, PPCA2, {RA, RS, RB}}, 47568c2ecf20Sopenharmony_ci 47578c2ecf20Sopenharmony_ci{"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 47588c2ecf20Sopenharmony_ci 47598c2ecf20Sopenharmony_ci{"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}}, 47608c2ecf20Sopenharmony_ci{"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}}, 47618c2ecf20Sopenharmony_ci 47628c2ecf20Sopenharmony_ci{"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 47638c2ecf20Sopenharmony_ci 47648c2ecf20Sopenharmony_ci{"cmplw", XOPL(31,32,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}}, 47658c2ecf20Sopenharmony_ci{"cmpld", XOPL(31,32,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}}, 47668c2ecf20Sopenharmony_ci{"cmpl", X(31,32), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}}, 47678c2ecf20Sopenharmony_ci{"cmpl", X(31,32), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}}, 47688c2ecf20Sopenharmony_ci 47698c2ecf20Sopenharmony_ci{"lvsr", X(31,38), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 47708c2ecf20Sopenharmony_ci{"lvehx", X(31,39), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 47718c2ecf20Sopenharmony_ci{"lhfcmx", APU(31,39,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 47728c2ecf20Sopenharmony_ci 47738c2ecf20Sopenharmony_ci{"mviwsplt", X(31,46), X_MASK, PPCVEC2, 0, {VD, RA, RB}}, 47748c2ecf20Sopenharmony_ci 47758c2ecf20Sopenharmony_ci{"iselgt", X(31,47), X_MASK, PPCISEL, 0, {RT, RA0, RB}}, 47768c2ecf20Sopenharmony_ci 47778c2ecf20Sopenharmony_ci{"lvewx", X(31,71), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 47788c2ecf20Sopenharmony_ci 47798c2ecf20Sopenharmony_ci{"addg6s", XO(31,74,0,0), XO_MASK, POWER6, 0, {RT, RA, RB}}, 47808c2ecf20Sopenharmony_ci 47818c2ecf20Sopenharmony_ci{"lxsiwax", X(31,76), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}}, 47828c2ecf20Sopenharmony_ci 47838c2ecf20Sopenharmony_ci{"iseleq", X(31,79), X_MASK, PPCISEL, 0, {RT, RA0, RB}}, 47848c2ecf20Sopenharmony_ci 47858c2ecf20Sopenharmony_ci{"isel", XISEL(31,15), XISEL_MASK, PPCISEL|TITAN, 0, {RT, RA0, RB, CRB}}, 47868c2ecf20Sopenharmony_ci 47878c2ecf20Sopenharmony_ci{"subf", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 47888c2ecf20Sopenharmony_ci{"sub", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RB, RA}}, 47898c2ecf20Sopenharmony_ci{"subf.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 47908c2ecf20Sopenharmony_ci{"sub.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RB, RA}}, 47918c2ecf20Sopenharmony_ci 47928c2ecf20Sopenharmony_ci{"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}}, 47938c2ecf20Sopenharmony_ci{"mffprd", X(31,51), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}}, 47948c2ecf20Sopenharmony_ci{"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}}, 47958c2ecf20Sopenharmony_ci{"eratilx", X(31,51), X_MASK, PPCA2, 0, {ERAT_T, RA, RB}}, 47968c2ecf20Sopenharmony_ci 47978c2ecf20Sopenharmony_ci{"lbarx", X(31,52), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}}, 47988c2ecf20Sopenharmony_ci 47998c2ecf20Sopenharmony_ci{"ldux", X(31,53), X_MASK, PPC64, 0, {RT, RAL, RB}}, 48008c2ecf20Sopenharmony_ci 48018c2ecf20Sopenharmony_ci{"dcbst", X(31,54), XRT_MASK, PPC, 0, {RA0, RB}}, 48028c2ecf20Sopenharmony_ci 48038c2ecf20Sopenharmony_ci{"lwzux", X(31,55), X_MASK, PPCCOM, 0, {RT, RAL, RB}}, 48048c2ecf20Sopenharmony_ci{"lux", X(31,55), X_MASK, PWRCOM, 0, {RT, RA, RB}}, 48058c2ecf20Sopenharmony_ci 48068c2ecf20Sopenharmony_ci{"cntlzd", XRC(31,58,0), XRB_MASK, PPC64, 0, {RA, RS}}, 48078c2ecf20Sopenharmony_ci{"cntlzd.", XRC(31,58,1), XRB_MASK, PPC64, 0, {RA, RS}}, 48088c2ecf20Sopenharmony_ci 48098c2ecf20Sopenharmony_ci{"andc", XRC(31,60,0), X_MASK, COM, 0, {RA, RS, RB}}, 48108c2ecf20Sopenharmony_ci{"andc.", XRC(31,60,1), X_MASK, COM, 0, {RA, RS, RB}}, 48118c2ecf20Sopenharmony_ci 48128c2ecf20Sopenharmony_ci{"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, 48138c2ecf20Sopenharmony_ci{"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}}, 48148c2ecf20Sopenharmony_ci{"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}}, 48158c2ecf20Sopenharmony_ci 48168c2ecf20Sopenharmony_ci{"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, 48178c2ecf20Sopenharmony_ci 48188c2ecf20Sopenharmony_ci{"tdlgt", XTO(31,68,TOLGT), XTO_MASK, PPC64, 0, {RA, RB}}, 48198c2ecf20Sopenharmony_ci{"tdllt", XTO(31,68,TOLLT), XTO_MASK, PPC64, 0, {RA, RB}}, 48208c2ecf20Sopenharmony_ci{"tdeq", XTO(31,68,TOEQ), XTO_MASK, PPC64, 0, {RA, RB}}, 48218c2ecf20Sopenharmony_ci{"tdlge", XTO(31,68,TOLGE), XTO_MASK, PPC64, 0, {RA, RB}}, 48228c2ecf20Sopenharmony_ci{"tdlnl", XTO(31,68,TOLNL), XTO_MASK, PPC64, 0, {RA, RB}}, 48238c2ecf20Sopenharmony_ci{"tdlle", XTO(31,68,TOLLE), XTO_MASK, PPC64, 0, {RA, RB}}, 48248c2ecf20Sopenharmony_ci{"tdlng", XTO(31,68,TOLNG), XTO_MASK, PPC64, 0, {RA, RB}}, 48258c2ecf20Sopenharmony_ci{"tdgt", XTO(31,68,TOGT), XTO_MASK, PPC64, 0, {RA, RB}}, 48268c2ecf20Sopenharmony_ci{"tdge", XTO(31,68,TOGE), XTO_MASK, PPC64, 0, {RA, RB}}, 48278c2ecf20Sopenharmony_ci{"tdnl", XTO(31,68,TONL), XTO_MASK, PPC64, 0, {RA, RB}}, 48288c2ecf20Sopenharmony_ci{"tdlt", XTO(31,68,TOLT), XTO_MASK, PPC64, 0, {RA, RB}}, 48298c2ecf20Sopenharmony_ci{"tdle", XTO(31,68,TOLE), XTO_MASK, PPC64, 0, {RA, RB}}, 48308c2ecf20Sopenharmony_ci{"tdng", XTO(31,68,TONG), XTO_MASK, PPC64, 0, {RA, RB}}, 48318c2ecf20Sopenharmony_ci{"tdne", XTO(31,68,TONE), XTO_MASK, PPC64, 0, {RA, RB}}, 48328c2ecf20Sopenharmony_ci{"tdu", XTO(31,68,TOU), XTO_MASK, PPC64, 0, {RA, RB}}, 48338c2ecf20Sopenharmony_ci{"td", X(31,68), X_MASK, PPC64, 0, {TO, RA, RB}}, 48348c2ecf20Sopenharmony_ci 48358c2ecf20Sopenharmony_ci{"lwfcmx", APU(31,71,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 48368c2ecf20Sopenharmony_ci{"mulhd", XO(31,73,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 48378c2ecf20Sopenharmony_ci{"mulhd.", XO(31,73,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 48388c2ecf20Sopenharmony_ci 48398c2ecf20Sopenharmony_ci{"mulhw", XO(31,75,0,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 48408c2ecf20Sopenharmony_ci{"mulhw.", XO(31,75,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 48418c2ecf20Sopenharmony_ci 48428c2ecf20Sopenharmony_ci{"dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440|TITAN, 0, {RA, RS, RB}}, 48438c2ecf20Sopenharmony_ci{"dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440|TITAN, 0, {RA, RS, RB}}, 48448c2ecf20Sopenharmony_ci 48458c2ecf20Sopenharmony_ci{"mtsrd", X(31,82), XRB_MASK|(1<<20), PPC64, 0, {SR, RS}}, 48468c2ecf20Sopenharmony_ci 48478c2ecf20Sopenharmony_ci{"mfmsr", X(31,83), XRARB_MASK, COM, 0, {RT}}, 48488c2ecf20Sopenharmony_ci 48498c2ecf20Sopenharmony_ci{"ldarx", X(31,84), XEH_MASK, PPC64, 0, {RT, RA0, RB, EH}}, 48508c2ecf20Sopenharmony_ci 48518c2ecf20Sopenharmony_ci{"dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, PPC476, {RA0, RB}}, 48528c2ecf20Sopenharmony_ci{"dcbf", X(31,86), XLRT_MASK, PPC, 0, {RA0, RB, L2OPT}}, 48538c2ecf20Sopenharmony_ci 48548c2ecf20Sopenharmony_ci{"lbzx", X(31,87), X_MASK, COM, 0, {RT, RA0, RB}}, 48558c2ecf20Sopenharmony_ci 48568c2ecf20Sopenharmony_ci{"lbepx", X(31,95), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 48578c2ecf20Sopenharmony_ci 48588c2ecf20Sopenharmony_ci{"dni", XRC(31,97,1), XRB_MASK, E6500, 0, {DUI, DCTL}}, 48598c2ecf20Sopenharmony_ci 48608c2ecf20Sopenharmony_ci{"lvx", X(31,103), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 48618c2ecf20Sopenharmony_ci{"lqfcmx", APU(31,103,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 48628c2ecf20Sopenharmony_ci 48638c2ecf20Sopenharmony_ci{"neg", XO(31,104,0,0), XORB_MASK, COM, 0, {RT, RA}}, 48648c2ecf20Sopenharmony_ci{"neg.", XO(31,104,0,1), XORB_MASK, COM, 0, {RT, RA}}, 48658c2ecf20Sopenharmony_ci 48668c2ecf20Sopenharmony_ci{"mul", XO(31,107,0,0), XO_MASK, M601, 0, {RT, RA, RB}}, 48678c2ecf20Sopenharmony_ci{"mul.", XO(31,107,0,1), XO_MASK, M601, 0, {RT, RA, RB}}, 48688c2ecf20Sopenharmony_ci 48698c2ecf20Sopenharmony_ci{"mvidsplt", X(31,110), X_MASK, PPCVEC2, 0, {VD, RA, RB}}, 48708c2ecf20Sopenharmony_ci 48718c2ecf20Sopenharmony_ci{"mtsrdin", X(31,114), XRA_MASK, PPC64, 0, {RS, RB}}, 48728c2ecf20Sopenharmony_ci 48738c2ecf20Sopenharmony_ci{"mffprwz", X(31,115), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}}, 48748c2ecf20Sopenharmony_ci{"mfvrwz", X(31,115)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}}, 48758c2ecf20Sopenharmony_ci{"mfvsrwz", X(31,115), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}}, 48768c2ecf20Sopenharmony_ci 48778c2ecf20Sopenharmony_ci{"lharx", X(31,116), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}}, 48788c2ecf20Sopenharmony_ci 48798c2ecf20Sopenharmony_ci{"clf", X(31,118), XTO_MASK, POWER, 0, {RA, RB}}, 48808c2ecf20Sopenharmony_ci 48818c2ecf20Sopenharmony_ci{"lbzux", X(31,119), X_MASK, COM, 0, {RT, RAL, RB}}, 48828c2ecf20Sopenharmony_ci 48838c2ecf20Sopenharmony_ci{"popcntb", X(31,122), XRB_MASK, POWER5, 0, {RA, RS}}, 48848c2ecf20Sopenharmony_ci 48858c2ecf20Sopenharmony_ci{"not", XRC(31,124,0), X_MASK, COM, 0, {RA, RS, RBS}}, 48868c2ecf20Sopenharmony_ci{"nor", XRC(31,124,0), X_MASK, COM, 0, {RA, RS, RB}}, 48878c2ecf20Sopenharmony_ci{"not.", XRC(31,124,1), X_MASK, COM, 0, {RA, RS, RBS}}, 48888c2ecf20Sopenharmony_ci{"nor.", XRC(31,124,1), X_MASK, COM, 0, {RA, RS, RB}}, 48898c2ecf20Sopenharmony_ci 48908c2ecf20Sopenharmony_ci{"dcbfep", XRT(31,127,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, 48918c2ecf20Sopenharmony_ci 48928c2ecf20Sopenharmony_ci{"setb", X(31,128), XRB_MASK|(3<<16), POWER9, 0, {RT, BFA}}, 48938c2ecf20Sopenharmony_ci 48948c2ecf20Sopenharmony_ci{"wrtee", X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RS}}, 48958c2ecf20Sopenharmony_ci 48968c2ecf20Sopenharmony_ci{"dcbtstls", X(31,134), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}}, 48978c2ecf20Sopenharmony_ci 48988c2ecf20Sopenharmony_ci{"stvebx", X(31,135), X_MASK, PPCVEC, 0, {VS, RA0, RB}}, 48998c2ecf20Sopenharmony_ci{"stbfcmx", APU(31,135,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 49008c2ecf20Sopenharmony_ci 49018c2ecf20Sopenharmony_ci{"subfe", XO(31,136,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 49028c2ecf20Sopenharmony_ci{"sfe", XO(31,136,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 49038c2ecf20Sopenharmony_ci{"subfe.", XO(31,136,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 49048c2ecf20Sopenharmony_ci{"sfe.", XO(31,136,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 49058c2ecf20Sopenharmony_ci 49068c2ecf20Sopenharmony_ci{"adde", XO(31,138,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 49078c2ecf20Sopenharmony_ci{"ae", XO(31,138,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 49088c2ecf20Sopenharmony_ci{"adde.", XO(31,138,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 49098c2ecf20Sopenharmony_ci{"ae.", XO(31,138,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 49108c2ecf20Sopenharmony_ci 49118c2ecf20Sopenharmony_ci{"stxsiwx", X(31,140), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}}, 49128c2ecf20Sopenharmony_ci 49138c2ecf20Sopenharmony_ci{"msgsndp", XRTRA(31,142,0,0), XRTRA_MASK, POWER8, 0, {RB}}, 49148c2ecf20Sopenharmony_ci{"dcbtstlse", X(31,142), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}}, 49158c2ecf20Sopenharmony_ci 49168c2ecf20Sopenharmony_ci{"mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, 0, {RS}}, 49178c2ecf20Sopenharmony_ci{"mtcrf", XFXM(31,144,0,0), XFXFXM_MASK, COM, 0, {FXM, RS}}, 49188c2ecf20Sopenharmony_ci{"mtocrf", XFXM(31,144,0,1), XFXFXM_MASK, COM, 0, {FXM, RS}}, 49198c2ecf20Sopenharmony_ci 49208c2ecf20Sopenharmony_ci{"mtmsr", X(31,146), XRLARB_MASK, COM, 0, {RS, A_L}}, 49218c2ecf20Sopenharmony_ci 49228c2ecf20Sopenharmony_ci{"mtsle", X(31,147), XRTLRARB_MASK, POWER8, 0, {L}}, 49238c2ecf20Sopenharmony_ci 49248c2ecf20Sopenharmony_ci{"eratsx", XRC(31,147,0), X_MASK, PPCA2, 0, {RT, RA0, RB}}, 49258c2ecf20Sopenharmony_ci{"eratsx.", XRC(31,147,1), X_MASK, PPCA2, 0, {RT, RA0, RB}}, 49268c2ecf20Sopenharmony_ci 49278c2ecf20Sopenharmony_ci{"stdx", X(31,149), X_MASK, PPC64, 0, {RS, RA0, RB}}, 49288c2ecf20Sopenharmony_ci 49298c2ecf20Sopenharmony_ci{"stwcx.", XRC(31,150,1), X_MASK, PPC, 0, {RS, RA0, RB}}, 49308c2ecf20Sopenharmony_ci 49318c2ecf20Sopenharmony_ci{"stwx", X(31,151), X_MASK, PPCCOM, 0, {RS, RA0, RB}}, 49328c2ecf20Sopenharmony_ci{"stx", X(31,151), X_MASK, PWRCOM, 0, {RS, RA, RB}}, 49338c2ecf20Sopenharmony_ci 49348c2ecf20Sopenharmony_ci{"slq", XRC(31,152,0), X_MASK, M601, 0, {RA, RS, RB}}, 49358c2ecf20Sopenharmony_ci{"slq.", XRC(31,152,1), X_MASK, M601, 0, {RA, RS, RB}}, 49368c2ecf20Sopenharmony_ci 49378c2ecf20Sopenharmony_ci{"sle", XRC(31,153,0), X_MASK, M601, 0, {RA, RS, RB}}, 49388c2ecf20Sopenharmony_ci{"sle.", XRC(31,153,1), X_MASK, M601, 0, {RA, RS, RB}}, 49398c2ecf20Sopenharmony_ci 49408c2ecf20Sopenharmony_ci{"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS}}, 49418c2ecf20Sopenharmony_ci 49428c2ecf20Sopenharmony_ci{"stdepx", X(31,157), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}}, 49438c2ecf20Sopenharmony_ci 49448c2ecf20Sopenharmony_ci{"stwepx", X(31,159), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}}, 49458c2ecf20Sopenharmony_ci 49468c2ecf20Sopenharmony_ci{"wrteei", X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {E}}, 49478c2ecf20Sopenharmony_ci 49488c2ecf20Sopenharmony_ci{"dcbtls", X(31,166), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}}, 49498c2ecf20Sopenharmony_ci 49508c2ecf20Sopenharmony_ci{"stvehx", X(31,167), X_MASK, PPCVEC, 0, {VS, RA0, RB}}, 49518c2ecf20Sopenharmony_ci{"sthfcmx", APU(31,167,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 49528c2ecf20Sopenharmony_ci 49538c2ecf20Sopenharmony_ci{"addex", ZRC(31,170,0), Z2_MASK, POWER9, 0, {RT, RA, RB, CY}}, 49548c2ecf20Sopenharmony_ci 49558c2ecf20Sopenharmony_ci{"msgclrp", XRTRA(31,174,0,0), XRTRA_MASK, POWER8, 0, {RB}}, 49568c2ecf20Sopenharmony_ci{"dcbtlse", X(31,174), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}}, 49578c2ecf20Sopenharmony_ci 49588c2ecf20Sopenharmony_ci{"mtmsrd", X(31,178), XRLARB_MASK, PPC64, 0, {RS, A_L}}, 49598c2ecf20Sopenharmony_ci 49608c2ecf20Sopenharmony_ci{"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}}, 49618c2ecf20Sopenharmony_ci{"mtfprd", X(31,179), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}}, 49628c2ecf20Sopenharmony_ci{"mtvrd", X(31,179)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}}, 49638c2ecf20Sopenharmony_ci{"eratre", X(31,179), X_MASK, PPCA2, 0, {RT, RA, WS}}, 49648c2ecf20Sopenharmony_ci 49658c2ecf20Sopenharmony_ci{"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}}, 49668c2ecf20Sopenharmony_ci 49678c2ecf20Sopenharmony_ci{"stqcx.", XRC(31,182,1), X_MASK, POWER8, 0, {RSQ, RA0, RB}}, 49688c2ecf20Sopenharmony_ci{"wchkall", X(31,182), X_MASK, PPCA2, 0, {OBF}}, 49698c2ecf20Sopenharmony_ci 49708c2ecf20Sopenharmony_ci{"stwux", X(31,183), X_MASK, PPCCOM, 0, {RS, RAS, RB}}, 49718c2ecf20Sopenharmony_ci{"stux", X(31,183), X_MASK, PWRCOM, 0, {RS, RA0, RB}}, 49728c2ecf20Sopenharmony_ci 49738c2ecf20Sopenharmony_ci{"sliq", XRC(31,184,0), X_MASK, M601, 0, {RA, RS, SH}}, 49748c2ecf20Sopenharmony_ci{"sliq.", XRC(31,184,1), X_MASK, M601, 0, {RA, RS, SH}}, 49758c2ecf20Sopenharmony_ci 49768c2ecf20Sopenharmony_ci{"prtyd", X(31,186), XRB_MASK, POWER6|PPCA2, 0, {RA, RS}}, 49778c2ecf20Sopenharmony_ci 49788c2ecf20Sopenharmony_ci{"cmprb", X(31,192), XCMP_MASK, POWER9, 0, {BF, L, RA, RB}}, 49798c2ecf20Sopenharmony_ci 49808c2ecf20Sopenharmony_ci{"icblq.", XRC(31,198,1), X_MASK, E6500, 0, {CT, RA0, RB}}, 49818c2ecf20Sopenharmony_ci 49828c2ecf20Sopenharmony_ci{"stvewx", X(31,199), X_MASK, PPCVEC, 0, {VS, RA0, RB}}, 49838c2ecf20Sopenharmony_ci{"stwfcmx", APU(31,199,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 49848c2ecf20Sopenharmony_ci 49858c2ecf20Sopenharmony_ci{"subfze", XO(31,200,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 49868c2ecf20Sopenharmony_ci{"sfze", XO(31,200,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 49878c2ecf20Sopenharmony_ci{"subfze.", XO(31,200,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 49888c2ecf20Sopenharmony_ci{"sfze.", XO(31,200,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 49898c2ecf20Sopenharmony_ci 49908c2ecf20Sopenharmony_ci{"addze", XO(31,202,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 49918c2ecf20Sopenharmony_ci{"aze", XO(31,202,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 49928c2ecf20Sopenharmony_ci{"addze.", XO(31,202,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 49938c2ecf20Sopenharmony_ci{"aze.", XO(31,202,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 49948c2ecf20Sopenharmony_ci 49958c2ecf20Sopenharmony_ci{"msgsnd", XRTRA(31,206,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}}, 49968c2ecf20Sopenharmony_ci 49978c2ecf20Sopenharmony_ci{"mtsr", X(31,210), XRB_MASK|(1<<20), COM, NON32, {SR, RS}}, 49988c2ecf20Sopenharmony_ci 49998c2ecf20Sopenharmony_ci{"mtfprwa", X(31,211), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}}, 50008c2ecf20Sopenharmony_ci{"mtvrwa", X(31,211)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}}, 50018c2ecf20Sopenharmony_ci{"mtvsrwa", X(31,211), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}}, 50028c2ecf20Sopenharmony_ci{"eratwe", X(31,211), X_MASK, PPCA2, 0, {RS, RA, WS}}, 50038c2ecf20Sopenharmony_ci 50048c2ecf20Sopenharmony_ci{"ldawx.", XRC(31,212,1), X_MASK, PPCA2, 0, {RT, RA0, RB}}, 50058c2ecf20Sopenharmony_ci 50068c2ecf20Sopenharmony_ci{"stdcx.", XRC(31,214,1), X_MASK, PPC64, 0, {RS, RA0, RB}}, 50078c2ecf20Sopenharmony_ci 50088c2ecf20Sopenharmony_ci{"stbx", X(31,215), X_MASK, COM, 0, {RS, RA0, RB}}, 50098c2ecf20Sopenharmony_ci 50108c2ecf20Sopenharmony_ci{"sllq", XRC(31,216,0), X_MASK, M601, 0, {RA, RS, RB}}, 50118c2ecf20Sopenharmony_ci{"sllq.", XRC(31,216,1), X_MASK, M601, 0, {RA, RS, RB}}, 50128c2ecf20Sopenharmony_ci 50138c2ecf20Sopenharmony_ci{"sleq", XRC(31,217,0), X_MASK, M601, 0, {RA, RS, RB}}, 50148c2ecf20Sopenharmony_ci{"sleq.", XRC(31,217,1), X_MASK, M601, 0, {RA, RS, RB}}, 50158c2ecf20Sopenharmony_ci 50168c2ecf20Sopenharmony_ci{"stbepx", X(31,223), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}}, 50178c2ecf20Sopenharmony_ci 50188c2ecf20Sopenharmony_ci{"cmpeqb", X(31,224), XCMPL_MASK, POWER9, 0, {BF, RA, RB}}, 50198c2ecf20Sopenharmony_ci 50208c2ecf20Sopenharmony_ci{"icblc", X(31,230), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}}, 50218c2ecf20Sopenharmony_ci 50228c2ecf20Sopenharmony_ci{"stvx", X(31,231), X_MASK, PPCVEC, 0, {VS, RA0, RB}}, 50238c2ecf20Sopenharmony_ci{"stqfcmx", APU(31,231,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 50248c2ecf20Sopenharmony_ci 50258c2ecf20Sopenharmony_ci{"subfme", XO(31,232,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 50268c2ecf20Sopenharmony_ci{"sfme", XO(31,232,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 50278c2ecf20Sopenharmony_ci{"subfme.", XO(31,232,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 50288c2ecf20Sopenharmony_ci{"sfme.", XO(31,232,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 50298c2ecf20Sopenharmony_ci 50308c2ecf20Sopenharmony_ci{"mulld", XO(31,233,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 50318c2ecf20Sopenharmony_ci{"mulld.", XO(31,233,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 50328c2ecf20Sopenharmony_ci 50338c2ecf20Sopenharmony_ci{"addme", XO(31,234,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 50348c2ecf20Sopenharmony_ci{"ame", XO(31,234,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 50358c2ecf20Sopenharmony_ci{"addme.", XO(31,234,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 50368c2ecf20Sopenharmony_ci{"ame.", XO(31,234,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 50378c2ecf20Sopenharmony_ci 50388c2ecf20Sopenharmony_ci{"mullw", XO(31,235,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 50398c2ecf20Sopenharmony_ci{"muls", XO(31,235,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 50408c2ecf20Sopenharmony_ci{"mullw.", XO(31,235,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 50418c2ecf20Sopenharmony_ci{"muls.", XO(31,235,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 50428c2ecf20Sopenharmony_ci 50438c2ecf20Sopenharmony_ci{"icblce", X(31,238), X_MASK, PPCCHLK, E500MC|PPCA2, {CT, RA, RB}}, 50448c2ecf20Sopenharmony_ci{"msgclr", XRTRA(31,238,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}}, 50458c2ecf20Sopenharmony_ci{"mtsrin", X(31,242), XRA_MASK, PPC, NON32, {RS, RB}}, 50468c2ecf20Sopenharmony_ci{"mtsri", X(31,242), XRA_MASK, POWER, NON32, {RS, RB}}, 50478c2ecf20Sopenharmony_ci 50488c2ecf20Sopenharmony_ci{"mtfprwz", X(31,243), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}}, 50498c2ecf20Sopenharmony_ci{"mtvrwz", X(31,243)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}}, 50508c2ecf20Sopenharmony_ci{"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}}, 50518c2ecf20Sopenharmony_ci 50528c2ecf20Sopenharmony_ci{"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, 0, {RA0, RB}}, 50538c2ecf20Sopenharmony_ci{"dcbtst", X(31,246), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}}, 50548c2ecf20Sopenharmony_ci{"dcbtst", X(31,246), X_MASK, DCBT_EO, 0, {CT, RA0, RB}}, 50558c2ecf20Sopenharmony_ci{"dcbtst", X(31,246), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}}, 50568c2ecf20Sopenharmony_ci 50578c2ecf20Sopenharmony_ci{"stbux", X(31,247), X_MASK, COM, 0, {RS, RAS, RB}}, 50588c2ecf20Sopenharmony_ci 50598c2ecf20Sopenharmony_ci{"slliq", XRC(31,248,0), X_MASK, M601, 0, {RA, RS, SH}}, 50608c2ecf20Sopenharmony_ci{"slliq.", XRC(31,248,1), X_MASK, M601, 0, {RA, RS, SH}}, 50618c2ecf20Sopenharmony_ci 50628c2ecf20Sopenharmony_ci{"bpermd", X(31,252), X_MASK, POWER7|PPCA2, 0, {RA, RS, RB}}, 50638c2ecf20Sopenharmony_ci 50648c2ecf20Sopenharmony_ci{"dcbtstep", XRT(31,255,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 50658c2ecf20Sopenharmony_ci 50668c2ecf20Sopenharmony_ci{"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RS, RA}}, 50678c2ecf20Sopenharmony_ci{"mfdcrx.", XRC(31,259,1), X_MASK, PPCA2, 0, {RS, RA}}, 50688c2ecf20Sopenharmony_ci 50698c2ecf20Sopenharmony_ci{"lvexbx", X(31,261), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 50708c2ecf20Sopenharmony_ci 50718c2ecf20Sopenharmony_ci{"icbt", X(31,262), XRT_MASK, PPC403, 0, {RA, RB}}, 50728c2ecf20Sopenharmony_ci 50738c2ecf20Sopenharmony_ci{"lvepxl", X(31,263), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 50748c2ecf20Sopenharmony_ci 50758c2ecf20Sopenharmony_ci{"ldfcmx", APU(31,263,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 50768c2ecf20Sopenharmony_ci{"doz", XO(31,264,0,0), XO_MASK, M601, 0, {RT, RA, RB}}, 50778c2ecf20Sopenharmony_ci{"doz.", XO(31,264,0,1), XO_MASK, M601, 0, {RT, RA, RB}}, 50788c2ecf20Sopenharmony_ci 50798c2ecf20Sopenharmony_ci{"modud", X(31,265), X_MASK, POWER9, 0, {RT, RA, RB}}, 50808c2ecf20Sopenharmony_ci 50818c2ecf20Sopenharmony_ci{"add", XO(31,266,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 50828c2ecf20Sopenharmony_ci{"cax", XO(31,266,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 50838c2ecf20Sopenharmony_ci{"add.", XO(31,266,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 50848c2ecf20Sopenharmony_ci{"cax.", XO(31,266,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 50858c2ecf20Sopenharmony_ci 50868c2ecf20Sopenharmony_ci{"moduw", X(31,267), X_MASK, POWER9, 0, {RT, RA, RB}}, 50878c2ecf20Sopenharmony_ci 50888c2ecf20Sopenharmony_ci{"lxvx", X(31,268), XX1_MASK|1<<6, PPCVSX3, 0, {XT6, RA0, RB}}, 50898c2ecf20Sopenharmony_ci{"lxvl", X(31,269), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 50908c2ecf20Sopenharmony_ci 50918c2ecf20Sopenharmony_ci{"ehpriv", X(31,270), 0xffffffff, E500MC|PPCA2, 0, {0}}, 50928c2ecf20Sopenharmony_ci 50938c2ecf20Sopenharmony_ci{"tlbiel", X(31,274), X_MASK|1<<20,POWER9, PPC476, {RB, RSO, RIC, PRS, X_R}}, 50948c2ecf20Sopenharmony_ci{"tlbiel", X(31,274), XRTLRA_MASK, POWER4, POWER9|PPC476, {RB, LOPT}}, 50958c2ecf20Sopenharmony_ci 50968c2ecf20Sopenharmony_ci{"mfapidi", X(31,275), X_MASK, BOOKE, E500|TITAN, {RT, RA}}, 50978c2ecf20Sopenharmony_ci 50988c2ecf20Sopenharmony_ci{"lqarx", X(31,276), XEH_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}}, 50998c2ecf20Sopenharmony_ci 51008c2ecf20Sopenharmony_ci{"lscbx", XRC(31,277,0), X_MASK, M601, 0, {RT, RA, RB}}, 51018c2ecf20Sopenharmony_ci{"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}}, 51028c2ecf20Sopenharmony_ci 51038c2ecf20Sopenharmony_ci{"dcbtt", XRT(31,278,0x10), XRT_MASK, POWER7, 0, {RA0, RB}}, 51048c2ecf20Sopenharmony_ci{"dcbt", X(31,278), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}}, 51058c2ecf20Sopenharmony_ci{"dcbt", X(31,278), X_MASK, DCBT_EO, 0, {CT, RA0, RB}}, 51068c2ecf20Sopenharmony_ci{"dcbt", X(31,278), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}}, 51078c2ecf20Sopenharmony_ci 51088c2ecf20Sopenharmony_ci{"lhzx", X(31,279), X_MASK, COM, 0, {RT, RA0, RB}}, 51098c2ecf20Sopenharmony_ci 51108c2ecf20Sopenharmony_ci{"cdtbcd", X(31,282), XRB_MASK, POWER6, 0, {RA, RS}}, 51118c2ecf20Sopenharmony_ci 51128c2ecf20Sopenharmony_ci{"eqv", XRC(31,284,0), X_MASK, COM, 0, {RA, RS, RB}}, 51138c2ecf20Sopenharmony_ci{"eqv.", XRC(31,284,1), X_MASK, COM, 0, {RA, RS, RB}}, 51148c2ecf20Sopenharmony_ci 51158c2ecf20Sopenharmony_ci{"lhepx", X(31,287), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 51168c2ecf20Sopenharmony_ci 51178c2ecf20Sopenharmony_ci{"mfdcrux", X(31,291), X_MASK, PPC464, 0, {RS, RA}}, 51188c2ecf20Sopenharmony_ci 51198c2ecf20Sopenharmony_ci{"lvexhx", X(31,293), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 51208c2ecf20Sopenharmony_ci{"lvepx", X(31,295), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 51218c2ecf20Sopenharmony_ci 51228c2ecf20Sopenharmony_ci{"lxvll", X(31,301), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 51238c2ecf20Sopenharmony_ci 51248c2ecf20Sopenharmony_ci{"mfbhrbe", X(31,302), X_MASK, POWER8, 0, {RT, BHRBE}}, 51258c2ecf20Sopenharmony_ci 51268c2ecf20Sopenharmony_ci{"tlbie", X(31,306), X_MASK|1<<20,POWER9, TITAN, {RB, RS, RIC, PRS, X_R}}, 51278c2ecf20Sopenharmony_ci{"tlbie", X(31,306), XRA_MASK, POWER7, POWER9|TITAN, {RB, RS}}, 51288c2ecf20Sopenharmony_ci{"tlbie", X(31,306), XRTLRA_MASK, PPC, E500|POWER7|TITAN, {RB, LOPT}}, 51298c2ecf20Sopenharmony_ci{"tlbi", X(31,306), XRT_MASK, POWER, 0, {RA0, RB}}, 51308c2ecf20Sopenharmony_ci 51318c2ecf20Sopenharmony_ci{"mfvsrld", X(31,307), XX1RB_MASK, PPCVSX3, 0, {RA, XS6}}, 51328c2ecf20Sopenharmony_ci 51338c2ecf20Sopenharmony_ci{"ldmx", X(31,309), X_MASK, POWER9, 0, {RT, RA0, RB}}, 51348c2ecf20Sopenharmony_ci 51358c2ecf20Sopenharmony_ci{"eciwx", X(31,310), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}}, 51368c2ecf20Sopenharmony_ci 51378c2ecf20Sopenharmony_ci{"lhzux", X(31,311), X_MASK, COM, 0, {RT, RAL, RB}}, 51388c2ecf20Sopenharmony_ci 51398c2ecf20Sopenharmony_ci{"cbcdtd", X(31,314), XRB_MASK, POWER6, 0, {RA, RS}}, 51408c2ecf20Sopenharmony_ci 51418c2ecf20Sopenharmony_ci{"xor", XRC(31,316,0), X_MASK, COM, 0, {RA, RS, RB}}, 51428c2ecf20Sopenharmony_ci{"xor.", XRC(31,316,1), X_MASK, COM, 0, {RA, RS, RB}}, 51438c2ecf20Sopenharmony_ci 51448c2ecf20Sopenharmony_ci{"dcbtep", XRT(31,319,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}}, 51458c2ecf20Sopenharmony_ci 51468c2ecf20Sopenharmony_ci{"mfexisr", XSPR(31,323, 64), XSPR_MASK, PPC403, 0, {RT}}, 51478c2ecf20Sopenharmony_ci{"mfexier", XSPR(31,323, 66), XSPR_MASK, PPC403, 0, {RT}}, 51488c2ecf20Sopenharmony_ci{"mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, 0, {RT}}, 51498c2ecf20Sopenharmony_ci{"mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, 0, {RT}}, 51508c2ecf20Sopenharmony_ci{"mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, 0, {RT}}, 51518c2ecf20Sopenharmony_ci{"mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, 0, {RT}}, 51528c2ecf20Sopenharmony_ci{"mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, 0, {RT}}, 51538c2ecf20Sopenharmony_ci{"mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, 0, {RT}}, 51548c2ecf20Sopenharmony_ci{"mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, 0, {RT}}, 51558c2ecf20Sopenharmony_ci{"mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, 0, {RT}}, 51568c2ecf20Sopenharmony_ci{"mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, 0, {RT}}, 51578c2ecf20Sopenharmony_ci{"mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, 0, {RT}}, 51588c2ecf20Sopenharmony_ci{"mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, 0, {RT}}, 51598c2ecf20Sopenharmony_ci{"mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403, 0, {RT}}, 51608c2ecf20Sopenharmony_ci{"mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403, 0, {RT}}, 51618c2ecf20Sopenharmony_ci{"mfdmada0", XSPR(31,323,194), XSPR_MASK, PPC403, 0, {RT}}, 51628c2ecf20Sopenharmony_ci{"mfdmasa0", XSPR(31,323,195), XSPR_MASK, PPC403, 0, {RT}}, 51638c2ecf20Sopenharmony_ci{"mfdmacc0", XSPR(31,323,196), XSPR_MASK, PPC403, 0, {RT}}, 51648c2ecf20Sopenharmony_ci{"mfdmacr1", XSPR(31,323,200), XSPR_MASK, PPC403, 0, {RT}}, 51658c2ecf20Sopenharmony_ci{"mfdmact1", XSPR(31,323,201), XSPR_MASK, PPC403, 0, {RT}}, 51668c2ecf20Sopenharmony_ci{"mfdmada1", XSPR(31,323,202), XSPR_MASK, PPC403, 0, {RT}}, 51678c2ecf20Sopenharmony_ci{"mfdmasa1", XSPR(31,323,203), XSPR_MASK, PPC403, 0, {RT}}, 51688c2ecf20Sopenharmony_ci{"mfdmacc1", XSPR(31,323,204), XSPR_MASK, PPC403, 0, {RT}}, 51698c2ecf20Sopenharmony_ci{"mfdmacr2", XSPR(31,323,208), XSPR_MASK, PPC403, 0, {RT}}, 51708c2ecf20Sopenharmony_ci{"mfdmact2", XSPR(31,323,209), XSPR_MASK, PPC403, 0, {RT}}, 51718c2ecf20Sopenharmony_ci{"mfdmada2", XSPR(31,323,210), XSPR_MASK, PPC403, 0, {RT}}, 51728c2ecf20Sopenharmony_ci{"mfdmasa2", XSPR(31,323,211), XSPR_MASK, PPC403, 0, {RT}}, 51738c2ecf20Sopenharmony_ci{"mfdmacc2", XSPR(31,323,212), XSPR_MASK, PPC403, 0, {RT}}, 51748c2ecf20Sopenharmony_ci{"mfdmacr3", XSPR(31,323,216), XSPR_MASK, PPC403, 0, {RT}}, 51758c2ecf20Sopenharmony_ci{"mfdmact3", XSPR(31,323,217), XSPR_MASK, PPC403, 0, {RT}}, 51768c2ecf20Sopenharmony_ci{"mfdmada3", XSPR(31,323,218), XSPR_MASK, PPC403, 0, {RT}}, 51778c2ecf20Sopenharmony_ci{"mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, 0, {RT}}, 51788c2ecf20Sopenharmony_ci{"mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, 0, {RT}}, 51798c2ecf20Sopenharmony_ci{"mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, 0, {RT}}, 51808c2ecf20Sopenharmony_ci{"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {RT, SPR}}, 51818c2ecf20Sopenharmony_ci{"mfdcr.", XRC(31,323,1), X_MASK, PPCA2, 0, {RT, SPR}}, 51828c2ecf20Sopenharmony_ci 51838c2ecf20Sopenharmony_ci{"lvexwx", X(31,325), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 51848c2ecf20Sopenharmony_ci 51858c2ecf20Sopenharmony_ci{"dcread", X(31,326), X_MASK, PPC476|TITAN, 0, {RT, RA0, RB}}, 51868c2ecf20Sopenharmony_ci 51878c2ecf20Sopenharmony_ci{"div", XO(31,331,0,0), XO_MASK, M601, 0, {RT, RA, RB}}, 51888c2ecf20Sopenharmony_ci{"div.", XO(31,331,0,1), XO_MASK, M601, 0, {RT, RA, RB}}, 51898c2ecf20Sopenharmony_ci 51908c2ecf20Sopenharmony_ci{"lxvdsx", X(31,332), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}}, 51918c2ecf20Sopenharmony_ci 51928c2ecf20Sopenharmony_ci{"mfpmr", X(31,334), X_MASK, PPCPMR|PPCE300, 0, {RT, PMR}}, 51938c2ecf20Sopenharmony_ci{"mftmr", X(31,366), X_MASK, PPCTMR|E6500, 0, {RT, TMR}}, 51948c2ecf20Sopenharmony_ci 51958c2ecf20Sopenharmony_ci{"slbsync", X(31,338), 0xffffffff, POWER9, 0, {0}}, 51968c2ecf20Sopenharmony_ci 51978c2ecf20Sopenharmony_ci{"mfmq", XSPR(31,339, 0), XSPR_MASK, M601, 0, {RT}}, 51988c2ecf20Sopenharmony_ci{"mfxer", XSPR(31,339, 1), XSPR_MASK, COM, 0, {RT}}, 51998c2ecf20Sopenharmony_ci{"mfrtcu", XSPR(31,339, 4), XSPR_MASK, COM, TITAN, {RT}}, 52008c2ecf20Sopenharmony_ci{"mfrtcl", XSPR(31,339, 5), XSPR_MASK, COM, TITAN, {RT}}, 52018c2ecf20Sopenharmony_ci{"mfdec", XSPR(31,339, 6), XSPR_MASK, MFDEC1, 0, {RT}}, 52028c2ecf20Sopenharmony_ci{"mflr", XSPR(31,339, 8), XSPR_MASK, COM, 0, {RT}}, 52038c2ecf20Sopenharmony_ci{"mfctr", XSPR(31,339, 9), XSPR_MASK, COM, 0, {RT}}, 52048c2ecf20Sopenharmony_ci{"mfdscr", XSPR(31,339, 17), XSPR_MASK, POWER6, 0, {RT}}, 52058c2ecf20Sopenharmony_ci{"mftid", XSPR(31,339, 17), XSPR_MASK, POWER, 0, {RT}}, 52068c2ecf20Sopenharmony_ci{"mfdsisr", XSPR(31,339, 18), XSPR_MASK, COM, TITAN, {RT}}, 52078c2ecf20Sopenharmony_ci{"mfdar", XSPR(31,339, 19), XSPR_MASK, COM, TITAN, {RT}}, 52088c2ecf20Sopenharmony_ci{"mfdec", XSPR(31,339, 22), XSPR_MASK, MFDEC2, MFDEC1, {RT}}, 52098c2ecf20Sopenharmony_ci{"mfsdr0", XSPR(31,339, 24), XSPR_MASK, POWER, 0, {RT}}, 52108c2ecf20Sopenharmony_ci{"mfsdr1", XSPR(31,339, 25), XSPR_MASK, COM, TITAN, {RT}}, 52118c2ecf20Sopenharmony_ci{"mfsrr0", XSPR(31,339, 26), XSPR_MASK, COM, 0, {RT}}, 52128c2ecf20Sopenharmony_ci{"mfsrr1", XSPR(31,339, 27), XSPR_MASK, COM, 0, {RT}}, 52138c2ecf20Sopenharmony_ci{"mfcfar", XSPR(31,339, 28), XSPR_MASK, POWER6, 0, {RT}}, 52148c2ecf20Sopenharmony_ci{"mfpid", XSPR(31,339, 48), XSPR_MASK, BOOKE, 0, {RT}}, 52158c2ecf20Sopenharmony_ci{"mfcsrr0", XSPR(31,339, 58), XSPR_MASK, BOOKE, 0, {RT}}, 52168c2ecf20Sopenharmony_ci{"mfcsrr1", XSPR(31,339, 59), XSPR_MASK, BOOKE, 0, {RT}}, 52178c2ecf20Sopenharmony_ci{"mfdear", XSPR(31,339, 61), XSPR_MASK, BOOKE, 0, {RT}}, 52188c2ecf20Sopenharmony_ci{"mfesr", XSPR(31,339, 62), XSPR_MASK, BOOKE, 0, {RT}}, 52198c2ecf20Sopenharmony_ci{"mfivpr", XSPR(31,339, 63), XSPR_MASK, BOOKE, 0, {RT}}, 52208c2ecf20Sopenharmony_ci{"mfctrl", XSPR(31,339,136), XSPR_MASK, POWER4, 0, {RT}}, 52218c2ecf20Sopenharmony_ci{"mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, 0, {RT}}, 52228c2ecf20Sopenharmony_ci{"mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, 0, {RT}}, 52238c2ecf20Sopenharmony_ci{"mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, 0, {RT}}, 52248c2ecf20Sopenharmony_ci{"mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, 0, {RT}}, 52258c2ecf20Sopenharmony_ci{"mficr", XSPR(31,339,148), XSPR_MASK, PPC860, 0, {RT}}, 52268c2ecf20Sopenharmony_ci{"mfder", XSPR(31,339,149), XSPR_MASK, PPC860, 0, {RT}}, 52278c2ecf20Sopenharmony_ci{"mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, 0, {RT}}, 52288c2ecf20Sopenharmony_ci{"mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, 0, {RT}}, 52298c2ecf20Sopenharmony_ci{"mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, 0, {RT}}, 52308c2ecf20Sopenharmony_ci{"mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, 0, {RT}}, 52318c2ecf20Sopenharmony_ci{"mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, 0, {RT}}, 52328c2ecf20Sopenharmony_ci{"mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, 0, {RT}}, 52338c2ecf20Sopenharmony_ci{"mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, 0, {RT}}, 52348c2ecf20Sopenharmony_ci{"mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, 0, {RT}}, 52358c2ecf20Sopenharmony_ci{"mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, 0, {RT}}, 52368c2ecf20Sopenharmony_ci{"mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, 0, {RT}}, 52378c2ecf20Sopenharmony_ci{"mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, 0, {RT}}, 52388c2ecf20Sopenharmony_ci{"mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, 0, {RT}}, 52398c2ecf20Sopenharmony_ci{"mfsprg", XSPR(31,339,256), XSPRG_MASK, PPC, 0, {RT, SPRG}}, 52408c2ecf20Sopenharmony_ci{"mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, 0, {RT}}, 52418c2ecf20Sopenharmony_ci{"mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, 0, {RT}}, 52428c2ecf20Sopenharmony_ci{"mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, 0, {RT}}, 52438c2ecf20Sopenharmony_ci{"mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, 0, {RT}}, 52448c2ecf20Sopenharmony_ci{"mftbu", XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE, 0, {RT}}, 52458c2ecf20Sopenharmony_ci{"mftb", X(31,339), X_MASK, POWER4|BOOKE, 0, {RT, TBR}}, 52468c2ecf20Sopenharmony_ci{"mftbl", XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE, 0, {RT}}, 52478c2ecf20Sopenharmony_ci{"mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, 0, {RT}}, 52488c2ecf20Sopenharmony_ci{"mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, 0, {RT}}, 52498c2ecf20Sopenharmony_ci{"mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, 0, {RT}}, 52508c2ecf20Sopenharmony_ci{"mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, 0, {RT}}, 52518c2ecf20Sopenharmony_ci{"mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, 0, {RT}}, 52528c2ecf20Sopenharmony_ci{"mfear", XSPR(31,339,282), XSPR_MASK, PPC, TITAN, {RT}}, 52538c2ecf20Sopenharmony_ci{"mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, 0, {RT}}, 52548c2ecf20Sopenharmony_ci{"mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, 0, {RT}}, 52558c2ecf20Sopenharmony_ci{"mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, 0, {RT}}, 52568c2ecf20Sopenharmony_ci{"mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, 0, {RT}}, 52578c2ecf20Sopenharmony_ci{"mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, 0, {RT}}, 52588c2ecf20Sopenharmony_ci{"mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, 0, {RT}}, 52598c2ecf20Sopenharmony_ci{"mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, 0, {RT}}, 52608c2ecf20Sopenharmony_ci{"mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, 0, {RT}}, 52618c2ecf20Sopenharmony_ci{"mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, 0, {RT}}, 52628c2ecf20Sopenharmony_ci{"mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, 0, {RT}}, 52638c2ecf20Sopenharmony_ci{"mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, 0, {RT}}, 52648c2ecf20Sopenharmony_ci{"mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, 0, {RT}}, 52658c2ecf20Sopenharmony_ci{"mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, 0, {RT}}, 52668c2ecf20Sopenharmony_ci{"mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, 0, {RT}}, 52678c2ecf20Sopenharmony_ci{"mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, 0, {RT}}, 52688c2ecf20Sopenharmony_ci{"mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, 0, {RT}}, 52698c2ecf20Sopenharmony_ci{"mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, 0, {RT}}, 52708c2ecf20Sopenharmony_ci{"mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, 0, {RT}}, 52718c2ecf20Sopenharmony_ci{"mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, 0, {RT}}, 52728c2ecf20Sopenharmony_ci{"mfivor3", XSPR(31,339,403), XSPR_MASK, BOOKE, 0, {RT}}, 52738c2ecf20Sopenharmony_ci{"mfivor4", XSPR(31,339,404), XSPR_MASK, BOOKE, 0, {RT}}, 52748c2ecf20Sopenharmony_ci{"mfivor5", XSPR(31,339,405), XSPR_MASK, BOOKE, 0, {RT}}, 52758c2ecf20Sopenharmony_ci{"mfivor6", XSPR(31,339,406), XSPR_MASK, BOOKE, 0, {RT}}, 52768c2ecf20Sopenharmony_ci{"mfivor7", XSPR(31,339,407), XSPR_MASK, BOOKE, 0, {RT}}, 52778c2ecf20Sopenharmony_ci{"mfivor8", XSPR(31,339,408), XSPR_MASK, BOOKE, 0, {RT}}, 52788c2ecf20Sopenharmony_ci{"mfivor9", XSPR(31,339,409), XSPR_MASK, BOOKE, 0, {RT}}, 52798c2ecf20Sopenharmony_ci{"mfivor10", XSPR(31,339,410), XSPR_MASK, BOOKE, 0, {RT}}, 52808c2ecf20Sopenharmony_ci{"mfivor11", XSPR(31,339,411), XSPR_MASK, BOOKE, 0, {RT}}, 52818c2ecf20Sopenharmony_ci{"mfivor12", XSPR(31,339,412), XSPR_MASK, BOOKE, 0, {RT}}, 52828c2ecf20Sopenharmony_ci{"mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, 0, {RT}}, 52838c2ecf20Sopenharmony_ci{"mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, 0, {RT}}, 52848c2ecf20Sopenharmony_ci{"mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, 0, {RT}}, 52858c2ecf20Sopenharmony_ci{"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, 0, {RT}}, 52868c2ecf20Sopenharmony_ci{"mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, 0, {RT}}, 52878c2ecf20Sopenharmony_ci{"mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, 0, {RT}}, 52888c2ecf20Sopenharmony_ci{"mfivor32", XSPR(31,339,528), XSPR_MASK, PPCSPE, 0, {RT}}, 52898c2ecf20Sopenharmony_ci{"mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}}, 52908c2ecf20Sopenharmony_ci{"mfivor33", XSPR(31,339,529), XSPR_MASK, PPCSPE, 0, {RT}}, 52918c2ecf20Sopenharmony_ci{"mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}}, 52928c2ecf20Sopenharmony_ci{"mfivor34", XSPR(31,339,530), XSPR_MASK, PPCSPE, 0, {RT}}, 52938c2ecf20Sopenharmony_ci{"mfivor35", XSPR(31,339,531), XSPR_MASK, PPCPMR, 0, {RT}}, 52948c2ecf20Sopenharmony_ci{"mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}}, 52958c2ecf20Sopenharmony_ci{"mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}}, 52968c2ecf20Sopenharmony_ci{"mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, 0, {RT}}, 52978c2ecf20Sopenharmony_ci{"mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, 0, {RT}}, 52988c2ecf20Sopenharmony_ci{"mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, 0, {RT}}, 52998c2ecf20Sopenharmony_ci{"mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, 0, {RT}}, 53008c2ecf20Sopenharmony_ci{"mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, 0, {RT}}, 53018c2ecf20Sopenharmony_ci{"mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, 0, {RT}}, 53028c2ecf20Sopenharmony_ci{"mfmcsrr0", XSPR(31,339,570), XSPR_MASK, PPCRFMCI, 0, {RT}}, 53038c2ecf20Sopenharmony_ci{"mfmcsrr1", XSPR(31,339,571), XSPR_MASK, PPCRFMCI, 0, {RT}}, 53048c2ecf20Sopenharmony_ci{"mfmcsr", XSPR(31,339,572), XSPR_MASK, PPCRFMCI, 0, {RT}}, 53058c2ecf20Sopenharmony_ci{"mfmcar", XSPR(31,339,573), XSPR_MASK, PPCRFMCI, TITAN, {RT}}, 53068c2ecf20Sopenharmony_ci{"mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, 0, {RT}}, 53078c2ecf20Sopenharmony_ci{"mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, 0, {RT}}, 53088c2ecf20Sopenharmony_ci{"mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, 0, {RT}}, 53098c2ecf20Sopenharmony_ci{"mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, 0, {RT}}, 53108c2ecf20Sopenharmony_ci{"mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, 0, {RT}}, 53118c2ecf20Sopenharmony_ci{"mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, 0, {RT}}, 53128c2ecf20Sopenharmony_ci{"mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, 0, {RT}}, 53138c2ecf20Sopenharmony_ci{"mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, 0, {RT}}, 53148c2ecf20Sopenharmony_ci{"mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, 0, {RT}}, 53158c2ecf20Sopenharmony_ci{"mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860, 0, {RT}}, 53168c2ecf20Sopenharmony_ci{"mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, 0, {RT}}, 53178c2ecf20Sopenharmony_ci{"mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, 0, {RT}}, 53188c2ecf20Sopenharmony_ci{"mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, 0, {RT}}, 53198c2ecf20Sopenharmony_ci{"mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, 0, {RT}}, 53208c2ecf20Sopenharmony_ci{"mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, 0, {RT}}, 53218c2ecf20Sopenharmony_ci{"mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, 0, {RT}}, 53228c2ecf20Sopenharmony_ci{"mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, 0, {RT}}, 53238c2ecf20Sopenharmony_ci{"mfmi_dbram0", XSPR(31,339,817), XSPR_MASK, PPC860, 0, {RT}}, 53248c2ecf20Sopenharmony_ci{"mfmi_dbram1", XSPR(31,339,818), XSPR_MASK, PPC860, 0, {RT}}, 53258c2ecf20Sopenharmony_ci{"mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, 0, {RT}}, 53268c2ecf20Sopenharmony_ci{"mfmd_dbram0", XSPR(31,339,825), XSPR_MASK, PPC860, 0, {RT}}, 53278c2ecf20Sopenharmony_ci{"mfmd_dbram1", XSPR(31,339,826), XSPR_MASK, PPC860, 0, {RT}}, 53288c2ecf20Sopenharmony_ci{"mfivndx", XSPR(31,339,880), XSPR_MASK, TITAN, 0, {RT}}, 53298c2ecf20Sopenharmony_ci{"mfdvndx", XSPR(31,339,881), XSPR_MASK, TITAN, 0, {RT}}, 53308c2ecf20Sopenharmony_ci{"mfivlim", XSPR(31,339,882), XSPR_MASK, TITAN, 0, {RT}}, 53318c2ecf20Sopenharmony_ci{"mfdvlim", XSPR(31,339,883), XSPR_MASK, TITAN, 0, {RT}}, 53328c2ecf20Sopenharmony_ci{"mfclcsr", XSPR(31,339,884), XSPR_MASK, TITAN, 0, {RT}}, 53338c2ecf20Sopenharmony_ci{"mfccr1", XSPR(31,339,888), XSPR_MASK, TITAN, 0, {RT}}, 53348c2ecf20Sopenharmony_ci{"mfppr", XSPR(31,339,896), XSPR_MASK, POWER7, 0, {RT}}, 53358c2ecf20Sopenharmony_ci{"mfppr32", XSPR(31,339,898), XSPR_MASK, POWER7, 0, {RT}}, 53368c2ecf20Sopenharmony_ci{"mfrstcfg", XSPR(31,339,923), XSPR_MASK, TITAN, 0, {RT}}, 53378c2ecf20Sopenharmony_ci{"mfdcdbtrl", XSPR(31,339,924), XSPR_MASK, TITAN, 0, {RT}}, 53388c2ecf20Sopenharmony_ci{"mfdcdbtrh", XSPR(31,339,925), XSPR_MASK, TITAN, 0, {RT}}, 53398c2ecf20Sopenharmony_ci{"mficdbtr", XSPR(31,339,927), XSPR_MASK, TITAN, 0, {RT}}, 53408c2ecf20Sopenharmony_ci{"mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, 0, {RT}}, 53418c2ecf20Sopenharmony_ci{"mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, 0, {RT}}, 53428c2ecf20Sopenharmony_ci{"mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, 0, {RT}}, 53438c2ecf20Sopenharmony_ci{"mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, 0, {RT}}, 53448c2ecf20Sopenharmony_ci{"mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, 0, {RT}}, 53458c2ecf20Sopenharmony_ci{"mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, 0, {RT}}, 53468c2ecf20Sopenharmony_ci{"mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, 0, {RT}}, 53478c2ecf20Sopenharmony_ci{"mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, 0, {RT}}, 53488c2ecf20Sopenharmony_ci{"mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, 0, {RT}}, 53498c2ecf20Sopenharmony_ci{"mfmmucr", XSPR(31,339,946), XSPR_MASK, TITAN, 0, {RT}}, 53508c2ecf20Sopenharmony_ci{"mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405|TITAN, 0, {RT}}, 53518c2ecf20Sopenharmony_ci{"mfiac3", XSPR(31,339,948), XSPR_MASK, PPC405, 0, {RT}}, 53528c2ecf20Sopenharmony_ci{"mfiac4", XSPR(31,339,949), XSPR_MASK, PPC405, 0, {RT}}, 53538c2ecf20Sopenharmony_ci{"mfdvc1", XSPR(31,339,950), XSPR_MASK, PPC405, 0, {RT}}, 53548c2ecf20Sopenharmony_ci{"mfdvc2", XSPR(31,339,951), XSPR_MASK, PPC405, 0, {RT}}, 53558c2ecf20Sopenharmony_ci{"mfmmcr0", XSPR(31,339,952), XSPR_MASK, PPC750, 0, {RT}}, 53568c2ecf20Sopenharmony_ci{"mfpmc1", XSPR(31,339,953), XSPR_MASK, PPC750, 0, {RT}}, 53578c2ecf20Sopenharmony_ci{"mfsgr", XSPR(31,339,953), XSPR_MASK, PPC403, 0, {RT}}, 53588c2ecf20Sopenharmony_ci{"mfdcwr", XSPR(31,339,954), XSPR_MASK, PPC403, 0, {RT}}, 53598c2ecf20Sopenharmony_ci{"mfpmc2", XSPR(31,339,954), XSPR_MASK, PPC750, 0, {RT}}, 53608c2ecf20Sopenharmony_ci{"mfsia", XSPR(31,339,955), XSPR_MASK, PPC750, 0, {RT}}, 53618c2ecf20Sopenharmony_ci{"mfsler", XSPR(31,339,955), XSPR_MASK, PPC405, 0, {RT}}, 53628c2ecf20Sopenharmony_ci{"mfmmcr1", XSPR(31,339,956), XSPR_MASK, PPC750, 0, {RT}}, 53638c2ecf20Sopenharmony_ci{"mfsu0r", XSPR(31,339,956), XSPR_MASK, PPC405, 0, {RT}}, 53648c2ecf20Sopenharmony_ci{"mfdbcr1", XSPR(31,339,957), XSPR_MASK, PPC405, 0, {RT}}, 53658c2ecf20Sopenharmony_ci{"mfpmc3", XSPR(31,339,957), XSPR_MASK, PPC750, 0, {RT}}, 53668c2ecf20Sopenharmony_ci{"mfpmc4", XSPR(31,339,958), XSPR_MASK, PPC750, 0, {RT}}, 53678c2ecf20Sopenharmony_ci{"mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403|TITAN, 0, {RT}}, 53688c2ecf20Sopenharmony_ci{"mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, 0, {RT}}, 53698c2ecf20Sopenharmony_ci{"mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, 0, {RT}}, 53708c2ecf20Sopenharmony_ci{"mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, 0, {RT}}, 53718c2ecf20Sopenharmony_ci{"mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, 0, {RT}}, 53728c2ecf20Sopenharmony_ci{"mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, 0, {RT}}, 53738c2ecf20Sopenharmony_ci{"mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, 0, {RT}}, 53748c2ecf20Sopenharmony_ci{"mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, 0, {RT}}, 53758c2ecf20Sopenharmony_ci{"mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, 0, {RT}}, 53768c2ecf20Sopenharmony_ci{"mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, 0, {RT}}, 53778c2ecf20Sopenharmony_ci{"mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, 0, {RT}}, 53788c2ecf20Sopenharmony_ci{"mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, 0, {RT}}, 53798c2ecf20Sopenharmony_ci{"mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, 0, {RT}}, 53808c2ecf20Sopenharmony_ci{"mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, 0, {RT}}, 53818c2ecf20Sopenharmony_ci{"mfdbdr", XSPR(31,339,1011), XSPR_MASK, TITAN, 0, {RS}}, 53828c2ecf20Sopenharmony_ci{"mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, 0, {RT}}, 53838c2ecf20Sopenharmony_ci{"mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, 0, {RT}}, 53848c2ecf20Sopenharmony_ci{"mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, 0, {RT}}, 53858c2ecf20Sopenharmony_ci{"mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, 0, {RT}}, 53868c2ecf20Sopenharmony_ci{"mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, 0, {RT}}, 53878c2ecf20Sopenharmony_ci{"mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, 0, {RT}}, 53888c2ecf20Sopenharmony_ci{"mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, 0, {RT}}, 53898c2ecf20Sopenharmony_ci{"mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, 0, {RT}}, 53908c2ecf20Sopenharmony_ci{"mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, 0, {RT}}, 53918c2ecf20Sopenharmony_ci{"mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, 0, {RT}}, 53928c2ecf20Sopenharmony_ci{"mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, 0, {RT}}, 53938c2ecf20Sopenharmony_ci{"mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, 0, {RT}}, 53948c2ecf20Sopenharmony_ci{"mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, 0, {RT}}, 53958c2ecf20Sopenharmony_ci{"mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, 0, {RT}}, 53968c2ecf20Sopenharmony_ci{"mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, 0, {RT}}, 53978c2ecf20Sopenharmony_ci{"mfspr", X(31,339), X_MASK, COM, 0, {RT, SPR}}, 53988c2ecf20Sopenharmony_ci 53998c2ecf20Sopenharmony_ci{"lwax", X(31,341), X_MASK, PPC64, 0, {RT, RA0, RB}}, 54008c2ecf20Sopenharmony_ci 54018c2ecf20Sopenharmony_ci{"dst", XDSS(31,342,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}}, 54028c2ecf20Sopenharmony_ci 54038c2ecf20Sopenharmony_ci{"lhax", X(31,343), X_MASK, COM, 0, {RT, RA0, RB}}, 54048c2ecf20Sopenharmony_ci 54058c2ecf20Sopenharmony_ci{"lvxl", X(31,359), X_MASK, PPCVEC, 0, {VD, RA0, RB}}, 54068c2ecf20Sopenharmony_ci 54078c2ecf20Sopenharmony_ci{"abs", XO(31,360,0,0), XORB_MASK, M601, 0, {RT, RA}}, 54088c2ecf20Sopenharmony_ci{"abs.", XO(31,360,0,1), XORB_MASK, M601, 0, {RT, RA}}, 54098c2ecf20Sopenharmony_ci 54108c2ecf20Sopenharmony_ci{"divs", XO(31,363,0,0), XO_MASK, M601, 0, {RT, RA, RB}}, 54118c2ecf20Sopenharmony_ci{"divs.", XO(31,363,0,1), XO_MASK, M601, 0, {RT, RA, RB}}, 54128c2ecf20Sopenharmony_ci 54138c2ecf20Sopenharmony_ci{"lxvwsx", X(31,364), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 54148c2ecf20Sopenharmony_ci 54158c2ecf20Sopenharmony_ci{"tlbia", X(31,370), 0xffffffff, PPC, E500|TITAN, {0}}, 54168c2ecf20Sopenharmony_ci 54178c2ecf20Sopenharmony_ci{"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371|POWER4, {RT}}, 54188c2ecf20Sopenharmony_ci{"mftb", X(31,371), X_MASK, PPC, NO371|POWER4, {RT, TBR}}, 54198c2ecf20Sopenharmony_ci{"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371|POWER4, {RT}}, 54208c2ecf20Sopenharmony_ci 54218c2ecf20Sopenharmony_ci{"lwaux", X(31,373), X_MASK, PPC64, 0, {RT, RAL, RB}}, 54228c2ecf20Sopenharmony_ci 54238c2ecf20Sopenharmony_ci{"dstst", XDSS(31,374,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}}, 54248c2ecf20Sopenharmony_ci 54258c2ecf20Sopenharmony_ci{"lhaux", X(31,375), X_MASK, COM, 0, {RT, RAL, RB}}, 54268c2ecf20Sopenharmony_ci 54278c2ecf20Sopenharmony_ci{"popcntw", X(31,378), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}}, 54288c2ecf20Sopenharmony_ci 54298c2ecf20Sopenharmony_ci{"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RA, RS}}, 54308c2ecf20Sopenharmony_ci{"mtdcrx.", XRC(31,387,1), X_MASK, PPCA2, 0, {RA, RS}}, 54318c2ecf20Sopenharmony_ci 54328c2ecf20Sopenharmony_ci{"stvexbx", X(31,389), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 54338c2ecf20Sopenharmony_ci 54348c2ecf20Sopenharmony_ci{"dcblc", X(31,390), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}}, 54358c2ecf20Sopenharmony_ci{"stdfcmx", APU(31,391,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 54368c2ecf20Sopenharmony_ci 54378c2ecf20Sopenharmony_ci{"divdeu", XO(31,393,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 54388c2ecf20Sopenharmony_ci{"divdeu.", XO(31,393,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 54398c2ecf20Sopenharmony_ci{"divweu", XO(31,395,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 54408c2ecf20Sopenharmony_ci{"divweu.", XO(31,395,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 54418c2ecf20Sopenharmony_ci 54428c2ecf20Sopenharmony_ci{"stxvx", X(31,396), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 54438c2ecf20Sopenharmony_ci{"stxvl", X(31,397), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 54448c2ecf20Sopenharmony_ci 54458c2ecf20Sopenharmony_ci{"dcblce", X(31,398), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}}, 54468c2ecf20Sopenharmony_ci 54478c2ecf20Sopenharmony_ci{"slbmte", X(31,402), XRA_MASK, PPC64, 0, {RS, RB}}, 54488c2ecf20Sopenharmony_ci 54498c2ecf20Sopenharmony_ci{"mtvsrws", X(31,403), XX1RB_MASK, PPCVSX3, 0, {XT6, RA}}, 54508c2ecf20Sopenharmony_ci 54518c2ecf20Sopenharmony_ci{"pbt.", XRC(31,404,1), X_MASK, POWER8, 0, {RS, RA0, RB}}, 54528c2ecf20Sopenharmony_ci 54538c2ecf20Sopenharmony_ci{"icswx", XRC(31,406,0), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}}, 54548c2ecf20Sopenharmony_ci{"icswx.", XRC(31,406,1), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}}, 54558c2ecf20Sopenharmony_ci 54568c2ecf20Sopenharmony_ci{"sthx", X(31,407), X_MASK, COM, 0, {RS, RA0, RB}}, 54578c2ecf20Sopenharmony_ci 54588c2ecf20Sopenharmony_ci{"orc", XRC(31,412,0), X_MASK, COM, 0, {RA, RS, RB}}, 54598c2ecf20Sopenharmony_ci{"orc.", XRC(31,412,1), X_MASK, COM, 0, {RA, RS, RB}}, 54608c2ecf20Sopenharmony_ci 54618c2ecf20Sopenharmony_ci{"sthepx", X(31,415), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}}, 54628c2ecf20Sopenharmony_ci 54638c2ecf20Sopenharmony_ci{"mtdcrux", X(31,419), X_MASK, PPC464, 0, {RA, RS}}, 54648c2ecf20Sopenharmony_ci 54658c2ecf20Sopenharmony_ci{"stvexhx", X(31,421), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 54668c2ecf20Sopenharmony_ci 54678c2ecf20Sopenharmony_ci{"dcblq.", XRC(31,422,1), X_MASK, E6500, 0, {CT, RA0, RB}}, 54688c2ecf20Sopenharmony_ci 54698c2ecf20Sopenharmony_ci{"divde", XO(31,425,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 54708c2ecf20Sopenharmony_ci{"divde.", XO(31,425,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 54718c2ecf20Sopenharmony_ci{"divwe", XO(31,427,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 54728c2ecf20Sopenharmony_ci{"divwe.", XO(31,427,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 54738c2ecf20Sopenharmony_ci 54748c2ecf20Sopenharmony_ci{"stxvll", X(31,429), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 54758c2ecf20Sopenharmony_ci 54768c2ecf20Sopenharmony_ci{"clrbhrb", X(31,430), 0xffffffff, POWER8, 0, {0}}, 54778c2ecf20Sopenharmony_ci 54788c2ecf20Sopenharmony_ci{"slbie", X(31,434), XRTRA_MASK, PPC64, 0, {RB}}, 54798c2ecf20Sopenharmony_ci 54808c2ecf20Sopenharmony_ci{"mtvsrdd", X(31,435), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 54818c2ecf20Sopenharmony_ci 54828c2ecf20Sopenharmony_ci{"ecowx", X(31,438), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}}, 54838c2ecf20Sopenharmony_ci 54848c2ecf20Sopenharmony_ci{"sthux", X(31,439), X_MASK, COM, 0, {RS, RAS, RB}}, 54858c2ecf20Sopenharmony_ci 54868c2ecf20Sopenharmony_ci{"mdors", 0x7f9ce378, 0xffffffff, E500MC, 0, {0}}, 54878c2ecf20Sopenharmony_ci 54888c2ecf20Sopenharmony_ci{"miso", 0x7f5ad378, 0xffffffff, E6500, 0, {0}}, 54898c2ecf20Sopenharmony_ci 54908c2ecf20Sopenharmony_ci/* The "yield", "mdoio" and "mdoom" instructions are extended mnemonics for 54918c2ecf20Sopenharmony_ci "or rX,rX,rX", with rX being r27, r29 and r30 respectively. */ 54928c2ecf20Sopenharmony_ci{"yield", 0x7f7bdb78, 0xffffffff, POWER7, 0, {0}}, 54938c2ecf20Sopenharmony_ci{"mdoio", 0x7fbdeb78, 0xffffffff, POWER7, 0, {0}}, 54948c2ecf20Sopenharmony_ci{"mdoom", 0x7fdef378, 0xffffffff, POWER7, 0, {0}}, 54958c2ecf20Sopenharmony_ci{"mr", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RBS}}, 54968c2ecf20Sopenharmony_ci{"or", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RB}}, 54978c2ecf20Sopenharmony_ci{"mr.", XRC(31,444,1), X_MASK, COM, 0, {RA, RS, RBS}}, 54988c2ecf20Sopenharmony_ci{"or.", XRC(31,444,1), X_MASK, COM, 0, {RA, RS, RB}}, 54998c2ecf20Sopenharmony_ci 55008c2ecf20Sopenharmony_ci{"mtexisr", XSPR(31,451, 64), XSPR_MASK, PPC403, 0, {RS}}, 55018c2ecf20Sopenharmony_ci{"mtexier", XSPR(31,451, 66), XSPR_MASK, PPC403, 0, {RS}}, 55028c2ecf20Sopenharmony_ci{"mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, 0, {RS}}, 55038c2ecf20Sopenharmony_ci{"mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, 0, {RS}}, 55048c2ecf20Sopenharmony_ci{"mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, 0, {RS}}, 55058c2ecf20Sopenharmony_ci{"mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, 0, {RS}}, 55068c2ecf20Sopenharmony_ci{"mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, 0, {RS}}, 55078c2ecf20Sopenharmony_ci{"mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, 0, {RS}}, 55088c2ecf20Sopenharmony_ci{"mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, 0, {RS}}, 55098c2ecf20Sopenharmony_ci{"mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, 0, {RS}}, 55108c2ecf20Sopenharmony_ci{"mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, 0, {RS}}, 55118c2ecf20Sopenharmony_ci{"mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, 0, {RS}}, 55128c2ecf20Sopenharmony_ci{"mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, 0, {RS}}, 55138c2ecf20Sopenharmony_ci{"mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403, 0, {RS}}, 55148c2ecf20Sopenharmony_ci{"mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403, 0, {RS}}, 55158c2ecf20Sopenharmony_ci{"mtdmada0", XSPR(31,451,194), XSPR_MASK, PPC403, 0, {RS}}, 55168c2ecf20Sopenharmony_ci{"mtdmasa0", XSPR(31,451,195), XSPR_MASK, PPC403, 0, {RS}}, 55178c2ecf20Sopenharmony_ci{"mtdmacc0", XSPR(31,451,196), XSPR_MASK, PPC403, 0, {RS}}, 55188c2ecf20Sopenharmony_ci{"mtdmacr1", XSPR(31,451,200), XSPR_MASK, PPC403, 0, {RS}}, 55198c2ecf20Sopenharmony_ci{"mtdmact1", XSPR(31,451,201), XSPR_MASK, PPC403, 0, {RS}}, 55208c2ecf20Sopenharmony_ci{"mtdmada1", XSPR(31,451,202), XSPR_MASK, PPC403, 0, {RS}}, 55218c2ecf20Sopenharmony_ci{"mtdmasa1", XSPR(31,451,203), XSPR_MASK, PPC403, 0, {RS}}, 55228c2ecf20Sopenharmony_ci{"mtdmacc1", XSPR(31,451,204), XSPR_MASK, PPC403, 0, {RS}}, 55238c2ecf20Sopenharmony_ci{"mtdmacr2", XSPR(31,451,208), XSPR_MASK, PPC403, 0, {RS}}, 55248c2ecf20Sopenharmony_ci{"mtdmact2", XSPR(31,451,209), XSPR_MASK, PPC403, 0, {RS}}, 55258c2ecf20Sopenharmony_ci{"mtdmada2", XSPR(31,451,210), XSPR_MASK, PPC403, 0, {RS}}, 55268c2ecf20Sopenharmony_ci{"mtdmasa2", XSPR(31,451,211), XSPR_MASK, PPC403, 0, {RS}}, 55278c2ecf20Sopenharmony_ci{"mtdmacc2", XSPR(31,451,212), XSPR_MASK, PPC403, 0, {RS}}, 55288c2ecf20Sopenharmony_ci{"mtdmacr3", XSPR(31,451,216), XSPR_MASK, PPC403, 0, {RS}}, 55298c2ecf20Sopenharmony_ci{"mtdmact3", XSPR(31,451,217), XSPR_MASK, PPC403, 0, {RS}}, 55308c2ecf20Sopenharmony_ci{"mtdmada3", XSPR(31,451,218), XSPR_MASK, PPC403, 0, {RS}}, 55318c2ecf20Sopenharmony_ci{"mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, 0, {RS}}, 55328c2ecf20Sopenharmony_ci{"mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, 0, {RS}}, 55338c2ecf20Sopenharmony_ci{"mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, 0, {RS}}, 55348c2ecf20Sopenharmony_ci{"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {SPR, RS}}, 55358c2ecf20Sopenharmony_ci{"mtdcr.", XRC(31,451,1), X_MASK, PPCA2, 0, {SPR, RS}}, 55368c2ecf20Sopenharmony_ci 55378c2ecf20Sopenharmony_ci{"stvexwx", X(31,453), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 55388c2ecf20Sopenharmony_ci 55398c2ecf20Sopenharmony_ci{"dccci", X(31,454), XRT_MASK, PPC403|PPC440|TITAN|PPCA2, 0, {RAOPT, RBOPT}}, 55408c2ecf20Sopenharmony_ci{"dci", X(31,454), XRARB_MASK, PPCA2|PPC476, 0, {CT}}, 55418c2ecf20Sopenharmony_ci 55428c2ecf20Sopenharmony_ci{"divdu", XO(31,457,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 55438c2ecf20Sopenharmony_ci{"divdu.", XO(31,457,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 55448c2ecf20Sopenharmony_ci 55458c2ecf20Sopenharmony_ci{"divwu", XO(31,459,0,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 55468c2ecf20Sopenharmony_ci{"divwu.", XO(31,459,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 55478c2ecf20Sopenharmony_ci 55488c2ecf20Sopenharmony_ci{"mtpmr", X(31,462), X_MASK, PPCPMR|PPCE300, 0, {PMR, RS}}, 55498c2ecf20Sopenharmony_ci{"mttmr", X(31,494), X_MASK, PPCTMR|E6500, 0, {TMR, RS}}, 55508c2ecf20Sopenharmony_ci 55518c2ecf20Sopenharmony_ci{"slbieg", X(31,466), XRA_MASK, POWER9, 0, {RS, RB}}, 55528c2ecf20Sopenharmony_ci 55538c2ecf20Sopenharmony_ci{"mtmq", XSPR(31,467, 0), XSPR_MASK, M601, 0, {RS}}, 55548c2ecf20Sopenharmony_ci{"mtxer", XSPR(31,467, 1), XSPR_MASK, COM, 0, {RS}}, 55558c2ecf20Sopenharmony_ci{"mtlr", XSPR(31,467, 8), XSPR_MASK, COM, 0, {RS}}, 55568c2ecf20Sopenharmony_ci{"mtctr", XSPR(31,467, 9), XSPR_MASK, COM, 0, {RS}}, 55578c2ecf20Sopenharmony_ci{"mtdscr", XSPR(31,467, 17), XSPR_MASK, POWER6, 0, {RS}}, 55588c2ecf20Sopenharmony_ci{"mttid", XSPR(31,467, 17), XSPR_MASK, POWER, 0, {RS}}, 55598c2ecf20Sopenharmony_ci{"mtdsisr", XSPR(31,467, 18), XSPR_MASK, COM, TITAN, {RS}}, 55608c2ecf20Sopenharmony_ci{"mtdar", XSPR(31,467, 19), XSPR_MASK, COM, TITAN, {RS}}, 55618c2ecf20Sopenharmony_ci{"mtrtcu", XSPR(31,467, 20), XSPR_MASK, COM, TITAN, {RS}}, 55628c2ecf20Sopenharmony_ci{"mtrtcl", XSPR(31,467, 21), XSPR_MASK, COM, TITAN, {RS}}, 55638c2ecf20Sopenharmony_ci{"mtdec", XSPR(31,467, 22), XSPR_MASK, COM, 0, {RS}}, 55648c2ecf20Sopenharmony_ci{"mtsdr0", XSPR(31,467, 24), XSPR_MASK, POWER, 0, {RS}}, 55658c2ecf20Sopenharmony_ci{"mtsdr1", XSPR(31,467, 25), XSPR_MASK, COM, TITAN, {RS}}, 55668c2ecf20Sopenharmony_ci{"mtsrr0", XSPR(31,467, 26), XSPR_MASK, COM, 0, {RS}}, 55678c2ecf20Sopenharmony_ci{"mtsrr1", XSPR(31,467, 27), XSPR_MASK, COM, 0, {RS}}, 55688c2ecf20Sopenharmony_ci{"mtcfar", XSPR(31,467, 28), XSPR_MASK, POWER6, 0, {RS}}, 55698c2ecf20Sopenharmony_ci{"mtpid", XSPR(31,467, 48), XSPR_MASK, BOOKE, 0, {RS}}, 55708c2ecf20Sopenharmony_ci{"mtdecar", XSPR(31,467, 54), XSPR_MASK, BOOKE, 0, {RS}}, 55718c2ecf20Sopenharmony_ci{"mtcsrr0", XSPR(31,467, 58), XSPR_MASK, BOOKE, 0, {RS}}, 55728c2ecf20Sopenharmony_ci{"mtcsrr1", XSPR(31,467, 59), XSPR_MASK, BOOKE, 0, {RS}}, 55738c2ecf20Sopenharmony_ci{"mtdear", XSPR(31,467, 61), XSPR_MASK, BOOKE, 0, {RS}}, 55748c2ecf20Sopenharmony_ci{"mtesr", XSPR(31,467, 62), XSPR_MASK, BOOKE, 0, {RS}}, 55758c2ecf20Sopenharmony_ci{"mtivpr", XSPR(31,467, 63), XSPR_MASK, BOOKE, 0, {RS}}, 55768c2ecf20Sopenharmony_ci{"mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, 0, {RS}}, 55778c2ecf20Sopenharmony_ci{"mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, 0, {RS}}, 55788c2ecf20Sopenharmony_ci{"mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, 0, {RS}}, 55798c2ecf20Sopenharmony_ci{"mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, 0, {RS}}, 55808c2ecf20Sopenharmony_ci{"mticr", XSPR(31,467,148), XSPR_MASK, PPC860, 0, {RS}}, 55818c2ecf20Sopenharmony_ci{"mtder", XSPR(31,467,149), XSPR_MASK, PPC860, 0, {RS}}, 55828c2ecf20Sopenharmony_ci{"mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, 0, {RS}}, 55838c2ecf20Sopenharmony_ci{"mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, 0, {RS}}, 55848c2ecf20Sopenharmony_ci{"mtctrl", XSPR(31,467,152), XSPR_MASK, POWER4, 0, {RS}}, 55858c2ecf20Sopenharmony_ci{"mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, 0, {RS}}, 55868c2ecf20Sopenharmony_ci{"mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, 0, {RS}}, 55878c2ecf20Sopenharmony_ci{"mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, 0, {RS}}, 55888c2ecf20Sopenharmony_ci{"mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, 0, {RS}}, 55898c2ecf20Sopenharmony_ci{"mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, 0, {RS}}, 55908c2ecf20Sopenharmony_ci{"mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, 0, {RS}}, 55918c2ecf20Sopenharmony_ci{"mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, 0, {RS}}, 55928c2ecf20Sopenharmony_ci{"mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, 0, {RS}}, 55938c2ecf20Sopenharmony_ci{"mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, 0, {RS}}, 55948c2ecf20Sopenharmony_ci{"mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, 0, {RS}}, 55958c2ecf20Sopenharmony_ci{"mtsprg", XSPR(31,467,256), XSPRG_MASK, PPC, 0, {SPRG, RS}}, 55968c2ecf20Sopenharmony_ci{"mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, 0, {RS}}, 55978c2ecf20Sopenharmony_ci{"mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, 0, {RS}}, 55988c2ecf20Sopenharmony_ci{"mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, 0, {RS}}, 55998c2ecf20Sopenharmony_ci{"mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, 0, {RS}}, 56008c2ecf20Sopenharmony_ci{"mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, 0, {RS}}, 56018c2ecf20Sopenharmony_ci{"mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, 0, {RS}}, 56028c2ecf20Sopenharmony_ci{"mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, 0, {RS}}, 56038c2ecf20Sopenharmony_ci{"mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, 0, {RS}}, 56048c2ecf20Sopenharmony_ci{"mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, 0, {RS}}, 56058c2ecf20Sopenharmony_ci{"mtear", XSPR(31,467,282), XSPR_MASK, PPC, TITAN, {RS}}, 56068c2ecf20Sopenharmony_ci{"mttbl", XSPR(31,467,284), XSPR_MASK, PPC, 0, {RS}}, 56078c2ecf20Sopenharmony_ci{"mttbu", XSPR(31,467,285), XSPR_MASK, PPC, 0, {RS}}, 56088c2ecf20Sopenharmony_ci{"mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, 0, {RS}}, 56098c2ecf20Sopenharmony_ci{"mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, 0, {RS}}, 56108c2ecf20Sopenharmony_ci{"mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, 0, {RS}}, 56118c2ecf20Sopenharmony_ci{"mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, 0, {RS}}, 56128c2ecf20Sopenharmony_ci{"mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, 0, {RS}}, 56138c2ecf20Sopenharmony_ci{"mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, 0, {RS}}, 56148c2ecf20Sopenharmony_ci{"mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, 0, {RS}}, 56158c2ecf20Sopenharmony_ci{"mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, 0, {RS}}, 56168c2ecf20Sopenharmony_ci{"mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, 0, {RS}}, 56178c2ecf20Sopenharmony_ci{"mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, 0, {RS}}, 56188c2ecf20Sopenharmony_ci{"mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, 0, {RS}}, 56198c2ecf20Sopenharmony_ci{"mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, 0, {RS}}, 56208c2ecf20Sopenharmony_ci{"mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, 0, {RS}}, 56218c2ecf20Sopenharmony_ci{"mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, 0, {RS}}, 56228c2ecf20Sopenharmony_ci{"mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, 0, {RS}}, 56238c2ecf20Sopenharmony_ci{"mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, 0, {RS}}, 56248c2ecf20Sopenharmony_ci{"mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, 0, {RS}}, 56258c2ecf20Sopenharmony_ci{"mtivor3", XSPR(31,467,403), XSPR_MASK, BOOKE, 0, {RS}}, 56268c2ecf20Sopenharmony_ci{"mtivor4", XSPR(31,467,404), XSPR_MASK, BOOKE, 0, {RS}}, 56278c2ecf20Sopenharmony_ci{"mtivor5", XSPR(31,467,405), XSPR_MASK, BOOKE, 0, {RS}}, 56288c2ecf20Sopenharmony_ci{"mtivor6", XSPR(31,467,406), XSPR_MASK, BOOKE, 0, {RS}}, 56298c2ecf20Sopenharmony_ci{"mtivor7", XSPR(31,467,407), XSPR_MASK, BOOKE, 0, {RS}}, 56308c2ecf20Sopenharmony_ci{"mtivor8", XSPR(31,467,408), XSPR_MASK, BOOKE, 0, {RS}}, 56318c2ecf20Sopenharmony_ci{"mtivor9", XSPR(31,467,409), XSPR_MASK, BOOKE, 0, {RS}}, 56328c2ecf20Sopenharmony_ci{"mtivor10", XSPR(31,467,410), XSPR_MASK, BOOKE, 0, {RS}}, 56338c2ecf20Sopenharmony_ci{"mtivor11", XSPR(31,467,411), XSPR_MASK, BOOKE, 0, {RS}}, 56348c2ecf20Sopenharmony_ci{"mtivor12", XSPR(31,467,412), XSPR_MASK, BOOKE, 0, {RS}}, 56358c2ecf20Sopenharmony_ci{"mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, 0, {RS}}, 56368c2ecf20Sopenharmony_ci{"mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, 0, {RS}}, 56378c2ecf20Sopenharmony_ci{"mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, 0, {RS}}, 56388c2ecf20Sopenharmony_ci{"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, 0, {RS}}, 56398c2ecf20Sopenharmony_ci{"mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, 0, {RS}}, 56408c2ecf20Sopenharmony_ci{"mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, 0, {RS}}, 56418c2ecf20Sopenharmony_ci{"mtivor32", XSPR(31,467,528), XSPR_MASK, PPCSPE, 0, {RS}}, 56428c2ecf20Sopenharmony_ci{"mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}}, 56438c2ecf20Sopenharmony_ci{"mtivor33", XSPR(31,467,529), XSPR_MASK, PPCSPE, 0, {RS}}, 56448c2ecf20Sopenharmony_ci{"mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}}, 56458c2ecf20Sopenharmony_ci{"mtivor34", XSPR(31,467,530), XSPR_MASK, PPCSPE, 0, {RS}}, 56468c2ecf20Sopenharmony_ci{"mtivor35", XSPR(31,467,531), XSPR_MASK, PPCPMR, 0, {RS}}, 56478c2ecf20Sopenharmony_ci{"mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}}, 56488c2ecf20Sopenharmony_ci{"mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}}, 56498c2ecf20Sopenharmony_ci{"mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, 0, {RS}}, 56508c2ecf20Sopenharmony_ci{"mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, 0, {RS}}, 56518c2ecf20Sopenharmony_ci{"mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, 0, {RS}}, 56528c2ecf20Sopenharmony_ci{"mtivndx", XSPR(31,467,880), XSPR_MASK, TITAN, 0, {RS}}, 56538c2ecf20Sopenharmony_ci{"mtdvndx", XSPR(31,467,881), XSPR_MASK, TITAN, 0, {RS}}, 56548c2ecf20Sopenharmony_ci{"mtivlim", XSPR(31,467,882), XSPR_MASK, TITAN, 0, {RS}}, 56558c2ecf20Sopenharmony_ci{"mtdvlim", XSPR(31,467,883), XSPR_MASK, TITAN, 0, {RS}}, 56568c2ecf20Sopenharmony_ci{"mtclcsr", XSPR(31,467,884), XSPR_MASK, TITAN, 0, {RS}}, 56578c2ecf20Sopenharmony_ci{"mtccr1", XSPR(31,467,888), XSPR_MASK, TITAN, 0, {RS}}, 56588c2ecf20Sopenharmony_ci{"mtppr", XSPR(31,467,896), XSPR_MASK, POWER7, 0, {RS}}, 56598c2ecf20Sopenharmony_ci{"mtppr32", XSPR(31,467,898), XSPR_MASK, POWER7, 0, {RS}}, 56608c2ecf20Sopenharmony_ci{"mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, 0, {RS}}, 56618c2ecf20Sopenharmony_ci{"mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, 0, {RS}}, 56628c2ecf20Sopenharmony_ci{"mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, 0, {RS}}, 56638c2ecf20Sopenharmony_ci{"mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, 0, {RS}}, 56648c2ecf20Sopenharmony_ci{"mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, 0, {RS}}, 56658c2ecf20Sopenharmony_ci{"mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, 0, {RS}}, 56668c2ecf20Sopenharmony_ci{"mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, 0, {RS}}, 56678c2ecf20Sopenharmony_ci{"mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, 0, {RS}}, 56688c2ecf20Sopenharmony_ci{"mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, 0, {RS}}, 56698c2ecf20Sopenharmony_ci{"mtrmmucr", XSPR(31,467,946), XSPR_MASK, TITAN, 0, {RS}}, 56708c2ecf20Sopenharmony_ci{"mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405|TITAN, 0, {RS}}, 56718c2ecf20Sopenharmony_ci{"mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, 0, {RS}}, 56728c2ecf20Sopenharmony_ci{"mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, 0, {RS}}, 56738c2ecf20Sopenharmony_ci{"mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, 0, {RS}}, 56748c2ecf20Sopenharmony_ci{"mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, 0, {RS}}, 56758c2ecf20Sopenharmony_ci{"mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, 0, {RS}}, 56768c2ecf20Sopenharmony_ci{"mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, 0, {RS}}, 56778c2ecf20Sopenharmony_ci{"mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, 0, {RS}}, 56788c2ecf20Sopenharmony_ci{"mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, 0, {RS}}, 56798c2ecf20Sopenharmony_ci{"mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, 0, {RS}}, 56808c2ecf20Sopenharmony_ci{"mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, 0, {RS}}, 56818c2ecf20Sopenharmony_ci{"mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, 0, {RS}}, 56828c2ecf20Sopenharmony_ci{"mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, 0, {RS}}, 56838c2ecf20Sopenharmony_ci{"mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, 0, {RS}}, 56848c2ecf20Sopenharmony_ci{"mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, 0, {RS}}, 56858c2ecf20Sopenharmony_ci{"mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, 0, {RS}}, 56868c2ecf20Sopenharmony_ci{"mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, 0, {RS}}, 56878c2ecf20Sopenharmony_ci{"mticdbdr", XSPR(31,467,979), XSPR_MASK, PPC403, 0, {RS}}, 56888c2ecf20Sopenharmony_ci{"mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, 0, {RS}}, 56898c2ecf20Sopenharmony_ci{"mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, 0, {RS}}, 56908c2ecf20Sopenharmony_ci{"mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, 0, {RS}}, 56918c2ecf20Sopenharmony_ci{"mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, 0, {RS}}, 56928c2ecf20Sopenharmony_ci{"mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, 0, {RS}}, 56938c2ecf20Sopenharmony_ci{"mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, 0, {RS}}, 56948c2ecf20Sopenharmony_ci{"mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, 0, {RS}}, 56958c2ecf20Sopenharmony_ci{"mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, 0, {RS}}, 56968c2ecf20Sopenharmony_ci{"mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, 0, {RS}}, 56978c2ecf20Sopenharmony_ci{"mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, 0, {RS}}, 56988c2ecf20Sopenharmony_ci{"mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, 0, {RS}}, 56998c2ecf20Sopenharmony_ci{"mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, 0, {RS}}, 57008c2ecf20Sopenharmony_ci{"mtdbdr", XSPR(31,467,1011), XSPR_MASK, TITAN, 0, {RS}}, 57018c2ecf20Sopenharmony_ci{"mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, 0, {RS}}, 57028c2ecf20Sopenharmony_ci{"mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, 0, {RS}}, 57038c2ecf20Sopenharmony_ci{"mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, 0, {RS}}, 57048c2ecf20Sopenharmony_ci{"mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, 0, {RS}}, 57058c2ecf20Sopenharmony_ci{"mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, 0, {RS}}, 57068c2ecf20Sopenharmony_ci{"mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, 0, {RS}}, 57078c2ecf20Sopenharmony_ci{"mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, 0, {RS}}, 57088c2ecf20Sopenharmony_ci{"mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, 0, {RS}}, 57098c2ecf20Sopenharmony_ci{"mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, 0, {RS}}, 57108c2ecf20Sopenharmony_ci{"mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, 0, {RS}}, 57118c2ecf20Sopenharmony_ci{"mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, 0, {RS}}, 57128c2ecf20Sopenharmony_ci{"mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, 0, {RS}}, 57138c2ecf20Sopenharmony_ci{"mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, 0, {RS}}, 57148c2ecf20Sopenharmony_ci{"mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, 0, {RS}}, 57158c2ecf20Sopenharmony_ci{"mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, 0, {RS}}, 57168c2ecf20Sopenharmony_ci{"mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, 0, {RS}}, 57178c2ecf20Sopenharmony_ci{"mtspr", X(31,467), X_MASK, COM, 0, {SPR, RS}}, 57188c2ecf20Sopenharmony_ci 57198c2ecf20Sopenharmony_ci{"dcbi", X(31,470), XRT_MASK, PPC, 0, {RA0, RB}}, 57208c2ecf20Sopenharmony_ci 57218c2ecf20Sopenharmony_ci{"nand", XRC(31,476,0), X_MASK, COM, 0, {RA, RS, RB}}, 57228c2ecf20Sopenharmony_ci{"nand.", XRC(31,476,1), X_MASK, COM, 0, {RA, RS, RB}}, 57238c2ecf20Sopenharmony_ci 57248c2ecf20Sopenharmony_ci{"dsn", X(31,483), XRT_MASK, E500MC, 0, {RA, RB}}, 57258c2ecf20Sopenharmony_ci 57268c2ecf20Sopenharmony_ci{"dcread", X(31,486), X_MASK, PPC403|PPC440, PPCA2|PPC476, {RT, RA0, RB}}, 57278c2ecf20Sopenharmony_ci 57288c2ecf20Sopenharmony_ci{"icbtls", X(31,486), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}}, 57298c2ecf20Sopenharmony_ci 57308c2ecf20Sopenharmony_ci{"stvxl", X(31,487), X_MASK, PPCVEC, 0, {VS, RA0, RB}}, 57318c2ecf20Sopenharmony_ci 57328c2ecf20Sopenharmony_ci{"nabs", XO(31,488,0,0), XORB_MASK, M601, 0, {RT, RA}}, 57338c2ecf20Sopenharmony_ci{"nabs.", XO(31,488,0,1), XORB_MASK, M601, 0, {RT, RA}}, 57348c2ecf20Sopenharmony_ci 57358c2ecf20Sopenharmony_ci{"divd", XO(31,489,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 57368c2ecf20Sopenharmony_ci{"divd.", XO(31,489,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 57378c2ecf20Sopenharmony_ci 57388c2ecf20Sopenharmony_ci{"divw", XO(31,491,0,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 57398c2ecf20Sopenharmony_ci{"divw.", XO(31,491,0,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 57408c2ecf20Sopenharmony_ci 57418c2ecf20Sopenharmony_ci{"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}}, 57428c2ecf20Sopenharmony_ci 57438c2ecf20Sopenharmony_ci{"slbia", X(31,498), 0xff1fffff, POWER6, 0, {IH}}, 57448c2ecf20Sopenharmony_ci{"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}}, 57458c2ecf20Sopenharmony_ci 57468c2ecf20Sopenharmony_ci{"cli", X(31,502), XRB_MASK, POWER, 0, {RT, RA}}, 57478c2ecf20Sopenharmony_ci 57488c2ecf20Sopenharmony_ci{"popcntd", X(31,506), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}}, 57498c2ecf20Sopenharmony_ci 57508c2ecf20Sopenharmony_ci{"cmpb", X(31,508), X_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS, RB}}, 57518c2ecf20Sopenharmony_ci 57528c2ecf20Sopenharmony_ci{"mcrxr", X(31,512), XBFRARB_MASK, COM, POWER7, {BF}}, 57538c2ecf20Sopenharmony_ci 57548c2ecf20Sopenharmony_ci{"lbdcbx", X(31,514), X_MASK, E200Z4, 0, {RT, RA, RB}}, 57558c2ecf20Sopenharmony_ci{"lbdx", X(31,515), X_MASK, E500MC, 0, {RT, RA, RB}}, 57568c2ecf20Sopenharmony_ci 57578c2ecf20Sopenharmony_ci{"bblels", X(31,518), X_MASK, PPCBRLK, 0, {0}}, 57588c2ecf20Sopenharmony_ci 57598c2ecf20Sopenharmony_ci{"lvlx", X(31,519), X_MASK, CELL, 0, {VD, RA0, RB}}, 57608c2ecf20Sopenharmony_ci{"lbfcmux", APU(31,519,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 57618c2ecf20Sopenharmony_ci 57628c2ecf20Sopenharmony_ci{"subfco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 57638c2ecf20Sopenharmony_ci{"sfo", XO(31,8,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 57648c2ecf20Sopenharmony_ci{"subco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}}, 57658c2ecf20Sopenharmony_ci{"subfco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 57668c2ecf20Sopenharmony_ci{"sfo.", XO(31,8,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 57678c2ecf20Sopenharmony_ci{"subco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}}, 57688c2ecf20Sopenharmony_ci 57698c2ecf20Sopenharmony_ci{"addco", XO(31,10,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 57708c2ecf20Sopenharmony_ci{"ao", XO(31,10,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 57718c2ecf20Sopenharmony_ci{"addco.", XO(31,10,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 57728c2ecf20Sopenharmony_ci{"ao.", XO(31,10,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 57738c2ecf20Sopenharmony_ci 57748c2ecf20Sopenharmony_ci{"lxsspx", X(31,524), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}}, 57758c2ecf20Sopenharmony_ci 57768c2ecf20Sopenharmony_ci{"clcs", X(31,531), XRB_MASK, M601, 0, {RT, RA}}, 57778c2ecf20Sopenharmony_ci 57788c2ecf20Sopenharmony_ci{"ldbrx", X(31,532), X_MASK, CELL|POWER7|PPCA2, 0, {RT, RA0, RB}}, 57798c2ecf20Sopenharmony_ci 57808c2ecf20Sopenharmony_ci{"lswx", X(31,533), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, RBX}}, 57818c2ecf20Sopenharmony_ci{"lsx", X(31,533), X_MASK, PWRCOM, 0, {RT, RA, RB}}, 57828c2ecf20Sopenharmony_ci 57838c2ecf20Sopenharmony_ci{"lwbrx", X(31,534), X_MASK, PPCCOM, 0, {RT, RA0, RB}}, 57848c2ecf20Sopenharmony_ci{"lbrx", X(31,534), X_MASK, PWRCOM, 0, {RT, RA, RB}}, 57858c2ecf20Sopenharmony_ci 57868c2ecf20Sopenharmony_ci{"lfsx", X(31,535), X_MASK, COM, PPCEFS, {FRT, RA0, RB}}, 57878c2ecf20Sopenharmony_ci 57888c2ecf20Sopenharmony_ci{"srw", XRC(31,536,0), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 57898c2ecf20Sopenharmony_ci{"sr", XRC(31,536,0), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 57908c2ecf20Sopenharmony_ci{"srw.", XRC(31,536,1), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 57918c2ecf20Sopenharmony_ci{"sr.", XRC(31,536,1), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 57928c2ecf20Sopenharmony_ci 57938c2ecf20Sopenharmony_ci{"rrib", XRC(31,537,0), X_MASK, M601, 0, {RA, RS, RB}}, 57948c2ecf20Sopenharmony_ci{"rrib.", XRC(31,537,1), X_MASK, M601, 0, {RA, RS, RB}}, 57958c2ecf20Sopenharmony_ci 57968c2ecf20Sopenharmony_ci{"cnttzw", XRC(31,538,0), XRB_MASK, POWER9, 0, {RA, RS}}, 57978c2ecf20Sopenharmony_ci{"cnttzw.", XRC(31,538,1), XRB_MASK, POWER9, 0, {RA, RS}}, 57988c2ecf20Sopenharmony_ci 57998c2ecf20Sopenharmony_ci{"srd", XRC(31,539,0), X_MASK, PPC64, 0, {RA, RS, RB}}, 58008c2ecf20Sopenharmony_ci{"srd.", XRC(31,539,1), X_MASK, PPC64, 0, {RA, RS, RB}}, 58018c2ecf20Sopenharmony_ci 58028c2ecf20Sopenharmony_ci{"maskir", XRC(31,541,0), X_MASK, M601, 0, {RA, RS, RB}}, 58038c2ecf20Sopenharmony_ci{"maskir.", XRC(31,541,1), X_MASK, M601, 0, {RA, RS, RB}}, 58048c2ecf20Sopenharmony_ci 58058c2ecf20Sopenharmony_ci{"lhdcbx", X(31,546), X_MASK, E200Z4, 0, {RT, RA, RB}}, 58068c2ecf20Sopenharmony_ci{"lhdx", X(31,547), X_MASK, E500MC, 0, {RT, RA, RB}}, 58078c2ecf20Sopenharmony_ci 58088c2ecf20Sopenharmony_ci{"lvtrx", X(31,549), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 58098c2ecf20Sopenharmony_ci 58108c2ecf20Sopenharmony_ci{"bbelr", X(31,550), X_MASK, PPCBRLK, 0, {0}}, 58118c2ecf20Sopenharmony_ci 58128c2ecf20Sopenharmony_ci{"lvrx", X(31,551), X_MASK, CELL, 0, {VD, RA0, RB}}, 58138c2ecf20Sopenharmony_ci{"lhfcmux", APU(31,551,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 58148c2ecf20Sopenharmony_ci 58158c2ecf20Sopenharmony_ci{"subfo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 58168c2ecf20Sopenharmony_ci{"subo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RB, RA}}, 58178c2ecf20Sopenharmony_ci{"subfo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 58188c2ecf20Sopenharmony_ci{"subo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RB, RA}}, 58198c2ecf20Sopenharmony_ci 58208c2ecf20Sopenharmony_ci{"tlbsync", X(31,566), 0xffffffff, PPC, 0, {0}}, 58218c2ecf20Sopenharmony_ci 58228c2ecf20Sopenharmony_ci{"lfsux", X(31,567), X_MASK, COM, PPCEFS, {FRT, RAS, RB}}, 58238c2ecf20Sopenharmony_ci 58248c2ecf20Sopenharmony_ci{"cnttzd", XRC(31,570,0), XRB_MASK, POWER9, 0, {RA, RS}}, 58258c2ecf20Sopenharmony_ci{"cnttzd.", XRC(31,570,1), XRB_MASK, POWER9, 0, {RA, RS}}, 58268c2ecf20Sopenharmony_ci 58278c2ecf20Sopenharmony_ci{"mcrxrx", X(31,576), XBFRARB_MASK, POWER9, 0, {BF}}, 58288c2ecf20Sopenharmony_ci 58298c2ecf20Sopenharmony_ci{"lwdcbx", X(31,578), X_MASK, E200Z4, 0, {RT, RA, RB}}, 58308c2ecf20Sopenharmony_ci{"lwdx", X(31,579), X_MASK, E500MC, 0, {RT, RA, RB}}, 58318c2ecf20Sopenharmony_ci 58328c2ecf20Sopenharmony_ci{"lvtlx", X(31,581), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 58338c2ecf20Sopenharmony_ci 58348c2ecf20Sopenharmony_ci{"lwat", X(31,582), X_MASK, POWER9, 0, {RT, RA0, FC}}, 58358c2ecf20Sopenharmony_ci 58368c2ecf20Sopenharmony_ci{"lwfcmux", APU(31,583,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 58378c2ecf20Sopenharmony_ci 58388c2ecf20Sopenharmony_ci{"lxsdx", X(31,588), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}}, 58398c2ecf20Sopenharmony_ci 58408c2ecf20Sopenharmony_ci{"mfsr", X(31,595), XRB_MASK|(1<<20), COM, NON32, {RT, SR}}, 58418c2ecf20Sopenharmony_ci 58428c2ecf20Sopenharmony_ci{"lswi", X(31,597), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, NBI}}, 58438c2ecf20Sopenharmony_ci{"lsi", X(31,597), X_MASK, PWRCOM, 0, {RT, RA0, NB}}, 58448c2ecf20Sopenharmony_ci 58458c2ecf20Sopenharmony_ci{"hwsync", XSYNC(31,598,0), 0xffffffff, POWER4, BOOKE|PPC476, {0}}, 58468c2ecf20Sopenharmony_ci{"lwsync", XSYNC(31,598,1), 0xffffffff, PPC, E500, {0}}, 58478c2ecf20Sopenharmony_ci{"ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, 0, {0}}, 58488c2ecf20Sopenharmony_ci{"sync", X(31,598), XSYNCLE_MASK, E6500, 0, {LS, ESYNC}}, 58498c2ecf20Sopenharmony_ci{"sync", X(31,598), XSYNC_MASK, PPCCOM, BOOKE|PPC476, {LS}}, 58508c2ecf20Sopenharmony_ci{"msync", X(31,598), 0xffffffff, BOOKE|PPCA2|PPC476, 0, {0}}, 58518c2ecf20Sopenharmony_ci{"sync", X(31,598), 0xffffffff, BOOKE|PPC476, E6500, {0}}, 58528c2ecf20Sopenharmony_ci{"lwsync", X(31,598), 0xffffffff, E500, 0, {0}}, 58538c2ecf20Sopenharmony_ci{"dcs", X(31,598), 0xffffffff, PWRCOM, 0, {0}}, 58548c2ecf20Sopenharmony_ci 58558c2ecf20Sopenharmony_ci{"lfdx", X(31,599), X_MASK, COM, PPCEFS, {FRT, RA0, RB}}, 58568c2ecf20Sopenharmony_ci 58578c2ecf20Sopenharmony_ci{"mffgpr", XRC(31,607,0), XRA_MASK, POWER6, POWER7, {FRT, RB}}, 58588c2ecf20Sopenharmony_ci{"lfdepx", X(31,607), X_MASK, E500MC|PPCA2, 0, {FRT, RA0, RB}}, 58598c2ecf20Sopenharmony_ci 58608c2ecf20Sopenharmony_ci{"lddx", X(31,611), X_MASK, E500MC, 0, {RT, RA, RB}}, 58618c2ecf20Sopenharmony_ci 58628c2ecf20Sopenharmony_ci{"lvswx", X(31,613), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 58638c2ecf20Sopenharmony_ci 58648c2ecf20Sopenharmony_ci{"ldat", X(31,614), X_MASK, POWER9, 0, {RT, RA0, FC}}, 58658c2ecf20Sopenharmony_ci 58668c2ecf20Sopenharmony_ci{"lqfcmux", APU(31,615,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 58678c2ecf20Sopenharmony_ci 58688c2ecf20Sopenharmony_ci{"nego", XO(31,104,1,0), XORB_MASK, COM, 0, {RT, RA}}, 58698c2ecf20Sopenharmony_ci{"nego.", XO(31,104,1,1), XORB_MASK, COM, 0, {RT, RA}}, 58708c2ecf20Sopenharmony_ci 58718c2ecf20Sopenharmony_ci{"mulo", XO(31,107,1,0), XO_MASK, M601, 0, {RT, RA, RB}}, 58728c2ecf20Sopenharmony_ci{"mulo.", XO(31,107,1,1), XO_MASK, M601, 0, {RT, RA, RB}}, 58738c2ecf20Sopenharmony_ci 58748c2ecf20Sopenharmony_ci{"mfsri", X(31,627), X_MASK, M601, 0, {RT, RA, RB}}, 58758c2ecf20Sopenharmony_ci 58768c2ecf20Sopenharmony_ci{"dclst", X(31,630), XRB_MASK, M601, 0, {RS, RA}}, 58778c2ecf20Sopenharmony_ci 58788c2ecf20Sopenharmony_ci{"lfdux", X(31,631), X_MASK, COM, PPCEFS, {FRT, RAS, RB}}, 58798c2ecf20Sopenharmony_ci 58808c2ecf20Sopenharmony_ci{"stbdcbx", X(31,642), X_MASK, E200Z4, 0, {RS, RA, RB}}, 58818c2ecf20Sopenharmony_ci{"stbdx", X(31,643), X_MASK, E500MC, 0, {RS, RA, RB}}, 58828c2ecf20Sopenharmony_ci 58838c2ecf20Sopenharmony_ci{"stvlx", X(31,647), X_MASK, CELL, 0, {VS, RA0, RB}}, 58848c2ecf20Sopenharmony_ci{"stbfcmux", APU(31,647,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 58858c2ecf20Sopenharmony_ci 58868c2ecf20Sopenharmony_ci{"stxsspx", X(31,652), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}}, 58878c2ecf20Sopenharmony_ci 58888c2ecf20Sopenharmony_ci{"tbegin.", XRC(31,654,1), XRTLRARB_MASK, PPCHTM, 0, {HTM_R}}, 58898c2ecf20Sopenharmony_ci 58908c2ecf20Sopenharmony_ci{"subfeo", XO(31,136,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 58918c2ecf20Sopenharmony_ci{"sfeo", XO(31,136,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 58928c2ecf20Sopenharmony_ci{"subfeo.", XO(31,136,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 58938c2ecf20Sopenharmony_ci{"sfeo.", XO(31,136,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 58948c2ecf20Sopenharmony_ci 58958c2ecf20Sopenharmony_ci{"addeo", XO(31,138,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 58968c2ecf20Sopenharmony_ci{"aeo", XO(31,138,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 58978c2ecf20Sopenharmony_ci{"addeo.", XO(31,138,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 58988c2ecf20Sopenharmony_ci{"aeo.", XO(31,138,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 58998c2ecf20Sopenharmony_ci 59008c2ecf20Sopenharmony_ci{"mfsrin", X(31,659), XRA_MASK, PPC, NON32, {RT, RB}}, 59018c2ecf20Sopenharmony_ci 59028c2ecf20Sopenharmony_ci{"stdbrx", X(31,660), X_MASK, CELL|POWER7|PPCA2, 0, {RS, RA0, RB}}, 59038c2ecf20Sopenharmony_ci 59048c2ecf20Sopenharmony_ci{"stswx", X(31,661), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, RB}}, 59058c2ecf20Sopenharmony_ci{"stsx", X(31,661), X_MASK, PWRCOM, 0, {RS, RA0, RB}}, 59068c2ecf20Sopenharmony_ci 59078c2ecf20Sopenharmony_ci{"stwbrx", X(31,662), X_MASK, PPCCOM, 0, {RS, RA0, RB}}, 59088c2ecf20Sopenharmony_ci{"stbrx", X(31,662), X_MASK, PWRCOM, 0, {RS, RA0, RB}}, 59098c2ecf20Sopenharmony_ci 59108c2ecf20Sopenharmony_ci{"stfsx", X(31,663), X_MASK, COM, PPCEFS, {FRS, RA0, RB}}, 59118c2ecf20Sopenharmony_ci 59128c2ecf20Sopenharmony_ci{"srq", XRC(31,664,0), X_MASK, M601, 0, {RA, RS, RB}}, 59138c2ecf20Sopenharmony_ci{"srq.", XRC(31,664,1), X_MASK, M601, 0, {RA, RS, RB}}, 59148c2ecf20Sopenharmony_ci 59158c2ecf20Sopenharmony_ci{"sre", XRC(31,665,0), X_MASK, M601, 0, {RA, RS, RB}}, 59168c2ecf20Sopenharmony_ci{"sre.", XRC(31,665,1), X_MASK, M601, 0, {RA, RS, RB}}, 59178c2ecf20Sopenharmony_ci 59188c2ecf20Sopenharmony_ci{"sthdcbx", X(31,674), X_MASK, E200Z4, 0, {RS, RA, RB}}, 59198c2ecf20Sopenharmony_ci{"sthdx", X(31,675), X_MASK, E500MC, 0, {RS, RA, RB}}, 59208c2ecf20Sopenharmony_ci 59218c2ecf20Sopenharmony_ci{"stvfrx", X(31,677), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 59228c2ecf20Sopenharmony_ci 59238c2ecf20Sopenharmony_ci{"stvrx", X(31,679), X_MASK, CELL, 0, {VS, RA0, RB}}, 59248c2ecf20Sopenharmony_ci{"sthfcmux", APU(31,679,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 59258c2ecf20Sopenharmony_ci 59268c2ecf20Sopenharmony_ci{"tendall.", XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, 0, {0}}, 59278c2ecf20Sopenharmony_ci{"tend.", XRC(31,686,1), XRTARARB_MASK, PPCHTM, 0, {HTM_A}}, 59288c2ecf20Sopenharmony_ci 59298c2ecf20Sopenharmony_ci{"stbcx.", XRC(31,694,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}}, 59308c2ecf20Sopenharmony_ci 59318c2ecf20Sopenharmony_ci{"stfsux", X(31,695), X_MASK, COM, PPCEFS, {FRS, RAS, RB}}, 59328c2ecf20Sopenharmony_ci 59338c2ecf20Sopenharmony_ci{"sriq", XRC(31,696,0), X_MASK, M601, 0, {RA, RS, SH}}, 59348c2ecf20Sopenharmony_ci{"sriq.", XRC(31,696,1), X_MASK, M601, 0, {RA, RS, SH}}, 59358c2ecf20Sopenharmony_ci 59368c2ecf20Sopenharmony_ci{"stwdcbx", X(31,706), X_MASK, E200Z4, 0, {RS, RA, RB}}, 59378c2ecf20Sopenharmony_ci{"stwdx", X(31,707), X_MASK, E500MC, 0, {RS, RA, RB}}, 59388c2ecf20Sopenharmony_ci 59398c2ecf20Sopenharmony_ci{"stvflx", X(31,709), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 59408c2ecf20Sopenharmony_ci 59418c2ecf20Sopenharmony_ci{"stwat", X(31,710), X_MASK, POWER9, 0, {RS, RA0, FC}}, 59428c2ecf20Sopenharmony_ci 59438c2ecf20Sopenharmony_ci{"stwfcmux", APU(31,711,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 59448c2ecf20Sopenharmony_ci 59458c2ecf20Sopenharmony_ci{"stxsdx", X(31,716), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}}, 59468c2ecf20Sopenharmony_ci 59478c2ecf20Sopenharmony_ci{"tcheck", X(31,718), XRTBFRARB_MASK, PPCHTM, 0, {BF}}, 59488c2ecf20Sopenharmony_ci 59498c2ecf20Sopenharmony_ci{"subfzeo", XO(31,200,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 59508c2ecf20Sopenharmony_ci{"sfzeo", XO(31,200,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 59518c2ecf20Sopenharmony_ci{"subfzeo.", XO(31,200,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 59528c2ecf20Sopenharmony_ci{"sfzeo.", XO(31,200,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 59538c2ecf20Sopenharmony_ci 59548c2ecf20Sopenharmony_ci{"addzeo", XO(31,202,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 59558c2ecf20Sopenharmony_ci{"azeo", XO(31,202,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 59568c2ecf20Sopenharmony_ci{"addzeo.", XO(31,202,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 59578c2ecf20Sopenharmony_ci{"azeo.", XO(31,202,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 59588c2ecf20Sopenharmony_ci 59598c2ecf20Sopenharmony_ci{"stswi", X(31,725), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, NB}}, 59608c2ecf20Sopenharmony_ci{"stsi", X(31,725), X_MASK, PWRCOM, 0, {RS, RA0, NB}}, 59618c2ecf20Sopenharmony_ci 59628c2ecf20Sopenharmony_ci{"sthcx.", XRC(31,726,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}}, 59638c2ecf20Sopenharmony_ci 59648c2ecf20Sopenharmony_ci{"stfdx", X(31,727), X_MASK, COM, PPCEFS, {FRS, RA0, RB}}, 59658c2ecf20Sopenharmony_ci 59668c2ecf20Sopenharmony_ci{"srlq", XRC(31,728,0), X_MASK, M601, 0, {RA, RS, RB}}, 59678c2ecf20Sopenharmony_ci{"srlq.", XRC(31,728,1), X_MASK, M601, 0, {RA, RS, RB}}, 59688c2ecf20Sopenharmony_ci 59698c2ecf20Sopenharmony_ci{"sreq", XRC(31,729,0), X_MASK, M601, 0, {RA, RS, RB}}, 59708c2ecf20Sopenharmony_ci{"sreq.", XRC(31,729,1), X_MASK, M601, 0, {RA, RS, RB}}, 59718c2ecf20Sopenharmony_ci 59728c2ecf20Sopenharmony_ci{"mftgpr", XRC(31,735,0), XRA_MASK, POWER6, POWER7, {RT, FRB}}, 59738c2ecf20Sopenharmony_ci{"stfdepx", X(31,735), X_MASK, E500MC|PPCA2, 0, {FRS, RA0, RB}}, 59748c2ecf20Sopenharmony_ci 59758c2ecf20Sopenharmony_ci{"stddx", X(31,739), X_MASK, E500MC, 0, {RS, RA, RB}}, 59768c2ecf20Sopenharmony_ci 59778c2ecf20Sopenharmony_ci{"stvswx", X(31,741), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 59788c2ecf20Sopenharmony_ci 59798c2ecf20Sopenharmony_ci{"stdat", X(31,742), X_MASK, POWER9, 0, {RS, RA0, FC}}, 59808c2ecf20Sopenharmony_ci 59818c2ecf20Sopenharmony_ci{"stqfcmux", APU(31,743,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 59828c2ecf20Sopenharmony_ci 59838c2ecf20Sopenharmony_ci{"subfmeo", XO(31,232,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 59848c2ecf20Sopenharmony_ci{"sfmeo", XO(31,232,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 59858c2ecf20Sopenharmony_ci{"subfmeo.", XO(31,232,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 59868c2ecf20Sopenharmony_ci{"sfmeo.", XO(31,232,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 59878c2ecf20Sopenharmony_ci 59888c2ecf20Sopenharmony_ci{"mulldo", XO(31,233,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 59898c2ecf20Sopenharmony_ci{"mulldo.", XO(31,233,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 59908c2ecf20Sopenharmony_ci 59918c2ecf20Sopenharmony_ci{"addmeo", XO(31,234,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}}, 59928c2ecf20Sopenharmony_ci{"ameo", XO(31,234,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}}, 59938c2ecf20Sopenharmony_ci{"addmeo.", XO(31,234,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}}, 59948c2ecf20Sopenharmony_ci{"ameo.", XO(31,234,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}}, 59958c2ecf20Sopenharmony_ci 59968c2ecf20Sopenharmony_ci{"mullwo", XO(31,235,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 59978c2ecf20Sopenharmony_ci{"mulso", XO(31,235,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 59988c2ecf20Sopenharmony_ci{"mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 59998c2ecf20Sopenharmony_ci{"mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 60008c2ecf20Sopenharmony_ci 60018c2ecf20Sopenharmony_ci{"tsuspend.", XRCL(31,750,0,1), XRTRARB_MASK,PPCHTM, 0, {0}}, 60028c2ecf20Sopenharmony_ci{"tresume.", XRCL(31,750,1,1), XRTRARB_MASK,PPCHTM, 0, {0}}, 60038c2ecf20Sopenharmony_ci{"tsr.", XRC(31,750,1), XRTLRARB_MASK,PPCHTM, 0, {L}}, 60048c2ecf20Sopenharmony_ci 60058c2ecf20Sopenharmony_ci{"darn", X(31,755), XLRAND_MASK, POWER9, 0, {RT, LRAND}}, 60068c2ecf20Sopenharmony_ci 60078c2ecf20Sopenharmony_ci{"dcba", X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, 0, {RA0, RB}}, 60088c2ecf20Sopenharmony_ci{"dcbal", XOPL(31,758,1), XRT_MASK, E500MC, 0, {RA0, RB}}, 60098c2ecf20Sopenharmony_ci 60108c2ecf20Sopenharmony_ci{"stfdux", X(31,759), X_MASK, COM, PPCEFS, {FRS, RAS, RB}}, 60118c2ecf20Sopenharmony_ci 60128c2ecf20Sopenharmony_ci{"srliq", XRC(31,760,0), X_MASK, M601, 0, {RA, RS, SH}}, 60138c2ecf20Sopenharmony_ci{"srliq.", XRC(31,760,1), X_MASK, M601, 0, {RA, RS, SH}}, 60148c2ecf20Sopenharmony_ci 60158c2ecf20Sopenharmony_ci{"lvsm", X(31,773), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 60168c2ecf20Sopenharmony_ci 60178c2ecf20Sopenharmony_ci{"copy", XOPL(31,774,1), XRT_MASK, POWER9, 0, {RA0, RB}}, 60188c2ecf20Sopenharmony_ci 60198c2ecf20Sopenharmony_ci{"stvepxl", X(31,775), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 60208c2ecf20Sopenharmony_ci{"lvlxl", X(31,775), X_MASK, CELL, 0, {VD, RA0, RB}}, 60218c2ecf20Sopenharmony_ci{"ldfcmux", APU(31,775,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 60228c2ecf20Sopenharmony_ci 60238c2ecf20Sopenharmony_ci{"dozo", XO(31,264,1,0), XO_MASK, M601, 0, {RT, RA, RB}}, 60248c2ecf20Sopenharmony_ci{"dozo.", XO(31,264,1,1), XO_MASK, M601, 0, {RT, RA, RB}}, 60258c2ecf20Sopenharmony_ci 60268c2ecf20Sopenharmony_ci{"addo", XO(31,266,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 60278c2ecf20Sopenharmony_ci{"caxo", XO(31,266,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 60288c2ecf20Sopenharmony_ci{"addo.", XO(31,266,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}}, 60298c2ecf20Sopenharmony_ci{"caxo.", XO(31,266,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}}, 60308c2ecf20Sopenharmony_ci 60318c2ecf20Sopenharmony_ci{"modsd", X(31,777), X_MASK, POWER9, 0, {RT, RA, RB}}, 60328c2ecf20Sopenharmony_ci{"modsw", X(31,779), X_MASK, POWER9, 0, {RT, RA, RB}}, 60338c2ecf20Sopenharmony_ci 60348c2ecf20Sopenharmony_ci{"lxvw4x", X(31,780), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}}, 60358c2ecf20Sopenharmony_ci{"lxsibzx", X(31,781), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 60368c2ecf20Sopenharmony_ci 60378c2ecf20Sopenharmony_ci{"tabortwc.", XRC(31,782,1), X_MASK, PPCHTM, 0, {TO, RA, RB}}, 60388c2ecf20Sopenharmony_ci 60398c2ecf20Sopenharmony_ci{"tlbivax", X(31,786), XRT_MASK, BOOKE|PPCA2|PPC476, 0, {RA0, RB}}, 60408c2ecf20Sopenharmony_ci 60418c2ecf20Sopenharmony_ci{"lwzcix", X(31,789), X_MASK, POWER6, 0, {RT, RA0, RB}}, 60428c2ecf20Sopenharmony_ci 60438c2ecf20Sopenharmony_ci{"lhbrx", X(31,790), X_MASK, COM, 0, {RT, RA0, RB}}, 60448c2ecf20Sopenharmony_ci 60458c2ecf20Sopenharmony_ci{"lfdpx", X(31,791), X_MASK, POWER6, POWER7, {FRTp, RA0, RB}}, 60468c2ecf20Sopenharmony_ci{"lfqx", X(31,791), X_MASK, POWER2, 0, {FRT, RA, RB}}, 60478c2ecf20Sopenharmony_ci 60488c2ecf20Sopenharmony_ci{"sraw", XRC(31,792,0), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 60498c2ecf20Sopenharmony_ci{"sra", XRC(31,792,0), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 60508c2ecf20Sopenharmony_ci{"sraw.", XRC(31,792,1), X_MASK, PPCCOM, 0, {RA, RS, RB}}, 60518c2ecf20Sopenharmony_ci{"sra.", XRC(31,792,1), X_MASK, PWRCOM, 0, {RA, RS, RB}}, 60528c2ecf20Sopenharmony_ci 60538c2ecf20Sopenharmony_ci{"srad", XRC(31,794,0), X_MASK, PPC64, 0, {RA, RS, RB}}, 60548c2ecf20Sopenharmony_ci{"srad.", XRC(31,794,1), X_MASK, PPC64, 0, {RA, RS, RB}}, 60558c2ecf20Sopenharmony_ci 60568c2ecf20Sopenharmony_ci{"lfddx", X(31,803), X_MASK, E500MC, 0, {FRT, RA, RB}}, 60578c2ecf20Sopenharmony_ci 60588c2ecf20Sopenharmony_ci{"lvtrxl", X(31,805), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 60598c2ecf20Sopenharmony_ci{"stvepx", X(31,807), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 60608c2ecf20Sopenharmony_ci{"lvrxl", X(31,807), X_MASK, CELL, 0, {VD, RA0, RB}}, 60618c2ecf20Sopenharmony_ci 60628c2ecf20Sopenharmony_ci{"lxvh8x", X(31,812), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 60638c2ecf20Sopenharmony_ci{"lxsihzx", X(31,813), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 60648c2ecf20Sopenharmony_ci 60658c2ecf20Sopenharmony_ci{"tabortdc.", XRC(31,814,1), X_MASK, PPCHTM, 0, {TO, RA, RB}}, 60668c2ecf20Sopenharmony_ci 60678c2ecf20Sopenharmony_ci{"rac", X(31,818), X_MASK, M601, 0, {RT, RA, RB}}, 60688c2ecf20Sopenharmony_ci 60698c2ecf20Sopenharmony_ci{"erativax", X(31,819), X_MASK, PPCA2, 0, {RS, RA0, RB}}, 60708c2ecf20Sopenharmony_ci 60718c2ecf20Sopenharmony_ci{"lhzcix", X(31,821), X_MASK, POWER6, 0, {RT, RA0, RB}}, 60728c2ecf20Sopenharmony_ci 60738c2ecf20Sopenharmony_ci{"dss", XDSS(31,822,0), XDSS_MASK, PPCVEC, 0, {STRM}}, 60748c2ecf20Sopenharmony_ci 60758c2ecf20Sopenharmony_ci{"lfqux", X(31,823), X_MASK, POWER2, 0, {FRT, RA, RB}}, 60768c2ecf20Sopenharmony_ci 60778c2ecf20Sopenharmony_ci{"srawi", XRC(31,824,0), X_MASK, PPCCOM, 0, {RA, RS, SH}}, 60788c2ecf20Sopenharmony_ci{"srai", XRC(31,824,0), X_MASK, PWRCOM, 0, {RA, RS, SH}}, 60798c2ecf20Sopenharmony_ci{"srawi.", XRC(31,824,1), X_MASK, PPCCOM, 0, {RA, RS, SH}}, 60808c2ecf20Sopenharmony_ci{"srai.", XRC(31,824,1), X_MASK, PWRCOM, 0, {RA, RS, SH}}, 60818c2ecf20Sopenharmony_ci 60828c2ecf20Sopenharmony_ci{"sradi", XS(31,413,0), XS_MASK, PPC64, 0, {RA, RS, SH6}}, 60838c2ecf20Sopenharmony_ci{"sradi.", XS(31,413,1), XS_MASK, PPC64, 0, {RA, RS, SH6}}, 60848c2ecf20Sopenharmony_ci 60858c2ecf20Sopenharmony_ci{"lvtlxl", X(31,837), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 60868c2ecf20Sopenharmony_ci 60878c2ecf20Sopenharmony_ci{"cpabort", X(31,838), XRTRARB_MASK,POWER9, 0, {0}}, 60888c2ecf20Sopenharmony_ci 60898c2ecf20Sopenharmony_ci{"divo", XO(31,331,1,0), XO_MASK, M601, 0, {RT, RA, RB}}, 60908c2ecf20Sopenharmony_ci{"divo.", XO(31,331,1,1), XO_MASK, M601, 0, {RT, RA, RB}}, 60918c2ecf20Sopenharmony_ci 60928c2ecf20Sopenharmony_ci{"lxvd2x", X(31,844), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}}, 60938c2ecf20Sopenharmony_ci{"lxvx", X(31,844), XX1_MASK, POWER8, POWER9|PPCVSX3, {XT6, RA0, RB}}, 60948c2ecf20Sopenharmony_ci 60958c2ecf20Sopenharmony_ci{"tabortwci.", XRC(31,846,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}}, 60968c2ecf20Sopenharmony_ci 60978c2ecf20Sopenharmony_ci{"tlbsrx.", XRC(31,850,1), XRT_MASK, PPCA2, 0, {RA0, RB}}, 60988c2ecf20Sopenharmony_ci 60998c2ecf20Sopenharmony_ci{"slbiag", X(31,850), XRARB_MASK, POWER9, 0, {RS}}, 61008c2ecf20Sopenharmony_ci{"slbmfev", X(31,851), XRLA_MASK, POWER9, 0, {RT, RB, A_L}}, 61018c2ecf20Sopenharmony_ci{"slbmfev", X(31,851), XRA_MASK, PPC64, POWER9, {RT, RB}}, 61028c2ecf20Sopenharmony_ci 61038c2ecf20Sopenharmony_ci{"lbzcix", X(31,853), X_MASK, POWER6, 0, {RT, RA0, RB}}, 61048c2ecf20Sopenharmony_ci 61058c2ecf20Sopenharmony_ci{"eieio", X(31,854), 0xffffffff, PPC, BOOKE|PPCA2|PPC476, {0}}, 61068c2ecf20Sopenharmony_ci{"mbar", X(31,854), X_MASK, BOOKE|PPCA2|PPC476, 0, {MO}}, 61078c2ecf20Sopenharmony_ci{"eieio", XMBAR(31,854,1),0xffffffff, E500, 0, {0}}, 61088c2ecf20Sopenharmony_ci{"eieio", X(31,854), 0xffffffff, PPCA2|PPC476, 0, {0}}, 61098c2ecf20Sopenharmony_ci 61108c2ecf20Sopenharmony_ci{"lfiwax", X(31,855), X_MASK, POWER6|PPCA2|PPC476, 0, {FRT, RA0, RB}}, 61118c2ecf20Sopenharmony_ci 61128c2ecf20Sopenharmony_ci{"lvswxl", X(31,869), X_MASK, PPCVEC2, 0, {VD, RA0, RB}}, 61138c2ecf20Sopenharmony_ci 61148c2ecf20Sopenharmony_ci{"abso", XO(31,360,1,0), XORB_MASK, M601, 0, {RT, RA}}, 61158c2ecf20Sopenharmony_ci{"abso.", XO(31,360,1,1), XORB_MASK, M601, 0, {RT, RA}}, 61168c2ecf20Sopenharmony_ci 61178c2ecf20Sopenharmony_ci{"divso", XO(31,363,1,0), XO_MASK, M601, 0, {RT, RA, RB}}, 61188c2ecf20Sopenharmony_ci{"divso.", XO(31,363,1,1), XO_MASK, M601, 0, {RT, RA, RB}}, 61198c2ecf20Sopenharmony_ci 61208c2ecf20Sopenharmony_ci{"lxvb16x", X(31,876), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}}, 61218c2ecf20Sopenharmony_ci 61228c2ecf20Sopenharmony_ci{"tabortdci.", XRC(31,878,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}}, 61238c2ecf20Sopenharmony_ci 61248c2ecf20Sopenharmony_ci{"rmieg", X(31,882), XRTRA_MASK, POWER9, 0, {RB}}, 61258c2ecf20Sopenharmony_ci 61268c2ecf20Sopenharmony_ci{"ldcix", X(31,885), X_MASK, POWER6, 0, {RT, RA0, RB}}, 61278c2ecf20Sopenharmony_ci 61288c2ecf20Sopenharmony_ci{"msgsync", X(31,886), 0xffffffff, POWER9, 0, {0}}, 61298c2ecf20Sopenharmony_ci 61308c2ecf20Sopenharmony_ci{"lfiwzx", X(31,887), X_MASK, POWER7|PPCA2, 0, {FRT, RA0, RB}}, 61318c2ecf20Sopenharmony_ci 61328c2ecf20Sopenharmony_ci{"extswsli", XS(31,445,0), XS_MASK, POWER9, 0, {RA, RS, SH6}}, 61338c2ecf20Sopenharmony_ci{"extswsli.", XS(31,445,1), XS_MASK, POWER9, 0, {RA, RS, SH6}}, 61348c2ecf20Sopenharmony_ci 61358c2ecf20Sopenharmony_ci{"paste.", XRCL(31,902,1,1),XRT_MASK, POWER9, 0, {RA0, RB}}, 61368c2ecf20Sopenharmony_ci 61378c2ecf20Sopenharmony_ci{"stvlxl", X(31,903), X_MASK, CELL, 0, {VS, RA0, RB}}, 61388c2ecf20Sopenharmony_ci{"stdfcmux", APU(31,903,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}}, 61398c2ecf20Sopenharmony_ci 61408c2ecf20Sopenharmony_ci{"divdeuo", XO(31,393,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 61418c2ecf20Sopenharmony_ci{"divdeuo.", XO(31,393,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 61428c2ecf20Sopenharmony_ci{"divweuo", XO(31,395,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 61438c2ecf20Sopenharmony_ci{"divweuo.", XO(31,395,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 61448c2ecf20Sopenharmony_ci 61458c2ecf20Sopenharmony_ci{"stxvw4x", X(31,908), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}}, 61468c2ecf20Sopenharmony_ci{"stxsibx", X(31,909), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 61478c2ecf20Sopenharmony_ci 61488c2ecf20Sopenharmony_ci{"tabort.", XRC(31,910,1), XRTRB_MASK, PPCHTM, 0, {RA}}, 61498c2ecf20Sopenharmony_ci 61508c2ecf20Sopenharmony_ci{"tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}}, 61518c2ecf20Sopenharmony_ci{"tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}}, 61528c2ecf20Sopenharmony_ci 61538c2ecf20Sopenharmony_ci{"slbmfee", X(31,915), XRLA_MASK, POWER9, 0, {RT, RB, A_L}}, 61548c2ecf20Sopenharmony_ci{"slbmfee", X(31,915), XRA_MASK, PPC64, POWER9, {RT, RB}}, 61558c2ecf20Sopenharmony_ci 61568c2ecf20Sopenharmony_ci{"stwcix", X(31,917), X_MASK, POWER6, 0, {RS, RA0, RB}}, 61578c2ecf20Sopenharmony_ci 61588c2ecf20Sopenharmony_ci{"sthbrx", X(31,918), X_MASK, COM, 0, {RS, RA0, RB}}, 61598c2ecf20Sopenharmony_ci 61608c2ecf20Sopenharmony_ci{"stfdpx", X(31,919), X_MASK, POWER6, POWER7, {FRSp, RA0, RB}}, 61618c2ecf20Sopenharmony_ci{"stfqx", X(31,919), X_MASK, POWER2, 0, {FRS, RA0, RB}}, 61628c2ecf20Sopenharmony_ci 61638c2ecf20Sopenharmony_ci{"sraq", XRC(31,920,0), X_MASK, M601, 0, {RA, RS, RB}}, 61648c2ecf20Sopenharmony_ci{"sraq.", XRC(31,920,1), X_MASK, M601, 0, {RA, RS, RB}}, 61658c2ecf20Sopenharmony_ci 61668c2ecf20Sopenharmony_ci{"srea", XRC(31,921,0), X_MASK, M601, 0, {RA, RS, RB}}, 61678c2ecf20Sopenharmony_ci{"srea.", XRC(31,921,1), X_MASK, M601, 0, {RA, RS, RB}}, 61688c2ecf20Sopenharmony_ci 61698c2ecf20Sopenharmony_ci{"extsh", XRC(31,922,0), XRB_MASK, PPCCOM, 0, {RA, RS}}, 61708c2ecf20Sopenharmony_ci{"exts", XRC(31,922,0), XRB_MASK, PWRCOM, 0, {RA, RS}}, 61718c2ecf20Sopenharmony_ci{"extsh.", XRC(31,922,1), XRB_MASK, PPCCOM, 0, {RA, RS}}, 61728c2ecf20Sopenharmony_ci{"exts.", XRC(31,922,1), XRB_MASK, PWRCOM, 0, {RA, RS}}, 61738c2ecf20Sopenharmony_ci 61748c2ecf20Sopenharmony_ci{"stfddx", X(31,931), X_MASK, E500MC, 0, {FRS, RA, RB}}, 61758c2ecf20Sopenharmony_ci 61768c2ecf20Sopenharmony_ci{"stvfrxl", X(31,933), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 61778c2ecf20Sopenharmony_ci 61788c2ecf20Sopenharmony_ci{"wclrone", XOPL2(31,934,2),XRT_MASK, PPCA2, 0, {RA0, RB}}, 61798c2ecf20Sopenharmony_ci{"wclrall", X(31,934), XRARB_MASK, PPCA2, 0, {L2}}, 61808c2ecf20Sopenharmony_ci{"wclr", X(31,934), X_MASK, PPCA2, 0, {L2, RA0, RB}}, 61818c2ecf20Sopenharmony_ci 61828c2ecf20Sopenharmony_ci{"stvrxl", X(31,935), X_MASK, CELL, 0, {VS, RA0, RB}}, 61838c2ecf20Sopenharmony_ci 61848c2ecf20Sopenharmony_ci{"divdeo", XO(31,425,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 61858c2ecf20Sopenharmony_ci{"divdeo.", XO(31,425,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 61868c2ecf20Sopenharmony_ci{"divweo", XO(31,427,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 61878c2ecf20Sopenharmony_ci{"divweo.", XO(31,427,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}}, 61888c2ecf20Sopenharmony_ci 61898c2ecf20Sopenharmony_ci{"stxvh8x", X(31,940), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 61908c2ecf20Sopenharmony_ci{"stxsihx", X(31,941), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 61918c2ecf20Sopenharmony_ci 61928c2ecf20Sopenharmony_ci{"treclaim.", XRC(31,942,1), XRTRB_MASK, PPCHTM, 0, {RA}}, 61938c2ecf20Sopenharmony_ci 61948c2ecf20Sopenharmony_ci{"tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, PPCA2, {RT, RA}}, 61958c2ecf20Sopenharmony_ci{"tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, PPCA2, {RT, RA}}, 61968c2ecf20Sopenharmony_ci{"tlbre", X(31,946), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}}, 61978c2ecf20Sopenharmony_ci 61988c2ecf20Sopenharmony_ci{"sthcix", X(31,949), X_MASK, POWER6, 0, {RS, RA0, RB}}, 61998c2ecf20Sopenharmony_ci 62008c2ecf20Sopenharmony_ci{"icswepx", XRC(31,950,0), X_MASK, PPCA2, 0, {RS, RA, RB}}, 62018c2ecf20Sopenharmony_ci{"icswepx.", XRC(31,950,1), X_MASK, PPCA2, 0, {RS, RA, RB}}, 62028c2ecf20Sopenharmony_ci 62038c2ecf20Sopenharmony_ci{"stfqux", X(31,951), X_MASK, POWER2, 0, {FRS, RA, RB}}, 62048c2ecf20Sopenharmony_ci 62058c2ecf20Sopenharmony_ci{"sraiq", XRC(31,952,0), X_MASK, M601, 0, {RA, RS, SH}}, 62068c2ecf20Sopenharmony_ci{"sraiq.", XRC(31,952,1), X_MASK, M601, 0, {RA, RS, SH}}, 62078c2ecf20Sopenharmony_ci 62088c2ecf20Sopenharmony_ci{"extsb", XRC(31,954,0), XRB_MASK, PPC, 0, {RA, RS}}, 62098c2ecf20Sopenharmony_ci{"extsb.", XRC(31,954,1), XRB_MASK, PPC, 0, {RA, RS}}, 62108c2ecf20Sopenharmony_ci 62118c2ecf20Sopenharmony_ci{"stvflxl", X(31,965), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 62128c2ecf20Sopenharmony_ci 62138c2ecf20Sopenharmony_ci{"iccci", X(31,966), XRT_MASK, PPC403|PPC440|TITAN|PPCA2, 0, {RAOPT, RBOPT}}, 62148c2ecf20Sopenharmony_ci{"ici", X(31,966), XRARB_MASK, PPCA2|PPC476, 0, {CT}}, 62158c2ecf20Sopenharmony_ci 62168c2ecf20Sopenharmony_ci{"divduo", XO(31,457,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 62178c2ecf20Sopenharmony_ci{"divduo.", XO(31,457,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 62188c2ecf20Sopenharmony_ci 62198c2ecf20Sopenharmony_ci{"divwuo", XO(31,459,1,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 62208c2ecf20Sopenharmony_ci{"divwuo.", XO(31,459,1,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 62218c2ecf20Sopenharmony_ci 62228c2ecf20Sopenharmony_ci{"stxvd2x", X(31,972), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}}, 62238c2ecf20Sopenharmony_ci{"stxvx", X(31,972), XX1_MASK, POWER8, POWER9|PPCVSX3, {XS6, RA0, RB}}, 62248c2ecf20Sopenharmony_ci 62258c2ecf20Sopenharmony_ci{"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}}, 62268c2ecf20Sopenharmony_ci{"tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, 0, {RT, RA}}, 62278c2ecf20Sopenharmony_ci{"tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, 0, {RT, RA}}, 62288c2ecf20Sopenharmony_ci{"tlbwe", X(31,978), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}}, 62298c2ecf20Sopenharmony_ci 62308c2ecf20Sopenharmony_ci{"slbfee.", XRC(31,979,1), XRA_MASK, POWER6, 0, {RT, RB}}, 62318c2ecf20Sopenharmony_ci 62328c2ecf20Sopenharmony_ci{"stbcix", X(31,981), X_MASK, POWER6, 0, {RS, RA0, RB}}, 62338c2ecf20Sopenharmony_ci 62348c2ecf20Sopenharmony_ci{"icbi", X(31,982), XRT_MASK, PPC, 0, {RA0, RB}}, 62358c2ecf20Sopenharmony_ci 62368c2ecf20Sopenharmony_ci{"stfiwx", X(31,983), X_MASK, PPC, PPCEFS, {FRS, RA0, RB}}, 62378c2ecf20Sopenharmony_ci 62388c2ecf20Sopenharmony_ci{"extsw", XRC(31,986,0), XRB_MASK, PPC64, 0, {RA, RS}}, 62398c2ecf20Sopenharmony_ci{"extsw.", XRC(31,986,1), XRB_MASK, PPC64, 0, {RA, RS}}, 62408c2ecf20Sopenharmony_ci 62418c2ecf20Sopenharmony_ci{"icbiep", XRT(31,991,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, 62428c2ecf20Sopenharmony_ci 62438c2ecf20Sopenharmony_ci{"stvswxl", X(31,997), X_MASK, PPCVEC2, 0, {VS, RA0, RB}}, 62448c2ecf20Sopenharmony_ci 62458c2ecf20Sopenharmony_ci{"icread", X(31,998), XRT_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA0, RB}}, 62468c2ecf20Sopenharmony_ci 62478c2ecf20Sopenharmony_ci{"nabso", XO(31,488,1,0), XORB_MASK, M601, 0, {RT, RA}}, 62488c2ecf20Sopenharmony_ci{"nabso.", XO(31,488,1,1), XORB_MASK, M601, 0, {RT, RA}}, 62498c2ecf20Sopenharmony_ci 62508c2ecf20Sopenharmony_ci{"divdo", XO(31,489,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}}, 62518c2ecf20Sopenharmony_ci{"divdo.", XO(31,489,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}}, 62528c2ecf20Sopenharmony_ci 62538c2ecf20Sopenharmony_ci{"divwo", XO(31,491,1,0), XO_MASK, PPC, 0, {RT, RA, RB}}, 62548c2ecf20Sopenharmony_ci{"divwo.", XO(31,491,1,1), XO_MASK, PPC, 0, {RT, RA, RB}}, 62558c2ecf20Sopenharmony_ci 62568c2ecf20Sopenharmony_ci{"stxvb16x", X(31,1004), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}}, 62578c2ecf20Sopenharmony_ci 62588c2ecf20Sopenharmony_ci{"trechkpt.", XRC(31,1006,1), XRTRARB_MASK,PPCHTM, 0, {0}}, 62598c2ecf20Sopenharmony_ci 62608c2ecf20Sopenharmony_ci{"tlbli", X(31,1010), XRTRA_MASK, PPC, TITAN, {RB}}, 62618c2ecf20Sopenharmony_ci 62628c2ecf20Sopenharmony_ci{"stdcix", X(31,1013), X_MASK, POWER6, 0, {RS, RA0, RB}}, 62638c2ecf20Sopenharmony_ci 62648c2ecf20Sopenharmony_ci{"dcbz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}}, 62658c2ecf20Sopenharmony_ci{"dclz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}}, 62668c2ecf20Sopenharmony_ci 62678c2ecf20Sopenharmony_ci{"dcbzep", XRT(31,1023,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}}, 62688c2ecf20Sopenharmony_ci 62698c2ecf20Sopenharmony_ci{"dcbzl", XOPL(31,1014,1), XRT_MASK, POWER4|E500MC, PPC476, {RA0, RB}}, 62708c2ecf20Sopenharmony_ci 62718c2ecf20Sopenharmony_ci{"cctpl", 0x7c210b78, 0xffffffff, CELL, 0, {0}}, 62728c2ecf20Sopenharmony_ci{"cctpm", 0x7c421378, 0xffffffff, CELL, 0, {0}}, 62738c2ecf20Sopenharmony_ci{"cctph", 0x7c631b78, 0xffffffff, CELL, 0, {0}}, 62748c2ecf20Sopenharmony_ci 62758c2ecf20Sopenharmony_ci{"dstt", XDSS(31,342,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}}, 62768c2ecf20Sopenharmony_ci{"dststt", XDSS(31,374,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}}, 62778c2ecf20Sopenharmony_ci{"dssall", XDSS(31,822,1), XDSS_MASK, PPCVEC, 0, {0}}, 62788c2ecf20Sopenharmony_ci 62798c2ecf20Sopenharmony_ci{"db8cyc", 0x7f9ce378, 0xffffffff, CELL, 0, {0}}, 62808c2ecf20Sopenharmony_ci{"db10cyc", 0x7fbdeb78, 0xffffffff, CELL, 0, {0}}, 62818c2ecf20Sopenharmony_ci{"db12cyc", 0x7fdef378, 0xffffffff, CELL, 0, {0}}, 62828c2ecf20Sopenharmony_ci{"db16cyc", 0x7ffffb78, 0xffffffff, CELL, 0, {0}}, 62838c2ecf20Sopenharmony_ci 62848c2ecf20Sopenharmony_ci{"lwz", OP(32), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}}, 62858c2ecf20Sopenharmony_ci{"l", OP(32), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}}, 62868c2ecf20Sopenharmony_ci 62878c2ecf20Sopenharmony_ci{"lwzu", OP(33), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAL}}, 62888c2ecf20Sopenharmony_ci{"lu", OP(33), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}}, 62898c2ecf20Sopenharmony_ci 62908c2ecf20Sopenharmony_ci{"lbz", OP(34), OP_MASK, COM, PPCVLE, {RT, D, RA0}}, 62918c2ecf20Sopenharmony_ci 62928c2ecf20Sopenharmony_ci{"lbzu", OP(35), OP_MASK, COM, PPCVLE, {RT, D, RAL}}, 62938c2ecf20Sopenharmony_ci 62948c2ecf20Sopenharmony_ci{"stw", OP(36), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}}, 62958c2ecf20Sopenharmony_ci{"st", OP(36), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}}, 62968c2ecf20Sopenharmony_ci 62978c2ecf20Sopenharmony_ci{"stwu", OP(37), OP_MASK, PPCCOM, PPCVLE, {RS, D, RAS}}, 62988c2ecf20Sopenharmony_ci{"stu", OP(37), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}}, 62998c2ecf20Sopenharmony_ci 63008c2ecf20Sopenharmony_ci{"stb", OP(38), OP_MASK, COM, PPCVLE, {RS, D, RA0}}, 63018c2ecf20Sopenharmony_ci 63028c2ecf20Sopenharmony_ci{"stbu", OP(39), OP_MASK, COM, PPCVLE, {RS, D, RAS}}, 63038c2ecf20Sopenharmony_ci 63048c2ecf20Sopenharmony_ci{"lhz", OP(40), OP_MASK, COM, PPCVLE, {RT, D, RA0}}, 63058c2ecf20Sopenharmony_ci 63068c2ecf20Sopenharmony_ci{"lhzu", OP(41), OP_MASK, COM, PPCVLE, {RT, D, RAL}}, 63078c2ecf20Sopenharmony_ci 63088c2ecf20Sopenharmony_ci{"lha", OP(42), OP_MASK, COM, PPCVLE, {RT, D, RA0}}, 63098c2ecf20Sopenharmony_ci 63108c2ecf20Sopenharmony_ci{"lhau", OP(43), OP_MASK, COM, PPCVLE, {RT, D, RAL}}, 63118c2ecf20Sopenharmony_ci 63128c2ecf20Sopenharmony_ci{"sth", OP(44), OP_MASK, COM, PPCVLE, {RS, D, RA0}}, 63138c2ecf20Sopenharmony_ci 63148c2ecf20Sopenharmony_ci{"sthu", OP(45), OP_MASK, COM, PPCVLE, {RS, D, RAS}}, 63158c2ecf20Sopenharmony_ci 63168c2ecf20Sopenharmony_ci{"lmw", OP(46), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAM}}, 63178c2ecf20Sopenharmony_ci{"lm", OP(46), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}}, 63188c2ecf20Sopenharmony_ci 63198c2ecf20Sopenharmony_ci{"stmw", OP(47), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}}, 63208c2ecf20Sopenharmony_ci{"stm", OP(47), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}}, 63218c2ecf20Sopenharmony_ci 63228c2ecf20Sopenharmony_ci{"lfs", OP(48), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}}, 63238c2ecf20Sopenharmony_ci 63248c2ecf20Sopenharmony_ci{"lfsu", OP(49), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}}, 63258c2ecf20Sopenharmony_ci 63268c2ecf20Sopenharmony_ci{"lfd", OP(50), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}}, 63278c2ecf20Sopenharmony_ci 63288c2ecf20Sopenharmony_ci{"lfdu", OP(51), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}}, 63298c2ecf20Sopenharmony_ci 63308c2ecf20Sopenharmony_ci{"stfs", OP(52), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}}, 63318c2ecf20Sopenharmony_ci 63328c2ecf20Sopenharmony_ci{"stfsu", OP(53), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}}, 63338c2ecf20Sopenharmony_ci 63348c2ecf20Sopenharmony_ci{"stfd", OP(54), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}}, 63358c2ecf20Sopenharmony_ci 63368c2ecf20Sopenharmony_ci{"stfdu", OP(55), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}}, 63378c2ecf20Sopenharmony_ci 63388c2ecf20Sopenharmony_ci{"lq", OP(56), OP_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}}, 63398c2ecf20Sopenharmony_ci{"psq_l", OP(56), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}}, 63408c2ecf20Sopenharmony_ci{"lfq", OP(56), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}}, 63418c2ecf20Sopenharmony_ci 63428c2ecf20Sopenharmony_ci{"lxsd", DSO(57,2), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}}, 63438c2ecf20Sopenharmony_ci{"lxssp", DSO(57,3), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}}, 63448c2ecf20Sopenharmony_ci{"lfdp", OP(57), OP_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}}, 63458c2ecf20Sopenharmony_ci{"psq_lu", OP(57), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}}, 63468c2ecf20Sopenharmony_ci{"lfqu", OP(57), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}}, 63478c2ecf20Sopenharmony_ci 63488c2ecf20Sopenharmony_ci{"ld", DSO(58,0), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}}, 63498c2ecf20Sopenharmony_ci{"ldu", DSO(58,1), DS_MASK, PPC64, PPCVLE, {RT, DS, RAL}}, 63508c2ecf20Sopenharmony_ci{"lwa", DSO(58,2), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}}, 63518c2ecf20Sopenharmony_ci 63528c2ecf20Sopenharmony_ci{"dadd", XRC(59,2,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 63538c2ecf20Sopenharmony_ci{"dadd.", XRC(59,2,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 63548c2ecf20Sopenharmony_ci 63558c2ecf20Sopenharmony_ci{"dqua", ZRC(59,3,0), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}}, 63568c2ecf20Sopenharmony_ci{"dqua.", ZRC(59,3,1), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}}, 63578c2ecf20Sopenharmony_ci 63588c2ecf20Sopenharmony_ci{"fdivs", A(59,18,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 63598c2ecf20Sopenharmony_ci{"fdivs.", A(59,18,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 63608c2ecf20Sopenharmony_ci 63618c2ecf20Sopenharmony_ci{"fsubs", A(59,20,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 63628c2ecf20Sopenharmony_ci{"fsubs.", A(59,20,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 63638c2ecf20Sopenharmony_ci 63648c2ecf20Sopenharmony_ci{"fadds", A(59,21,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 63658c2ecf20Sopenharmony_ci{"fadds.", A(59,21,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 63668c2ecf20Sopenharmony_ci 63678c2ecf20Sopenharmony_ci{"fsqrts", A(59,22,0), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}}, 63688c2ecf20Sopenharmony_ci{"fsqrts.", A(59,22,1), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}}, 63698c2ecf20Sopenharmony_ci 63708c2ecf20Sopenharmony_ci{"fres", A(59,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 63718c2ecf20Sopenharmony_ci{"fres", A(59,24,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}}, 63728c2ecf20Sopenharmony_ci{"fres.", A(59,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 63738c2ecf20Sopenharmony_ci{"fres.", A(59,24,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}}, 63748c2ecf20Sopenharmony_ci 63758c2ecf20Sopenharmony_ci{"fmuls", A(59,25,0), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}}, 63768c2ecf20Sopenharmony_ci{"fmuls.", A(59,25,1), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}}, 63778c2ecf20Sopenharmony_ci 63788c2ecf20Sopenharmony_ci{"frsqrtes", A(59,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 63798c2ecf20Sopenharmony_ci{"frsqrtes", A(59,26,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}}, 63808c2ecf20Sopenharmony_ci{"frsqrtes.", A(59,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 63818c2ecf20Sopenharmony_ci{"frsqrtes.", A(59,26,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}}, 63828c2ecf20Sopenharmony_ci 63838c2ecf20Sopenharmony_ci{"fmsubs", A(59,28,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 63848c2ecf20Sopenharmony_ci{"fmsubs.", A(59,28,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 63858c2ecf20Sopenharmony_ci 63868c2ecf20Sopenharmony_ci{"fmadds", A(59,29,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 63878c2ecf20Sopenharmony_ci{"fmadds.", A(59,29,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 63888c2ecf20Sopenharmony_ci 63898c2ecf20Sopenharmony_ci{"fnmsubs", A(59,30,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 63908c2ecf20Sopenharmony_ci{"fnmsubs.", A(59,30,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 63918c2ecf20Sopenharmony_ci 63928c2ecf20Sopenharmony_ci{"fnmadds", A(59,31,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 63938c2ecf20Sopenharmony_ci{"fnmadds.", A(59,31,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 63948c2ecf20Sopenharmony_ci 63958c2ecf20Sopenharmony_ci{"dmul", XRC(59,34,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 63968c2ecf20Sopenharmony_ci{"dmul.", XRC(59,34,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 63978c2ecf20Sopenharmony_ci 63988c2ecf20Sopenharmony_ci{"drrnd", ZRC(59,35,0), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}}, 63998c2ecf20Sopenharmony_ci{"drrnd.", ZRC(59,35,1), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}}, 64008c2ecf20Sopenharmony_ci 64018c2ecf20Sopenharmony_ci{"dscli", ZRC(59,66,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}}, 64028c2ecf20Sopenharmony_ci{"dscli.", ZRC(59,66,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}}, 64038c2ecf20Sopenharmony_ci 64048c2ecf20Sopenharmony_ci{"dquai", ZRC(59,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}}, 64058c2ecf20Sopenharmony_ci{"dquai.", ZRC(59,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}}, 64068c2ecf20Sopenharmony_ci 64078c2ecf20Sopenharmony_ci{"dscri", ZRC(59,98,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}}, 64088c2ecf20Sopenharmony_ci{"dscri.", ZRC(59,98,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}}, 64098c2ecf20Sopenharmony_ci 64108c2ecf20Sopenharmony_ci{"drintx", ZRC(59,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}}, 64118c2ecf20Sopenharmony_ci{"drintx.", ZRC(59,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}}, 64128c2ecf20Sopenharmony_ci 64138c2ecf20Sopenharmony_ci{"dcmpo", X(59,130), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}}, 64148c2ecf20Sopenharmony_ci 64158c2ecf20Sopenharmony_ci{"dtstex", X(59,162), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}}, 64168c2ecf20Sopenharmony_ci{"dtstdc", Z(59,194), Z_MASK, POWER6, PPCVLE, {BF, FRA, DCM}}, 64178c2ecf20Sopenharmony_ci{"dtstdg", Z(59,226), Z_MASK, POWER6, PPCVLE, {BF, FRA, DGM}}, 64188c2ecf20Sopenharmony_ci 64198c2ecf20Sopenharmony_ci{"drintn", ZRC(59,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}}, 64208c2ecf20Sopenharmony_ci{"drintn.", ZRC(59,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}}, 64218c2ecf20Sopenharmony_ci 64228c2ecf20Sopenharmony_ci{"dctdp", XRC(59,258,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 64238c2ecf20Sopenharmony_ci{"dctdp.", XRC(59,258,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 64248c2ecf20Sopenharmony_ci 64258c2ecf20Sopenharmony_ci{"dctfix", XRC(59,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 64268c2ecf20Sopenharmony_ci{"dctfix.", XRC(59,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 64278c2ecf20Sopenharmony_ci 64288c2ecf20Sopenharmony_ci{"ddedpd", XRC(59,322,0), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}}, 64298c2ecf20Sopenharmony_ci{"ddedpd.", XRC(59,322,1), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}}, 64308c2ecf20Sopenharmony_ci 64318c2ecf20Sopenharmony_ci{"dxex", XRC(59,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 64328c2ecf20Sopenharmony_ci{"dxex.", XRC(59,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 64338c2ecf20Sopenharmony_ci 64348c2ecf20Sopenharmony_ci{"dsub", XRC(59,514,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 64358c2ecf20Sopenharmony_ci{"dsub.", XRC(59,514,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 64368c2ecf20Sopenharmony_ci 64378c2ecf20Sopenharmony_ci{"ddiv", XRC(59,546,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 64388c2ecf20Sopenharmony_ci{"ddiv.", XRC(59,546,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 64398c2ecf20Sopenharmony_ci 64408c2ecf20Sopenharmony_ci{"dcmpu", X(59,642), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}}, 64418c2ecf20Sopenharmony_ci 64428c2ecf20Sopenharmony_ci{"dtstsf", X(59,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}}, 64438c2ecf20Sopenharmony_ci{"dtstsfi", X(59,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRB}}, 64448c2ecf20Sopenharmony_ci 64458c2ecf20Sopenharmony_ci{"drsp", XRC(59,770,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 64468c2ecf20Sopenharmony_ci{"drsp.", XRC(59,770,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}}, 64478c2ecf20Sopenharmony_ci 64488c2ecf20Sopenharmony_ci{"dcffix", XRC(59,802,0), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 64498c2ecf20Sopenharmony_ci{"dcffix.", XRC(59,802,1), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 64508c2ecf20Sopenharmony_ci 64518c2ecf20Sopenharmony_ci{"denbcd", XRC(59,834,0), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}}, 64528c2ecf20Sopenharmony_ci{"denbcd.", XRC(59,834,1), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}}, 64538c2ecf20Sopenharmony_ci 64548c2ecf20Sopenharmony_ci{"fcfids", XRC(59,846,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 64558c2ecf20Sopenharmony_ci{"fcfids.", XRC(59,846,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 64568c2ecf20Sopenharmony_ci 64578c2ecf20Sopenharmony_ci{"diex", XRC(59,866,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 64588c2ecf20Sopenharmony_ci{"diex.", XRC(59,866,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}}, 64598c2ecf20Sopenharmony_ci 64608c2ecf20Sopenharmony_ci{"fcfidus", XRC(59,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 64618c2ecf20Sopenharmony_ci{"fcfidus.", XRC(59,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 64628c2ecf20Sopenharmony_ci 64638c2ecf20Sopenharmony_ci{"xsaddsp", XX3(60,0), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 64648c2ecf20Sopenharmony_ci{"xsmaddasp", XX3(60,1), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 64658c2ecf20Sopenharmony_ci{"xxsldwi", XX3(60,2), XX3SHW_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, SHW}}, 64668c2ecf20Sopenharmony_ci{"xscmpeqdp", XX3(60,3), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 64678c2ecf20Sopenharmony_ci{"xsrsqrtesp", XX2(60,10), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 64688c2ecf20Sopenharmony_ci{"xssqrtsp", XX2(60,11), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 64698c2ecf20Sopenharmony_ci{"xxsel", XX4(60,3), XX4_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, XC6}}, 64708c2ecf20Sopenharmony_ci{"xssubsp", XX3(60,8), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 64718c2ecf20Sopenharmony_ci{"xsmaddmsp", XX3(60,9), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 64728c2ecf20Sopenharmony_ci{"xxspltd", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6S, DMEX}}, 64738c2ecf20Sopenharmony_ci{"xxmrghd", XX3(60,10), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 64748c2ecf20Sopenharmony_ci{"xxswapd", XX3(60,10)|(2<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6S}}, 64758c2ecf20Sopenharmony_ci{"xxmrgld", XX3(60,10)|(3<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 64768c2ecf20Sopenharmony_ci{"xxpermdi", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, DM}}, 64778c2ecf20Sopenharmony_ci{"xscmpgtdp", XX3(60,11), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 64788c2ecf20Sopenharmony_ci{"xsresp", XX2(60,26), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 64798c2ecf20Sopenharmony_ci{"xsmulsp", XX3(60,16), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 64808c2ecf20Sopenharmony_ci{"xsmsubasp", XX3(60,17), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 64818c2ecf20Sopenharmony_ci{"xxmrghw", XX3(60,18), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 64828c2ecf20Sopenharmony_ci{"xscmpgedp", XX3(60,19), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 64838c2ecf20Sopenharmony_ci{"xsdivsp", XX3(60,24), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 64848c2ecf20Sopenharmony_ci{"xsmsubmsp", XX3(60,25), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 64858c2ecf20Sopenharmony_ci{"xxperm", XX3(60,26), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 64868c2ecf20Sopenharmony_ci{"xsadddp", XX3(60,32), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 64878c2ecf20Sopenharmony_ci{"xsmaddadp", XX3(60,33), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 64888c2ecf20Sopenharmony_ci{"xscmpudp", XX3(60,35), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}}, 64898c2ecf20Sopenharmony_ci{"xscvdpuxws", XX2(60,72), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 64908c2ecf20Sopenharmony_ci{"xsrdpi", XX2(60,73), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 64918c2ecf20Sopenharmony_ci{"xsrsqrtedp", XX2(60,74), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 64928c2ecf20Sopenharmony_ci{"xssqrtdp", XX2(60,75), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 64938c2ecf20Sopenharmony_ci{"xssubdp", XX3(60,40), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 64948c2ecf20Sopenharmony_ci{"xsmaddmdp", XX3(60,41), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 64958c2ecf20Sopenharmony_ci{"xscmpodp", XX3(60,43), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}}, 64968c2ecf20Sopenharmony_ci{"xscvdpsxws", XX2(60,88), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 64978c2ecf20Sopenharmony_ci{"xsrdpiz", XX2(60,89), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 64988c2ecf20Sopenharmony_ci{"xsredp", XX2(60,90), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 64998c2ecf20Sopenharmony_ci{"xsmuldp", XX3(60,48), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65008c2ecf20Sopenharmony_ci{"xsmsubadp", XX3(60,49), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65018c2ecf20Sopenharmony_ci{"xxmrglw", XX3(60,50), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65028c2ecf20Sopenharmony_ci{"xsrdpip", XX2(60,105), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65038c2ecf20Sopenharmony_ci{"xstsqrtdp", XX2(60,106), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}}, 65048c2ecf20Sopenharmony_ci{"xsrdpic", XX2(60,107), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65058c2ecf20Sopenharmony_ci{"xsdivdp", XX3(60,56), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65068c2ecf20Sopenharmony_ci{"xsmsubmdp", XX3(60,57), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65078c2ecf20Sopenharmony_ci{"xxpermr", XX3(60,58), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 65088c2ecf20Sopenharmony_ci{"xscmpexpdp", XX3(60,59), XX3BF_MASK, PPCVSX3, PPCVLE, {BF, XA6, XB6}}, 65098c2ecf20Sopenharmony_ci{"xsrdpim", XX2(60,121), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65108c2ecf20Sopenharmony_ci{"xstdivdp", XX3(60,61), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}}, 65118c2ecf20Sopenharmony_ci{"xvaddsp", XX3(60,64), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65128c2ecf20Sopenharmony_ci{"xvmaddasp", XX3(60,65), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65138c2ecf20Sopenharmony_ci{"xvcmpeqsp", XX3RC(60,67,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65148c2ecf20Sopenharmony_ci{"xvcmpeqsp.", XX3RC(60,67,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65158c2ecf20Sopenharmony_ci{"xvcvspuxws", XX2(60,136), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65168c2ecf20Sopenharmony_ci{"xvrspi", XX2(60,137), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65178c2ecf20Sopenharmony_ci{"xvrsqrtesp", XX2(60,138), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65188c2ecf20Sopenharmony_ci{"xvsqrtsp", XX2(60,139), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65198c2ecf20Sopenharmony_ci{"xvsubsp", XX3(60,72), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65208c2ecf20Sopenharmony_ci{"xvmaddmsp", XX3(60,73), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65218c2ecf20Sopenharmony_ci{"xvcmpgtsp", XX3RC(60,75,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65228c2ecf20Sopenharmony_ci{"xvcmpgtsp.", XX3RC(60,75,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65238c2ecf20Sopenharmony_ci{"xvcvspsxws", XX2(60,152), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65248c2ecf20Sopenharmony_ci{"xvrspiz", XX2(60,153), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65258c2ecf20Sopenharmony_ci{"xvresp", XX2(60,154), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65268c2ecf20Sopenharmony_ci{"xvmulsp", XX3(60,80), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65278c2ecf20Sopenharmony_ci{"xvmsubasp", XX3(60,81), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65288c2ecf20Sopenharmony_ci{"xxspltw", XX2(60,164), XX2UIM_MASK, PPCVSX, PPCVLE, {XT6, XB6, UIM}}, 65298c2ecf20Sopenharmony_ci{"xxextractuw", XX2(60,165), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}}, 65308c2ecf20Sopenharmony_ci{"xvcmpgesp", XX3RC(60,83,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65318c2ecf20Sopenharmony_ci{"xvcmpgesp.", XX3RC(60,83,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65328c2ecf20Sopenharmony_ci{"xvcvuxwsp", XX2(60,168), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65338c2ecf20Sopenharmony_ci{"xvrspip", XX2(60,169), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65348c2ecf20Sopenharmony_ci{"xvtsqrtsp", XX2(60,170), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}}, 65358c2ecf20Sopenharmony_ci{"xvrspic", XX2(60,171), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65368c2ecf20Sopenharmony_ci{"xvdivsp", XX3(60,88), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65378c2ecf20Sopenharmony_ci{"xvmsubmsp", XX3(60,89), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65388c2ecf20Sopenharmony_ci{"xxspltib", X(60,360), XX1_MASK|3<<19, PPCVSX3, PPCVLE, {XT6, IMM8}}, 65398c2ecf20Sopenharmony_ci{"xxinsertw", XX2(60,181), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}}, 65408c2ecf20Sopenharmony_ci{"xvcvsxwsp", XX2(60,184), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65418c2ecf20Sopenharmony_ci{"xvrspim", XX2(60,185), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65428c2ecf20Sopenharmony_ci{"xvtdivsp", XX3(60,93), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}}, 65438c2ecf20Sopenharmony_ci{"xvadddp", XX3(60,96), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65448c2ecf20Sopenharmony_ci{"xvmaddadp", XX3(60,97), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65458c2ecf20Sopenharmony_ci{"xvcmpeqdp", XX3RC(60,99,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65468c2ecf20Sopenharmony_ci{"xvcmpeqdp.", XX3RC(60,99,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65478c2ecf20Sopenharmony_ci{"xvcvdpuxws", XX2(60,200), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65488c2ecf20Sopenharmony_ci{"xvrdpi", XX2(60,201), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65498c2ecf20Sopenharmony_ci{"xvrsqrtedp", XX2(60,202), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65508c2ecf20Sopenharmony_ci{"xvsqrtdp", XX2(60,203), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65518c2ecf20Sopenharmony_ci{"xvsubdp", XX3(60,104), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65528c2ecf20Sopenharmony_ci{"xvmaddmdp", XX3(60,105), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65538c2ecf20Sopenharmony_ci{"xvcmpgtdp", XX3RC(60,107,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65548c2ecf20Sopenharmony_ci{"xvcmpgtdp.", XX3RC(60,107,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65558c2ecf20Sopenharmony_ci{"xvcvdpsxws", XX2(60,216), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65568c2ecf20Sopenharmony_ci{"xvrdpiz", XX2(60,217), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65578c2ecf20Sopenharmony_ci{"xvredp", XX2(60,218), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65588c2ecf20Sopenharmony_ci{"xvmuldp", XX3(60,112), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65598c2ecf20Sopenharmony_ci{"xvmsubadp", XX3(60,113), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65608c2ecf20Sopenharmony_ci{"xvcmpgedp", XX3RC(60,115,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65618c2ecf20Sopenharmony_ci{"xvcmpgedp.", XX3RC(60,115,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65628c2ecf20Sopenharmony_ci{"xvcvuxwdp", XX2(60,232), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65638c2ecf20Sopenharmony_ci{"xvrdpip", XX2(60,233), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65648c2ecf20Sopenharmony_ci{"xvtsqrtdp", XX2(60,234), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}}, 65658c2ecf20Sopenharmony_ci{"xvrdpic", XX2(60,235), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65668c2ecf20Sopenharmony_ci{"xvdivdp", XX3(60,120), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65678c2ecf20Sopenharmony_ci{"xvmsubmdp", XX3(60,121), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65688c2ecf20Sopenharmony_ci{"xvcvsxwdp", XX2(60,248), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65698c2ecf20Sopenharmony_ci{"xvrdpim", XX2(60,249), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65708c2ecf20Sopenharmony_ci{"xvtdivdp", XX3(60,125), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}}, 65718c2ecf20Sopenharmony_ci{"xsmaxcdp", XX3(60,128), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 65728c2ecf20Sopenharmony_ci{"xsnmaddasp", XX3(60,129), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 65738c2ecf20Sopenharmony_ci{"xxland", XX3(60,130), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65748c2ecf20Sopenharmony_ci{"xscvdpsp", XX2(60,265), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65758c2ecf20Sopenharmony_ci{"xscvdpspn", XX2(60,267), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 65768c2ecf20Sopenharmony_ci{"xsmincdp", XX3(60,136), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 65778c2ecf20Sopenharmony_ci{"xsnmaddmsp", XX3(60,137), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 65788c2ecf20Sopenharmony_ci{"xxlandc", XX3(60,138), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65798c2ecf20Sopenharmony_ci{"xsrsp", XX2(60,281), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 65808c2ecf20Sopenharmony_ci{"xsmaxjdp", XX3(60,144), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 65818c2ecf20Sopenharmony_ci{"xsnmsubasp", XX3(60,145), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 65828c2ecf20Sopenharmony_ci{"xxlor", XX3(60,146), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65838c2ecf20Sopenharmony_ci{"xscvuxdsp", XX2(60,296), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 65848c2ecf20Sopenharmony_ci{"xststdcsp", XX2(60,298), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}}, 65858c2ecf20Sopenharmony_ci{"xsminjdp", XX3(60,152), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 65868c2ecf20Sopenharmony_ci{"xsnmsubmsp", XX3(60,153), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 65878c2ecf20Sopenharmony_ci{"xxlxor", XX3(60,154), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65888c2ecf20Sopenharmony_ci{"xscvsxdsp", XX2(60,312), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 65898c2ecf20Sopenharmony_ci{"xsmaxdp", XX3(60,160), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65908c2ecf20Sopenharmony_ci{"xsnmaddadp", XX3(60,161), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65918c2ecf20Sopenharmony_ci{"xxlnor", XX3(60,162), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65928c2ecf20Sopenharmony_ci{"xscvdpuxds", XX2(60,328), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65938c2ecf20Sopenharmony_ci{"xscvspdp", XX2(60,329), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65948c2ecf20Sopenharmony_ci{"xscvspdpn", XX2(60,331), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}}, 65958c2ecf20Sopenharmony_ci{"xsmindp", XX3(60,168), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65968c2ecf20Sopenharmony_ci{"xsnmaddmdp", XX3(60,169), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 65978c2ecf20Sopenharmony_ci{"xxlorc", XX3(60,170), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 65988c2ecf20Sopenharmony_ci{"xscvdpsxds", XX2(60,344), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 65998c2ecf20Sopenharmony_ci{"xsabsdp", XX2(60,345), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66008c2ecf20Sopenharmony_ci{"xsxexpdp", XX2VA(60,347,0),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}}, 66018c2ecf20Sopenharmony_ci{"xsxsigdp", XX2VA(60,347,1),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}}, 66028c2ecf20Sopenharmony_ci{"xscvhpdp", XX2VA(60,347,16),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66038c2ecf20Sopenharmony_ci{"xscvdphp", XX2VA(60,347,17),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66048c2ecf20Sopenharmony_ci{"xscpsgndp", XX3(60,176), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66058c2ecf20Sopenharmony_ci{"xsnmsubadp", XX3(60,177), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66068c2ecf20Sopenharmony_ci{"xxlnand", XX3(60,178), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 66078c2ecf20Sopenharmony_ci{"xscvuxddp", XX2(60,360), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66088c2ecf20Sopenharmony_ci{"xsnabsdp", XX2(60,361), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66098c2ecf20Sopenharmony_ci{"xststdcdp", XX2(60,362), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}}, 66108c2ecf20Sopenharmony_ci{"xsnmsubmdp", XX3(60,185), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66118c2ecf20Sopenharmony_ci{"xxleqv", XX3(60,186), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}}, 66128c2ecf20Sopenharmony_ci{"xscvsxddp", XX2(60,376), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66138c2ecf20Sopenharmony_ci{"xsnegdp", XX2(60,377), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66148c2ecf20Sopenharmony_ci{"xvmaxsp", XX3(60,192), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66158c2ecf20Sopenharmony_ci{"xvnmaddasp", XX3(60,193), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66168c2ecf20Sopenharmony_ci{"xvcvspuxds", XX2(60,392), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66178c2ecf20Sopenharmony_ci{"xvcvdpsp", XX2(60,393), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66188c2ecf20Sopenharmony_ci{"xvminsp", XX3(60,200), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66198c2ecf20Sopenharmony_ci{"xvnmaddmsp", XX3(60,201), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66208c2ecf20Sopenharmony_ci{"xvcvspsxds", XX2(60,408), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66218c2ecf20Sopenharmony_ci{"xvabssp", XX2(60,409), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66228c2ecf20Sopenharmony_ci{"xvmovsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6S}}, 66238c2ecf20Sopenharmony_ci{"xvcpsgnsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66248c2ecf20Sopenharmony_ci{"xvnmsubasp", XX3(60,209), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66258c2ecf20Sopenharmony_ci{"xvcvuxdsp", XX2(60,424), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66268c2ecf20Sopenharmony_ci{"xvnabssp", XX2(60,425), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66278c2ecf20Sopenharmony_ci{"xvtstdcsp", XX2(60,426), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}}, 66288c2ecf20Sopenharmony_ci{"xviexpsp", XX3(60,216), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 66298c2ecf20Sopenharmony_ci{"xvnmsubmsp", XX3(60,217), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66308c2ecf20Sopenharmony_ci{"xvcvsxdsp", XX2(60,440), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66318c2ecf20Sopenharmony_ci{"xvnegsp", XX2(60,441), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66328c2ecf20Sopenharmony_ci{"xvmaxdp", XX3(60,224), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66338c2ecf20Sopenharmony_ci{"xvnmaddadp", XX3(60,225), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66348c2ecf20Sopenharmony_ci{"xvcvdpuxds", XX2(60,456), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66358c2ecf20Sopenharmony_ci{"xvcvspdp", XX2(60,457), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66368c2ecf20Sopenharmony_ci{"xsiexpdp", X(60,918), XX1_MASK, PPCVSX3, PPCVLE, {XT6, RA, RB}}, 66378c2ecf20Sopenharmony_ci{"xvmindp", XX3(60,232), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66388c2ecf20Sopenharmony_ci{"xvnmaddmdp", XX3(60,233), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66398c2ecf20Sopenharmony_ci{"xvcvdpsxds", XX2(60,472), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66408c2ecf20Sopenharmony_ci{"xvabsdp", XX2(60,473), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66418c2ecf20Sopenharmony_ci{"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66428c2ecf20Sopenharmony_ci{"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66438c2ecf20Sopenharmony_ci{"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66448c2ecf20Sopenharmony_ci{"xvxexpsp", XX2VA(60,475,8),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66458c2ecf20Sopenharmony_ci{"xvxsigsp", XX2VA(60,475,9),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66468c2ecf20Sopenharmony_ci{"xxbrw", XX2VA(60,475,15),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66478c2ecf20Sopenharmony_ci{"xxbrd", XX2VA(60,475,23),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66488c2ecf20Sopenharmony_ci{"xvcvhpsp", XX2VA(60,475,24),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66498c2ecf20Sopenharmony_ci{"xvcvsphp", XX2VA(60,475,25),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66508c2ecf20Sopenharmony_ci{"xxbrq", XX2VA(60,475,31),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}}, 66518c2ecf20Sopenharmony_ci{"xvmovdp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6S}}, 66528c2ecf20Sopenharmony_ci{"xvcpsgndp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66538c2ecf20Sopenharmony_ci{"xvnmsubadp", XX3(60,241), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66548c2ecf20Sopenharmony_ci{"xvcvuxddp", XX2(60,488), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66558c2ecf20Sopenharmony_ci{"xvnabsdp", XX2(60,489), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66568c2ecf20Sopenharmony_ci{"xvtstdcdp", XX2(60,490), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}}, 66578c2ecf20Sopenharmony_ci{"xviexpdp", XX3(60,248), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}}, 66588c2ecf20Sopenharmony_ci{"xvnmsubmdp", XX3(60,249), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}}, 66598c2ecf20Sopenharmony_ci{"xvcvsxddp", XX2(60,504), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66608c2ecf20Sopenharmony_ci{"xvnegdp", XX2(60,505), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}}, 66618c2ecf20Sopenharmony_ci 66628c2ecf20Sopenharmony_ci{"psq_st", OP(60), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}}, 66638c2ecf20Sopenharmony_ci{"stfq", OP(60), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}}, 66648c2ecf20Sopenharmony_ci 66658c2ecf20Sopenharmony_ci{"lxv", DQX(61,1), DQX_MASK, PPCVSX3, PPCVLE, {XTQ6, DQ, RA0}}, 66668c2ecf20Sopenharmony_ci{"stxv", DQX(61,5), DQX_MASK, PPCVSX3, PPCVLE, {XSQ6, DQ, RA0}}, 66678c2ecf20Sopenharmony_ci{"stxsd", DSO(61,2), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}}, 66688c2ecf20Sopenharmony_ci{"stxssp", DSO(61,3), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}}, 66698c2ecf20Sopenharmony_ci{"stfdp", OP(61), OP_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}}, 66708c2ecf20Sopenharmony_ci{"psq_stu", OP(61), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}}, 66718c2ecf20Sopenharmony_ci{"stfqu", OP(61), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}}, 66728c2ecf20Sopenharmony_ci 66738c2ecf20Sopenharmony_ci{"std", DSO(62,0), DS_MASK, PPC64, PPCVLE, {RS, DS, RA0}}, 66748c2ecf20Sopenharmony_ci{"stdu", DSO(62,1), DS_MASK, PPC64, PPCVLE, {RS, DS, RAS}}, 66758c2ecf20Sopenharmony_ci{"stq", DSO(62,2), DS_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}}, 66768c2ecf20Sopenharmony_ci 66778c2ecf20Sopenharmony_ci{"fcmpu", X(63,0), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}}, 66788c2ecf20Sopenharmony_ci 66798c2ecf20Sopenharmony_ci{"daddq", XRC(63,2,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 66808c2ecf20Sopenharmony_ci{"daddq.", XRC(63,2,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 66818c2ecf20Sopenharmony_ci 66828c2ecf20Sopenharmony_ci{"dquaq", ZRC(63,3,0), Z2_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}}, 66838c2ecf20Sopenharmony_ci{"dquaq.", ZRC(63,3,1), Z2_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}}, 66848c2ecf20Sopenharmony_ci 66858c2ecf20Sopenharmony_ci{"xsaddqp", XRC(63,4,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 66868c2ecf20Sopenharmony_ci{"xsaddqpo", XRC(63,4,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 66878c2ecf20Sopenharmony_ci 66888c2ecf20Sopenharmony_ci{"xsrqpi", ZRC(63,5,0), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}}, 66898c2ecf20Sopenharmony_ci{"xsrqpix", ZRC(63,5,1), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}}, 66908c2ecf20Sopenharmony_ci 66918c2ecf20Sopenharmony_ci{"fcpsgn", XRC(63,8,0), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}}, 66928c2ecf20Sopenharmony_ci{"fcpsgn.", XRC(63,8,1), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}}, 66938c2ecf20Sopenharmony_ci 66948c2ecf20Sopenharmony_ci{"frsp", XRC(63,12,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 66958c2ecf20Sopenharmony_ci{"frsp.", XRC(63,12,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 66968c2ecf20Sopenharmony_ci 66978c2ecf20Sopenharmony_ci{"fctiw", XRC(63,14,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}}, 66988c2ecf20Sopenharmony_ci{"fcir", XRC(63,14,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}}, 66998c2ecf20Sopenharmony_ci{"fctiw.", XRC(63,14,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}}, 67008c2ecf20Sopenharmony_ci{"fcir.", XRC(63,14,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}}, 67018c2ecf20Sopenharmony_ci 67028c2ecf20Sopenharmony_ci{"fctiwz", XRC(63,15,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}}, 67038c2ecf20Sopenharmony_ci{"fcirz", XRC(63,15,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}}, 67048c2ecf20Sopenharmony_ci{"fctiwz.", XRC(63,15,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}}, 67058c2ecf20Sopenharmony_ci{"fcirz.", XRC(63,15,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}}, 67068c2ecf20Sopenharmony_ci 67078c2ecf20Sopenharmony_ci{"fdiv", A(63,18,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 67088c2ecf20Sopenharmony_ci{"fd", A(63,18,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 67098c2ecf20Sopenharmony_ci{"fdiv.", A(63,18,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 67108c2ecf20Sopenharmony_ci{"fd.", A(63,18,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 67118c2ecf20Sopenharmony_ci 67128c2ecf20Sopenharmony_ci{"fsub", A(63,20,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 67138c2ecf20Sopenharmony_ci{"fs", A(63,20,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 67148c2ecf20Sopenharmony_ci{"fsub.", A(63,20,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 67158c2ecf20Sopenharmony_ci{"fs.", A(63,20,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 67168c2ecf20Sopenharmony_ci 67178c2ecf20Sopenharmony_ci{"fadd", A(63,21,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 67188c2ecf20Sopenharmony_ci{"fa", A(63,21,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 67198c2ecf20Sopenharmony_ci{"fadd.", A(63,21,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}}, 67208c2ecf20Sopenharmony_ci{"fa.", A(63,21,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}}, 67218c2ecf20Sopenharmony_ci 67228c2ecf20Sopenharmony_ci{"fsqrt", A(63,22,0), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}}, 67238c2ecf20Sopenharmony_ci{"fsqrt.", A(63,22,1), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}}, 67248c2ecf20Sopenharmony_ci 67258c2ecf20Sopenharmony_ci{"fsel", A(63,23,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 67268c2ecf20Sopenharmony_ci{"fsel.", A(63,23,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 67278c2ecf20Sopenharmony_ci 67288c2ecf20Sopenharmony_ci{"fre", A(63,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 67298c2ecf20Sopenharmony_ci{"fre", A(63,24,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}}, 67308c2ecf20Sopenharmony_ci{"fre.", A(63,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 67318c2ecf20Sopenharmony_ci{"fre.", A(63,24,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}}, 67328c2ecf20Sopenharmony_ci 67338c2ecf20Sopenharmony_ci{"fmul", A(63,25,0), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}}, 67348c2ecf20Sopenharmony_ci{"fm", A(63,25,0), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}}, 67358c2ecf20Sopenharmony_ci{"fmul.", A(63,25,1), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}}, 67368c2ecf20Sopenharmony_ci{"fm.", A(63,25,1), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}}, 67378c2ecf20Sopenharmony_ci 67388c2ecf20Sopenharmony_ci{"frsqrte", A(63,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 67398c2ecf20Sopenharmony_ci{"frsqrte", A(63,26,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}}, 67408c2ecf20Sopenharmony_ci{"frsqrte.", A(63,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}}, 67418c2ecf20Sopenharmony_ci{"frsqrte.", A(63,26,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}}, 67428c2ecf20Sopenharmony_ci 67438c2ecf20Sopenharmony_ci{"fmsub", A(63,28,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 67448c2ecf20Sopenharmony_ci{"fms", A(63,28,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 67458c2ecf20Sopenharmony_ci{"fmsub.", A(63,28,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 67468c2ecf20Sopenharmony_ci{"fms.", A(63,28,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 67478c2ecf20Sopenharmony_ci 67488c2ecf20Sopenharmony_ci{"fmadd", A(63,29,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 67498c2ecf20Sopenharmony_ci{"fma", A(63,29,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 67508c2ecf20Sopenharmony_ci{"fmadd.", A(63,29,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 67518c2ecf20Sopenharmony_ci{"fma.", A(63,29,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 67528c2ecf20Sopenharmony_ci 67538c2ecf20Sopenharmony_ci{"fnmsub", A(63,30,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 67548c2ecf20Sopenharmony_ci{"fnms", A(63,30,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 67558c2ecf20Sopenharmony_ci{"fnmsub.", A(63,30,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 67568c2ecf20Sopenharmony_ci{"fnms.", A(63,30,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 67578c2ecf20Sopenharmony_ci 67588c2ecf20Sopenharmony_ci{"fnmadd", A(63,31,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 67598c2ecf20Sopenharmony_ci{"fnma", A(63,31,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 67608c2ecf20Sopenharmony_ci{"fnmadd.", A(63,31,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}}, 67618c2ecf20Sopenharmony_ci{"fnma.", A(63,31,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}}, 67628c2ecf20Sopenharmony_ci 67638c2ecf20Sopenharmony_ci{"fcmpo", X(63,32), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}}, 67648c2ecf20Sopenharmony_ci 67658c2ecf20Sopenharmony_ci{"dmulq", XRC(63,34,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 67668c2ecf20Sopenharmony_ci{"dmulq.", XRC(63,34,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 67678c2ecf20Sopenharmony_ci 67688c2ecf20Sopenharmony_ci{"drrndq", ZRC(63,35,0), Z2_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}}, 67698c2ecf20Sopenharmony_ci{"drrndq.", ZRC(63,35,1), Z2_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}}, 67708c2ecf20Sopenharmony_ci 67718c2ecf20Sopenharmony_ci{"xsmulqp", XRC(63,36,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 67728c2ecf20Sopenharmony_ci{"xsmulqpo", XRC(63,36,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 67738c2ecf20Sopenharmony_ci 67748c2ecf20Sopenharmony_ci{"xsrqpxp", Z(63,37), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}}, 67758c2ecf20Sopenharmony_ci 67768c2ecf20Sopenharmony_ci{"mtfsb1", XRC(63,38,0), XRARB_MASK, COM, PPCVLE, {BT}}, 67778c2ecf20Sopenharmony_ci{"mtfsb1.", XRC(63,38,1), XRARB_MASK, COM, PPCVLE, {BT}}, 67788c2ecf20Sopenharmony_ci 67798c2ecf20Sopenharmony_ci{"fneg", XRC(63,40,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 67808c2ecf20Sopenharmony_ci{"fneg.", XRC(63,40,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 67818c2ecf20Sopenharmony_ci 67828c2ecf20Sopenharmony_ci{"mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}}, 67838c2ecf20Sopenharmony_ci 67848c2ecf20Sopenharmony_ci{"dscliq", ZRC(63,66,0), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}}, 67858c2ecf20Sopenharmony_ci{"dscliq.", ZRC(63,66,1), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}}, 67868c2ecf20Sopenharmony_ci 67878c2ecf20Sopenharmony_ci{"dquaiq", ZRC(63,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}}, 67888c2ecf20Sopenharmony_ci{"dquaiq.", ZRC(63,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}}, 67898c2ecf20Sopenharmony_ci 67908c2ecf20Sopenharmony_ci{"mtfsb0", XRC(63,70,0), XRARB_MASK, COM, PPCVLE, {BT}}, 67918c2ecf20Sopenharmony_ci{"mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, PPCVLE, {BT}}, 67928c2ecf20Sopenharmony_ci 67938c2ecf20Sopenharmony_ci{"fmr", XRC(63,72,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 67948c2ecf20Sopenharmony_ci{"fmr.", XRC(63,72,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 67958c2ecf20Sopenharmony_ci 67968c2ecf20Sopenharmony_ci{"dscriq", ZRC(63,98,0), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}}, 67978c2ecf20Sopenharmony_ci{"dscriq.", ZRC(63,98,1), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}}, 67988c2ecf20Sopenharmony_ci 67998c2ecf20Sopenharmony_ci{"drintxq", ZRC(63,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}}, 68008c2ecf20Sopenharmony_ci{"drintxq.", ZRC(63,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}}, 68018c2ecf20Sopenharmony_ci 68028c2ecf20Sopenharmony_ci{"xscpsgnqp", X(63,100), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68038c2ecf20Sopenharmony_ci 68048c2ecf20Sopenharmony_ci{"ftdiv", X(63,128), XBF_MASK, POWER7, PPCVLE, {BF, FRA, FRB}}, 68058c2ecf20Sopenharmony_ci 68068c2ecf20Sopenharmony_ci{"dcmpoq", X(63,130), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}}, 68078c2ecf20Sopenharmony_ci 68088c2ecf20Sopenharmony_ci{"xscmpoqp", X(63,132), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}}, 68098c2ecf20Sopenharmony_ci 68108c2ecf20Sopenharmony_ci{"mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}}, 68118c2ecf20Sopenharmony_ci{"mtfsfi", XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}}, 68128c2ecf20Sopenharmony_ci{"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}}, 68138c2ecf20Sopenharmony_ci{"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}}, 68148c2ecf20Sopenharmony_ci 68158c2ecf20Sopenharmony_ci{"fnabs", XRC(63,136,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 68168c2ecf20Sopenharmony_ci{"fnabs.", XRC(63,136,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 68178c2ecf20Sopenharmony_ci 68188c2ecf20Sopenharmony_ci{"fctiwu", XRC(63,142,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 68198c2ecf20Sopenharmony_ci{"fctiwu.", XRC(63,142,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 68208c2ecf20Sopenharmony_ci{"fctiwuz", XRC(63,143,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 68218c2ecf20Sopenharmony_ci{"fctiwuz.", XRC(63,143,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}}, 68228c2ecf20Sopenharmony_ci 68238c2ecf20Sopenharmony_ci{"ftsqrt", X(63,160), XBF_MASK|FRA_MASK, POWER7, PPCVLE, {BF, FRB}}, 68248c2ecf20Sopenharmony_ci 68258c2ecf20Sopenharmony_ci{"dtstexq", X(63,162), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}}, 68268c2ecf20Sopenharmony_ci 68278c2ecf20Sopenharmony_ci{"xscmpexpqp", X(63,164), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}}, 68288c2ecf20Sopenharmony_ci 68298c2ecf20Sopenharmony_ci{"dtstdcq", Z(63,194), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DCM}}, 68308c2ecf20Sopenharmony_ci{"dtstdgq", Z(63,226), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DGM}}, 68318c2ecf20Sopenharmony_ci 68328c2ecf20Sopenharmony_ci{"drintnq", ZRC(63,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}}, 68338c2ecf20Sopenharmony_ci{"drintnq.", ZRC(63,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}}, 68348c2ecf20Sopenharmony_ci 68358c2ecf20Sopenharmony_ci{"dctqpq", XRC(63,258,0), X_MASK, POWER6, PPCVLE, {FRTp, FRB}}, 68368c2ecf20Sopenharmony_ci{"dctqpq.", XRC(63,258,1), X_MASK, POWER6, PPCVLE, {FRTp, FRB}}, 68378c2ecf20Sopenharmony_ci 68388c2ecf20Sopenharmony_ci{"fabs", XRC(63,264,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 68398c2ecf20Sopenharmony_ci{"fabs.", XRC(63,264,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}}, 68408c2ecf20Sopenharmony_ci 68418c2ecf20Sopenharmony_ci{"dctfixq", XRC(63,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}}, 68428c2ecf20Sopenharmony_ci{"dctfixq.", XRC(63,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}}, 68438c2ecf20Sopenharmony_ci 68448c2ecf20Sopenharmony_ci{"ddedpdq", XRC(63,322,0), X_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}}, 68458c2ecf20Sopenharmony_ci{"ddedpdq.", XRC(63,322,1), X_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}}, 68468c2ecf20Sopenharmony_ci 68478c2ecf20Sopenharmony_ci{"dxexq", XRC(63,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}}, 68488c2ecf20Sopenharmony_ci{"dxexq.", XRC(63,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}}, 68498c2ecf20Sopenharmony_ci 68508c2ecf20Sopenharmony_ci{"xsmaddqp", XRC(63,388,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68518c2ecf20Sopenharmony_ci{"xsmaddqpo", XRC(63,388,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68528c2ecf20Sopenharmony_ci 68538c2ecf20Sopenharmony_ci{"frin", XRC(63,392,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 68548c2ecf20Sopenharmony_ci{"frin.", XRC(63,392,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 68558c2ecf20Sopenharmony_ci 68568c2ecf20Sopenharmony_ci{"xsmsubqp", XRC(63,420,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68578c2ecf20Sopenharmony_ci{"xsmsubqpo", XRC(63,420,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68588c2ecf20Sopenharmony_ci 68598c2ecf20Sopenharmony_ci{"friz", XRC(63,424,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 68608c2ecf20Sopenharmony_ci{"friz.", XRC(63,424,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 68618c2ecf20Sopenharmony_ci 68628c2ecf20Sopenharmony_ci{"xsnmaddqp", XRC(63,452,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68638c2ecf20Sopenharmony_ci{"xsnmaddqpo", XRC(63,452,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68648c2ecf20Sopenharmony_ci 68658c2ecf20Sopenharmony_ci{"frip", XRC(63,456,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 68668c2ecf20Sopenharmony_ci{"frip.", XRC(63,456,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 68678c2ecf20Sopenharmony_ci 68688c2ecf20Sopenharmony_ci{"xsnmsubqp", XRC(63,484,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68698c2ecf20Sopenharmony_ci{"xsnmsubqpo", XRC(63,484,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68708c2ecf20Sopenharmony_ci 68718c2ecf20Sopenharmony_ci{"frim", XRC(63,488,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 68728c2ecf20Sopenharmony_ci{"frim.", XRC(63,488,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}}, 68738c2ecf20Sopenharmony_ci 68748c2ecf20Sopenharmony_ci{"dsubq", XRC(63,514,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 68758c2ecf20Sopenharmony_ci{"dsubq.", XRC(63,514,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 68768c2ecf20Sopenharmony_ci 68778c2ecf20Sopenharmony_ci{"xssubqp", XRC(63,516,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68788c2ecf20Sopenharmony_ci{"xssubqpo", XRC(63,516,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68798c2ecf20Sopenharmony_ci 68808c2ecf20Sopenharmony_ci{"ddivq", XRC(63,546,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 68818c2ecf20Sopenharmony_ci{"ddivq.", XRC(63,546,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}}, 68828c2ecf20Sopenharmony_ci 68838c2ecf20Sopenharmony_ci{"xsdivqp", XRC(63,548,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68848c2ecf20Sopenharmony_ci{"xsdivqpo", XRC(63,548,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 68858c2ecf20Sopenharmony_ci 68868c2ecf20Sopenharmony_ci{"mffs", XRC(63,583,0), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}}, 68878c2ecf20Sopenharmony_ci{"mffs.", XRC(63,583,1), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}}, 68888c2ecf20Sopenharmony_ci 68898c2ecf20Sopenharmony_ci{"mffsce", XMMF(63,583,0,1), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}}, 68908c2ecf20Sopenharmony_ci{"mffscdrn", XMMF(63,583,2,4), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}}, 68918c2ecf20Sopenharmony_ci{"mffscdrni", XMMF(63,583,2,5), XMMF_MASK|(3<<14), POWER9, PPCVLE, {FRT, DRM}}, 68928c2ecf20Sopenharmony_ci{"mffscrn", XMMF(63,583,2,6), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}}, 68938c2ecf20Sopenharmony_ci{"mffscrni", XMMF(63,583,2,7), XMMF_MASK|(7<<13), POWER9, PPCVLE, {FRT, RM}}, 68948c2ecf20Sopenharmony_ci{"mffsl", XMMF(63,583,3,0), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}}, 68958c2ecf20Sopenharmony_ci 68968c2ecf20Sopenharmony_ci{"dcmpuq", X(63,642), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}}, 68978c2ecf20Sopenharmony_ci 68988c2ecf20Sopenharmony_ci{"xscmpuqp", X(63,644), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}}, 68998c2ecf20Sopenharmony_ci 69008c2ecf20Sopenharmony_ci{"dtstsfq", X(63,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRBp}}, 69018c2ecf20Sopenharmony_ci{"dtstsfiq", X(63,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRBp}}, 69028c2ecf20Sopenharmony_ci 69038c2ecf20Sopenharmony_ci{"xststdcqp", X(63,708), X_MASK, PPCVSX3, PPCVLE, {BF, VB, DCMX}}, 69048c2ecf20Sopenharmony_ci 69058c2ecf20Sopenharmony_ci{"mtfsf", XFL(63,711,0), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}}, 69068c2ecf20Sopenharmony_ci{"mtfsf", XFL(63,711,0), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}}, 69078c2ecf20Sopenharmony_ci{"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}}, 69088c2ecf20Sopenharmony_ci{"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}}, 69098c2ecf20Sopenharmony_ci 69108c2ecf20Sopenharmony_ci{"drdpq", XRC(63,770,0), X_MASK, POWER6, PPCVLE, {FRTp, FRBp}}, 69118c2ecf20Sopenharmony_ci{"drdpq.", XRC(63,770,1), X_MASK, POWER6, PPCVLE, {FRTp, FRBp}}, 69128c2ecf20Sopenharmony_ci 69138c2ecf20Sopenharmony_ci{"dcffixq", XRC(63,802,0), X_MASK, POWER6, PPCVLE, {FRTp, FRB}}, 69148c2ecf20Sopenharmony_ci{"dcffixq.", XRC(63,802,1), X_MASK, POWER6, PPCVLE, {FRTp, FRB}}, 69158c2ecf20Sopenharmony_ci 69168c2ecf20Sopenharmony_ci{"xsabsqp", XVA(63,804,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69178c2ecf20Sopenharmony_ci{"xsxexpqp", XVA(63,804,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69188c2ecf20Sopenharmony_ci{"xsnabsqp", XVA(63,804,8), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69198c2ecf20Sopenharmony_ci{"xsnegqp", XVA(63,804,16), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69208c2ecf20Sopenharmony_ci{"xsxsigqp", XVA(63,804,18), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69218c2ecf20Sopenharmony_ci{"xssqrtqp", XVARC(63,804,27,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69228c2ecf20Sopenharmony_ci{"xssqrtqpo", XVARC(63,804,27,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69238c2ecf20Sopenharmony_ci 69248c2ecf20Sopenharmony_ci{"fctid", XRC(63,814,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 69258c2ecf20Sopenharmony_ci{"fctid", XRC(63,814,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 69268c2ecf20Sopenharmony_ci{"fctid.", XRC(63,814,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 69278c2ecf20Sopenharmony_ci{"fctid.", XRC(63,814,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 69288c2ecf20Sopenharmony_ci 69298c2ecf20Sopenharmony_ci{"fctidz", XRC(63,815,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 69308c2ecf20Sopenharmony_ci{"fctidz", XRC(63,815,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 69318c2ecf20Sopenharmony_ci{"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 69328c2ecf20Sopenharmony_ci{"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 69338c2ecf20Sopenharmony_ci 69348c2ecf20Sopenharmony_ci{"denbcdq", XRC(63,834,0), X_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}}, 69358c2ecf20Sopenharmony_ci{"denbcdq.", XRC(63,834,1), X_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}}, 69368c2ecf20Sopenharmony_ci 69378c2ecf20Sopenharmony_ci{"xscvqpuwz", XVA(63,836,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69388c2ecf20Sopenharmony_ci{"xscvudqp", XVA(63,836,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69398c2ecf20Sopenharmony_ci{"xscvqpswz", XVA(63,836,9), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69408c2ecf20Sopenharmony_ci{"xscvsdqp", XVA(63,836,10), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69418c2ecf20Sopenharmony_ci{"xscvqpudz", XVA(63,836,17), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69428c2ecf20Sopenharmony_ci{"xscvqpdp", XVARC(63,836,20,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69438c2ecf20Sopenharmony_ci{"xscvqpdpo", XVARC(63,836,20,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69448c2ecf20Sopenharmony_ci{"xscvdpqp", XVA(63,836,22), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69458c2ecf20Sopenharmony_ci{"xscvqpsdz", XVA(63,836,25), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}}, 69468c2ecf20Sopenharmony_ci 69478c2ecf20Sopenharmony_ci{"fmrgow", X(63,838), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}}, 69488c2ecf20Sopenharmony_ci 69498c2ecf20Sopenharmony_ci{"fcfid", XRC(63,846,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 69508c2ecf20Sopenharmony_ci{"fcfid", XRC(63,846,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 69518c2ecf20Sopenharmony_ci{"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}}, 69528c2ecf20Sopenharmony_ci{"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}}, 69538c2ecf20Sopenharmony_ci 69548c2ecf20Sopenharmony_ci{"diexq", XRC(63,866,0), X_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}}, 69558c2ecf20Sopenharmony_ci{"diexq.", XRC(63,866,1), X_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}}, 69568c2ecf20Sopenharmony_ci 69578c2ecf20Sopenharmony_ci{"xsiexpqp", X(63,868), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}}, 69588c2ecf20Sopenharmony_ci 69598c2ecf20Sopenharmony_ci{"fctidu", XRC(63,942,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 69608c2ecf20Sopenharmony_ci{"fctidu.", XRC(63,942,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 69618c2ecf20Sopenharmony_ci 69628c2ecf20Sopenharmony_ci{"fctiduz", XRC(63,943,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 69638c2ecf20Sopenharmony_ci{"fctiduz.", XRC(63,943,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 69648c2ecf20Sopenharmony_ci 69658c2ecf20Sopenharmony_ci{"fmrgew", X(63,966), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}}, 69668c2ecf20Sopenharmony_ci 69678c2ecf20Sopenharmony_ci{"fcfidu", XRC(63,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 69688c2ecf20Sopenharmony_ci{"fcfidu.", XRC(63,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}}, 69698c2ecf20Sopenharmony_ci}; 69708c2ecf20Sopenharmony_ci 69718c2ecf20Sopenharmony_ciconst int powerpc_num_opcodes = 69728c2ecf20Sopenharmony_ci sizeof (powerpc_opcodes) / sizeof (powerpc_opcodes[0]); 69738c2ecf20Sopenharmony_ci 69748c2ecf20Sopenharmony_ci/* The VLE opcode table. 69758c2ecf20Sopenharmony_ci 69768c2ecf20Sopenharmony_ci The format of this opcode table is the same as the main opcode table. */ 69778c2ecf20Sopenharmony_ci 69788c2ecf20Sopenharmony_ciconst struct powerpc_opcode vle_opcodes[] = { 69798c2ecf20Sopenharmony_ci{"se_illegal", C(0), C_MASK, PPCVLE, 0, {}}, 69808c2ecf20Sopenharmony_ci{"se_isync", C(1), C_MASK, PPCVLE, 0, {}}, 69818c2ecf20Sopenharmony_ci{"se_sc", C(2), C_MASK, PPCVLE, 0, {}}, 69828c2ecf20Sopenharmony_ci{"se_blr", C_LK(2,0), C_LK_MASK, PPCVLE, 0, {}}, 69838c2ecf20Sopenharmony_ci{"se_blrl", C_LK(2,1), C_LK_MASK, PPCVLE, 0, {}}, 69848c2ecf20Sopenharmony_ci{"se_bctr", C_LK(3,0), C_LK_MASK, PPCVLE, 0, {}}, 69858c2ecf20Sopenharmony_ci{"se_bctrl", C_LK(3,1), C_LK_MASK, PPCVLE, 0, {}}, 69868c2ecf20Sopenharmony_ci{"se_rfi", C(8), C_MASK, PPCVLE, 0, {}}, 69878c2ecf20Sopenharmony_ci{"se_rfci", C(9), C_MASK, PPCVLE, 0, {}}, 69888c2ecf20Sopenharmony_ci{"se_rfdi", C(10), C_MASK, PPCVLE, 0, {}}, 69898c2ecf20Sopenharmony_ci{"se_rfmci", C(11), C_MASK, PPCRFMCI|PPCVLE, 0, {}}, 69908c2ecf20Sopenharmony_ci{"se_not", SE_R(0,2), SE_R_MASK, PPCVLE, 0, {RX}}, 69918c2ecf20Sopenharmony_ci{"se_neg", SE_R(0,3), SE_R_MASK, PPCVLE, 0, {RX}}, 69928c2ecf20Sopenharmony_ci{"se_mflr", SE_R(0,8), SE_R_MASK, PPCVLE, 0, {RX}}, 69938c2ecf20Sopenharmony_ci{"se_mtlr", SE_R(0,9), SE_R_MASK, PPCVLE, 0, {RX}}, 69948c2ecf20Sopenharmony_ci{"se_mfctr", SE_R(0,10), SE_R_MASK, PPCVLE, 0, {RX}}, 69958c2ecf20Sopenharmony_ci{"se_mtctr", SE_R(0,11), SE_R_MASK, PPCVLE, 0, {RX}}, 69968c2ecf20Sopenharmony_ci{"se_extzb", SE_R(0,12), SE_R_MASK, PPCVLE, 0, {RX}}, 69978c2ecf20Sopenharmony_ci{"se_extsb", SE_R(0,13), SE_R_MASK, PPCVLE, 0, {RX}}, 69988c2ecf20Sopenharmony_ci{"se_extzh", SE_R(0,14), SE_R_MASK, PPCVLE, 0, {RX}}, 69998c2ecf20Sopenharmony_ci{"se_extsh", SE_R(0,15), SE_R_MASK, PPCVLE, 0, {RX}}, 70008c2ecf20Sopenharmony_ci{"se_mr", SE_RR(0,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70018c2ecf20Sopenharmony_ci{"se_mtar", SE_RR(0,2), SE_RR_MASK, PPCVLE, 0, {ARX, RY}}, 70028c2ecf20Sopenharmony_ci{"se_mfar", SE_RR(0,3), SE_RR_MASK, PPCVLE, 0, {RX, ARY}}, 70038c2ecf20Sopenharmony_ci{"se_add", SE_RR(1,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70048c2ecf20Sopenharmony_ci{"se_mullw", SE_RR(1,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70058c2ecf20Sopenharmony_ci{"se_sub", SE_RR(1,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70068c2ecf20Sopenharmony_ci{"se_subf", SE_RR(1,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70078c2ecf20Sopenharmony_ci{"se_cmp", SE_RR(3,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70088c2ecf20Sopenharmony_ci{"se_cmpl", SE_RR(3,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70098c2ecf20Sopenharmony_ci{"se_cmph", SE_RR(3,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70108c2ecf20Sopenharmony_ci{"se_cmphl", SE_RR(3,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70118c2ecf20Sopenharmony_ci 70128c2ecf20Sopenharmony_ci{"e_cmpi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, 70138c2ecf20Sopenharmony_ci{"e_cmpwi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, 70148c2ecf20Sopenharmony_ci{"e_cmpli", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, 70158c2ecf20Sopenharmony_ci{"e_cmplwi", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}}, 70168c2ecf20Sopenharmony_ci{"e_addi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 70178c2ecf20Sopenharmony_ci{"e_subi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}}, 70188c2ecf20Sopenharmony_ci{"e_addi.", SCI8(6,17), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 70198c2ecf20Sopenharmony_ci{"e_addic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 70208c2ecf20Sopenharmony_ci{"e_subic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}}, 70218c2ecf20Sopenharmony_ci{"e_addic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 70228c2ecf20Sopenharmony_ci{"e_subic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}}, 70238c2ecf20Sopenharmony_ci{"e_mulli", SCI8(6,20), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 70248c2ecf20Sopenharmony_ci{"e_subfic", SCI8(6,22), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 70258c2ecf20Sopenharmony_ci{"e_subfic.", SCI8(6,23), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}}, 70268c2ecf20Sopenharmony_ci{"e_andi", SCI8(6,24), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 70278c2ecf20Sopenharmony_ci{"e_andi.", SCI8(6,25), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 70288c2ecf20Sopenharmony_ci{"e_nop", SCI8(6,26), 0xffffffff, PPCVLE, 0, {0}}, 70298c2ecf20Sopenharmony_ci{"e_ori", SCI8(6,26), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 70308c2ecf20Sopenharmony_ci{"e_ori.", SCI8(6,27), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 70318c2ecf20Sopenharmony_ci{"e_xori", SCI8(6,28), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 70328c2ecf20Sopenharmony_ci{"e_xori.", SCI8(6,29), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}}, 70338c2ecf20Sopenharmony_ci{"e_lbzu", OPVUP(6,0), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 70348c2ecf20Sopenharmony_ci{"e_lhau", OPVUP(6,3), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 70358c2ecf20Sopenharmony_ci{"e_lhzu", OPVUP(6,1), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 70368c2ecf20Sopenharmony_ci{"e_lmw", OPVUP(6,8), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 70378c2ecf20Sopenharmony_ci{"e_lwzu", OPVUP(6,2), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 70388c2ecf20Sopenharmony_ci{"e_stbu", OPVUP(6,4), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 70398c2ecf20Sopenharmony_ci{"e_sthu", OPVUP(6,5), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 70408c2ecf20Sopenharmony_ci{"e_stwu", OPVUP(6,6), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 70418c2ecf20Sopenharmony_ci{"e_stmw", OPVUP(6,9), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}}, 70428c2ecf20Sopenharmony_ci{"e_ldmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 70438c2ecf20Sopenharmony_ci{"e_stmvgprw", OPVUPRT(6,17,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 70448c2ecf20Sopenharmony_ci{"e_ldmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 70458c2ecf20Sopenharmony_ci{"e_stmvsprw", OPVUPRT(6,17,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 70468c2ecf20Sopenharmony_ci{"e_ldmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 70478c2ecf20Sopenharmony_ci{"e_stmvsrrw", OPVUPRT(6,17,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 70488c2ecf20Sopenharmony_ci{"e_ldmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 70498c2ecf20Sopenharmony_ci{"e_stmvcsrrw", OPVUPRT(6,17,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 70508c2ecf20Sopenharmony_ci{"e_ldmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 70518c2ecf20Sopenharmony_ci{"e_stmvdsrrw", OPVUPRT(6,17,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}}, 70528c2ecf20Sopenharmony_ci{"e_add16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, SI}}, 70538c2ecf20Sopenharmony_ci{"e_la", OP(7), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 70548c2ecf20Sopenharmony_ci{"e_sub16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, NSI}}, 70558c2ecf20Sopenharmony_ci 70568c2ecf20Sopenharmony_ci{"se_addi", SE_IM5(8,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}}, 70578c2ecf20Sopenharmony_ci{"se_cmpli", SE_IM5(8,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}}, 70588c2ecf20Sopenharmony_ci{"se_subi", SE_IM5(9,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}}, 70598c2ecf20Sopenharmony_ci{"se_subi.", SE_IM5(9,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}}, 70608c2ecf20Sopenharmony_ci{"se_cmpi", SE_IM5(10,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 70618c2ecf20Sopenharmony_ci{"se_bmaski", SE_IM5(11,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 70628c2ecf20Sopenharmony_ci{"se_andi", SE_IM5(11,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 70638c2ecf20Sopenharmony_ci 70648c2ecf20Sopenharmony_ci{"e_lbz", OP(12), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 70658c2ecf20Sopenharmony_ci{"e_stb", OP(13), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 70668c2ecf20Sopenharmony_ci{"e_lha", OP(14), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 70678c2ecf20Sopenharmony_ci 70688c2ecf20Sopenharmony_ci{"se_srw", SE_RR(16,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70698c2ecf20Sopenharmony_ci{"se_sraw", SE_RR(16,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70708c2ecf20Sopenharmony_ci{"se_slw", SE_RR(16,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70718c2ecf20Sopenharmony_ci{"se_nop", SE_RR(17,0), 0xffff, PPCVLE, 0, {0}}, 70728c2ecf20Sopenharmony_ci{"se_or", SE_RR(17,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70738c2ecf20Sopenharmony_ci{"se_andc", SE_RR(17,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70748c2ecf20Sopenharmony_ci{"se_and", SE_RR(17,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70758c2ecf20Sopenharmony_ci{"se_and.", SE_RR(17,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}}, 70768c2ecf20Sopenharmony_ci{"se_li", IM7(9), IM7_MASK, PPCVLE, 0, {RX, UI7}}, 70778c2ecf20Sopenharmony_ci 70788c2ecf20Sopenharmony_ci{"e_lwz", OP(20), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 70798c2ecf20Sopenharmony_ci{"e_stw", OP(21), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 70808c2ecf20Sopenharmony_ci{"e_lhz", OP(22), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 70818c2ecf20Sopenharmony_ci{"e_sth", OP(23), OP_MASK, PPCVLE, 0, {RT, D, RA0}}, 70828c2ecf20Sopenharmony_ci 70838c2ecf20Sopenharmony_ci{"se_bclri", SE_IM5(24,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 70848c2ecf20Sopenharmony_ci{"se_bgeni", SE_IM5(24,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 70858c2ecf20Sopenharmony_ci{"se_bseti", SE_IM5(25,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 70868c2ecf20Sopenharmony_ci{"se_btsti", SE_IM5(25,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 70878c2ecf20Sopenharmony_ci{"se_srwi", SE_IM5(26,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 70888c2ecf20Sopenharmony_ci{"se_srawi", SE_IM5(26,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 70898c2ecf20Sopenharmony_ci{"se_slwi", SE_IM5(27,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}}, 70908c2ecf20Sopenharmony_ci 70918c2ecf20Sopenharmony_ci{"e_lis", I16L(28,28), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}}, 70928c2ecf20Sopenharmony_ci{"e_and2is.", I16L(28,29), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}}, 70938c2ecf20Sopenharmony_ci{"e_or2is", I16L(28,26), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}}, 70948c2ecf20Sopenharmony_ci{"e_and2i.", I16L(28,25), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}}, 70958c2ecf20Sopenharmony_ci{"e_or2i", I16L(28,24), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}}, 70968c2ecf20Sopenharmony_ci{"e_cmphl16i", IA16(28,23), IA16_MASK, PPCVLE, 0, {RA, VLEUIMM}}, 70978c2ecf20Sopenharmony_ci{"e_cmph16i", IA16(28,22), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}}, 70988c2ecf20Sopenharmony_ci{"e_cmpl16i", I16A(28,21), I16A_MASK, PPCVLE, 0, {RA, VLEUIMM}}, 70998c2ecf20Sopenharmony_ci{"e_mull2i", I16A(28,20), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}}, 71008c2ecf20Sopenharmony_ci{"e_cmp16i", IA16(28,19), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}}, 71018c2ecf20Sopenharmony_ci{"e_sub2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}}, 71028c2ecf20Sopenharmony_ci{"e_add2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}}, 71038c2ecf20Sopenharmony_ci{"e_sub2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}}, 71048c2ecf20Sopenharmony_ci{"e_add2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}}, 71058c2ecf20Sopenharmony_ci{"e_li", LI20(28,0), LI20_MASK, PPCVLE, 0, {RT, IMM20}}, 71068c2ecf20Sopenharmony_ci{"e_rlwimi", M(29,0), M_MASK, PPCVLE, 0, {RA, RS, SH, MB, ME}}, 71078c2ecf20Sopenharmony_ci{"e_rlwinm", M(29,1), M_MASK, PPCVLE, 0, {RA, RT, SH, MBE, ME}}, 71088c2ecf20Sopenharmony_ci{"e_b", BD24(30,0,0), BD24_MASK, PPCVLE, 0, {B24}}, 71098c2ecf20Sopenharmony_ci{"e_bl", BD24(30,0,1), BD24_MASK, PPCVLE, 0, {B24}}, 71108c2ecf20Sopenharmony_ci{"e_bdnz", EBD15(30,8,BO32DNZ,0), EBD15_MASK, PPCVLE, 0, {B15}}, 71118c2ecf20Sopenharmony_ci{"e_bdnzl", EBD15(30,8,BO32DNZ,1), EBD15_MASK, PPCVLE, 0, {B15}}, 71128c2ecf20Sopenharmony_ci{"e_bdz", EBD15(30,8,BO32DZ,0), EBD15_MASK, PPCVLE, 0, {B15}}, 71138c2ecf20Sopenharmony_ci{"e_bdzl", EBD15(30,8,BO32DZ,1), EBD15_MASK, PPCVLE, 0, {B15}}, 71148c2ecf20Sopenharmony_ci{"e_bge", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71158c2ecf20Sopenharmony_ci{"e_bgel", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71168c2ecf20Sopenharmony_ci{"e_bnl", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71178c2ecf20Sopenharmony_ci{"e_bnll", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71188c2ecf20Sopenharmony_ci{"e_blt", EBD15BI(30,8,BO32T,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71198c2ecf20Sopenharmony_ci{"e_bltl", EBD15BI(30,8,BO32T,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71208c2ecf20Sopenharmony_ci{"e_bgt", EBD15BI(30,8,BO32T,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71218c2ecf20Sopenharmony_ci{"e_bgtl", EBD15BI(30,8,BO32T,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71228c2ecf20Sopenharmony_ci{"e_ble", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71238c2ecf20Sopenharmony_ci{"e_blel", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71248c2ecf20Sopenharmony_ci{"e_bng", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71258c2ecf20Sopenharmony_ci{"e_bngl", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71268c2ecf20Sopenharmony_ci{"e_bne", EBD15BI(30,8,BO32F,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71278c2ecf20Sopenharmony_ci{"e_bnel", EBD15BI(30,8,BO32F,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71288c2ecf20Sopenharmony_ci{"e_beq", EBD15BI(30,8,BO32T,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71298c2ecf20Sopenharmony_ci{"e_beql", EBD15BI(30,8,BO32T,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71308c2ecf20Sopenharmony_ci{"e_bso", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71318c2ecf20Sopenharmony_ci{"e_bsol", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71328c2ecf20Sopenharmony_ci{"e_bun", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71338c2ecf20Sopenharmony_ci{"e_bunl", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71348c2ecf20Sopenharmony_ci{"e_bns", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71358c2ecf20Sopenharmony_ci{"e_bnsl", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71368c2ecf20Sopenharmony_ci{"e_bnu", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71378c2ecf20Sopenharmony_ci{"e_bnul", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}}, 71388c2ecf20Sopenharmony_ci{"e_bc", BD15(30,8,0), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}}, 71398c2ecf20Sopenharmony_ci{"e_bcl", BD15(30,8,1), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}}, 71408c2ecf20Sopenharmony_ci 71418c2ecf20Sopenharmony_ci{"e_bf", EBD15(30,8,BO32F,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}}, 71428c2ecf20Sopenharmony_ci{"e_bfl", EBD15(30,8,BO32F,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}}, 71438c2ecf20Sopenharmony_ci{"e_bt", EBD15(30,8,BO32T,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}}, 71448c2ecf20Sopenharmony_ci{"e_btl", EBD15(30,8,BO32T,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}}, 71458c2ecf20Sopenharmony_ci 71468c2ecf20Sopenharmony_ci{"e_cmph", X(31,14), X_MASK, PPCVLE, 0, {CRD, RA, RB}}, 71478c2ecf20Sopenharmony_ci{"e_cmphl", X(31,46), X_MASK, PPCVLE, 0, {CRD, RA, RB}}, 71488c2ecf20Sopenharmony_ci{"e_crandc", XL(31,129), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 71498c2ecf20Sopenharmony_ci{"e_crnand", XL(31,225), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 71508c2ecf20Sopenharmony_ci{"e_crnot", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BA, BBA}}, 71518c2ecf20Sopenharmony_ci{"e_crnor", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 71528c2ecf20Sopenharmony_ci{"e_crclr", XL(31,193), XL_MASK, PPCVLE, 0, {BT, BAT, BBA}}, 71538c2ecf20Sopenharmony_ci{"e_crxor", XL(31,193), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 71548c2ecf20Sopenharmony_ci{"e_mcrf", XL(31,16), XL_MASK, PPCVLE, 0, {CRD, CR}}, 71558c2ecf20Sopenharmony_ci{"e_slwi", EX(31,112), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 71568c2ecf20Sopenharmony_ci{"e_slwi.", EX(31,113), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 71578c2ecf20Sopenharmony_ci 71588c2ecf20Sopenharmony_ci{"e_crand", XL(31,257), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 71598c2ecf20Sopenharmony_ci 71608c2ecf20Sopenharmony_ci{"e_rlw", EX(31,560), EX_MASK, PPCVLE, 0, {RA, RS, RB}}, 71618c2ecf20Sopenharmony_ci{"e_rlw.", EX(31,561), EX_MASK, PPCVLE, 0, {RA, RS, RB}}, 71628c2ecf20Sopenharmony_ci 71638c2ecf20Sopenharmony_ci{"e_crset", XL(31,289), XL_MASK, PPCVLE, 0, {BT, BAT, BBA}}, 71648c2ecf20Sopenharmony_ci{"e_creqv", XL(31,289), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 71658c2ecf20Sopenharmony_ci 71668c2ecf20Sopenharmony_ci{"e_rlwi", EX(31,624), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 71678c2ecf20Sopenharmony_ci{"e_rlwi.", EX(31,625), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 71688c2ecf20Sopenharmony_ci 71698c2ecf20Sopenharmony_ci{"e_crorc", XL(31,417), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 71708c2ecf20Sopenharmony_ci 71718c2ecf20Sopenharmony_ci{"e_crmove", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BA, BBA}}, 71728c2ecf20Sopenharmony_ci{"e_cror", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BA, BB}}, 71738c2ecf20Sopenharmony_ci 71748c2ecf20Sopenharmony_ci{"mtmas1", XSPR(31,467,625), XSPR_MASK, PPCVLE, 0, {RS}}, 71758c2ecf20Sopenharmony_ci 71768c2ecf20Sopenharmony_ci{"e_srwi", EX(31,1136), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 71778c2ecf20Sopenharmony_ci{"e_srwi.", EX(31,1137), EX_MASK, PPCVLE, 0, {RA, RS, SH}}, 71788c2ecf20Sopenharmony_ci 71798c2ecf20Sopenharmony_ci{"se_lbz", SD4(8), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}}, 71808c2ecf20Sopenharmony_ci 71818c2ecf20Sopenharmony_ci{"se_stb", SD4(9), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}}, 71828c2ecf20Sopenharmony_ci 71838c2ecf20Sopenharmony_ci{"se_lhz", SD4(10), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}}, 71848c2ecf20Sopenharmony_ci 71858c2ecf20Sopenharmony_ci{"se_sth", SD4(11), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}}, 71868c2ecf20Sopenharmony_ci 71878c2ecf20Sopenharmony_ci{"se_lwz", SD4(12), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}}, 71888c2ecf20Sopenharmony_ci 71898c2ecf20Sopenharmony_ci{"se_stw", SD4(13), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}}, 71908c2ecf20Sopenharmony_ci 71918c2ecf20Sopenharmony_ci{"se_bge", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 71928c2ecf20Sopenharmony_ci{"se_bnl", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 71938c2ecf20Sopenharmony_ci{"se_ble", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 71948c2ecf20Sopenharmony_ci{"se_bng", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 71958c2ecf20Sopenharmony_ci{"se_bne", EBD8IO(28,0,2), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 71968c2ecf20Sopenharmony_ci{"se_bns", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 71978c2ecf20Sopenharmony_ci{"se_bnu", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 71988c2ecf20Sopenharmony_ci{"se_bf", EBD8IO(28,0,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}}, 71998c2ecf20Sopenharmony_ci{"se_blt", EBD8IO(28,1,0), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 72008c2ecf20Sopenharmony_ci{"se_bgt", EBD8IO(28,1,1), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 72018c2ecf20Sopenharmony_ci{"se_beq", EBD8IO(28,1,2), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 72028c2ecf20Sopenharmony_ci{"se_bso", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 72038c2ecf20Sopenharmony_ci{"se_bun", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}}, 72048c2ecf20Sopenharmony_ci{"se_bt", EBD8IO(28,1,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}}, 72058c2ecf20Sopenharmony_ci{"se_bc", BD8IO(28), BD8IO_MASK, PPCVLE, 0, {BO16, BI16, B8}}, 72068c2ecf20Sopenharmony_ci{"se_b", BD8(58,0,0), BD8_MASK, PPCVLE, 0, {B8}}, 72078c2ecf20Sopenharmony_ci{"se_bl", BD8(58,0,1), BD8_MASK, PPCVLE, 0, {B8}}, 72088c2ecf20Sopenharmony_ci}; 72098c2ecf20Sopenharmony_ci 72108c2ecf20Sopenharmony_ciconst int vle_num_opcodes = 72118c2ecf20Sopenharmony_ci sizeof (vle_opcodes) / sizeof (vle_opcodes[0]); 72128c2ecf20Sopenharmony_ci 72138c2ecf20Sopenharmony_ci/* The macro table. This is only used by the assembler. */ 72148c2ecf20Sopenharmony_ci 72158c2ecf20Sopenharmony_ci/* The expressions of the form (-x ! 31) & (x | 31) have the value 0 72168c2ecf20Sopenharmony_ci when x=0; 32-x when x is between 1 and 31; are negative if x is 72178c2ecf20Sopenharmony_ci negative; and are 32 or more otherwise. This is what you want 72188c2ecf20Sopenharmony_ci when, for instance, you are emulating a right shift by a 72198c2ecf20Sopenharmony_ci rotate-left-and-mask, because the underlying instructions support 72208c2ecf20Sopenharmony_ci shifts of size 0 but not shifts of size 32. By comparison, when 72218c2ecf20Sopenharmony_ci extracting x bits from some word you want to use just 32-x, because 72228c2ecf20Sopenharmony_ci the underlying instructions don't support extracting 0 bits but do 72238c2ecf20Sopenharmony_ci support extracting the whole word (32 bits in this case). */ 72248c2ecf20Sopenharmony_ci 72258c2ecf20Sopenharmony_ciconst struct powerpc_macro powerpc_macros[] = { 72268c2ecf20Sopenharmony_ci{"extldi", 4, PPC64, "rldicr %0,%1,%3,(%2)-1"}, 72278c2ecf20Sopenharmony_ci{"extldi.", 4, PPC64, "rldicr. %0,%1,%3,(%2)-1"}, 72288c2ecf20Sopenharmony_ci{"extrdi", 4, PPC64, "rldicl %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"}, 72298c2ecf20Sopenharmony_ci{"extrdi.", 4, PPC64, "rldicl. %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"}, 72308c2ecf20Sopenharmony_ci{"insrdi", 4, PPC64, "rldimi %0,%1,64-((%2)+(%3)),%3"}, 72318c2ecf20Sopenharmony_ci{"insrdi.", 4, PPC64, "rldimi. %0,%1,64-((%2)+(%3)),%3"}, 72328c2ecf20Sopenharmony_ci{"rotrdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),0"}, 72338c2ecf20Sopenharmony_ci{"rotrdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),0"}, 72348c2ecf20Sopenharmony_ci{"sldi", 3, PPC64, "rldicr %0,%1,%2,63-(%2)"}, 72358c2ecf20Sopenharmony_ci{"sldi.", 3, PPC64, "rldicr. %0,%1,%2,63-(%2)"}, 72368c2ecf20Sopenharmony_ci{"srdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),%2"}, 72378c2ecf20Sopenharmony_ci{"srdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),%2"}, 72388c2ecf20Sopenharmony_ci{"clrrdi", 3, PPC64, "rldicr %0,%1,0,63-(%2)"}, 72398c2ecf20Sopenharmony_ci{"clrrdi.", 3, PPC64, "rldicr. %0,%1,0,63-(%2)"}, 72408c2ecf20Sopenharmony_ci{"clrlsldi", 4, PPC64, "rldic %0,%1,%3,(%2)-(%3)"}, 72418c2ecf20Sopenharmony_ci{"clrlsldi.",4, PPC64, "rldic. %0,%1,%3,(%2)-(%3)"}, 72428c2ecf20Sopenharmony_ci 72438c2ecf20Sopenharmony_ci{"extlwi", 4, PPCCOM, "rlwinm %0,%1,%3,0,(%2)-1"}, 72448c2ecf20Sopenharmony_ci{"extlwi.", 4, PPCCOM, "rlwinm. %0,%1,%3,0,(%2)-1"}, 72458c2ecf20Sopenharmony_ci{"extrwi", 4, PPCCOM, "rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"}, 72468c2ecf20Sopenharmony_ci{"extrwi.", 4, PPCCOM, "rlwinm. %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"}, 72478c2ecf20Sopenharmony_ci{"inslwi", 4, PPCCOM, "rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"}, 72488c2ecf20Sopenharmony_ci{"inslwi.", 4, PPCCOM, "rlwimi. %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"}, 72498c2ecf20Sopenharmony_ci{"insrwi", 4, PPCCOM, "rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"}, 72508c2ecf20Sopenharmony_ci{"insrwi.", 4, PPCCOM, "rlwimi. %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"}, 72518c2ecf20Sopenharmony_ci{"rotrwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"}, 72528c2ecf20Sopenharmony_ci{"rotrwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),0,31"}, 72538c2ecf20Sopenharmony_ci{"slwi", 3, PPCCOM, "rlwinm %0,%1,%2,0,31-(%2)"}, 72548c2ecf20Sopenharmony_ci{"sli", 3, PWRCOM, "rlinm %0,%1,%2,0,31-(%2)"}, 72558c2ecf20Sopenharmony_ci{"slwi.", 3, PPCCOM, "rlwinm. %0,%1,%2,0,31-(%2)"}, 72568c2ecf20Sopenharmony_ci{"sli.", 3, PWRCOM, "rlinm. %0,%1,%2,0,31-(%2)"}, 72578c2ecf20Sopenharmony_ci{"srwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"}, 72588c2ecf20Sopenharmony_ci{"sri", 3, PWRCOM, "rlinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"}, 72598c2ecf20Sopenharmony_ci{"srwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"}, 72608c2ecf20Sopenharmony_ci{"sri.", 3, PWRCOM, "rlinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"}, 72618c2ecf20Sopenharmony_ci{"clrrwi", 3, PPCCOM, "rlwinm %0,%1,0,0,31-(%2)"}, 72628c2ecf20Sopenharmony_ci{"clrrwi.", 3, PPCCOM, "rlwinm. %0,%1,0,0,31-(%2)"}, 72638c2ecf20Sopenharmony_ci{"clrlslwi", 4, PPCCOM, "rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"}, 72648c2ecf20Sopenharmony_ci{"clrlslwi.",4, PPCCOM, "rlwinm. %0,%1,%3,(%2)-(%3),31-(%3)"}, 72658c2ecf20Sopenharmony_ci 72668c2ecf20Sopenharmony_ci{"e_extlwi", 4, PPCVLE, "e_rlwinm %0,%1,%3,0,(%2)-1"}, 72678c2ecf20Sopenharmony_ci{"e_extrwi", 4, PPCVLE, "e_rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"}, 72688c2ecf20Sopenharmony_ci{"e_inslwi", 4, PPCVLE, "e_rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"}, 72698c2ecf20Sopenharmony_ci{"e_insrwi", 4, PPCVLE, "e_rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"}, 72708c2ecf20Sopenharmony_ci{"e_rotlwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31"}, 72718c2ecf20Sopenharmony_ci{"e_rotrwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"}, 72728c2ecf20Sopenharmony_ci{"e_slwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31-(%2)"}, 72738c2ecf20Sopenharmony_ci{"e_srwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"}, 72748c2ecf20Sopenharmony_ci{"e_clrlwi", 3, PPCVLE, "e_rlwinm %0,%1,0,%2,31"}, 72758c2ecf20Sopenharmony_ci{"e_clrrwi", 3, PPCVLE, "e_rlwinm %0,%1,0,0,31-(%2)"}, 72768c2ecf20Sopenharmony_ci{"e_clrlslwi",4, PPCVLE, "e_rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"}, 72778c2ecf20Sopenharmony_ci}; 72788c2ecf20Sopenharmony_ci 72798c2ecf20Sopenharmony_ciconst int powerpc_num_macros = 72808c2ecf20Sopenharmony_ci sizeof (powerpc_macros) / sizeof (powerpc_macros[0]); 7281