^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) // SPDX-License-Identifier: GPL-2.0-or-later
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /* ppc-opc.c -- PowerPC opcode list
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) Copyright (C) 1994-2016 Free Software Foundation, Inc.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) Written by Ian Lance Taylor, Cygnus Support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) This file is part of GDB, GAS, and the GNU binutils.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/stddef.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <linux/kernel.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <linux/bug.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) #include "nonstdio.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #include "ppc.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define ATTRIBUTE_UNUSED
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) #define _(x) x
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) /* This file holds the PowerPC opcode table. The opcode table
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) includes almost all of the extended instruction mnemonics. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) permits the disassembler to use them, and simplifies the assembler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) logic, at the cost of increasing the table size. The table is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) strictly constant data, so the compiler should be able to put it in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) the .text section.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) This file also holds the operand table. All knowledge about
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) inserting operands into instructions and vice-versa is kept in this
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) file. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) /* Local insertion and extraction functions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) static unsigned long insert_arx (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) static long extract_arx (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) static unsigned long insert_ary (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) static long extract_ary (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) static unsigned long insert_bat (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) static long extract_bat (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) static unsigned long insert_bba (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) static long extract_bba (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) static unsigned long insert_bdm (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) static long extract_bdm (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) static unsigned long insert_bdp (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) static long extract_bdp (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) static unsigned long insert_bo (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) static long extract_bo (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) static unsigned long insert_boe (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) static long extract_boe (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) static unsigned long insert_esync (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) static unsigned long insert_dcmxs (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) static long extract_dcmxs (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) static unsigned long insert_dxd (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) static long extract_dxd (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) static unsigned long insert_dxdn (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) static long extract_dxdn (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) static unsigned long insert_fxm (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) static long extract_fxm (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) static unsigned long insert_li20 (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) static long extract_li20 (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) static unsigned long insert_ls (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) static unsigned long insert_mbe (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) static long extract_mbe (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) static unsigned long insert_mb6 (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) static long extract_mb6 (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) static long extract_nb (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) static unsigned long insert_nbi (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) static unsigned long insert_nsi (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) static long extract_nsi (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) static unsigned long insert_oimm (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) static long extract_oimm (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) static unsigned long insert_ral (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) static unsigned long insert_ram (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) static unsigned long insert_raq (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) static unsigned long insert_ras (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) static unsigned long insert_rbs (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) static long extract_rbs (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) static unsigned long insert_rbx (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) static unsigned long insert_rx (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) static long extract_rx (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) static unsigned long insert_ry (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) static long extract_ry (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) static unsigned long insert_sh6 (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) static long extract_sh6 (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) static unsigned long insert_sci8 (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84) static long extract_sci8 (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) static unsigned long insert_sci8n (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86) static long extract_sci8n (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) static unsigned long insert_sd4h (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) static long extract_sd4h (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) static unsigned long insert_sd4w (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) static long extract_sd4w (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) static unsigned long insert_spr (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) static long extract_spr (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) static unsigned long insert_sprg (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94) static long extract_sprg (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) static unsigned long insert_tbr (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) static long extract_tbr (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) static unsigned long insert_xt6 (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) static long extract_xt6 (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) static unsigned long insert_xtq6 (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) static long extract_xtq6 (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) static unsigned long insert_xa6 (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) static long extract_xa6 (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) static unsigned long insert_xb6 (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) static long extract_xb6 (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) static unsigned long insert_xb6s (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) static long extract_xb6s (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) static unsigned long insert_xc6 (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) static long extract_xc6 (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) static unsigned long insert_dm (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) static long extract_dm (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) static unsigned long insert_vlesi (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) static long extract_vlesi (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) static unsigned long insert_vlensi (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) static long extract_vlensi (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) static unsigned long insert_vleui (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) static long extract_vleui (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) static unsigned long insert_vleil (unsigned long, long, ppc_cpu_t, const char **);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) static long extract_vleil (unsigned long, ppc_cpu_t, int *);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) /* The operands table.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) The fields are bitm, shift, insert, extract, flags.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) We used to put parens around the various additions, like the one
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) for BA just below. However, that caused trouble with feeble
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) compilers with a limit on depth of a parenthesized expression, like
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) (reportedly) the compiler in Microsoft Developer Studio 5. So we
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) omit the parens, since the macros are never used in a context where
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) the addition will be ambiguous. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) const struct powerpc_operand powerpc_operands[] =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) /* The zero index is used to indicate the end of the list of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) operands. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) #define UNUSED 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) { 0, 0, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) /* The BA field in an XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) #define BA UNUSED + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) /* The BI field in a B form or XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) #define BI BA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) #define BI_MASK (0x1f << 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) /* The BA field in an XL form instruction when it must be the same
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) as the BT field in the same instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) #define BAT BA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) { 0x1f, 16, insert_bat, extract_bat, PPC_OPERAND_FAKE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) /* The BB field in an XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151) #define BB BAT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) #define BB_MASK (0x1f << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR_BIT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) /* The BB field in an XL form instruction when it must be the same
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) as the BA field in the same instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) #define BBA BB + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) /* The VB field in a VX form instruction when it must be the same
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159) as the VA field in the same instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) #define VBA BBA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) { 0x1f, 11, insert_bba, extract_bba, PPC_OPERAND_FAKE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) /* The BD field in a B form instruction. The lower two bits are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) forced to zero. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) #define BD BBA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) /* The BD field in a B form instruction when absolute addressing is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) used. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) #define BDA BD + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173) /* The BD field in a B form instruction when the - modifier is used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) This sets the y bit of the BO field appropriately. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) #define BDM BDA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) { 0xfffc, 0, insert_bdm, extract_bdm,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) /* The BD field in a B form instruction when the - modifier is used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180) and absolute address is used. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) #define BDMA BDM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182) { 0xfffc, 0, insert_bdm, extract_bdm,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) /* The BD field in a B form instruction when the + modifier is used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) This sets the y bit of the BO field appropriately. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) #define BDP BDMA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) { 0xfffc, 0, insert_bdp, extract_bdp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191) /* The BD field in a B form instruction when the + modifier is used
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) and absolute addressing is used. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) #define BDPA BDP + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194) { 0xfffc, 0, insert_bdp, extract_bdp,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) /* The BF field in an X or XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) #define BF BDPA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) /* The CRFD field in an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) #define CRFD BF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) /* The CRD field in an XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) #define CRD BF
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203) { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) /* The BF field in an X or XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) #define BFF BF + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) { 0x7, 23, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) /* An optional BF field. This is used for comparison instructions,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210) in which an omitted BF field is taken as zero. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) #define OBF BFF + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212) { 0x7, 23, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) /* The BFA field in an X or XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215) #define BFA OBF + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) /* The BO field in a B form instruction. Certain values are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) illegal. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220) #define BO BFA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) #define BO_MASK (0x1f << 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222) { 0x1f, 21, insert_bo, extract_bo, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) /* The BO field in a B form instruction when the + or - modifier is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) used. This is like the BO field, but it must be even. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) #define BOE BO + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) { 0x1e, 21, insert_boe, extract_boe, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) /* The RM field in an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) #define RM BOE + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) { 0x3, 11, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) #define BH RM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234) { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 236) /* The BT field in an X or XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 237) #define BT BH + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 238) { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR_BIT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 239)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 240) /* The BI16 field in a BD8 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 241) #define BI16 BT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 242) { 0x3, 8, NULL, NULL, PPC_OPERAND_CR_BIT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 243)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 244) /* The BI32 field in a BD15 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 245) #define BI32 BI16 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 246) { 0xf, 16, NULL, NULL, PPC_OPERAND_CR_BIT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 248) /* The BO32 field in a BD15 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 249) #define BO32 BI32 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 250) { 0x3, 20, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 251)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 252) /* The B8 field in a BD8 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 253) #define B8 BO32 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 254) { 0x1fe, -1, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 255)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 256) /* The B15 field in a BD15 form instruction. The lowest bit is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 257) forced to zero. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 258) #define B15 B8 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 259) { 0xfffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 260)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 261) /* The B24 field in a BD24 form instruction. The lowest bit is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 262) forced to zero. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 263) #define B24 B15 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 264) { 0x1fffffe, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 265)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 266) /* The condition register number portion of the BI field in a B form
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 267) or XL form instruction. This is used for the extended
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 268) conditional branch mnemonics, which set the lower two bits of the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 269) BI field. This field is optional. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 270) #define CR B24 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 271) { 0x7, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 272)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 273) /* The CRB field in an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 274) #define CRB CR + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 275) /* The MB field in an M form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 276) #define MB CRB
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 277) #define MB_MASK (0x1f << 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 278) { 0x1f, 6, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 279)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 280) /* The CRD32 field in an XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 281) #define CRD32 CRB + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 282) { 0x3, 21, NULL, NULL, PPC_OPERAND_CR_REG },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 283)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 284) /* The CRFS field in an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 285) #define CRFS CRD32 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 286) { 0x7, 0, NULL, NULL, PPC_OPERAND_CR_REG },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 287)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 288) #define CRS CRFS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 289) { 0x3, 18, NULL, NULL, PPC_OPERAND_CR_REG | PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 290)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 291) /* The CT field in an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 292) #define CT CRS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 293) /* The MO field in an mbar instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 294) #define MO CT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 295) { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 296)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 297) /* The D field in a D form instruction. This is a displacement off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 298) a register, and implies that the next operand is a register in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 299) parentheses. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 300) #define D CT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 301) { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 302)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 303) /* The D8 field in a D form instruction. This is a displacement off
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 304) a register, and implies that the next operand is a register in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 305) parentheses. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 306) #define D8 D + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 307) { 0xff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 308)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 309) /* The DCMX field in an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 310) #define DCMX D8 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 311) { 0x7f, 16, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 312)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 313) /* The split DCMX field in an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 314) #define DCMXS DCMX + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 315) { 0x7f, PPC_OPSHIFT_INV, insert_dcmxs, extract_dcmxs, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 316)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 317) /* The DQ field in a DQ form instruction. This is like D, but the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 318) lower four bits are forced to zero. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 319) #define DQ DCMXS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 320) { 0xfff0, 0, NULL, NULL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 321) PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 322)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 323) /* The DS field in a DS form instruction. This is like D, but the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 324) lower two bits are forced to zero. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 325) #define DS DQ + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 326) { 0xfffc, 0, NULL, NULL,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 327) PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 328)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 329) /* The DUIS or BHRBE fields in a XFX form instruction, 10 bits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 330) unsigned imediate */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 331) #define DUIS DS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 332) #define BHRBE DUIS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 333) { 0x3ff, 11, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 334)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 335) /* The split D field in a DX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 336) #define DXD DUIS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 337) { 0xffff, PPC_OPSHIFT_INV, insert_dxd, extract_dxd,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 338) PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 339)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 340) /* The split ND field in a DX form instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 341) This is the same as the DX field, only negated. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 342) #define NDXD DXD + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 343) { 0xffff, PPC_OPSHIFT_INV, insert_dxdn, extract_dxdn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 344) PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 345)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 346) /* The E field in a wrteei instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 347) /* And the W bit in the pair singles instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 348) /* And the ST field in a VX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 349) #define E NDXD + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 350) #define PSW E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 351) #define ST E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 352) { 0x1, 15, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 353)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 354) /* The FL1 field in a POWER SC form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 355) #define FL1 E + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 356) /* The U field in an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 357) #define U FL1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 358) { 0xf, 12, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 359)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 360) /* The FL2 field in a POWER SC form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 361) #define FL2 FL1 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 362) { 0x7, 2, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 363)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 364) /* The FLM field in an XFL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 365) #define FLM FL2 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 366) { 0xff, 17, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 367)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 368) /* The FRA field in an X or A form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 369) #define FRA FLM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 370) #define FRA_MASK (0x1f << 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 371) { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 372)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 373) /* The FRAp field of DFP instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 374) #define FRAp FRA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 375) { 0x1e, 16, NULL, NULL, PPC_OPERAND_FPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 376)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 377) /* The FRB field in an X or A form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 378) #define FRB FRAp + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 379) #define FRB_MASK (0x1f << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 380) { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 381)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 382) /* The FRBp field of DFP instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 383) #define FRBp FRB + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 384) { 0x1e, 11, NULL, NULL, PPC_OPERAND_FPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 385)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 386) /* The FRC field in an A form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 387) #define FRC FRBp + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 388) #define FRC_MASK (0x1f << 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 389) { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 390)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 391) /* The FRS field in an X form instruction or the FRT field in a D, X
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 392) or A form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 393) #define FRS FRC + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 394) #define FRT FRS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 395) { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 396)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 397) /* The FRSp field of stfdp or the FRTp field of lfdp and DFP
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 398) instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 399) #define FRSp FRS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 400) #define FRTp FRSp
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 401) { 0x1e, 21, NULL, NULL, PPC_OPERAND_FPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 402)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 403) /* The FXM field in an XFX instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 404) #define FXM FRSp + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 405) { 0xff, 12, insert_fxm, extract_fxm, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 406)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 407) /* Power4 version for mfcr. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 408) #define FXM4 FXM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 409) { 0xff, 12, insert_fxm, extract_fxm,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 410) PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL_VALUE},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 411) /* If the FXM4 operand is ommitted, use the sentinel value -1. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 412) { -1, -1, NULL, NULL, 0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 413)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 414) /* The IMM20 field in an LI instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 415) #define IMM20 FXM4 + 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 416) { 0xfffff, PPC_OPSHIFT_INV, insert_li20, extract_li20, PPC_OPERAND_SIGNED},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 417)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 418) /* The L field in a D or X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 419) #define L IMM20 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 420) { 0x1, 21, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 421)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 422) /* The optional L field in tlbie and tlbiel instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 423) #define LOPT L + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 424) /* The R field in a HTM X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 425) #define HTM_R LOPT
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 426) { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 427)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 428) /* The optional (for 32-bit) L field in cmp[l][i] instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 429) #define L32OPT LOPT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 430) { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL32 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 431)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 432) /* The L field in dcbf instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 433) #define L2OPT L32OPT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 434) { 0x3, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 435)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 436) /* The LEV field in a POWER SVC form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 437) #define SVC_LEV L2OPT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 438) { 0x7f, 5, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 439)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 440) /* The LEV field in an SC form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 441) #define LEV SVC_LEV + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 442) { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 443)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 444) /* The LI field in an I form instruction. The lower two bits are
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 445) forced to zero. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 446) #define LI LEV + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 447) { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 448)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 449) /* The LI field in an I form instruction when used as an absolute
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 450) address. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 451) #define LIA LI + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 452) { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 453)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 454) /* The LS or WC field in an X (sync or wait) form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 455) #define LS LIA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 456) #define WC LS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 457) { 0x3, 21, insert_ls, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 458)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 459) /* The ME field in an M form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 460) #define ME LS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 461) #define ME_MASK (0x1f << 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 462) { 0x1f, 1, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 463)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 464) /* The MB and ME fields in an M form instruction expressed a single
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 465) operand which is a bitmask indicating which bits to select. This
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 466) is a two operand form using PPC_OPERAND_NEXT. See the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 467) description in opcode/ppc.h for what this means. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 468) #define MBE ME + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 469) { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 470) { -1, 0, insert_mbe, extract_mbe, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 471)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 472) /* The MB or ME field in an MD or MDS form instruction. The high
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 473) bit is wrapped to the low end. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 474) #define MB6 MBE + 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 475) #define ME6 MB6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 476) #define MB6_MASK (0x3f << 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 477) { 0x3f, 5, insert_mb6, extract_mb6, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 478)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 479) /* The NB field in an X form instruction. The value 32 is stored as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 480) 0. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 481) #define NB MB6 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 482) { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 483)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 484) /* The NBI field in an lswi instruction, which has special value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 485) restrictions. The value 32 is stored as 0. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 486) #define NBI NB + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 487) { 0x1f, 11, insert_nbi, extract_nb, PPC_OPERAND_PLUS1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 488)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 489) /* The NSI field in a D form instruction. This is the same as the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 490) SI field, only negated. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 491) #define NSI NBI + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 492) { 0xffff, 0, insert_nsi, extract_nsi,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 493) PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 494)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 495) /* The NSI field in a D form instruction when we accept a wide range
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 496) of positive values. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 497) #define NSISIGNOPT NSI + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 498) { 0xffff, 0, insert_nsi, extract_nsi,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 499) PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 500)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 501) /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 502) #define RA NSISIGNOPT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 503) #define RA_MASK (0x1f << 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 504) { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 505)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 506) /* As above, but 0 in the RA field means zero, not r0. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 507) #define RA0 RA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 508) { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 509)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 510) /* The RA field in the DQ form lq or an lswx instruction, which have special
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 511) value restrictions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 512) #define RAQ RA0 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 513) #define RAX RAQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 514) { 0x1f, 16, insert_raq, NULL, PPC_OPERAND_GPR_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 515)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 516) /* The RA field in a D or X form instruction which is an updating
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 517) load, which means that the RA field may not be zero and may not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 518) equal the RT field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 519) #define RAL RAQ + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 520) { 0x1f, 16, insert_ral, NULL, PPC_OPERAND_GPR_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 521)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 522) /* The RA field in an lmw instruction, which has special value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 523) restrictions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 524) #define RAM RAL + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 525) { 0x1f, 16, insert_ram, NULL, PPC_OPERAND_GPR_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 526)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 527) /* The RA field in a D or X form instruction which is an updating
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 528) store or an updating floating point load, which means that the RA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 529) field may not be zero. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 530) #define RAS RAM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 531) { 0x1f, 16, insert_ras, NULL, PPC_OPERAND_GPR_0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 532)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 533) /* The RA field of the tlbwe, dccci and iccci instructions,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 534) which are optional. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 535) #define RAOPT RAS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 536) { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 537)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 538) /* The RB field in an X, XO, M, or MDS form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 539) #define RB RAOPT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 540) #define RB_MASK (0x1f << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 541) { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 542)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 543) /* The RB field in an X form instruction when it must be the same as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 544) the RS field in the instruction. This is used for extended
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 545) mnemonics like mr. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 546) #define RBS RB + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 547) { 0x1f, 11, insert_rbs, extract_rbs, PPC_OPERAND_FAKE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 548)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 549) /* The RB field in an lswx instruction, which has special value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 550) restrictions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 551) #define RBX RBS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 552) { 0x1f, 11, insert_rbx, NULL, PPC_OPERAND_GPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 553)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 554) /* The RB field of the dccci and iccci instructions, which are optional. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 555) #define RBOPT RBX + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 556) { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 557)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 558) /* The RC register field in an maddld, maddhd or maddhdu instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 559) #define RC RBOPT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 560) { 0x1f, 6, NULL, NULL, PPC_OPERAND_GPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 561)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 562) /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 563) instruction or the RT field in a D, DS, X, XFX or XO form
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 564) instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 565) #define RS RC + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 566) #define RT RS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 567) #define RT_MASK (0x1f << 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 568) #define RD RS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 569) { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 570)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 571) /* The RS and RT fields of the DS form stq and DQ form lq instructions,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 572) which have special value restrictions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 573) #define RSQ RS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 574) #define RTQ RSQ
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 575) { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 576)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 577) /* The RS field of the tlbwe instruction, which is optional. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 578) #define RSO RSQ + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 579) #define RTO RSO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 580) { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 581)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 582) /* The RX field of the SE_RR form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 583) #define RX RSO + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 584) { 0x1f, PPC_OPSHIFT_INV, insert_rx, extract_rx, PPC_OPERAND_GPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 585)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 586) /* The ARX field of the SE_RR form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 587) #define ARX RX + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 588) { 0x1f, PPC_OPSHIFT_INV, insert_arx, extract_arx, PPC_OPERAND_GPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 589)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 590) /* The RY field of the SE_RR form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 591) #define RY ARX + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 592) #define RZ RY
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 593) { 0x1f, PPC_OPSHIFT_INV, insert_ry, extract_ry, PPC_OPERAND_GPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 594)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 595) /* The ARY field of the SE_RR form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 596) #define ARY RY + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 597) { 0x1f, PPC_OPSHIFT_INV, insert_ary, extract_ary, PPC_OPERAND_GPR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 598)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 599) /* The SCLSCI8 field in a D form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 600) #define SCLSCI8 ARY + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 601) { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8, extract_sci8, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 602)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 603) /* The SCLSCI8N field in a D form instruction. This is the same as the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 604) SCLSCI8 field, only negated. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 605) #define SCLSCI8N SCLSCI8 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 606) { 0xffffffff, PPC_OPSHIFT_INV, insert_sci8n, extract_sci8n,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 607) PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 608)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 609) /* The SD field of the SD4 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 610) #define SE_SD SCLSCI8N + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 611) { 0xf, 8, NULL, NULL, PPC_OPERAND_PARENS },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 612)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 613) /* The SD field of the SD4 form instruction, for halfword. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 614) #define SE_SDH SE_SD + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 615) { 0x1e, PPC_OPSHIFT_INV, insert_sd4h, extract_sd4h, PPC_OPERAND_PARENS },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 616)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 617) /* The SD field of the SD4 form instruction, for word. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 618) #define SE_SDW SE_SDH + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 619) { 0x3c, PPC_OPSHIFT_INV, insert_sd4w, extract_sd4w, PPC_OPERAND_PARENS },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 620)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 621) /* The SH field in an X or M form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 622) #define SH SE_SDW + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 623) #define SH_MASK (0x1f << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 624) /* The other UIMM field in a EVX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 625) #define EVUIMM SH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 626) /* The FC field in an atomic X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 627) #define FC SH
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 628) { 0x1f, 11, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 629)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 630) /* The SI field in a HTM X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 631) #define HTM_SI SH + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 632) { 0x1f, 11, NULL, NULL, PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 633)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 634) /* The SH field in an MD form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 635) #define SH6 HTM_SI + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 636) #define SH6_MASK ((0x1f << 11) | (1 << 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 637) { 0x3f, PPC_OPSHIFT_INV, insert_sh6, extract_sh6, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 638)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 639) /* The SH field of the tlbwe instruction, which is optional. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 640) #define SHO SH6 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 641) { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 642)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 643) /* The SI field in a D form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 644) #define SI SHO + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 645) { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 646)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 647) /* The SI field in a D form instruction when we accept a wide range
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 648) of positive values. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 649) #define SISIGNOPT SI + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 650) { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 651)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 652) /* The SI8 field in a D form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 653) #define SI8 SISIGNOPT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 654) { 0xff, 0, NULL, NULL, PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 655)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 656) /* The SPR field in an XFX form instruction. This is flipped--the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 657) lower 5 bits are stored in the upper 5 and vice- versa. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 658) #define SPR SI8 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 659) #define PMR SPR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 660) #define TMR SPR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 661) #define SPR_MASK (0x3ff << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 662) { 0x3ff, 11, insert_spr, extract_spr, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 663)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 664) /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 665) #define SPRBAT SPR + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 666) #define SPRBAT_MASK (0x3 << 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 667) { 0x3, 17, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 668)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 669) /* The SPRG register number in an XFX form m[ft]sprg instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 670) #define SPRG SPRBAT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 671) { 0x1f, 16, insert_sprg, extract_sprg, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 672)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 673) /* The SR field in an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 674) #define SR SPRG + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 675) /* The 4-bit UIMM field in a VX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 676) #define UIMM4 SR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 677) { 0xf, 16, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 678)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 679) /* The STRM field in an X AltiVec form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 680) #define STRM SR + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 681) /* The T field in a tlbilx form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 682) #define T STRM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 683) /* The L field in wclr instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 684) #define L2 STRM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 685) { 0x3, 21, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 686)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 687) /* The ESYNC field in an X (sync) form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 688) #define ESYNC STRM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 689) { 0xf, 16, insert_esync, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 690)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 691) /* The SV field in a POWER SC form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 692) #define SV ESYNC + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 693) { 0x3fff, 2, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 694)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 695) /* The TBR field in an XFX form instruction. This is like the SPR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 696) field, but it is optional. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 697) #define TBR SV + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 698) { 0x3ff, 11, insert_tbr, extract_tbr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 699) PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL_VALUE},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 700) /* If the TBR operand is ommitted, use the value 268. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 701) { -1, 268, NULL, NULL, 0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 702)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 703) /* The TO field in a D or X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 704) #define TO TBR + 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 705) #define DUI TO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 706) #define TO_MASK (0x1f << 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 707) { 0x1f, 21, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 708)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 709) /* The UI field in a D form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 710) #define UI TO + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 711) { 0xffff, 0, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 712)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 713) #define UISIGNOPT UI + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 714) { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNOPT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 715)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 716) /* The IMM field in an SE_IM5 instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 717) #define UI5 UISIGNOPT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 718) { 0x1f, 4, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 719)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 720) /* The OIMM field in an SE_OIM5 instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 721) #define OIMM5 UI5 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 722) { 0x1f, PPC_OPSHIFT_INV, insert_oimm, extract_oimm, PPC_OPERAND_PLUS1 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 723)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 724) /* The UI7 field in an SE_LI instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 725) #define UI7 OIMM5 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 726) { 0x7f, 4, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 727)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 728) /* The VA field in a VA, VX or VXR form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 729) #define VA UI7 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 730) { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 731)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 732) /* The VB field in a VA, VX or VXR form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 733) #define VB VA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 734) { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 735)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 736) /* The VC field in a VA form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 737) #define VC VB + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 738) { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 739)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 740) /* The VD or VS field in a VA, VX, VXR or X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 741) #define VD VC + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 742) #define VS VD
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 743) { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 744)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 745) /* The SIMM field in a VX form instruction, and TE in Z form. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 746) #define SIMM VD + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 747) #define TE SIMM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 748) { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 749)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 750) /* The UIMM field in a VX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 751) #define UIMM SIMM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 752) #define DCTL UIMM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 753) { 0x1f, 16, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 754)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 755) /* The 3-bit UIMM field in a VX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 756) #define UIMM3 UIMM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 757) { 0x7, 16, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 758)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 759) /* The 6-bit UIM field in a X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 760) #define UIM6 UIMM3 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 761) { 0x3f, 16, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 762)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 763) /* The SIX field in a VX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 764) #define SIX UIM6 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 765) { 0xf, 11, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 766)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 767) /* The PS field in a VX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 768) #define PS SIX + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 769) { 0x1, 9, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 770)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 771) /* The SHB field in a VA form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 772) #define SHB PS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 773) { 0xf, 6, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 774)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 775) /* The other UIMM field in a half word EVX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 776) #define EVUIMM_2 SHB + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 777) { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 778)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 779) /* The other UIMM field in a word EVX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 780) #define EVUIMM_4 EVUIMM_2 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 781) { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 782)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 783) /* The other UIMM field in a double EVX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 784) #define EVUIMM_8 EVUIMM_4 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 785) { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 786)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 787) /* The WS or DRM field in an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 788) #define WS EVUIMM_8 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 789) #define DRM WS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 790) { 0x7, 11, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 791)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 792) /* PowerPC paired singles extensions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 793) /* W bit in the pair singles instructions for x type instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 794) #define PSWM WS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 795) /* The BO16 field in a BD8 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 796) #define BO16 PSWM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 797) { 0x1, 10, 0, 0, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 798)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 799) /* IDX bits for quantization in the pair singles instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 800) #define PSQ PSWM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 801) { 0x7, 12, 0, 0, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 802)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 803) /* IDX bits for quantization in the pair singles x-type instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 804) #define PSQM PSQ + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 805) { 0x7, 7, 0, 0, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 806)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 807) /* Smaller D field for quantization in the pair singles instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 808) #define PSD PSQM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 809) { 0xfff, 0, 0, 0, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 810)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 811) /* The L field in an mtmsrd or A form instruction or R or W in an X form. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 812) #define A_L PSD + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 813) #define W A_L
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 814) #define X_R A_L
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 815) { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 816)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 817) /* The RMC or CY field in a Z23 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 818) #define RMC A_L + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 819) #define CY RMC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 820) { 0x3, 9, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 821)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 822) #define R RMC + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 823) { 0x1, 16, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 824)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 825) #define RIC R + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 826) { 0x3, 18, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 827)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 828) #define PRS RIC + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 829) { 0x1, 17, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 830)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 831) #define SP PRS + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 832) { 0x3, 19, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 833)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 834) #define S SP + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 835) { 0x1, 20, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 836)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 837) /* The S field in a XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 838) #define SXL S + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 839) { 0x1, 11, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_OPTIONAL_VALUE},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 840) /* If the SXL operand is ommitted, use the value 1. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 841) { -1, 1, NULL, NULL, 0},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 842)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 843) /* SH field starting at bit position 16. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 844) #define SH16 SXL + 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 845) /* The DCM and DGM fields in a Z form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 846) #define DCM SH16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 847) #define DGM DCM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 848) { 0x3f, 10, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 849)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 850) /* The EH field in larx instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 851) #define EH SH16 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 852) { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 853)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 854) /* The L field in an mtfsf or XFL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 855) /* The A field in a HTM X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 856) #define XFL_L EH + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 857) #define HTM_A XFL_L
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 858) { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 859)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 860) /* Xilinx APU related masks and macros */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 861) #define FCRT XFL_L + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 862) #define FCRT_MASK (0x1f << 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 863) { 0x1f, 21, 0, 0, PPC_OPERAND_FCR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 864)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 865) /* Xilinx FSL related masks and macros */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 866) #define FSL FCRT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 867) #define FSL_MASK (0x1f << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 868) { 0x1f, 11, 0, 0, PPC_OPERAND_FSL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 869)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 870) /* Xilinx UDI related masks and macros */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 871) #define URT FSL + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 872) { 0x1f, 21, 0, 0, PPC_OPERAND_UDI },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 873)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 874) #define URA URT + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 875) { 0x1f, 16, 0, 0, PPC_OPERAND_UDI },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 876)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 877) #define URB URA + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 878) { 0x1f, 11, 0, 0, PPC_OPERAND_UDI },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 879)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 880) #define URC URB + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 881) { 0x1f, 6, 0, 0, PPC_OPERAND_UDI },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 882)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 883) /* The VLESIMM field in a D form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 884) #define VLESIMM URC + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 885) { 0xffff, PPC_OPSHIFT_INV, insert_vlesi, extract_vlesi,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 886) PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 887)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 888) /* The VLENSIMM field in a D form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 889) #define VLENSIMM VLESIMM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 890) { 0xffff, PPC_OPSHIFT_INV, insert_vlensi, extract_vlensi,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 891) PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 892)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 893) /* The VLEUIMM field in a D form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 894) #define VLEUIMM VLENSIMM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 895) { 0xffff, PPC_OPSHIFT_INV, insert_vleui, extract_vleui, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 896)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 897) /* The VLEUIMML field in a D form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 898) #define VLEUIMML VLEUIMM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 899) { 0xffff, PPC_OPSHIFT_INV, insert_vleil, extract_vleil, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 900)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 901) /* The XT and XS fields in an XX1 or XX3 form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 902) #define XS6 VLEUIMML + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 903) #define XT6 XS6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 904) { 0x3f, PPC_OPSHIFT_INV, insert_xt6, extract_xt6, PPC_OPERAND_VSR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 905)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 906) /* The XT and XS fields in an DQ form VSX instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 907) #define XSQ6 XT6 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 908) #define XTQ6 XSQ6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 909) { 0x3f, PPC_OPSHIFT_INV, insert_xtq6, extract_xtq6, PPC_OPERAND_VSR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 910)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 911) /* The XA field in an XX3 form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 912) #define XA6 XTQ6 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 913) { 0x3f, PPC_OPSHIFT_INV, insert_xa6, extract_xa6, PPC_OPERAND_VSR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 914)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 915) /* The XB field in an XX2 or XX3 form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 916) #define XB6 XA6 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 917) { 0x3f, PPC_OPSHIFT_INV, insert_xb6, extract_xb6, PPC_OPERAND_VSR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 918)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 919) /* The XB field in an XX3 form instruction when it must be the same as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 920) the XA field in the instruction. This is used in extended mnemonics
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 921) like xvmovdp. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 922) #define XB6S XB6 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 923) { 0x3f, PPC_OPSHIFT_INV, insert_xb6s, extract_xb6s, PPC_OPERAND_FAKE },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 924)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 925) /* The XC field in an XX4 form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 926) #define XC6 XB6S + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 927) { 0x3f, PPC_OPSHIFT_INV, insert_xc6, extract_xc6, PPC_OPERAND_VSR },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 928)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 929) /* The DM or SHW field in an XX3 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 930) #define DM XC6 + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 931) #define SHW DM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 932) { 0x3, 8, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 933)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 934) /* The DM field in an extended mnemonic XX3 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 935) #define DMEX DM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 936) { 0x3, 8, insert_dm, extract_dm, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 937)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 938) /* The UIM field in an XX2 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 939) #define UIM DMEX + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 940) /* The 2-bit UIMM field in a VX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 941) #define UIMM2 UIM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 942) /* The 2-bit L field in a darn instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 943) #define LRAND UIM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 944) { 0x3, 16, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 945)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 946) #define ERAT_T UIM + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 947) { 0x7, 21, NULL, NULL, 0 },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 948)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 949) #define IH ERAT_T + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 950) { 0x7, 21, NULL, NULL, PPC_OPERAND_OPTIONAL },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 951)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 952) /* The 8-bit IMM8 field in a XX1 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 953) #define IMM8 IH + 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 954) { 0xff, 11, NULL, NULL, PPC_OPERAND_SIGNOPT },
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 955) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 956)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 957) const unsigned int num_powerpc_operands = (sizeof (powerpc_operands)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 958) / sizeof (powerpc_operands[0]));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 959)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 960) /* The functions used to insert and extract complicated operands. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 961)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 962) /* The ARX, ARY, RX and RY operands are alternate encodings of GPRs. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 963)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 964) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 965) insert_arx (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 966) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 967) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 968) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 969) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 970) if (value >= 8 && value < 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 971) return insn | ((value - 8) & 0xf);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 972) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 973) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 974) *errmsg = _("invalid register");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 975) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 976) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 977) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 978)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 979) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 980) extract_arx (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 981) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 982) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 983) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 984) return (insn & 0xf) + 8;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 985) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 986)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 987) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 988) insert_ary (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 989) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 990) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 991) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 992) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 993) if (value >= 8 && value < 24)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 994) return insn | (((value - 8) & 0xf) << 4);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 995) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 996) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 997) *errmsg = _("invalid register");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 998) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 999) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1000) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1001)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1002) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1003) extract_ary (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1004) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1005) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1006) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1007) return ((insn >> 4) & 0xf) + 8;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1008) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1009)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1010) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1011) insert_rx (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1012) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1013) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1014) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1015) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1016) if (value >= 0 && value < 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1017) return insn | value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1018) else if (value >= 24 && value <= 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1019) return insn | (value - 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1020) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1021) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1022) *errmsg = _("invalid register");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1023) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1024) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1025) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1026)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1027) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1028) extract_rx (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1029) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1030) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1031) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1032) int value = insn & 0xf;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1033) if (value >= 0 && value < 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1034) return value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1035) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1036) return value + 16;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1037) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1038)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1039) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1040) insert_ry (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1041) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1042) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1043) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1044) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1045) if (value >= 0 && value < 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1046) return insn | (value << 4);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1047) else if (value >= 24 && value <= 31)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1048) return insn | ((value - 16) << 4);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1049) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1050) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1051) *errmsg = _("invalid register");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1052) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1053) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1054) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1055)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1056) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1057) extract_ry (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1058) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1059) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1060) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1061) int value = (insn >> 4) & 0xf;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1062) if (value >= 0 && value < 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1063) return value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1064) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1065) return value + 16;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1066) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1067)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1068) /* The BA field in an XL form instruction when it must be the same as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1069) the BT field in the same instruction. This operand is marked FAKE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1070) The insertion function just copies the BT field into the BA field,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1071) and the extraction function just checks that the fields are the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1072) same. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1073)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1074) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1075) insert_bat (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1076) long value ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1077) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1078) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1079) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1080) return insn | (((insn >> 21) & 0x1f) << 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1081) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1082)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1083) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1084) extract_bat (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1085) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1086) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1087) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1088) if (((insn >> 21) & 0x1f) != ((insn >> 16) & 0x1f))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1089) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1090) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1091) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1092)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1093) /* The BB field in an XL form instruction when it must be the same as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1094) the BA field in the same instruction. This operand is marked FAKE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1095) The insertion function just copies the BA field into the BB field,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1096) and the extraction function just checks that the fields are the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1097) same. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1098)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1099) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1100) insert_bba (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1101) long value ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1102) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1103) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1104) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1105) return insn | (((insn >> 16) & 0x1f) << 11);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1106) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1108) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1109) extract_bba (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1110) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1111) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1112) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1113) if (((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1114) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1115) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1116) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1118) /* The BD field in a B form instruction when the - modifier is used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1119) This modifier means that the branch is not expected to be taken.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1120) For chips built to versions of the architecture prior to version 2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1121) (ie. not Power4 compatible), we set the y bit of the BO field to 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1122) if the offset is negative. When extracting, we require that the y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1123) bit be 1 and that the offset be positive, since if the y bit is 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1124) we just want to print the normal form of the instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1125) Power4 compatible targets use two bits, "a", and "t", instead of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1126) the "y" bit. "at" == 00 => no hint, "at" == 01 => unpredictable,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1127) "at" == 10 => not taken, "at" == 11 => taken. The "t" bit is 00001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1128) in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1129) for branch on CTR. We only handle the taken/not-taken hint here.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1130) Note that we don't relax the conditions tested here when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1131) disassembling with -Many because insns using extract_bdm and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1132) extract_bdp always occur in pairs. One or the other will always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1133) be valid. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1134)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1135) #define ISA_V2 (PPC_OPCODE_POWER4 | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1137) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1138) insert_bdm (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1139) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1140) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1141) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1142) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1143) if ((dialect & ISA_V2) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1144) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1145) if ((value & 0x8000) != 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1146) insn |= 1 << 21;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1147) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1148) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1149) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1150) if ((insn & (0x14 << 21)) == (0x04 << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1151) insn |= 0x02 << 21;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1152) else if ((insn & (0x14 << 21)) == (0x10 << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1153) insn |= 0x08 << 21;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1154) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1155) return insn | (value & 0xfffc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1156) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1158) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1159) extract_bdm (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1160) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1161) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1162) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1163) if ((dialect & ISA_V2) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1164) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1165) if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1166) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1167) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1168) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1169) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1170) if ((insn & (0x17 << 21)) != (0x06 << 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1171) && (insn & (0x1d << 21)) != (0x18 << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1172) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1173) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1174)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1175) return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1176) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1178) /* The BD field in a B form instruction when the + modifier is used.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1179) This is like BDM, above, except that the branch is expected to be
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1180) taken. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1182) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1183) insert_bdp (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1184) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1185) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1186) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1187) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1188) if ((dialect & ISA_V2) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1189) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1190) if ((value & 0x8000) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1191) insn |= 1 << 21;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1192) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1193) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1194) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1195) if ((insn & (0x14 << 21)) == (0x04 << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1196) insn |= 0x03 << 21;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1197) else if ((insn & (0x14 << 21)) == (0x10 << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1198) insn |= 0x09 << 21;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1199) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1200) return insn | (value & 0xfffc);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1201) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1202)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1203) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1204) extract_bdp (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1205) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1206) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1207) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1208) if ((dialect & ISA_V2) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1209) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1210) if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1211) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1212) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1213) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1214) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1215) if ((insn & (0x17 << 21)) != (0x07 << 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1216) && (insn & (0x1d << 21)) != (0x19 << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1217) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1218) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1219)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1220) return ((insn & 0xfffc) ^ 0x8000) - 0x8000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1221) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1222)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1223) static inline int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1224) valid_bo_pre_v2 (long value)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1225) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1226) /* Certain encodings have bits that are required to be zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1227) These are (z must be zero, y may be anything):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1228) 0000y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1229) 0001y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1230) 001zy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1231) 0100y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1232) 0101y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1233) 011zy
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1234) 1z00y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1235) 1z01y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1236) 1z1zz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1237) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1238) if ((value & 0x14) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1239) return 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1240) else if ((value & 0x14) == 0x4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1241) return (value & 0x2) == 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1242) else if ((value & 0x14) == 0x10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1243) return (value & 0x8) == 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1244) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1245) return value == 0x14;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1246) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1247)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1248) static inline int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1249) valid_bo_post_v2 (long value)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1250) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1251) /* Certain encodings have bits that are required to be zero.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1252) These are (z must be zero, a & t may be anything):
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1253) 0000z
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1254) 0001z
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1255) 001at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1256) 0100z
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1257) 0101z
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1258) 011at
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1259) 1a00t
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1260) 1a01t
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1261) 1z1zz
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1262) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1263) if ((value & 0x14) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1264) return (value & 0x1) == 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1265) else if ((value & 0x14) == 0x14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1266) return value == 0x14;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1267) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1268) return 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1269) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1270)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1271) /* Check for legal values of a BO field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1272)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1273) static int
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1274) valid_bo (long value, ppc_cpu_t dialect, int extract)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1275) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1276) int valid_y = valid_bo_pre_v2 (value);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1277) int valid_at = valid_bo_post_v2 (value);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1278)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1279) /* When disassembling with -Many, accept either encoding on the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1280) second pass through opcodes. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1281) if (extract && dialect == ~(ppc_cpu_t) PPC_OPCODE_ANY)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1282) return valid_y || valid_at;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1283) if ((dialect & ISA_V2) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1284) return valid_y;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1285) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1286) return valid_at;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1287) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1288)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1289) /* The BO field in a B form instruction. Warn about attempts to set
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1290) the field to an illegal value. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1291)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1292) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1293) insert_bo (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1294) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1295) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1296) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1297) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1298) if (!valid_bo (value, dialect, 0))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1299) *errmsg = _("invalid conditional option");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1300) else if (PPC_OP (insn) == 19 && (insn & 0x400) && ! (value & 4))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1301) *errmsg = _("invalid counter access");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1302) return insn | ((value & 0x1f) << 21);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1303) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1304)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1305) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1306) extract_bo (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1307) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1308) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1309) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1310) long value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1311)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1312) value = (insn >> 21) & 0x1f;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1313) if (!valid_bo (value, dialect, 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1314) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1315) return value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1316) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1317)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1318) /* The BO field in a B form instruction when the + or - modifier is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1319) used. This is like the BO field, but it must be even. When
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1320) extracting it, we force it to be even. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1321)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1322) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1323) insert_boe (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1324) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1325) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1326) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1327) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1328) if (!valid_bo (value, dialect, 0))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1329) *errmsg = _("invalid conditional option");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1330) else if (PPC_OP (insn) == 19 && (insn & 0x400) && ! (value & 4))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1331) *errmsg = _("invalid counter access");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1332) else if ((value & 1) != 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1333) *errmsg = _("attempt to set y bit when using + or - modifier");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1334)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1335) return insn | ((value & 0x1f) << 21);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1336) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1338) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1339) extract_boe (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1340) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1341) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1342) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1343) long value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1344)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1345) value = (insn >> 21) & 0x1f;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1346) if (!valid_bo (value, dialect, 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1347) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1348) return value & 0x1e;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1349) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1350)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1351) /* The DCMX field in a X form instruction when the field is split
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1352) into separate DC, DM and DX fields. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1353)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1354) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1355) insert_dcmxs (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1356) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1357) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1358) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1359) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1360) return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3) | (value & 0x40);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1361) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1362)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1363) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1364) extract_dcmxs (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1365) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1366) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1367) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1368) return (insn & 0x40) | ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1369) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1370)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1371) /* The D field in a DX form instruction when the field is split
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1372) into separate D0, D1 and D2 fields. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1373)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1374) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1375) insert_dxd (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1376) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1377) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1378) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1379) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1380) return insn | (value & 0xffc1) | ((value & 0x3e) << 15);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1381) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1382)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1383) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1384) extract_dxd (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1385) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1386) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1387) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1388) unsigned long dxd = (insn & 0xffc1) | ((insn >> 15) & 0x3e);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1389) return (dxd ^ 0x8000) - 0x8000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1390) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1391)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1392) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1393) insert_dxdn (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1394) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1395) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1396) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1397) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1398) return insert_dxd (insn, -value, dialect, errmsg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1399) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1401) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1402) extract_dxdn (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1403) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1404) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1405) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1406) return -extract_dxd (insn, dialect, invalid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1407) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1408)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1409) /* FXM mask in mfcr and mtcrf instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1410)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1411) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1412) insert_fxm (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1413) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1414) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1415) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1416) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1417) /* If we're handling the mfocrf and mtocrf insns ensure that exactly
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1418) one bit of the mask field is set. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1419) if ((insn & (1 << 20)) != 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1420) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1421) if (value == 0 || (value & -value) != value)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1422) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1423) *errmsg = _("invalid mask field");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1424) value = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1425) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1426) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1427)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1428) /* If only one bit of the FXM field is set, we can use the new form
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1429) of the instruction, which is faster. Unlike the Power4 branch hint
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1430) encoding, this is not backward compatible. Do not generate the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1431) new form unless -mpower4 has been given, or -many and the two
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1432) operand form of mfcr was used. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1433) else if (value > 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1434) && (value & -value) == value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1435) && ((dialect & PPC_OPCODE_POWER4) != 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1436) || ((dialect & PPC_OPCODE_ANY) != 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1437) && (insn & (0x3ff << 1)) == 19 << 1)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1438) insn |= 1 << 20;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1439)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1440) /* Any other value on mfcr is an error. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1441) else if ((insn & (0x3ff << 1)) == 19 << 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1442) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1443) /* A value of -1 means we used the one operand form of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1444) mfcr which is valid. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1445) if (value != -1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1446) *errmsg = _("invalid mfcr mask");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1447) value = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1448) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1449)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1450) return insn | ((value & 0xff) << 12);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1451) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1452)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1453) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1454) extract_fxm (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1455) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1456) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1457) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1458) long mask = (insn >> 12) & 0xff;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1459)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1460) /* Is this a Power4 insn? */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1461) if ((insn & (1 << 20)) != 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1462) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1463) /* Exactly one bit of MASK should be set. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1464) if (mask == 0 || (mask & -mask) != mask)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1465) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1466) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1467)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1468) /* Check that non-power4 form of mfcr has a zero MASK. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1469) else if ((insn & (0x3ff << 1)) == 19 << 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1470) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1471) if (mask != 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1472) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1473) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1474) mask = -1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1475) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1476)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1477) return mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1478) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1479)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1480) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1481) insert_li20 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1482) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1483) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1484) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1485) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1486) return insn | ((value & 0xf0000) >> 5) | ((value & 0x0f800) << 5) | (value & 0x7ff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1487) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1488)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1489) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1490) extract_li20 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1491) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1492) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1493) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1494) long ext = ((insn & 0x4000) == 0x4000) ? 0xfff00000 : 0x00000000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1495)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1496) return ext
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1497) | (((insn >> 11) & 0xf) << 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1498) | (((insn >> 17) & 0xf) << 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1499) | (((insn >> 16) & 0x1) << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1500) | (insn & 0x7ff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1501) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1502)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1503) /* The 2-bit L field in a SYNC or WC field in a WAIT instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1504) For SYNC, some L values are reserved:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1505) * Value 3 is reserved on newer server cpus.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1506) * Values 2 and 3 are reserved on all other cpus. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1507)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1508) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1509) insert_ls (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1510) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1511) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1512) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1513) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1514) /* For SYNC, some L values are illegal. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1515) if (((insn >> 1) & 0x3ff) == 598)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1516) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1517) long max_lvalue = (dialect & PPC_OPCODE_POWER4) ? 2 : 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1518) if (value > max_lvalue)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1519) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1520) *errmsg = _("illegal L operand value");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1521) return insn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1522) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1523) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1524)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1525) return insn | ((value & 0x3) << 21);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1526) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1527)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1528) /* The 4-bit E field in a sync instruction that accepts 2 operands.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1529) If ESYNC is non-zero, then the L field must be either 0 or 1 and
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1530) the complement of ESYNC-bit2. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1531)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1532) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1533) insert_esync (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1534) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1535) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1536) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1537) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1538) unsigned long ls = (insn >> 21) & 0x03;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1539)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1540) if (value == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1541) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1542) if (((dialect & PPC_OPCODE_E6500) != 0 && ls > 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1543) || ((dialect & PPC_OPCODE_POWER9) != 0 && ls > 2))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1544) *errmsg = _("illegal L operand value");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1545) return insn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1546) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1547)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1548) if ((ls & ~0x1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1549) || (((value >> 1) & 0x1) ^ ls) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1550) *errmsg = _("incompatible L operand value");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1551)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1552) return insn | ((value & 0xf) << 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1553) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1554)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1555) /* The MB and ME fields in an M form instruction expressed as a single
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1556) operand which is itself a bitmask. The extraction function always
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1557) marks it as invalid, since we never want to recognize an
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1558) instruction which uses a field of this type. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1559)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1560) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1561) insert_mbe (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1562) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1563) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1564) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1565) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1566) unsigned long uval, mask;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1567) int mb, me, mx, count, last;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1568)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1569) uval = value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1570)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1571) if (uval == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1572) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1573) *errmsg = _("illegal bitmask");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1574) return insn;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1575) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1576)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1577) mb = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1578) me = 32;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1579) if ((uval & 1) != 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1580) last = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1581) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1582) last = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1583) count = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1584)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1585) /* mb: location of last 0->1 transition */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1586) /* me: location of last 1->0 transition */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1587) /* count: # transitions */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1588)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1589) for (mx = 0, mask = 1L << 31; mx < 32; ++mx, mask >>= 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1590) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1591) if ((uval & mask) && !last)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1592) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1593) ++count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1594) mb = mx;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1595) last = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1596) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1597) else if (!(uval & mask) && last)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1598) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1599) ++count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1600) me = mx;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1601) last = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1602) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1603) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1604) if (me == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1605) me = 32;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1606)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1607) if (count != 2 && (count != 0 || ! last))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1608) *errmsg = _("illegal bitmask");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1609)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1610) return insn | (mb << 6) | ((me - 1) << 1);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1611) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1612)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1613) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1614) extract_mbe (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1615) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1616) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1617) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1618) long ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1619) int mb, me;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1620) int i;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1621)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1622) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1623)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1624) mb = (insn >> 6) & 0x1f;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1625) me = (insn >> 1) & 0x1f;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1626) if (mb < me + 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1627) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1628) ret = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1629) for (i = mb; i <= me; i++)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1630) ret |= 1L << (31 - i);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1631) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1632) else if (mb == me + 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1633) ret = ~0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1634) else /* (mb > me + 1) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1635) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1636) ret = ~0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1637) for (i = me + 1; i < mb; i++)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1638) ret &= ~(1L << (31 - i));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1639) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1640) return ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1641) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1642)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1643) /* The MB or ME field in an MD or MDS form instruction. The high bit
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1644) is wrapped to the low end. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1645)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1646) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1647) insert_mb6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1648) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1649) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1650) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1651) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1652) return insn | ((value & 0x1f) << 6) | (value & 0x20);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1653) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1654)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1655) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1656) extract_mb6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1657) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1658) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1659) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1660) return ((insn >> 6) & 0x1f) | (insn & 0x20);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1661) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1662)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1663) /* The NB field in an X form instruction. The value 32 is stored as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1664) 0. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1665)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1666) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1667) extract_nb (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1668) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1669) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1670) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1671) long ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1672)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1673) ret = (insn >> 11) & 0x1f;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1674) if (ret == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1675) ret = 32;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1676) return ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1677) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1678)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1679) /* The NB field in an lswi instruction, which has special value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1680) restrictions. The value 32 is stored as 0. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1681)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1682) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1683) insert_nbi (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1684) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1685) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1686) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1687) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1688) long rtvalue = (insn & RT_MASK) >> 21;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1689) long ravalue = (insn & RA_MASK) >> 16;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1690)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1691) if (value == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1692) value = 32;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1693) if (rtvalue + (value + 3) / 4 > (rtvalue > ravalue ? ravalue + 32
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1694) : ravalue))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1695) *errmsg = _("address register in load range");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1696) return insn | ((value & 0x1f) << 11);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1697) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1698)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1699) /* The NSI field in a D form instruction. This is the same as the SI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1700) field, only negated. The extraction function always marks it as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1701) invalid, since we never want to recognize an instruction which uses
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1702) a field of this type. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1703)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1704) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1705) insert_nsi (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1706) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1707) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1708) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1709) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1710) return insn | (-value & 0xffff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1711) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1712)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1713) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1714) extract_nsi (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1715) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1716) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1717) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1718) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1719) return -(((insn & 0xffff) ^ 0x8000) - 0x8000);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1720) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1721)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1722) /* The RA field in a D or X form instruction which is an updating
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1723) load, which means that the RA field may not be zero and may not
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1724) equal the RT field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1725)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1726) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1727) insert_ral (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1728) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1729) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1730) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1731) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1732) if (value == 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1733) || (unsigned long) value == ((insn >> 21) & 0x1f))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1734) *errmsg = "invalid register operand when updating";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1735) return insn | ((value & 0x1f) << 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1736) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1737)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1738) /* The RA field in an lmw instruction, which has special value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1739) restrictions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1740)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1741) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1742) insert_ram (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1743) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1744) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1745) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1746) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1747) if ((unsigned long) value >= ((insn >> 21) & 0x1f))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1748) *errmsg = _("index register in load range");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1749) return insn | ((value & 0x1f) << 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1750) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1751)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1752) /* The RA field in the DQ form lq or an lswx instruction, which have special
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1753) value restrictions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1754)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1755) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1756) insert_raq (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1757) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1758) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1759) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1760) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1761) long rtvalue = (insn & RT_MASK) >> 21;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1762)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1763) if (value == rtvalue)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1764) *errmsg = _("source and target register operands must be different");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1765) return insn | ((value & 0x1f) << 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1766) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1767)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1768) /* The RA field in a D or X form instruction which is an updating
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1769) store or an updating floating point load, which means that the RA
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1770) field may not be zero. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1771)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1772) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1773) insert_ras (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1774) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1775) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1776) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1777) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1778) if (value == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1779) *errmsg = _("invalid register operand when updating");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1780) return insn | ((value & 0x1f) << 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1781) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1782)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1783) /* The RB field in an X form instruction when it must be the same as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1784) the RS field in the instruction. This is used for extended
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1785) mnemonics like mr. This operand is marked FAKE. The insertion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1786) function just copies the BT field into the BA field, and the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1787) extraction function just checks that the fields are the same. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1788)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1789) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1790) insert_rbs (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1791) long value ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1792) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1793) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1794) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1795) return insn | (((insn >> 21) & 0x1f) << 11);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1796) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1797)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1798) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1799) extract_rbs (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1800) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1801) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1802) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1803) if (((insn >> 21) & 0x1f) != ((insn >> 11) & 0x1f))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1804) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1805) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1806) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1807)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1808) /* The RB field in an lswx instruction, which has special value
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1809) restrictions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1810)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1811) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1812) insert_rbx (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1813) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1814) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1815) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1816) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1817) long rtvalue = (insn & RT_MASK) >> 21;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1818)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1819) if (value == rtvalue)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1820) *errmsg = _("source and target register operands must be different");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1821) return insn | ((value & 0x1f) << 11);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1822) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1823)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1824) /* The SCI8 field is made up of SCL and {U,N}I8 fields. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1825) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1826) insert_sci8 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1827) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1828) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1829) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1830) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1831) unsigned int fill_scale = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1832) unsigned long ui8 = value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1833)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1834) if ((ui8 & 0xffffff00) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1835) ;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1836) else if ((ui8 & 0xffffff00) == 0xffffff00)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1837) fill_scale = 0x400;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1838) else if ((ui8 & 0xffff00ff) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1839) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1840) fill_scale = 1 << 8;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1841) ui8 >>= 8;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1842) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1843) else if ((ui8 & 0xffff00ff) == 0xffff00ff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1844) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1845) fill_scale = 0x400 | (1 << 8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1846) ui8 >>= 8;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1847) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1848) else if ((ui8 & 0xff00ffff) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1849) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1850) fill_scale = 2 << 8;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1851) ui8 >>= 16;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1852) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1853) else if ((ui8 & 0xff00ffff) == 0xff00ffff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1854) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1855) fill_scale = 0x400 | (2 << 8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1856) ui8 >>= 16;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1857) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1858) else if ((ui8 & 0x00ffffff) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1859) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1860) fill_scale = 3 << 8;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1861) ui8 >>= 24;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1862) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1863) else if ((ui8 & 0x00ffffff) == 0x00ffffff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1864) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1865) fill_scale = 0x400 | (3 << 8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1866) ui8 >>= 24;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1867) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1868) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1869) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1870) *errmsg = _("illegal immediate value");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1871) ui8 = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1872) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1873)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1874) return insn | fill_scale | (ui8 & 0xff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1875) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1876)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1877) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1878) extract_sci8 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1879) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1880) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1881) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1882) int fill = insn & 0x400;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1883) int scale_factor = (insn & 0x300) >> 5;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1884) long value = (insn & 0xff) << scale_factor;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1885)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1886) if (fill != 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1887) value |= ~((long) 0xff << scale_factor);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1888) return value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1889) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1890)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1891) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1892) insert_sci8n (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1893) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1894) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1895) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1896) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1897) return insert_sci8 (insn, -value, dialect, errmsg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1898) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1899)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1900) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1901) extract_sci8n (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1902) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1903) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1904) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1905) return -extract_sci8 (insn, dialect, invalid);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1906) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1907)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1908) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1909) insert_sd4h (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1910) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1911) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1912) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1913) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1914) return insn | ((value & 0x1e) << 7);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1915) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1916)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1917) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1918) extract_sd4h (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1919) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1920) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1921) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1922) return ((insn >> 8) & 0xf) << 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1923) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1924)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1925) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1926) insert_sd4w (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1927) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1928) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1929) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1930) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1931) return insn | ((value & 0x3c) << 6);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1932) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1933)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1934) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1935) extract_sd4w (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1936) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1937) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1938) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1939) return ((insn >> 8) & 0xf) << 2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1940) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1941)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1942) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1943) insert_oimm (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1944) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1945) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1946) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1947) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1948) return insn | (((value - 1) & 0x1f) << 4);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1949) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1950)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1951) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1952) extract_oimm (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1953) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1954) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1955) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1956) return ((insn >> 4) & 0x1f) + 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1957) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1958)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1959) /* The SH field in an MD form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1960)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1961) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1962) insert_sh6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1963) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1964) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1965) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1966) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1967) /* SH6 operand in the rldixor instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1968) if (PPC_OP (insn) == 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1969) return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 5);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1970) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1971) return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1972) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1973)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1974) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1975) extract_sh6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1976) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1977) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1978) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1979) /* SH6 operand in the rldixor instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1980) if (PPC_OP (insn) == 4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1981) return ((insn >> 6) & 0x1f) | ((insn << 5) & 0x20);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1982) else
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1983) return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1984) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1985)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1986) /* The SPR field in an XFX form instruction. This is flipped--the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1987) lower 5 bits are stored in the upper 5 and vice- versa. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1988)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1989) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1990) insert_spr (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1991) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1992) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1993) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1994) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1995) return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1996) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1997)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1998) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1999) extract_spr (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2000) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2001) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2002) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2003) return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2004) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2005)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2006) /* Some dialects have 8 SPRG registers instead of the standard 4. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2007) #define ALLOW8_SPRG (PPC_OPCODE_BOOKE | PPC_OPCODE_405)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2008)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2009) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2010) insert_sprg (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2011) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2012) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2013) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2014) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2015) if (value > 7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2016) || (value > 3 && (dialect & ALLOW8_SPRG) == 0))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2017) *errmsg = _("invalid sprg number");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2018)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2019) /* If this is mfsprg4..7 then use spr 260..263 which can be read in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2020) user mode. Anything else must use spr 272..279. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2021) if (value <= 3 || (insn & 0x100) != 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2022) value |= 0x10;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2023)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2024) return insn | ((value & 0x17) << 16);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2025) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2026)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2027) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2028) extract_sprg (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2029) ppc_cpu_t dialect,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2030) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2031) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2032) unsigned long val = (insn >> 16) & 0x1f;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2033)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2034) /* mfsprg can use 260..263 and 272..279. mtsprg only uses spr 272..279
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2035) If not BOOKE, 405 or VLE, then both use only 272..275. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2036) if ((val - 0x10 > 3 && (dialect & ALLOW8_SPRG) == 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2037) || (val - 0x10 > 7 && (insn & 0x100) != 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2038) || val <= 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2039) || (val & 8) != 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2040) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2041) return val & 7;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2042) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2043)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2044) /* The TBR field in an XFX instruction. This is just like SPR, but it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2045) is optional. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2046)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2047) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2048) insert_tbr (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2049) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2050) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2051) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2052) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2053) if (value != 268 && value != 269)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2054) *errmsg = _("invalid tbr number");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2055) return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2056) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2057)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2058) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2059) extract_tbr (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2060) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2061) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2062) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2063) long ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2064)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2065) ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2066) if (ret != 268 && ret != 269)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2067) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2068) return ret;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2069) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2070)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2071) /* The XT and XS fields in an XX1 or XX3 form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2072)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2073) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2074) insert_xt6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2075) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2076) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2077) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2078) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2079) return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 5);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2080) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2081)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2082) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2083) extract_xt6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2084) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2085) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2086) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2087) return ((insn << 5) & 0x20) | ((insn >> 21) & 0x1f);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2088) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2089)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2090) /* The XT and XS fields in an DQ form VSX instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2091) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2092) insert_xtq6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2093) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2094) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2095) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2096) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2097) return insn | ((value & 0x1f) << 21) | ((value & 0x20) >> 2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2098) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2099)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2100) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2101) extract_xtq6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2102) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2103) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2104) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2105) return ((insn << 2) & 0x20) | ((insn >> 21) & 0x1f);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2106) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2108) /* The XA field in an XX3 form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2110) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2111) insert_xa6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2112) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2113) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2114) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2115) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2116) return insn | ((value & 0x1f) << 16) | ((value & 0x20) >> 3);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2117) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2119) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2120) extract_xa6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2121) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2122) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2123) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2124) return ((insn << 3) & 0x20) | ((insn >> 16) & 0x1f);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2125) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2127) /* The XB field in an XX3 form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2128)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2129) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2130) insert_xb6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2131) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2132) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2133) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2134) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2135) return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2136) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2137)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2138) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2139) extract_xb6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2140) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2141) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2142) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2143) return ((insn << 4) & 0x20) | ((insn >> 11) & 0x1f);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2144) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2146) /* The XB field in an XX3 form instruction when it must be the same as
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2147) the XA field in the instruction. This is used for extended
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2148) mnemonics like xvmovdp. This operand is marked FAKE. The insertion
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2149) function just copies the XA field into the XB field, and the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2150) extraction function just checks that the fields are the same. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2152) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2153) insert_xb6s (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2154) long value ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2155) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2156) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2157) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2158) return insn | (((insn >> 16) & 0x1f) << 11) | (((insn >> 2) & 0x1) << 1);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2159) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2160)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2161) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2162) extract_xb6s (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2163) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2164) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2165) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2166) if ((((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2167) || (((insn >> 2) & 0x1) != ((insn >> 1) & 0x1)))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2168) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2169) return 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2170) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2171)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2172) /* The XC field in an XX4 form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2174) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2175) insert_xc6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2176) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2177) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2178) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2179) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2180) return insn | ((value & 0x1f) << 6) | ((value & 0x20) >> 2);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2181) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2183) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2184) extract_xc6 (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2185) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2186) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2187) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2188) return ((insn << 2) & 0x20) | ((insn >> 6) & 0x1f);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2189) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2191) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2192) insert_dm (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2193) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2194) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2195) const char **errmsg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2196) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2197) if (value != 0 && value != 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2198) *errmsg = _("invalid constant");
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2199) return insn | (((value) ? 3 : 0) << 8);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2200) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2201)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2202) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2203) extract_dm (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2204) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2205) int *invalid)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2206) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2207) long value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2208)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2209) value = (insn >> 8) & 3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2210) if (value != 0 && value != 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2211) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2212) return (value) ? 1 : 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2213) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2215) /* The VLESIMM field in an I16A form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2216)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2217) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2218) insert_vlesi (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2219) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2220) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2221) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2222) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2223) return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2224) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2225)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2226) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2227) extract_vlesi (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2228) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2229) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2230) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2231) long value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2232) value = (value ^ 0x8000) - 0x8000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2233) return value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2234) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2236) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2237) insert_vlensi (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2238) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2239) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2240) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2241) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2242) value = -value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2243) return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2244) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2245) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2246) extract_vlensi (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2247) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2248) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2249) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2250) long value = ((insn >> 10) & 0xf800) | (insn & 0x7ff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2251) value = (value ^ 0x8000) - 0x8000;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2252) /* Don't use for disassembly. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2253) *invalid = 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2254) return -value;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2255) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2256)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2257) /* The VLEUIMM field in an I16A form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2258)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2259) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2260) insert_vleui (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2261) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2262) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2263) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2264) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2265) return insn | ((value & 0xf800) << 10) | (value & 0x7ff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2266) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2267)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2268) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2269) extract_vleui (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2270) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2271) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2272) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2273) return ((insn >> 10) & 0xf800) | (insn & 0x7ff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2274) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2275)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2276) /* The VLEUIMML field in an I16L form instruction. This is split. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2277)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2278) static unsigned long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2279) insert_vleil (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2280) long value,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2281) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2282) const char **errmsg ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2283) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2284) return insn | ((value & 0xf800) << 5) | (value & 0x7ff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2285) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2286)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2287) static long
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2288) extract_vleil (unsigned long insn,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2289) ppc_cpu_t dialect ATTRIBUTE_UNUSED,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2290) int *invalid ATTRIBUTE_UNUSED)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2291) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2292) return ((insn >> 5) & 0xf800) | (insn & 0x7ff);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2293) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2294)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2295)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2296) /* Macros used to form opcodes. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2297)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2298) /* The main opcode. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2299) #define OP(x) ((((unsigned long)(x)) & 0x3f) << 26)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2300) #define OP_MASK OP (0x3f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2301)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2302) /* The main opcode combined with a trap code in the TO field of a D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2303) form instruction. Used for extended mnemonics for the trap
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2304) instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2305) #define OPTO(x,to) (OP (x) | ((((unsigned long)(to)) & 0x1f) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2306) #define OPTO_MASK (OP_MASK | TO_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2307)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2308) /* The main opcode combined with a comparison size bit in the L field
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2309) of a D form or X form instruction. Used for extended mnemonics for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2310) the comparison instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2311) #define OPL(x,l) (OP (x) | ((((unsigned long)(l)) & 1) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2312) #define OPL_MASK OPL (0x3f,1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2313)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2314) /* The main opcode combined with an update code in D form instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2315) Used for extended mnemonics for VLE memory instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2316) #define OPVUP(x,vup) (OP (x) | ((((unsigned long)(vup)) & 0xff) << 8))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2317) #define OPVUP_MASK OPVUP (0x3f, 0xff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2318)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2319) /* The main opcode combined with an update code and the RT fields specified in
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2320) D form instruction. Used for VLE volatile context save/restore
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2321) instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2322) #define OPVUPRT(x,vup,rt) (OPVUP (x, vup) | ((((unsigned long)(rt)) & 0x1f) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2323) #define OPVUPRT_MASK OPVUPRT (0x3f, 0xff, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2324)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2325) /* An A form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2326) #define A(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1) | (((unsigned long)(rc)) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2327) #define A_MASK A (0x3f, 0x1f, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2328)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2329) /* An A_MASK with the FRB field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2330) #define AFRB_MASK (A_MASK | FRB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2331)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2332) /* An A_MASK with the FRC field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2333) #define AFRC_MASK (A_MASK | FRC_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2334)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2335) /* An A_MASK with the FRA and FRC fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2336) #define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2338) /* An AFRAFRC_MASK, but with L bit clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2339) #define AFRALFRC_MASK (AFRAFRC_MASK & ~((unsigned long) 1 << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2340)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2341) /* A B form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2342) #define B(op, aa, lk) (OP (op) | ((((unsigned long)(aa)) & 1) << 1) | ((lk) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2343) #define B_MASK B (0x3f, 1, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2344)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2345) /* A BD8 form instruction. This is a 16-bit instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2346) #define BD8(op, aa, lk) (((((unsigned long)(op)) & 0x3f) << 10) | (((aa) & 1) << 9) | (((lk) & 1) << 8))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2347) #define BD8_MASK BD8 (0x3f, 1, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2348)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2349) /* Another BD8 form instruction. This is a 16-bit instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2350) #define BD8IO(op) ((((unsigned long)(op)) & 0x1f) << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2351) #define BD8IO_MASK BD8IO (0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2352)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2353) /* A BD8 form instruction for simplified mnemonics. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2354) #define EBD8IO(op, bo, bi) (BD8IO ((op)) | ((bo) << 10) | ((bi) << 8))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2355) /* A mask that excludes BO32 and BI32. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2356) #define EBD8IO1_MASK 0xf800
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2357) /* A mask that includes BO32 and excludes BI32. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2358) #define EBD8IO2_MASK 0xfc00
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2359) /* A mask that include BO32 AND BI32. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2360) #define EBD8IO3_MASK 0xff00
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2361)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2362) /* A BD15 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2363) #define BD15(op, aa, lk) (OP (op) | ((((unsigned long)(aa)) & 0xf) << 22) | ((lk) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2364) #define BD15_MASK BD15 (0x3f, 0xf, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2365)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2366) /* A BD15 form instruction for extended conditional branch mnemonics. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2367) #define EBD15(op, aa, bo, lk) (((op) & 0x3f) << 26) | (((aa) & 0xf) << 22) | (((bo) & 0x3) << 20) | ((lk) & 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2368) #define EBD15_MASK 0xfff00001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2369)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2370) /* A BD15 form instruction for extended conditional branch mnemonics with BI. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2371) #define EBD15BI(op, aa, bo, bi, lk) (((op) & 0x3f) << 26) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2372) | (((aa) & 0xf) << 22) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2373) | (((bo) & 0x3) << 20) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2374) | (((bi) & 0x3) << 16) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2375) | ((lk) & 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2376) #define EBD15BI_MASK 0xfff30001
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2377)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2378) /* A BD24 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2379) #define BD24(op, aa, lk) (OP (op) | ((((unsigned long)(aa)) & 1) << 25) | ((lk) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2380) #define BD24_MASK BD24 (0x3f, 1, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2381)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2382) /* A B form instruction setting the BO field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2383) #define BBO(op, bo, aa, lk) (B ((op), (aa), (lk)) | ((((unsigned long)(bo)) & 0x1f) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2384) #define BBO_MASK BBO (0x3f, 0x1f, 1, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2385)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2386) /* A BBO_MASK with the y bit of the BO field removed. This permits
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2387) matching a conditional branch regardless of the setting of the y
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2388) bit. Similarly for the 'at' bits used for power4 branch hints. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2389) #define Y_MASK (((unsigned long) 1) << 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2390) #define AT1_MASK (((unsigned long) 3) << 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2391) #define AT2_MASK (((unsigned long) 9) << 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2392) #define BBOY_MASK (BBO_MASK &~ Y_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2393) #define BBOAT_MASK (BBO_MASK &~ AT1_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2394)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2395) /* A B form instruction setting the BO field and the condition bits of
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2396) the BI field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2397) #define BBOCB(op, bo, cb, aa, lk) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2398) (BBO ((op), (bo), (aa), (lk)) | ((((unsigned long)(cb)) & 0x3) << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2399) #define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2401) /* A BBOCB_MASK with the y bit of the BO field removed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2402) #define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2403) #define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2404) #define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2405)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2406) /* A BBOYCB_MASK in which the BI field is fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2407) #define BBOYBI_MASK (BBOYCB_MASK | BI_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2408) #define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2409)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2410) /* A VLE C form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2411) #define C_LK(x, lk) (((((unsigned long)(x)) & 0x7fff) << 1) | ((lk) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2412) #define C_LK_MASK C_LK(0x7fff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2413) #define C(x) ((((unsigned long)(x)) & 0xffff))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2414) #define C_MASK C(0xffff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2415)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2416) /* An Context form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2417) #define CTX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2418) #define CTX_MASK CTX(0x3f, 0x7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2419)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2420) /* A User Context form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2421) #define UCTX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2422) #define UCTX_MASK UCTX(0x3f, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2423)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2424) /* The main opcode mask with the RA field clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2425) #define DRA_MASK (OP_MASK | RA_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2426)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2427) /* A DQ form VSX instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2428) #define DQX(op, xop) (OP (op) | ((xop) & 0x7))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2429) #define DQX_MASK DQX (0x3f, 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2430)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2431) /* A DS form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2432) #define DSO(op, xop) (OP (op) | ((xop) & 0x3))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2433) #define DS_MASK DSO (0x3f, 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2434)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2435) /* An DX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2436) #define DX(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2437) #define DX_MASK DX (0x3f, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2438)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2439) /* An EVSEL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2440) #define EVSEL(op, xop) (OP (op) | (((unsigned long)(xop)) & 0xff) << 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2441) #define EVSEL_MASK EVSEL(0x3f, 0xff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2442)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2443) /* An IA16 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2444) #define IA16(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f) << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2445) #define IA16_MASK IA16(0x3f, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2446)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2447) /* An I16A form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2448) #define I16A(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f) << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2449) #define I16A_MASK I16A(0x3f, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2450)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2451) /* An I16L form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2452) #define I16L(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f) << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2453) #define I16L_MASK I16L(0x3f, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2454)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2455) /* An IM7 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2456) #define IM7(op) ((((unsigned long)(op)) & 0x1f) << 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2457) #define IM7_MASK IM7(0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2458)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2459) /* An M form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2460) #define M(op, rc) (OP (op) | ((rc) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2461) #define M_MASK M (0x3f, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2462)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2463) /* An LI20 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2464) #define LI20(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1) << 15)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2465) #define LI20_MASK LI20(0x3f, 0x1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2466)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2467) /* An M form instruction with the ME field specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2468) #define MME(op, me, rc) (M ((op), (rc)) | ((((unsigned long)(me)) & 0x1f) << 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2469)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2470) /* An M_MASK with the MB and ME fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2471) #define MMBME_MASK (M_MASK | MB_MASK | ME_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2472)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2473) /* An M_MASK with the SH and ME fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2474) #define MSHME_MASK (M_MASK | SH_MASK | ME_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2475)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2476) /* An MD form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2477) #define MD(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x7) << 2) | ((rc) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2478) #define MD_MASK MD (0x3f, 0x7, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2479)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2480) /* An MD_MASK with the MB field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2481) #define MDMB_MASK (MD_MASK | MB6_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2482)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2483) /* An MD_MASK with the SH field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2484) #define MDSH_MASK (MD_MASK | SH6_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2485)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2486) /* An MDS form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2487) #define MDS(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0xf) << 1) | ((rc) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2488) #define MDS_MASK MDS (0x3f, 0xf, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2489)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2490) /* An MDS_MASK with the MB field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2491) #define MDSMB_MASK (MDS_MASK | MB6_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2492)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2493) /* An SC form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2494) #define SC(op, sa, lk) (OP (op) | ((((unsigned long)(sa)) & 1) << 1) | ((lk) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2495) #define SC_MASK (OP_MASK | (((unsigned long)0x3ff) << 16) | (((unsigned long)1) << 1) | 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2496)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2497) /* An SCI8 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2498) #define SCI8(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 11))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2499) #define SCI8_MASK SCI8(0x3f, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2500)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2501) /* An SCI8 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2502) #define SCI8BF(op, fop, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 11) | (((fop) & 7) << 23))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2503) #define SCI8BF_MASK SCI8BF(0x3f, 7, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2504)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2505) /* An SD4 form instruction. This is a 16-bit instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2506) #define SD4(op) ((((unsigned long)(op)) & 0xf) << 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2507) #define SD4_MASK SD4(0xf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2508)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2509) /* An SE_IM5 form instruction. This is a 16-bit instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2510) #define SE_IM5(op, xop) (((((unsigned long)(op)) & 0x3f) << 10) | (((xop) & 0x1) << 9))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2511) #define SE_IM5_MASK SE_IM5(0x3f, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2512)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2513) /* An SE_R form instruction. This is a 16-bit instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2514) #define SE_R(op, xop) (((((unsigned long)(op)) & 0x3f) << 10) | (((xop) & 0x3f) << 4))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2515) #define SE_R_MASK SE_R(0x3f, 0x3f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2516)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2517) /* An SE_RR form instruction. This is a 16-bit instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2518) #define SE_RR(op, xop) (((((unsigned long)(op)) & 0x3f) << 10) | (((xop) & 0x3) << 8))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2519) #define SE_RR_MASK SE_RR(0x3f, 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2520)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2521) /* A VX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2522) #define VX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7ff))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2523)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2524) /* The mask for an VX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2525) #define VX_MASK VX(0x3f, 0x7ff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2526)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2527) /* A VX_MASK with the VA field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2528) #define VXVA_MASK (VX_MASK | (0x1f << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2529)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2530) /* A VX_MASK with the VB field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2531) #define VXVB_MASK (VX_MASK | (0x1f << 11))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2532)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2533) /* A VX_MASK with the VA and VB fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2534) #define VXVAVB_MASK (VX_MASK | (0x1f << 16) | (0x1f << 11))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2535)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2536) /* A VX_MASK with the VD and VA fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2537) #define VXVDVA_MASK (VX_MASK | (0x1f << 21) | (0x1f << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2538)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2539) /* A VX_MASK with a UIMM4 field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2540) #define VXUIMM4_MASK (VX_MASK | (0x1 << 20))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2541)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2542) /* A VX_MASK with a UIMM3 field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2543) #define VXUIMM3_MASK (VX_MASK | (0x3 << 19))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2544)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2545) /* A VX_MASK with a UIMM2 field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2546) #define VXUIMM2_MASK (VX_MASK | (0x7 << 18))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2547)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2548) /* A VX_MASK with a PS field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2549) #define VXPS_MASK (VX_MASK & ~(0x1 << 9))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2550)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2551) /* A VX_MASK with the VA field fixed with a PS field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2552) #define VXVAPS_MASK ((VX_MASK | (0x1f << 16)) & ~(0x1 << 9))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2553)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2554) /* A VA form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2555) #define VXA(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x03f))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2556)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2557) /* The mask for an VA form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2558) #define VXA_MASK VXA(0x3f, 0x3f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2559)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2560) /* A VXA_MASK with a SHB field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2561) #define VXASHB_MASK (VXA_MASK | (1 << 10))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2562)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2563) /* A VXR form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2564) #define VXR(op, xop, rc) (OP (op) | (((rc) & 1) << 10) | (((unsigned long)(xop)) & 0x3ff))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2565)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2566) /* The mask for a VXR form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2567) #define VXR_MASK VXR(0x3f, 0x3ff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2568)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2569) /* A VX form instruction with a VA tertiary opcode. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2570) #define VXVA(op, xop, vaop) (VX(op,xop) | (((vaop) & 0x1f) << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2571)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2572) #define VXASH(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2573) #define VXASH_MASK VXASH (0x3f, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2574)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2575) /* An X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2576) #define X(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2577)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2578) /* A X form instruction for Quad-Precision FP Instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2579) #define XVA(op, xop, vaop) (X(op,xop) | (((vaop) & 0x1f) << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2580)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2581) /* An EX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2582) #define EX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7ff))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2583)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2584) /* The mask for an EX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2585) #define EX_MASK EX (0x3f, 0x7ff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2586)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2587) /* An XX2 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2588) #define XX2(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 2))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2589)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2590) /* A XX2 form instruction with the VA bits specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2591) #define XX2VA(op, xop, vaop) (XX2(op,xop) | (((vaop) & 0x1f) << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2592)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2593) /* An XX3 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2594) #define XX3(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0xff) << 3))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2595)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2596) /* An XX3 form instruction with the RC bit specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2597) #define XX3RC(op, xop, rc) (OP (op) | (((rc) & 1) << 10) | ((((unsigned long)(xop)) & 0x7f) << 3))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2598)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2599) /* An XX4 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2600) #define XX4(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3) << 4))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2601)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2602) /* A Z form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2603) #define Z(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2604)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2605) /* An X form instruction with the RC bit specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2606) #define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2607)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2608) /* A X form instruction for Quad-Precision FP Instructions with RC bit. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2609) #define XVARC(op, xop, vaop, rc) (XVA ((op), (xop), (vaop)) | ((rc) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2610)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2611) /* An X form instruction with the RA bits specified as two ops. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2612) #define XMMF(op, xop, mop0, mop1) (X ((op), (xop)) | ((mop0) & 3) << 19 | ((mop1) & 7) << 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2613)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2614) /* A Z form instruction with the RC bit specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2615) #define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2616)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2617) /* The mask for an X form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2618) #define X_MASK XRC (0x3f, 0x3ff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2619)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2620) /* The mask for an X form instruction with the BF bits specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2621) #define XBF_MASK (X_MASK | (3 << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2622)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2623) /* An X form wait instruction with everything filled in except the WC field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2624) #define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2625)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2626) /* The mask for an XX1 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2627) #define XX1_MASK X (0x3f, 0x3ff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2628)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2629) /* An XX1_MASK with the RB field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2630) #define XX1RB_MASK (XX1_MASK | RB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2631)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2632) /* The mask for an XX2 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2633) #define XX2_MASK (XX2 (0x3f, 0x1ff) | (0x1f << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2634)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2635) /* The mask for an XX2 form instruction with the UIM bits specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2636) #define XX2UIM_MASK (XX2 (0x3f, 0x1ff) | (7 << 18))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2637)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2638) /* The mask for an XX2 form instruction with the 4 UIM bits specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2639) #define XX2UIM4_MASK (XX2 (0x3f, 0x1ff) | (1 << 20))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2640)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2641) /* The mask for an XX2 form instruction with the BF bits specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2642) #define XX2BF_MASK (XX2_MASK | (3 << 21) | (1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2643)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2644) /* The mask for an XX2 form instruction with the BF and DCMX bits specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2645) #define XX2BFD_MASK (XX2 (0x3f, 0x1ff) | 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2646)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2647) /* The mask for an XX2 form instruction with a split DCMX bits specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2648) #define XX2DCMXS_MASK XX2 (0x3f, 0x1ee)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2649)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2650) /* The mask for an XX3 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2651) #define XX3_MASK XX3 (0x3f, 0xff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2652)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2653) /* The mask for an XX3 form instruction with the BF bits specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2654) #define XX3BF_MASK (XX3 (0x3f, 0xff) | (3 << 21) | (1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2655)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2656) /* The mask for an XX3 form instruction with the DM or SHW bits specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2657) #define XX3DM_MASK (XX3 (0x3f, 0x1f) | (1 << 10))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2658) #define XX3SHW_MASK XX3DM_MASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2659)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2660) /* The mask for an XX4 form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2661) #define XX4_MASK XX4 (0x3f, 0x3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2662)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2663) /* An X form wait instruction with everything filled in except the WC field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2664) #define XWC_MASK (XRC (0x3f, 0x3ff, 1) | (7 << 23) | RA_MASK | RB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2665)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2666) /* The mask for an XMMF form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2667) #define XMMF_MASK (XMMF (0x3f, 0x3ff, 3, 7) | (1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2668)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2669) /* The mask for a Z form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2670) #define Z_MASK ZRC (0x3f, 0x1ff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2671) #define Z2_MASK ZRC (0x3f, 0xff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2672)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2673) /* An X_MASK with the RA/VA field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2674) #define XRA_MASK (X_MASK | RA_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2675) #define XVA_MASK XRA_MASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2676)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2677) /* An XRA_MASK with the A_L/W field clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2678) #define XWRA_MASK (XRA_MASK & ~((unsigned long) 1 << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2679) #define XRLA_MASK XWRA_MASK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2680)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2681) /* An X_MASK with the RB field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2682) #define XRB_MASK (X_MASK | RB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2683)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2684) /* An X_MASK with the RT field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2685) #define XRT_MASK (X_MASK | RT_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2686)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2687) /* An XRT_MASK mask with the L bits clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2688) #define XLRT_MASK (XRT_MASK & ~((unsigned long) 0x3 << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2689)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2690) /* An X_MASK with the RA and RB fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2691) #define XRARB_MASK (X_MASK | RA_MASK | RB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2692)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2693) /* An XBF_MASK with the RA and RB fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2694) #define XBFRARB_MASK (XBF_MASK | RA_MASK | RB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2695)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2696) /* An XRARB_MASK, but with the L bit clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2697) #define XRLARB_MASK (XRARB_MASK & ~((unsigned long) 1 << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2698)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2699) /* An XRARB_MASK, but with the L bits in a darn instruction clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2700) #define XLRAND_MASK (XRARB_MASK & ~((unsigned long) 3 << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2701)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2702) /* An X_MASK with the RT and RA fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2703) #define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2704)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2705) /* An X_MASK with the RT and RB fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2706) #define XRTRB_MASK (X_MASK | RT_MASK | RB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2707)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2708) /* An XRTRA_MASK, but with L bit clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2709) #define XRTLRA_MASK (XRTRA_MASK & ~((unsigned long) 1 << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2710)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2711) /* An X_MASK with the RT, RA and RB fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2712) #define XRTRARB_MASK (X_MASK | RT_MASK | RA_MASK | RB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2713)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2714) /* An XRTRARB_MASK, but with L bit clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2715) #define XRTLRARB_MASK (XRTRARB_MASK & ~((unsigned long) 1 << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2716)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2717) /* An XRTRARB_MASK, but with A bit clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2718) #define XRTARARB_MASK (XRTRARB_MASK & ~((unsigned long) 1 << 25))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2719)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2720) /* An XRTRARB_MASK, but with BF bits clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2721) #define XRTBFRARB_MASK (XRTRARB_MASK & ~((unsigned long) 7 << 23))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2722)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2723) /* An X form instruction with the L bit specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2724) #define XOPL(op, xop, l) (X ((op), (xop)) | ((((unsigned long)(l)) & 1) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2725)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2726) /* An X form instruction with the L bits specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2727) #define XOPL2(op, xop, l) (X ((op), (xop)) | ((((unsigned long)(l)) & 3) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2728)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2729) /* An X form instruction with the L bit and RC bit specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2730) #define XRCL(op, xop, l, rc) (XRC ((op), (xop), (rc)) | ((((unsigned long)(l)) & 1) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2731)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2732) /* An X form instruction with RT fields specified */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2733) #define XRT(op, xop, rt) (X ((op), (xop)) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2734) | ((((unsigned long)(rt)) & 0x1f) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2735)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2736) /* An X form instruction with RT and RA fields specified */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2737) #define XRTRA(op, xop, rt, ra) (X ((op), (xop)) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2738) | ((((unsigned long)(rt)) & 0x1f) << 21) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2739) | ((((unsigned long)(ra)) & 0x1f) << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2740)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2741) /* The mask for an X form comparison instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2742) #define XCMP_MASK (X_MASK | (((unsigned long)1) << 22))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2743)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2744) /* The mask for an X form comparison instruction with the L field
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2745) fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2746) #define XCMPL_MASK (XCMP_MASK | (((unsigned long)1) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2747)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2748) /* An X form trap instruction with the TO field specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2749) #define XTO(op, xop, to) (X ((op), (xop)) | ((((unsigned long)(to)) & 0x1f) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2750) #define XTO_MASK (X_MASK | TO_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2751)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2752) /* An X form tlb instruction with the SH field specified. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2753) #define XTLB(op, xop, sh) (X ((op), (xop)) | ((((unsigned long)(sh)) & 0x1f) << 11))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2754) #define XTLB_MASK (X_MASK | SH_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2755)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2756) /* An X form sync instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2757) #define XSYNC(op, xop, l) (X ((op), (xop)) | ((((unsigned long)(l)) & 3) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2758)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2759) /* An X form sync instruction with everything filled in except the LS field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2760) #define XSYNC_MASK (0xff9fffff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2761)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2762) /* An X form sync instruction with everything filled in except the L and E fields. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2763) #define XSYNCLE_MASK (0xff90ffff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2764)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2765) /* An X_MASK, but with the EH bit clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2766) #define XEH_MASK (X_MASK & ~((unsigned long )1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2767)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2768) /* An X form AltiVec dss instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2769) #define XDSS(op, xop, a) (X ((op), (xop)) | ((((unsigned long)(a)) & 1) << 25))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2770) #define XDSS_MASK XDSS(0x3f, 0x3ff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2771)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2772) /* An XFL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2773) #define XFL(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1) | (((unsigned long)(rc)) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2774) #define XFL_MASK XFL (0x3f, 0x3ff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2775)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2776) /* An X form isel instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2777) #define XISEL(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2778) #define XISEL_MASK XISEL(0x3f, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2779)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2780) /* An XL form instruction with the LK field set to 0. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2781) #define XL(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2782)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2783) /* An XL form instruction which uses the LK field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2784) #define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2785)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2786) /* The mask for an XL form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2787) #define XL_MASK XLLK (0x3f, 0x3ff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2788)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2789) /* An XL_MASK with the RT, RA and RB fields fixed, but S bit clear. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2790) #define XLS_MASK ((XL_MASK | RT_MASK | RA_MASK | RB_MASK) & ~(1 << 11))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2791)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2792) /* An XL form instruction which explicitly sets the BO field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2793) #define XLO(op, bo, xop, lk) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2794) (XLLK ((op), (xop), (lk)) | ((((unsigned long)(bo)) & 0x1f) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2795) #define XLO_MASK (XL_MASK | BO_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2796)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2797) /* An XL form instruction which explicitly sets the y bit of the BO
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2798) field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2799) #define XLYLK(op, xop, y, lk) (XLLK ((op), (xop), (lk)) | ((((unsigned long)(y)) & 1) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2800) #define XLYLK_MASK (XL_MASK | Y_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2801)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2802) /* An XL form instruction which sets the BO field and the condition
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2803) bits of the BI field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2804) #define XLOCB(op, bo, cb, xop, lk) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2805) (XLO ((op), (bo), (xop), (lk)) | ((((unsigned long)(cb)) & 3) << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2806) #define XLOCB_MASK XLOCB (0x3f, 0x1f, 0x3, 0x3ff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2807)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2808) /* An XL_MASK or XLYLK_MASK or XLOCB_MASK with the BB field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2809) #define XLBB_MASK (XL_MASK | BB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2810) #define XLYBB_MASK (XLYLK_MASK | BB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2811) #define XLBOCBBB_MASK (XLOCB_MASK | BB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2812)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2813) /* A mask for branch instructions using the BH field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2814) #define XLBH_MASK (XL_MASK | (0x1c << 11))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2815)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2816) /* An XL_MASK with the BO and BB fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2817) #define XLBOBB_MASK (XL_MASK | BO_MASK | BB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2818)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2819) /* An XL_MASK with the BO, BI and BB fields fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2820) #define XLBOBIBB_MASK (XL_MASK | BO_MASK | BI_MASK | BB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2821)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2822) /* An X form mbar instruction with MO field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2823) #define XMBAR(op, xop, mo) (X ((op), (xop)) | ((((unsigned long)(mo)) & 1) << 21))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2824)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2825) /* An XO form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2826) #define XO(op, xop, oe, rc) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2827) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 1) | ((((unsigned long)(oe)) & 1) << 10) | (((unsigned long)(rc)) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2828) #define XO_MASK XO (0x3f, 0x1ff, 1, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2829)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2830) /* An XO_MASK with the RB field fixed. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2831) #define XORB_MASK (XO_MASK | RB_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2832)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2833) /* An XOPS form instruction for paired singles. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2834) #define XOPS(op, xop, rc) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2835) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1) | (((unsigned long)(rc)) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2836) #define XOPS_MASK XOPS (0x3f, 0x3ff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2837)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2838)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2839) /* An XS form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2840) #define XS(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 2) | (((unsigned long)(rc)) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2841) #define XS_MASK XS (0x3f, 0x1ff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2842)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2843) /* A mask for the FXM version of an XFX form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2844) #define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2845)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2846) /* An XFX form instruction with the FXM field filled in. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2847) #define XFXM(op, xop, fxm, p4) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2848) (X ((op), (xop)) | ((((unsigned long)(fxm)) & 0xff) << 12) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2849) | ((unsigned long)(p4) << 20))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2850)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2851) /* An XFX form instruction with the SPR field filled in. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2852) #define XSPR(op, xop, spr) \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2853) (X ((op), (xop)) | ((((unsigned long)(spr)) & 0x1f) << 16) | ((((unsigned long)(spr)) & 0x3e0) << 6))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2854) #define XSPR_MASK (X_MASK | SPR_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2855)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2856) /* An XFX form instruction with the SPR field filled in except for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2857) SPRBAT field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2858) #define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2859)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2860) /* An XFX form instruction with the SPR field filled in except for the
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2861) SPRG field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2862) #define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2863)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2864) /* An X form instruction with everything filled in except the E field. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2865) #define XE_MASK (0xffff7fff)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2866)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2867) /* An X form user context instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2868) #define XUC(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2869) #define XUC_MASK XUC(0x3f, 0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2870)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2871) /* An XW form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2872) #define XW(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x3f) << 1) | ((rc) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2873) /* The mask for a G form instruction. rc not supported at present. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2874) #define XW_MASK XW (0x3f, 0x3f, 0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2875)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2876) /* An APU form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2877) #define APU(op, xop, rc) (OP (op) | (((unsigned long)(xop)) & 0x3ff) << 1 | ((rc) & 1))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2878)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2879) /* The mask for an APU form instruction. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2880) #define APU_MASK APU (0x3f, 0x3ff, 1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2881) #define APU_RT_MASK (APU_MASK | RT_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2882) #define APU_RA_MASK (APU_MASK | RA_MASK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2883)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2884) /* The BO encodings used in extended conditional branch mnemonics. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2885) #define BODNZF (0x0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2886) #define BODNZFP (0x1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2887) #define BODZF (0x2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2888) #define BODZFP (0x3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2889) #define BODNZT (0x8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2890) #define BODNZTP (0x9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2891) #define BODZT (0xa)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2892) #define BODZTP (0xb)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2893)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2894) #define BOF (0x4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2895) #define BOFP (0x5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2896) #define BOFM4 (0x6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2897) #define BOFP4 (0x7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2898) #define BOT (0xc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2899) #define BOTP (0xd)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2900) #define BOTM4 (0xe)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2901) #define BOTP4 (0xf)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2902)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2903) #define BODNZ (0x10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2904) #define BODNZP (0x11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2905) #define BODZ (0x12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2906) #define BODZP (0x13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2907) #define BODNZM4 (0x18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2908) #define BODNZP4 (0x19)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2909) #define BODZM4 (0x1a)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2910) #define BODZP4 (0x1b)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2911)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2912) #define BOU (0x14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2913)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2914) /* The BO16 encodings used in extended VLE conditional branch mnemonics. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2915) #define BO16F (0x0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2916) #define BO16T (0x1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2917)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2918) /* The BO32 encodings used in extended VLE conditional branch mnemonics. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2919) #define BO32F (0x0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2920) #define BO32T (0x1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2921) #define BO32DNZ (0x2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2922) #define BO32DZ (0x3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2923)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2924) /* The BI condition bit encodings used in extended conditional branch
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2925) mnemonics. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2926) #define CBLT (0)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2927) #define CBGT (1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2928) #define CBEQ (2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2929) #define CBSO (3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2930)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2931) /* The TO encodings used in extended trap mnemonics. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2932) #define TOLGT (0x1)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2933) #define TOLLT (0x2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2934) #define TOEQ (0x4)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2935) #define TOLGE (0x5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2936) #define TOLNL (0x5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2937) #define TOLLE (0x6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2938) #define TOLNG (0x6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2939) #define TOGT (0x8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2940) #define TOGE (0xc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2941) #define TONL (0xc)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2942) #define TOLT (0x10)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2943) #define TOLE (0x14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2944) #define TONG (0x14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2945) #define TONE (0x18)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2946) #define TOU (0x1f)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2947)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2948) /* Smaller names for the flags so each entry in the opcodes table will
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2949) fit on a single line. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2950) #undef PPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2951) #define PPC PPC_OPCODE_PPC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2952) #define PPCCOM PPC_OPCODE_PPC | PPC_OPCODE_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2953) #define POWER4 PPC_OPCODE_POWER4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2954) #define POWER5 PPC_OPCODE_POWER5
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2955) #define POWER6 PPC_OPCODE_POWER6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2956) #define POWER7 PPC_OPCODE_POWER7
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2957) #define POWER8 PPC_OPCODE_POWER8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2958) #define POWER9 PPC_OPCODE_POWER9
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2959) #define CELL PPC_OPCODE_CELL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2960) #define PPC64 PPC_OPCODE_64 | PPC_OPCODE_64_BRIDGE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2961) #define NON32 (PPC_OPCODE_64 | PPC_OPCODE_POWER4 \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2962) | PPC_OPCODE_EFS | PPC_OPCODE_E500MC | PPC_OPCODE_TITAN)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2963) #define PPC403 PPC_OPCODE_403
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2964) #define PPC405 PPC_OPCODE_405
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2965) #define PPC440 PPC_OPCODE_440
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2966) #define PPC464 PPC440
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2967) #define PPC476 PPC_OPCODE_476
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2968) #define PPC750 PPC_OPCODE_750
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2969) #define PPC7450 PPC_OPCODE_7450
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2970) #define PPC860 PPC_OPCODE_860
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2971) #define PPCPS PPC_OPCODE_PPCPS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2972) #define PPCVEC PPC_OPCODE_ALTIVEC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2973) #define PPCVEC2 PPC_OPCODE_ALTIVEC2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2974) #define PPCVEC3 PPC_OPCODE_ALTIVEC2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2975) #define PPCVSX PPC_OPCODE_VSX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2976) #define PPCVSX2 PPC_OPCODE_VSX
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2977) #define PPCVSX3 PPC_OPCODE_VSX3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2978) #define POWER PPC_OPCODE_POWER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2979) #define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2980) #define PWR2COM PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2981) #define PPCPWR2 PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 | PPC_OPCODE_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2982) #define COM PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2983) #define M601 PPC_OPCODE_POWER | PPC_OPCODE_601
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2984) #define PWRCOM PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2985) #define MFDEC1 PPC_OPCODE_POWER
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2986) #define MFDEC2 PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE | PPC_OPCODE_TITAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2987) #define BOOKE PPC_OPCODE_BOOKE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2988) #define NO371 PPC_OPCODE_BOOKE | PPC_OPCODE_PPCPS | PPC_OPCODE_EFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2989) #define PPCE300 PPC_OPCODE_E300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2990) #define PPCSPE PPC_OPCODE_SPE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2991) #define PPCISEL PPC_OPCODE_ISEL
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2992) #define PPCEFS PPC_OPCODE_EFS
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2993) #define PPCBRLK PPC_OPCODE_BRLOCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2994) #define PPCPMR PPC_OPCODE_PMR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2995) #define PPCTMR PPC_OPCODE_TMR
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2996) #define PPCCHLK PPC_OPCODE_CACHELCK
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2997) #define PPCRFMCI PPC_OPCODE_RFMCI
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2998) #define E500MC PPC_OPCODE_E500MC
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2999) #define PPCA2 PPC_OPCODE_A2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3000) #define TITAN PPC_OPCODE_TITAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3001) #define MULHW PPC_OPCODE_405 | PPC_OPCODE_440 | TITAN
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3002) #define E500 PPC_OPCODE_E500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3003) #define E6500 PPC_OPCODE_E6500
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3004) #define PPCVLE PPC_OPCODE_VLE
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3005) #define PPCHTM PPC_OPCODE_HTM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3006) #define E200Z4 PPC_OPCODE_E200Z4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3007) /* The list of embedded processors that use the embedded operand ordering
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3008) for the 3 operand dcbt and dcbtst instructions. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3009) #define DCBT_EO (PPC_OPCODE_E500 | PPC_OPCODE_E500MC | PPC_OPCODE_476 \
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3010) | PPC_OPCODE_A2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3011)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3012)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3013)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3014) /* The opcode table.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3015)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3016) The format of the opcode table is:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3017)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3018) NAME OPCODE MASK FLAGS ANTI {OPERANDS}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3019)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3020) NAME is the name of the instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3021) OPCODE is the instruction opcode.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3022) MASK is the opcode mask; this is used to tell the disassembler
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3023) which bits in the actual opcode must match OPCODE.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3024) FLAGS are flags indicating which processors support the instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3025) ANTI indicates which processors don't support the instruction.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3026) OPERANDS is the list of operands.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3027)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3028) The disassembler reads the table in order and prints the first
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3029) instruction which matches, so this table is sorted to put more
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3030) specific instructions before more general instructions.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3031)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3032) This table must be sorted by major opcode. Please try to keep it
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3033) vaguely sorted within major opcode too, except of course where
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3034) constrained otherwise by disassembler operation. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3035)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3036) const struct powerpc_opcode powerpc_opcodes[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3037) {"attn", X(0,256), X_MASK, POWER4|PPCA2, PPC476|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3038) {"tdlgti", OPTO(2,TOLGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3039) {"tdllti", OPTO(2,TOLLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3040) {"tdeqi", OPTO(2,TOEQ), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3041) {"tdlgei", OPTO(2,TOLGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3042) {"tdlnli", OPTO(2,TOLNL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3043) {"tdllei", OPTO(2,TOLLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3044) {"tdlngi", OPTO(2,TOLNG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3045) {"tdgti", OPTO(2,TOGT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3046) {"tdgei", OPTO(2,TOGE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3047) {"tdnli", OPTO(2,TONL), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3048) {"tdlti", OPTO(2,TOLT), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3049) {"tdlei", OPTO(2,TOLE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3050) {"tdngi", OPTO(2,TONG), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3051) {"tdnei", OPTO(2,TONE), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3052) {"tdui", OPTO(2,TOU), OPTO_MASK, PPC64, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3053) {"tdi", OP(2), OP_MASK, PPC64, PPCVLE, {TO, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3054)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3055) {"twlgti", OPTO(3,TOLGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3056) {"tlgti", OPTO(3,TOLGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3057) {"twllti", OPTO(3,TOLLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3058) {"tllti", OPTO(3,TOLLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3059) {"tweqi", OPTO(3,TOEQ), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3060) {"teqi", OPTO(3,TOEQ), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3061) {"twlgei", OPTO(3,TOLGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3062) {"tlgei", OPTO(3,TOLGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3063) {"twlnli", OPTO(3,TOLNL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3064) {"tlnli", OPTO(3,TOLNL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3065) {"twllei", OPTO(3,TOLLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3066) {"tllei", OPTO(3,TOLLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3067) {"twlngi", OPTO(3,TOLNG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3068) {"tlngi", OPTO(3,TOLNG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3069) {"twgti", OPTO(3,TOGT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3070) {"tgti", OPTO(3,TOGT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3071) {"twgei", OPTO(3,TOGE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3072) {"tgei", OPTO(3,TOGE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3073) {"twnli", OPTO(3,TONL), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3074) {"tnli", OPTO(3,TONL), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3075) {"twlti", OPTO(3,TOLT), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3076) {"tlti", OPTO(3,TOLT), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3077) {"twlei", OPTO(3,TOLE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3078) {"tlei", OPTO(3,TOLE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3079) {"twngi", OPTO(3,TONG), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3080) {"tngi", OPTO(3,TONG), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3081) {"twnei", OPTO(3,TONE), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3082) {"tnei", OPTO(3,TONE), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3083) {"twui", OPTO(3,TOU), OPTO_MASK, PPCCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3084) {"tui", OPTO(3,TOU), OPTO_MASK, PWRCOM, PPCVLE, {RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3085) {"twi", OP(3), OP_MASK, PPCCOM, PPCVLE, {TO, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3086) {"ti", OP(3), OP_MASK, PWRCOM, PPCVLE, {TO, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3087)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3088) {"ps_cmpu0", X (4, 0), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3089) {"vaddubm", VX (4, 0), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3090) {"vmul10cuq", VX (4, 1), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3091) {"vmaxub", VX (4, 2), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3092) {"vrlb", VX (4, 4), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3093) {"vcmpequb", VXR(4, 6,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3094) {"vcmpneb", VXR(4, 7,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3095) {"vmuloub", VX (4, 8), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3096) {"vaddfp", VX (4, 10), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3097) {"psq_lx", XW (4, 6,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3098) {"vmrghb", VX (4, 12), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3099) {"psq_stx", XW (4, 7,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3100) {"vpkuhum", VX (4, 14), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3101) {"mulhhwu", XRC(4, 8,0), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3102) {"mulhhwu.", XRC(4, 8,1), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3103) {"ps_sum0", A (4, 10,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3104) {"ps_sum0.", A (4, 10,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3105) {"ps_sum1", A (4, 11,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3106) {"ps_sum1.", A (4, 11,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3107) {"ps_muls0", A (4, 12,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3108) {"machhwu", XO (4, 12,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3109) {"ps_muls0.", A (4, 12,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3110) {"machhwu.", XO (4, 12,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3111) {"ps_muls1", A (4, 13,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3112) {"ps_muls1.", A (4, 13,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3113) {"ps_madds0", A (4, 14,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3114) {"ps_madds0.", A (4, 14,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3115) {"ps_madds1", A (4, 15,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3116) {"ps_madds1.", A (4, 15,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3117) {"vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3118) {"vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3119) {"vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3120) {"vmsumudm", VXA(4, 35), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3121) {"ps_div", A (4, 18,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3122) {"vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3123) {"ps_div.", A (4, 18,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3124) {"vmsummbm", VXA(4, 37), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3125) {"vmsumuhm", VXA(4, 38), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3126) {"vmsumuhs", VXA(4, 39), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3127) {"ps_sub", A (4, 20,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3128) {"vmsumshm", VXA(4, 40), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3129) {"ps_sub.", A (4, 20,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3130) {"vmsumshs", VXA(4, 41), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3131) {"ps_add", A (4, 21,0), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3132) {"vsel", VXA(4, 42), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3133) {"ps_add.", A (4, 21,1), AFRC_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3134) {"vperm", VXA(4, 43), VXA_MASK, PPCVEC, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3135) {"vsldoi", VXA(4, 44), VXASHB_MASK, PPCVEC, 0, {VD, VA, VB, SHB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3136) {"vpermxor", VXA(4, 45), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3137) {"ps_sel", A (4, 23,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3138) {"vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3139) {"ps_sel.", A (4, 23,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3140) {"vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC, 0, {VD, VA, VC, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3141) {"ps_res", A (4, 24,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3142) {"maddhd", VXA(4, 48), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3143) {"ps_res.", A (4, 24,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3144) {"maddhdu", VXA(4, 49), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3145) {"ps_mul", A (4, 25,0), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3146) {"ps_mul.", A (4, 25,1), AFRB_MASK, PPCPS, 0, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3147) {"maddld", VXA(4, 51), VXA_MASK, POWER9, 0, {RT, RA, RB, RC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3148) {"ps_rsqrte", A (4, 26,0), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3149) {"ps_rsqrte.", A (4, 26,1), AFRAFRC_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3150) {"ps_msub", A (4, 28,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3151) {"ps_msub.", A (4, 28,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3152) {"ps_madd", A (4, 29,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3153) {"ps_madd.", A (4, 29,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3154) {"vpermr", VXA(4, 59), VXA_MASK, PPCVEC3, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3155) {"ps_nmsub", A (4, 30,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3156) {"vaddeuqm", VXA(4, 60), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3157) {"ps_nmsub.", A (4, 30,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3158) {"vaddecuq", VXA(4, 61), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3159) {"ps_nmadd", A (4, 31,0), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3160) {"vsubeuqm", VXA(4, 62), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3161) {"ps_nmadd.", A (4, 31,1), A_MASK, PPCPS, 0, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3162) {"vsubecuq", VXA(4, 63), VXA_MASK, PPCVEC2, 0, {VD, VA, VB, VC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3163) {"ps_cmpo0", X (4, 32), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3164) {"vadduhm", VX (4, 64), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3165) {"vmul10ecuq", VX (4, 65), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3166) {"vmaxuh", VX (4, 66), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3167) {"vrlh", VX (4, 68), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3168) {"vcmpequh", VXR(4, 70,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3169) {"vcmpneh", VXR(4, 71,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3170) {"vmulouh", VX (4, 72), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3171) {"vsubfp", VX (4, 74), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3172) {"psq_lux", XW (4, 38,0), XW_MASK, PPCPS, 0, {FRT,RA,RB,PSWM,PSQM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3173) {"vmrghh", VX (4, 76), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3174) {"psq_stux", XW (4, 39,0), XW_MASK, PPCPS, 0, {FRS,RA,RB,PSWM,PSQM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3175) {"vpkuwum", VX (4, 78), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3176) {"ps_neg", XRC(4, 40,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3177) {"mulhhw", XRC(4, 40,0), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3178) {"ps_neg.", XRC(4, 40,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3179) {"mulhhw.", XRC(4, 40,1), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3180) {"machhw", XO (4, 44,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3181) {"machhw.", XO (4, 44,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3182) {"nmachhw", XO (4, 46,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3183) {"nmachhw.", XO (4, 46,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3184) {"ps_cmpu1", X (4, 64), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3185) {"vadduwm", VX (4, 128), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3186) {"vmaxuw", VX (4, 130), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3187) {"vrlw", VX (4, 132), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3188) {"vrlwmi", VX (4, 133), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3189) {"vcmpequw", VXR(4, 134,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3190) {"vcmpnew", VXR(4, 135,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3191) {"vmulouw", VX (4, 136), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3192) {"vmuluwm", VX (4, 137), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3193) {"vmrghw", VX (4, 140), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3194) {"vpkuhus", VX (4, 142), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3195) {"ps_mr", XRC(4, 72,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3196) {"ps_mr.", XRC(4, 72,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3197) {"machhwsu", XO (4, 76,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3198) {"machhwsu.", XO (4, 76,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3199) {"ps_cmpo1", X (4, 96), XBF_MASK, PPCPS, 0, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3200) {"vaddudm", VX (4, 192), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3201) {"vmaxud", VX (4, 194), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3202) {"vrld", VX (4, 196), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3203) {"vrldmi", VX (4, 197), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3204) {"vcmpeqfp", VXR(4, 198,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3205) {"vcmpequd", VXR(4, 199,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3206) {"vpkuwus", VX (4, 206), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3207) {"machhws", XO (4, 108,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3208) {"machhws.", XO (4, 108,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3209) {"nmachhws", XO (4, 110,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3210) {"nmachhws.", XO (4, 110,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3211) {"vadduqm", VX (4, 256), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3212) {"vmaxsb", VX (4, 258), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3213) {"vslb", VX (4, 260), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3214) {"vcmpnezb", VXR(4, 263,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3215) {"vmulosb", VX (4, 264), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3216) {"vrefp", VX (4, 266), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3217) {"vmrglb", VX (4, 268), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3218) {"vpkshus", VX (4, 270), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3219) {"ps_nabs", XRC(4, 136,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3220) {"mulchwu", XRC(4, 136,0), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3221) {"ps_nabs.", XRC(4, 136,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3222) {"mulchwu.", XRC(4, 136,1), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3223) {"macchwu", XO (4, 140,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3224) {"macchwu.", XO (4, 140,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3225) {"vaddcuq", VX (4, 320), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3226) {"vmaxsh", VX (4, 322), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3227) {"vslh", VX (4, 324), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3228) {"vcmpnezh", VXR(4, 327,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3229) {"vmulosh", VX (4, 328), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3230) {"vrsqrtefp", VX (4, 330), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3231) {"vmrglh", VX (4, 332), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3232) {"vpkswus", VX (4, 334), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3233) {"mulchw", XRC(4, 168,0), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3234) {"mulchw.", XRC(4, 168,1), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3235) {"macchw", XO (4, 172,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3236) {"macchw.", XO (4, 172,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3237) {"nmacchw", XO (4, 174,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3238) {"nmacchw.", XO (4, 174,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3239) {"vaddcuw", VX (4, 384), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3240) {"vmaxsw", VX (4, 386), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3241) {"vslw", VX (4, 388), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3242) {"vrlwnm", VX (4, 389), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3243) {"vcmpnezw", VXR(4, 391,0), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3244) {"vmulosw", VX (4, 392), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3245) {"vexptefp", VX (4, 394), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3246) {"vmrglw", VX (4, 396), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3247) {"vpkshss", VX (4, 398), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3248) {"macchwsu", XO (4, 204,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3249) {"macchwsu.", XO (4, 204,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3250) {"vmaxsd", VX (4, 450), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3251) {"vsl", VX (4, 452), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3252) {"vrldnm", VX (4, 453), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3253) {"vcmpgefp", VXR(4, 454,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3254) {"vlogefp", VX (4, 458), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3255) {"vpkswss", VX (4, 462), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3256) {"macchws", XO (4, 236,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3257) {"macchws.", XO (4, 236,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3258) {"nmacchws", XO (4, 238,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3259) {"nmacchws.", XO (4, 238,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3260) {"evaddw", VX (4, 512), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3261) {"vaddubs", VX (4, 512), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3262) {"vmul10uq", VX (4, 513), VXVB_MASK, PPCVEC3, 0, {VD, VA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3263) {"evaddiw", VX (4, 514), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3264) {"vminub", VX (4, 514), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3265) {"evsubfw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3266) {"evsubw", VX (4, 516), VX_MASK, PPCSPE, 0, {RS, RB, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3267) {"vsrb", VX (4, 516), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3268) {"evsubifw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, UIMM, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3269) {"evsubiw", VX (4, 518), VX_MASK, PPCSPE, 0, {RS, RB, UIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3270) {"vcmpgtub", VXR(4, 518,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3271) {"evabs", VX (4, 520), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3272) {"vmuleub", VX (4, 520), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3273) {"evneg", VX (4, 521), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3274) {"evextsb", VX (4, 522), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3275) {"vrfin", VX (4, 522), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3276) {"evextsh", VX (4, 523), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3277) {"evrndw", VX (4, 524), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3278) {"vspltb", VX (4, 524), VXUIMM4_MASK, PPCVEC, 0, {VD, VB, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3279) {"vextractub", VX (4, 525), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3280) {"evcntlzw", VX (4, 525), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3281) {"evcntlsw", VX (4, 526), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3282) {"vupkhsb", VX (4, 526), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3283) {"brinc", VX (4, 527), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3284) {"ps_abs", XRC(4, 264,0), XRA_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3285) {"ps_abs.", XRC(4, 264,1), XRA_MASK, PPCPS, 0, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3286) {"evand", VX (4, 529), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3287) {"evandc", VX (4, 530), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3288) {"evxor", VX (4, 534), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3289) {"evmr", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RA, BBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3290) {"evor", VX (4, 535), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3291) {"evnor", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3292) {"evnot", VX (4, 536), VX_MASK, PPCSPE, 0, {RS, RA, BBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3293) {"get", APU(4, 268,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3294) {"eveqv", VX (4, 537), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3295) {"evorc", VX (4, 539), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3296) {"evnand", VX (4, 542), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3297) {"evsrwu", VX (4, 544), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3298) {"evsrws", VX (4, 545), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3299) {"evsrwiu", VX (4, 546), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3300) {"evsrwis", VX (4, 547), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3301) {"evslw", VX (4, 548), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3302) {"evslwi", VX (4, 550), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3303) {"evrlw", VX (4, 552), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3304) {"evsplati", VX (4, 553), VX_MASK, PPCSPE, 0, {RS, SIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3305) {"evrlwi", VX (4, 554), VX_MASK, PPCSPE, 0, {RS, RA, EVUIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3306) {"evsplatfi", VX (4, 555), VX_MASK, PPCSPE, 0, {RS, SIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3307) {"evmergehi", VX (4, 556), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3308) {"evmergelo", VX (4, 557), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3309) {"evmergehilo", VX (4, 558), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3310) {"evmergelohi", VX (4, 559), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3311) {"evcmpgtu", VX (4, 560), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3312) {"evcmpgts", VX (4, 561), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3313) {"evcmpltu", VX (4, 562), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3314) {"evcmplts", VX (4, 563), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3315) {"evcmpeq", VX (4, 564), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3316) {"cget", APU(4, 284,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3317) {"vadduhs", VX (4, 576), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3318) {"vmul10euq", VX (4, 577), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3319) {"vminuh", VX (4, 578), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3320) {"vsrh", VX (4, 580), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3321) {"vcmpgtuh", VXR(4, 582,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3322) {"vmuleuh", VX (4, 584), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3323) {"vrfiz", VX (4, 586), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3324) {"vsplth", VX (4, 588), VXUIMM3_MASK, PPCVEC, 0, {VD, VB, UIMM3}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3325) {"vextractuh", VX (4, 589), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3326) {"vupkhsh", VX (4, 590), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3327) {"nget", APU(4, 300,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3328) {"evsel", EVSEL(4,79), EVSEL_MASK, PPCSPE, 0, {RS, RA, RB, CRFS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3329) {"ncget", APU(4, 316,0), APU_RA_MASK, PPC405, 0, {RT, FSL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3330) {"evfsadd", VX (4, 640), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3331) {"vadduws", VX (4, 640), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3332) {"evfssub", VX (4, 641), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3333) {"vminuw", VX (4, 642), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3334) {"evfsabs", VX (4, 644), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3335) {"vsrw", VX (4, 644), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3336) {"evfsnabs", VX (4, 645), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3337) {"evfsneg", VX (4, 646), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3338) {"vcmpgtuw", VXR(4, 646,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3339) {"vmuleuw", VX (4, 648), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3340) {"evfsmul", VX (4, 648), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3341) {"evfsdiv", VX (4, 649), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3342) {"vrfip", VX (4, 650), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3343) {"evfscmpgt", VX (4, 652), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3344) {"vspltw", VX (4, 652), VXUIMM2_MASK, PPCVEC, 0, {VD, VB, UIMM2}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3345) {"vextractuw", VX (4, 653), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3346) {"evfscmplt", VX (4, 653), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3347) {"evfscmpeq", VX (4, 654), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3348) {"vupklsb", VX (4, 654), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3349) {"evfscfui", VX (4, 656), VX_MASK, PPCSPE, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3350) {"evfscfsi", VX (4, 657), VX_MASK, PPCSPE, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3351) {"evfscfuf", VX (4, 658), VX_MASK, PPCSPE, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3352) {"evfscfsf", VX (4, 659), VX_MASK, PPCSPE, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3353) {"evfsctui", VX (4, 660), VX_MASK, PPCSPE, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3354) {"evfsctsi", VX (4, 661), VX_MASK, PPCSPE, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3355) {"evfsctuf", VX (4, 662), VX_MASK, PPCSPE, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3356) {"evfsctsf", VX (4, 663), VX_MASK, PPCSPE, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3357) {"evfsctuiz", VX (4, 664), VX_MASK, PPCSPE, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3358) {"put", APU(4, 332,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3359) {"evfsctsiz", VX (4, 666), VX_MASK, PPCSPE, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3360) {"evfststgt", VX (4, 668), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3361) {"evfststlt", VX (4, 669), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3362) {"evfststeq", VX (4, 670), VX_MASK, PPCSPE, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3363) {"cput", APU(4, 348,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3364) {"efsadd", VX (4, 704), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3365) {"efssub", VX (4, 705), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3366) {"vminud", VX (4, 706), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3367) {"efsabs", VX (4, 708), VX_MASK, PPCEFS, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3368) {"vsr", VX (4, 708), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3369) {"efsnabs", VX (4, 709), VX_MASK, PPCEFS, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3370) {"efsneg", VX (4, 710), VX_MASK, PPCEFS, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3371) {"vcmpgtfp", VXR(4, 710,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3372) {"vcmpgtud", VXR(4, 711,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3373) {"efsmul", VX (4, 712), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3374) {"efsdiv", VX (4, 713), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3375) {"vrfim", VX (4, 714), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3376) {"efscmpgt", VX (4, 716), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3377) {"vextractd", VX (4, 717), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3378) {"efscmplt", VX (4, 717), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3379) {"efscmpeq", VX (4, 718), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3380) {"vupklsh", VX (4, 718), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3381) {"efscfd", VX (4, 719), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3382) {"efscfui", VX (4, 720), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3383) {"efscfsi", VX (4, 721), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3384) {"efscfuf", VX (4, 722), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3385) {"efscfsf", VX (4, 723), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3386) {"efsctui", VX (4, 724), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3387) {"efsctsi", VX (4, 725), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3388) {"efsctuf", VX (4, 726), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3389) {"efsctsf", VX (4, 727), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3390) {"efsctuiz", VX (4, 728), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3391) {"nput", APU(4, 364,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3392) {"efsctsiz", VX (4, 730), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3393) {"efststgt", VX (4, 732), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3394) {"efststlt", VX (4, 733), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3395) {"efststeq", VX (4, 734), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3396) {"efdadd", VX (4, 736), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3397) {"efdsub", VX (4, 737), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3398) {"efdcfuid", VX (4, 738), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3399) {"efdcfsid", VX (4, 739), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3400) {"efdabs", VX (4, 740), VX_MASK, PPCEFS, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3401) {"efdnabs", VX (4, 741), VX_MASK, PPCEFS, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3402) {"efdneg", VX (4, 742), VX_MASK, PPCEFS, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3403) {"efdmul", VX (4, 744), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3404) {"efddiv", VX (4, 745), VX_MASK, PPCEFS, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3405) {"efdctuidz", VX (4, 746), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3406) {"efdctsidz", VX (4, 747), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3407) {"efdcmpgt", VX (4, 748), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3408) {"efdcmplt", VX (4, 749), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3409) {"efdcmpeq", VX (4, 750), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3410) {"efdcfs", VX (4, 751), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3411) {"efdcfui", VX (4, 752), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3412) {"efdcfsi", VX (4, 753), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3413) {"efdcfuf", VX (4, 754), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3414) {"efdcfsf", VX (4, 755), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3415) {"efdctui", VX (4, 756), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3416) {"efdctsi", VX (4, 757), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3417) {"efdctuf", VX (4, 758), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3418) {"efdctsf", VX (4, 759), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3419) {"efdctuiz", VX (4, 760), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3420) {"ncput", APU(4, 380,0), APU_RT_MASK, PPC405, 0, {RA, FSL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3421) {"efdctsiz", VX (4, 762), VX_MASK, PPCEFS, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3422) {"efdtstgt", VX (4, 764), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3423) {"efdtstlt", VX (4, 765), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3424) {"efdtsteq", VX (4, 766), VX_MASK, PPCEFS, 0, {CRFD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3425) {"evlddx", VX (4, 768), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3426) {"vaddsbs", VX (4, 768), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3427) {"evldd", VX (4, 769), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3428) {"evldwx", VX (4, 770), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3429) {"vminsb", VX (4, 770), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3430) {"evldw", VX (4, 771), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3431) {"evldhx", VX (4, 772), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3432) {"vsrab", VX (4, 772), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3433) {"evldh", VX (4, 773), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3434) {"vcmpgtsb", VXR(4, 774,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3435) {"evlhhesplatx",VX (4, 776), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3436) {"vmulesb", VX (4, 776), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3437) {"evlhhesplat", VX (4, 777), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3438) {"vcfux", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3439) {"vcuxwfp", VX (4, 778), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3440) {"evlhhousplatx",VX(4, 780), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3441) {"vspltisb", VX (4, 780), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3442) {"vinsertb", VX (4, 781), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3443) {"evlhhousplat",VX (4, 781), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3444) {"evlhhossplatx",VX(4, 782), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3445) {"vpkpx", VX (4, 782), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3446) {"evlhhossplat",VX (4, 783), VX_MASK, PPCSPE, 0, {RS, EVUIMM_2, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3447) {"mullhwu", XRC(4, 392,0), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3448) {"evlwhex", VX (4, 784), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3449) {"mullhwu.", XRC(4, 392,1), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3450) {"evlwhe", VX (4, 785), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3451) {"evlwhoux", VX (4, 788), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3452) {"evlwhou", VX (4, 789), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3453) {"evlwhosx", VX (4, 790), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3454) {"evlwhos", VX (4, 791), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3455) {"maclhwu", XO (4, 396,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3456) {"evlwwsplatx", VX (4, 792), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3457) {"maclhwu.", XO (4, 396,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3458) {"evlwwsplat", VX (4, 793), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3459) {"evlwhsplatx", VX (4, 796), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3460) {"evlwhsplat", VX (4, 797), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3461) {"evstddx", VX (4, 800), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3462) {"evstdd", VX (4, 801), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3463) {"evstdwx", VX (4, 802), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3464) {"evstdw", VX (4, 803), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3465) {"evstdhx", VX (4, 804), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3466) {"evstdh", VX (4, 805), VX_MASK, PPCSPE, 0, {RS, EVUIMM_8, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3467) {"evstwhex", VX (4, 816), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3468) {"evstwhe", VX (4, 817), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3469) {"evstwhox", VX (4, 820), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3470) {"evstwho", VX (4, 821), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3471) {"evstwwex", VX (4, 824), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3472) {"evstwwe", VX (4, 825), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3473) {"evstwwox", VX (4, 828), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3474) {"evstwwo", VX (4, 829), VX_MASK, PPCSPE, 0, {RS, EVUIMM_4, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3475) {"vaddshs", VX (4, 832), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3476) {"bcdcpsgn.", VX (4, 833), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3477) {"vminsh", VX (4, 834), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3478) {"vsrah", VX (4, 836), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3479) {"vcmpgtsh", VXR(4, 838,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3480) {"vmulesh", VX (4, 840), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3481) {"vcfsx", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3482) {"vcsxwfp", VX (4, 842), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3483) {"vspltish", VX (4, 844), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3484) {"vinserth", VX (4, 845), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3485) {"vupkhpx", VX (4, 846), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3486) {"mullhw", XRC(4, 424,0), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3487) {"mullhw.", XRC(4, 424,1), X_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3488) {"maclhw", XO (4, 428,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3489) {"maclhw.", XO (4, 428,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3490) {"nmaclhw", XO (4, 430,0,0),XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3491) {"nmaclhw.", XO (4, 430,0,1),XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3492) {"vaddsws", VX (4, 896), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3493) {"vminsw", VX (4, 898), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3494) {"vsraw", VX (4, 900), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3495) {"vcmpgtsw", VXR(4, 902,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3496) {"vmulesw", VX (4, 904), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3497) {"vctuxs", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3498) {"vcfpuxws", VX (4, 906), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3499) {"vspltisw", VX (4, 908), VXVB_MASK, PPCVEC, 0, {VD, SIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3500) {"vinsertw", VX (4, 909), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3501) {"maclhwsu", XO (4, 460,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3502) {"maclhwsu.", XO (4, 460,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3503) {"vminsd", VX (4, 962), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3504) {"vsrad", VX (4, 964), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3505) {"vcmpbfp", VXR(4, 966,0), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3506) {"vcmpgtsd", VXR(4, 967,0), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3507) {"vctsxs", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3508) {"vcfpsxws", VX (4, 970), VX_MASK, PPCVEC, 0, {VD, VB, UIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3509) {"vinsertd", VX (4, 973), VXUIMM4_MASK, PPCVEC3, 0, {VD, VB, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3510) {"vupklpx", VX (4, 974), VXVA_MASK, PPCVEC, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3511) {"maclhws", XO (4, 492,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3512) {"maclhws.", XO (4, 492,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3513) {"nmaclhws", XO (4, 494,0,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3514) {"nmaclhws.", XO (4, 494,0,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3515) {"vsububm", VX (4,1024), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3516) {"bcdadd.", VX (4,1025), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3517) {"vavgub", VX (4,1026), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3518) {"vabsdub", VX (4,1027), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3519) {"evmhessf", VX (4,1027), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3520) {"vand", VX (4,1028), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3521) {"vcmpequb.", VXR(4, 6,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3522) {"vcmpneb.", VXR(4, 7,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3523) {"udi0fcm.", APU(4, 515,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3524) {"udi0fcm", APU(4, 515,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3525) {"evmhossf", VX (4,1031), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3526) {"vpmsumb", VX (4,1032), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3527) {"evmheumi", VX (4,1032), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3528) {"evmhesmi", VX (4,1033), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3529) {"vmaxfp", VX (4,1034), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3530) {"evmhesmf", VX (4,1035), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3531) {"evmhoumi", VX (4,1036), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3532) {"vslo", VX (4,1036), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3533) {"evmhosmi", VX (4,1037), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3534) {"evmhosmf", VX (4,1039), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3535) {"machhwuo", XO (4, 12,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3536) {"machhwuo.", XO (4, 12,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3537) {"ps_merge00", XOPS(4,528,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3538) {"ps_merge00.", XOPS(4,528,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3539) {"evmhessfa", VX (4,1059), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3540) {"evmhossfa", VX (4,1063), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3541) {"evmheumia", VX (4,1064), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3542) {"evmhesmia", VX (4,1065), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3543) {"evmhesmfa", VX (4,1067), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3544) {"evmhoumia", VX (4,1068), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3545) {"evmhosmia", VX (4,1069), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3546) {"evmhosmfa", VX (4,1071), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3547) {"vsubuhm", VX (4,1088), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3548) {"bcdsub.", VX (4,1089), VXPS_MASK, PPCVEC2, 0, {VD, VA, VB, PS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3549) {"vavguh", VX (4,1090), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3550) {"vabsduh", VX (4,1091), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3551) {"vandc", VX (4,1092), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3552) {"vcmpequh.", VXR(4, 70,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3553) {"udi1fcm.", APU(4, 547,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3554) {"udi1fcm", APU(4, 547,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3555) {"vcmpneh.", VXR(4, 71,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3556) {"evmwhssf", VX (4,1095), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3557) {"vpmsumh", VX (4,1096), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3558) {"evmwlumi", VX (4,1096), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3559) {"vminfp", VX (4,1098), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3560) {"evmwhumi", VX (4,1100), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3561) {"vsro", VX (4,1100), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3562) {"evmwhsmi", VX (4,1101), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3563) {"vpkudum", VX (4,1102), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3564) {"evmwhsmf", VX (4,1103), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3565) {"evmwssf", VX (4,1107), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3566) {"machhwo", XO (4, 44,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3567) {"evmwumi", VX (4,1112), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3568) {"machhwo.", XO (4, 44,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3569) {"evmwsmi", VX (4,1113), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3570) {"evmwsmf", VX (4,1115), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3571) {"nmachhwo", XO (4, 46,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3572) {"nmachhwo.", XO (4, 46,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3573) {"ps_merge01", XOPS(4,560,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3574) {"ps_merge01.", XOPS(4,560,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3575) {"evmwhssfa", VX (4,1127), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3576) {"evmwlumia", VX (4,1128), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3577) {"evmwhumia", VX (4,1132), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3578) {"evmwhsmia", VX (4,1133), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3579) {"evmwhsmfa", VX (4,1135), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3580) {"evmwssfa", VX (4,1139), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3581) {"evmwumia", VX (4,1144), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3582) {"evmwsmia", VX (4,1145), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3583) {"evmwsmfa", VX (4,1147), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3584) {"vsubuwm", VX (4,1152), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3585) {"bcdus.", VX (4,1153), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3586) {"vavguw", VX (4,1154), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3587) {"vabsduw", VX (4,1155), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3588) {"vmr", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VA, VBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3589) {"vor", VX (4,1156), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3590) {"vcmpnew.", VXR(4, 135,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3591) {"vpmsumw", VX (4,1160), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3592) {"vcmpequw.", VXR(4, 134,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3593) {"udi2fcm.", APU(4, 579,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3594) {"udi2fcm", APU(4, 579,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3595) {"machhwsuo", XO (4, 76,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3596) {"machhwsuo.", XO (4, 76,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3597) {"ps_merge10", XOPS(4,592,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3598) {"ps_merge10.", XOPS(4,592,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3599) {"vsubudm", VX (4,1216), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3600) {"evaddusiaaw", VX (4,1216), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3601) {"bcds.", VX (4,1217), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3602) {"evaddssiaaw", VX (4,1217), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3603) {"evsubfusiaaw",VX (4,1218), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3604) {"evsubfssiaaw",VX (4,1219), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3605) {"evmra", VX (4,1220), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3606) {"vxor", VX (4,1220), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3607) {"evdivws", VX (4,1222), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3608) {"vcmpeqfp.", VXR(4, 198,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3609) {"udi3fcm.", APU(4, 611,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3610) {"vcmpequd.", VXR(4, 199,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3611) {"udi3fcm", APU(4, 611,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3612) {"evdivwu", VX (4,1223), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3613) {"vpmsumd", VX (4,1224), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3614) {"evaddumiaaw", VX (4,1224), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3615) {"evaddsmiaaw", VX (4,1225), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3616) {"evsubfumiaaw",VX (4,1226), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3617) {"evsubfsmiaaw",VX (4,1227), VX_MASK, PPCSPE, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3618) {"vpkudus", VX (4,1230), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3619) {"machhwso", XO (4, 108,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3620) {"machhwso.", XO (4, 108,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3621) {"nmachhwso", XO (4, 110,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3622) {"nmachhwso.", XO (4, 110,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3623) {"ps_merge11", XOPS(4,624,0), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3624) {"ps_merge11.", XOPS(4,624,1), XOPS_MASK, PPCPS, 0, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3625) {"vsubuqm", VX (4,1280), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3626) {"evmheusiaaw", VX (4,1280), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3627) {"bcdtrunc.", VX (4,1281), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3628) {"evmhessiaaw", VX (4,1281), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3629) {"vavgsb", VX (4,1282), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3630) {"evmhessfaaw", VX (4,1283), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3631) {"evmhousiaaw", VX (4,1284), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3632) {"vnot", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VA, VBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3633) {"vnor", VX (4,1284), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3634) {"evmhossiaaw", VX (4,1285), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3635) {"udi4fcm.", APU(4, 643,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3636) {"udi4fcm", APU(4, 643,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3637) {"vcmpnezb.", VXR(4, 263,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3638) {"evmhossfaaw", VX (4,1287), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3639) {"evmheumiaaw", VX (4,1288), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3640) {"vcipher", VX (4,1288), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3641) {"vcipherlast", VX (4,1289), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3642) {"evmhesmiaaw", VX (4,1289), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3643) {"evmhesmfaaw", VX (4,1291), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3644) {"vgbbd", VX (4,1292), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3645) {"evmhoumiaaw", VX (4,1292), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3646) {"evmhosmiaaw", VX (4,1293), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3647) {"evmhosmfaaw", VX (4,1295), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3648) {"macchwuo", XO (4, 140,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3649) {"macchwuo.", XO (4, 140,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3650) {"evmhegumiaa", VX (4,1320), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3651) {"evmhegsmiaa", VX (4,1321), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3652) {"evmhegsmfaa", VX (4,1323), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3653) {"evmhogumiaa", VX (4,1324), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3654) {"evmhogsmiaa", VX (4,1325), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3655) {"evmhogsmfaa", VX (4,1327), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3656) {"vsubcuq", VX (4,1344), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3657) {"evmwlusiaaw", VX (4,1344), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3658) {"bcdutrunc.", VX (4,1345), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3659) {"evmwlssiaaw", VX (4,1345), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3660) {"vavgsh", VX (4,1346), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3661) {"vorc", VX (4,1348), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3662) {"udi5fcm.", APU(4, 675,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3663) {"udi5fcm", APU(4, 675,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3664) {"vcmpnezh.", VXR(4, 327,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3665) {"vncipher", VX (4,1352), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3666) {"evmwlumiaaw", VX (4,1352), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3667) {"vncipherlast",VX (4,1353), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3668) {"evmwlsmiaaw", VX (4,1353), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3669) {"vbpermq", VX (4,1356), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3670) {"vpksdus", VX (4,1358), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3671) {"evmwssfaa", VX (4,1363), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3672) {"macchwo", XO (4, 172,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3673) {"evmwumiaa", VX (4,1368), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3674) {"macchwo.", XO (4, 172,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3675) {"evmwsmiaa", VX (4,1369), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3676) {"evmwsmfaa", VX (4,1371), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3677) {"nmacchwo", XO (4, 174,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3678) {"nmacchwo.", XO (4, 174,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3679) {"evmheusianw", VX (4,1408), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3680) {"vsubcuw", VX (4,1408), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3681) {"evmhessianw", VX (4,1409), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3682) {"bcdctsq.", VXVA(4,1409,0), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3683) {"bcdcfsq.", VXVA(4,1409,2), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3684) {"bcdctz.", VXVA(4,1409,4), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3685) {"bcdctn.", VXVA(4,1409,5), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3686) {"bcdcfz.", VXVA(4,1409,6), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3687) {"bcdcfn.", VXVA(4,1409,7), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3688) {"bcdsetsgn.", VXVA(4,1409,31), VXVAPS_MASK, PPCVEC3, 0, {VD, VB, PS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3689) {"vavgsw", VX (4,1410), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3690) {"evmhessfanw", VX (4,1411), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3691) {"vnand", VX (4,1412), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3692) {"evmhousianw", VX (4,1412), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3693) {"evmhossianw", VX (4,1413), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3694) {"udi6fcm.", APU(4, 707,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3695) {"udi6fcm", APU(4, 707,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3696) {"vcmpnezw.", VXR(4, 391,1), VXR_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3697) {"evmhossfanw", VX (4,1415), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3698) {"evmheumianw", VX (4,1416), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3699) {"evmhesmianw", VX (4,1417), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3700) {"evmhesmfanw", VX (4,1419), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3701) {"evmhoumianw", VX (4,1420), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3702) {"evmhosmianw", VX (4,1421), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3703) {"evmhosmfanw", VX (4,1423), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3704) {"macchwsuo", XO (4, 204,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3705) {"macchwsuo.", XO (4, 204,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3706) {"evmhegumian", VX (4,1448), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3707) {"evmhegsmian", VX (4,1449), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3708) {"evmhegsmfan", VX (4,1451), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3709) {"evmhogumian", VX (4,1452), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3710) {"evmhogsmian", VX (4,1453), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3711) {"evmhogsmfan", VX (4,1455), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3712) {"evmwlusianw", VX (4,1472), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3713) {"bcdsr.", VX (4,1473), VXPS_MASK, PPCVEC3, 0, {VD, VA, VB, PS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3714) {"evmwlssianw", VX (4,1473), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3715) {"vsld", VX (4,1476), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3716) {"vcmpgefp.", VXR(4, 454,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3717) {"udi7fcm.", APU(4, 739,0), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3718) {"udi7fcm", APU(4, 739,1), APU_MASK, PPC405|PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3719) {"vsbox", VX (4,1480), VXVB_MASK, PPCVEC2, 0, {VD, VA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3720) {"evmwlumianw", VX (4,1480), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3721) {"evmwlsmianw", VX (4,1481), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3722) {"vbpermd", VX (4,1484), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3723) {"vpksdss", VX (4,1486), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3724) {"evmwssfan", VX (4,1491), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3725) {"macchwso", XO (4, 236,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3726) {"evmwumian", VX (4,1496), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3727) {"macchwso.", XO (4, 236,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3728) {"evmwsmian", VX (4,1497), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3729) {"evmwsmfan", VX (4,1499), VX_MASK, PPCSPE, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3730) {"nmacchwso", XO (4, 238,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3731) {"nmacchwso.", XO (4, 238,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3732) {"vsububs", VX (4,1536), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3733) {"vclzlsbb", VXVA(4,1538,0), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3734) {"vctzlsbb", VXVA(4,1538,1), VXVA_MASK, PPCVEC3, 0, {RT, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3735) {"vnegw", VXVA(4,1538,6), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3736) {"vnegd", VXVA(4,1538,7), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3737) {"vprtybw", VXVA(4,1538,8), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3738) {"vprtybd", VXVA(4,1538,9), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3739) {"vprtybq", VXVA(4,1538,10), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3740) {"vextsb2w", VXVA(4,1538,16), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3741) {"vextsh2w", VXVA(4,1538,17), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3742) {"vextsb2d", VXVA(4,1538,24), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3743) {"vextsh2d", VXVA(4,1538,25), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3744) {"vextsw2d", VXVA(4,1538,26), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3745) {"vctzb", VXVA(4,1538,28), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3746) {"vctzh", VXVA(4,1538,29), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3747) {"vctzw", VXVA(4,1538,30), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3748) {"vctzd", VXVA(4,1538,31), VXVA_MASK, PPCVEC3, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3749) {"mfvscr", VX (4,1540), VXVAVB_MASK, PPCVEC, 0, {VD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3750) {"vcmpgtub.", VXR(4, 518,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3751) {"udi8fcm.", APU(4, 771,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3752) {"udi8fcm", APU(4, 771,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3753) {"vsum4ubs", VX (4,1544), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3754) {"vextublx", VX (4,1549), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3755) {"vsubuhs", VX (4,1600), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3756) {"mtvscr", VX (4,1604), VXVDVA_MASK, PPCVEC, 0, {VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3757) {"vcmpgtuh.", VXR(4, 582,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3758) {"vsum4shs", VX (4,1608), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3759) {"udi9fcm.", APU(4, 804,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3760) {"udi9fcm", APU(4, 804,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3761) {"vextuhlx", VX (4,1613), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3762) {"vupkhsw", VX (4,1614), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3763) {"vsubuws", VX (4,1664), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3764) {"vshasigmaw", VX (4,1666), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3765) {"veqv", VX (4,1668), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3766) {"vcmpgtuw.", VXR(4, 646,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3767) {"udi10fcm.", APU(4, 835,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3768) {"udi10fcm", APU(4, 835,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3769) {"vsum2sws", VX (4,1672), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3770) {"vmrgow", VX (4,1676), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3771) {"vextuwlx", VX (4,1677), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3772) {"vshasigmad", VX (4,1730), VX_MASK, PPCVEC2, 0, {VD, VA, ST, SIX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3773) {"vsrd", VX (4,1732), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3774) {"vcmpgtfp.", VXR(4, 710,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3775) {"udi11fcm.", APU(4, 867,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3776) {"vcmpgtud.", VXR(4, 711,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3777) {"udi11fcm", APU(4, 867,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3778) {"vupklsw", VX (4,1742), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3779) {"vsubsbs", VX (4,1792), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3780) {"vclzb", VX (4,1794), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3781) {"vpopcntb", VX (4,1795), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3782) {"vsrv", VX (4,1796), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3783) {"vcmpgtsb.", VXR(4, 774,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3784) {"udi12fcm.", APU(4, 899,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3785) {"udi12fcm", APU(4, 899,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3786) {"vsum4sbs", VX (4,1800), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3787) {"vextubrx", VX (4,1805), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3788) {"maclhwuo", XO (4, 396,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3789) {"maclhwuo.", XO (4, 396,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3790) {"vsubshs", VX (4,1856), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3791) {"vclzh", VX (4,1858), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3792) {"vpopcnth", VX (4,1859), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3793) {"vslv", VX (4,1860), VX_MASK, PPCVEC3, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3794) {"vcmpgtsh.", VXR(4, 838,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3795) {"vextuhrx", VX (4,1869), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3796) {"udi13fcm.", APU(4, 931,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3797) {"udi13fcm", APU(4, 931,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3798) {"maclhwo", XO (4, 428,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3799) {"maclhwo.", XO (4, 428,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3800) {"nmaclhwo", XO (4, 430,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3801) {"nmaclhwo.", XO (4, 430,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3802) {"vsubsws", VX (4,1920), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3803) {"vclzw", VX (4,1922), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3804) {"vpopcntw", VX (4,1923), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3805) {"vcmpgtsw.", VXR(4, 902,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3806) {"udi14fcm.", APU(4, 963,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3807) {"udi14fcm", APU(4, 963,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3808) {"vsumsws", VX (4,1928), VX_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3809) {"vmrgew", VX (4,1932), VX_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3810) {"vextuwrx", VX (4,1933), VX_MASK, PPCVEC3, 0, {RT, RA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3811) {"maclhwsuo", XO (4, 460,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3812) {"maclhwsuo.", XO (4, 460,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3813) {"vclzd", VX (4,1986), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3814) {"vpopcntd", VX (4,1987), VXVA_MASK, PPCVEC2, 0, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3815) {"vcmpbfp.", VXR(4, 966,1), VXR_MASK, PPCVEC, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3816) {"udi15fcm.", APU(4, 995,0), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3817) {"vcmpgtsd.", VXR(4, 967,1), VXR_MASK, PPCVEC2, 0, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3818) {"udi15fcm", APU(4, 995,1), APU_MASK, PPC440, PPC476, {URT, URA, URB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3819) {"maclhwso", XO (4, 492,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3820) {"maclhwso.", XO (4, 492,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3821) {"nmaclhwso", XO (4, 494,1,0), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3822) {"nmaclhwso.", XO (4, 494,1,1), XO_MASK, MULHW, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3823) {"dcbz_l", X (4,1014), XRT_MASK, PPCPS, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3824)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3825) {"mulli", OP(7), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3826) {"muli", OP(7), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3827)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3828) {"subfic", OP(8), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3829) {"sfi", OP(8), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3830)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3831) {"dozi", OP(9), OP_MASK, M601, PPCVLE, {RT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3832)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3833) {"cmplwi", OPL(10,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, UISIGNOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3834) {"cmpldi", OPL(10,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, UISIGNOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3835) {"cmpli", OP(10), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, UISIGNOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3836) {"cmpli", OP(10), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, UISIGNOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3837)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3838) {"cmpwi", OPL(11,0), OPL_MASK, PPCCOM, PPCVLE, {OBF, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3839) {"cmpdi", OPL(11,1), OPL_MASK, PPC64, PPCVLE, {OBF, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3840) {"cmpi", OP(11), OP_MASK, PPC, PPCVLE, {BF, L32OPT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3841) {"cmpi", OP(11), OP_MASK, PWRCOM, PPC|PPCVLE, {BF, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3842)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3843) {"addic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3844) {"ai", OP(12), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3845) {"subic", OP(12), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3846)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3847) {"addic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3848) {"ai.", OP(13), OP_MASK, PWRCOM, PPCVLE, {RT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3849) {"subic.", OP(13), OP_MASK, PPCCOM, PPCVLE, {RT, RA, NSI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3850)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3851) {"li", OP(14), DRA_MASK, PPCCOM, PPCVLE, {RT, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3852) {"lil", OP(14), DRA_MASK, PWRCOM, PPCVLE, {RT, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3853) {"addi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3854) {"cal", OP(14), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3855) {"subi", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3856) {"la", OP(14), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3857)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3858) {"lis", OP(15), DRA_MASK, PPCCOM, PPCVLE, {RT, SISIGNOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3859) {"liu", OP(15), DRA_MASK, PWRCOM, PPCVLE, {RT, SISIGNOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3860) {"addis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3861) {"cau", OP(15), OP_MASK, PWRCOM, PPCVLE, {RT, RA0, SISIGNOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3862) {"subis", OP(15), OP_MASK, PPCCOM, PPCVLE, {RT, RA0, NSISIGNOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3863)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3864) {"bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3865) {"bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3866) {"bdnz", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3867) {"bdn", BBO(16,BODNZ,0,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3868) {"bdnzl-", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3869) {"bdnzl+", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3870) {"bdnzl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3871) {"bdnl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3872) {"bdnza-", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3873) {"bdnza+", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3874) {"bdnza", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3875) {"bdna", BBO(16,BODNZ,1,0), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3876) {"bdnzla-", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3877) {"bdnzla+", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3878) {"bdnzla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3879) {"bdnla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PWRCOM, PPCVLE, {BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3880) {"bdz-", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3881) {"bdz+", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3882) {"bdz", BBO(16,BODZ,0,0), BBOATBI_MASK, COM, PPCVLE, {BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3883) {"bdzl-", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3884) {"bdzl+", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3885) {"bdzl", BBO(16,BODZ,0,1), BBOATBI_MASK, COM, PPCVLE, {BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3886) {"bdza-", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3887) {"bdza+", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3888) {"bdza", BBO(16,BODZ,1,0), BBOATBI_MASK, COM, PPCVLE, {BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3889) {"bdzla-", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3890) {"bdzla+", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, PPCVLE, {BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3891) {"bdzla", BBO(16,BODZ,1,1), BBOATBI_MASK, COM, PPCVLE, {BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3892)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3893) {"bge-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3894) {"bge+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3895) {"bge", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3896) {"bnl-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3897) {"bnl+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3898) {"bnl", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3899) {"bgel-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3900) {"bgel+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3901) {"bgel", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3902) {"bnll-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3903) {"bnll+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3904) {"bnll", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3905) {"bgea-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3906) {"bgea+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3907) {"bgea", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3908) {"bnla-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3909) {"bnla+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3910) {"bnla", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3911) {"bgela-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3912) {"bgela+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3913) {"bgela", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3914) {"bnlla-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3915) {"bnlla+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3916) {"bnlla", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3917) {"ble-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3918) {"ble+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3919) {"ble", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3920) {"bng-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3921) {"bng+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3922) {"bng", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3923) {"blel-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3924) {"blel+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3925) {"blel", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3926) {"bngl-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3927) {"bngl+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3928) {"bngl", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3929) {"blea-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3930) {"blea+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3931) {"blea", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3932) {"bnga-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3933) {"bnga+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3934) {"bnga", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3935) {"blela-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3936) {"blela+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3937) {"blela", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3938) {"bngla-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3939) {"bngla+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3940) {"bngla", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3941) {"bne-", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3942) {"bne+", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3943) {"bne", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3944) {"bnel-", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3945) {"bnel+", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3946) {"bnel", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3947) {"bnea-", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3948) {"bnea+", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3949) {"bnea", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3950) {"bnela-", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3951) {"bnela+", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3952) {"bnela", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3953) {"bns-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3954) {"bns+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3955) {"bns", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3956) {"bnu-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3957) {"bnu+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3958) {"bnu", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3959) {"bnsl-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3960) {"bnsl+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3961) {"bnsl", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3962) {"bnul-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3963) {"bnul+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3964) {"bnul", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3965) {"bnsa-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3966) {"bnsa+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3967) {"bnsa", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3968) {"bnua-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3969) {"bnua+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3970) {"bnua", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3971) {"bnsla-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3972) {"bnsla+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3973) {"bnsla", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3974) {"bnula-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3975) {"bnula+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3976) {"bnula", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3977)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3978) {"blt-", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3979) {"blt+", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3980) {"blt", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3981) {"bltl-", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3982) {"bltl+", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3983) {"bltl", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3984) {"blta-", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3985) {"blta+", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3986) {"blta", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3987) {"bltla-", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3988) {"bltla+", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3989) {"bltla", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3990) {"bgt-", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3991) {"bgt+", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3992) {"bgt", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3993) {"bgtl-", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3994) {"bgtl+", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3995) {"bgtl", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3996) {"bgta-", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3997) {"bgta+", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3998) {"bgta", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3999) {"bgtla-", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4000) {"bgtla+", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4001) {"bgtla", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4002) {"beq-", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4003) {"beq+", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4004) {"beq", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4005) {"beql-", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4006) {"beql+", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4007) {"beql", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4008) {"beqa-", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4009) {"beqa+", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4010) {"beqa", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4011) {"beqla-", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4012) {"beqla+", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4013) {"beqla", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4014) {"bso-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4015) {"bso+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4016) {"bso", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4017) {"bun-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4018) {"bun+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4019) {"bun", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4020) {"bsol-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4021) {"bsol+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4022) {"bsol", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, COM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4023) {"bunl-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4024) {"bunl+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4025) {"bunl", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4026) {"bsoa-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4027) {"bsoa+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4028) {"bsoa", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4029) {"buna-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4030) {"buna+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4031) {"buna", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4032) {"bsola-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4033) {"bsola+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4034) {"bsola", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, COM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4035) {"bunla-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4036) {"bunla+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4037) {"bunla", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, PPCVLE, {CR, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4038)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4039) {"bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4040) {"bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4041) {"bdnzf", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4042) {"bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4043) {"bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4044) {"bdnzfl", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4045) {"bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4046) {"bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4047) {"bdnzfa", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4048) {"bdnzfla-", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4049) {"bdnzfla+", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4050) {"bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4051) {"bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4052) {"bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4053) {"bdzf", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4054) {"bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4055) {"bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4056) {"bdzfl", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4057) {"bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4058) {"bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4059) {"bdzfa", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4060) {"bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4061) {"bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4062) {"bdzfla", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4063)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4064) {"bf-", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4065) {"bf+", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4066) {"bf", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4067) {"bbf", BBO(16,BOF,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4068) {"bfl-", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4069) {"bfl+", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4070) {"bfl", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4071) {"bbfl", BBO(16,BOF,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4072) {"bfa-", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4073) {"bfa+", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4074) {"bfa", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4075) {"bbfa", BBO(16,BOF,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4076) {"bfla-", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4077) {"bfla+", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4078) {"bfla", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4079) {"bbfla", BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4080)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4081) {"bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4082) {"bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4083) {"bdnzt", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4084) {"bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4085) {"bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4086) {"bdnztl", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4087) {"bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4088) {"bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4089) {"bdnzta", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4090) {"bdnztla-", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4091) {"bdnztla+", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4092) {"bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4093) {"bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4094) {"bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4095) {"bdzt", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4096) {"bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4097) {"bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4098) {"bdztl", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4099) {"bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4100) {"bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4101) {"bdzta", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4102) {"bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4103) {"bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, ISA_V2|PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4104) {"bdztla", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4105)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4106) {"bt-", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4107) {"bt+", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4108) {"bt", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4109) {"bbt", BBO(16,BOT,0,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4110) {"btl-", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4111) {"btl+", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4112) {"btl", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4113) {"bbtl", BBO(16,BOT,0,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4114) {"bta-", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4115) {"bta+", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4116) {"bta", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4117) {"bbta", BBO(16,BOT,1,0), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4118) {"btla-", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4119) {"btla+", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4120) {"btla", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4121) {"bbtla", BBO(16,BOT,1,1), BBOAT_MASK, PWRCOM, PPCVLE, {BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4122)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4123) {"bc-", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4124) {"bc+", B(16,0,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4125) {"bc", B(16,0,0), B_MASK, COM, PPCVLE, {BO, BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4126) {"bcl-", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4127) {"bcl+", B(16,0,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDP}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4128) {"bcl", B(16,0,1), B_MASK, COM, PPCVLE, {BO, BI, BD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4129) {"bca-", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4130) {"bca+", B(16,1,0), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4131) {"bca", B(16,1,0), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4132) {"bcla-", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDMA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4133) {"bcla+", B(16,1,1), B_MASK, PPCCOM, PPCVLE, {BOE, BI, BDPA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4134) {"bcla", B(16,1,1), B_MASK, COM, PPCVLE, {BO, BI, BDA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4136) {"svc", SC(17,0,0), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4137) {"svcl", SC(17,0,1), SC_MASK, POWER, PPCVLE, {SVC_LEV, FL1, FL2}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4138) {"sc", SC(17,1,0), SC_MASK, PPC, PPCVLE, {LEV}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4139) {"svca", SC(17,1,0), SC_MASK, PWRCOM, PPCVLE, {SV}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4140) {"svcla", SC(17,1,1), SC_MASK, POWER, PPCVLE, {SV}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4141)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4142) {"b", B(18,0,0), B_MASK, COM, PPCVLE, {LI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4143) {"bl", B(18,0,1), B_MASK, COM, PPCVLE, {LI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4144) {"ba", B(18,1,0), B_MASK, COM, PPCVLE, {LIA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4145) {"bla", B(18,1,1), B_MASK, COM, PPCVLE, {LIA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4146)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4147) {"mcrf", XL(19,0), XLBB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4148)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4149) {"addpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, DXD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4150) {"subpcis", DX(19,2), DX_MASK, POWER9, PPCVLE, {RT, NDXD}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4152) {"bdnzlr", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4153) {"bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4154) {"bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4155) {"bdnzlrl-", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4156) {"bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4157) {"bdnzlrl+", XLO(19,BODNZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4158) {"bdzlr", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4159) {"bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4160) {"bdzlrl", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4161) {"bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4162) {"bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4163) {"bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, PPCCOM, ISA_V2|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4164) {"blr", XLO(19,BOU,16,0), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4165) {"br", XLO(19,BOU,16,0), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4166) {"blrl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PPCCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4167) {"brl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4168) {"bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4169) {"bdnzlrl-", XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4170) {"bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4171) {"bdnzlrl+", XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4172) {"bdzlr-", XLO(19,BODZM4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4173) {"bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4174) {"bdzlr+", XLO(19,BODZP4,16,0), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4175) {"bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, ISA_V2, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4176)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4177) {"bgelr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4178) {"bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4179) {"bger", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4180) {"bnllr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4181) {"bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4182) {"bnlr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4183) {"bgelrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4184) {"bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4185) {"bgerl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4186) {"bnllrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4187) {"bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4188) {"bnlrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4189) {"blelr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4190) {"blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4191) {"bler", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4192) {"bnglr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4193) {"bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4194) {"bngr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4195) {"blelrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4196) {"blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4197) {"blerl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4198) {"bnglrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4199) {"bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4200) {"bngrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4201) {"bnelr", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4202) {"bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4203) {"bner", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4204) {"bnelrl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4205) {"bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4206) {"bnerl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4207) {"bnslr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4208) {"bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4209) {"bnsr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4210) {"bnulr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4211) {"bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4212) {"bnslrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4213) {"bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4214) {"bnsrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4215) {"bnulrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4216) {"bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4217) {"bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4218) {"bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4219) {"bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4220) {"bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4221) {"blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4222) {"bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4223) {"blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4224) {"bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4225) {"bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4226) {"bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4227) {"bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4228) {"bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4229) {"bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4230) {"bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4231) {"bgelr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4232) {"bnllr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4233) {"bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4234) {"bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4235) {"blelr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4236) {"bnglr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4237) {"blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4238) {"bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4239) {"bnelr-", XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4240) {"bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4241) {"bnslr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4242) {"bnulr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4243) {"bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4244) {"bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4245) {"bgelr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4246) {"bnllr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4247) {"bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4248) {"bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4249) {"blelr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4250) {"bnglr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4251) {"blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4252) {"bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4253) {"bnelr+", XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4254) {"bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4255) {"bnslr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4256) {"bnulr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4257) {"bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4258) {"bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4259) {"bltlr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4260) {"bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4261) {"bltr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4262) {"bltlrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4263) {"bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4264) {"bltrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4265) {"bgtlr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4266) {"bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4267) {"bgtr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4268) {"bgtlrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4269) {"bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4270) {"bgtrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4271) {"beqlr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4272) {"beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4273) {"beqr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4274) {"beqlrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4275) {"beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4276) {"beqrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4277) {"bsolr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4278) {"bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4279) {"bsor", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4280) {"bunlr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4281) {"bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4282) {"bsolrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4283) {"bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4284) {"bsorl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4285) {"bunlrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4286) {"bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4287) {"bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4288) {"bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4289) {"bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4290) {"bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4291) {"beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4292) {"beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4293) {"bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4294) {"bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4295) {"bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4296) {"bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4297) {"bltlr-", XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4298) {"bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4299) {"bgtlr-", XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4300) {"bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4301) {"beqlr-", XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4302) {"beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4303) {"bsolr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4304) {"bunlr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4305) {"bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4306) {"bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4307) {"bltlr+", XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4308) {"bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4309) {"bgtlr+", XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4310) {"bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4311) {"beqlr+", XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4312) {"beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4313) {"bsolr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4314) {"bunlr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4315) {"bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4316) {"bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4317)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4318) {"bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4319) {"bdnzflr-", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4320) {"bdnzflrl", XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4321) {"bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4322) {"bdnzflr+", XLO(19,BODNZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4323) {"bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4324) {"bdzflr", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4325) {"bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4326) {"bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4327) {"bdzflrl-", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4328) {"bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4329) {"bdzflrl+", XLO(19,BODZFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4330) {"bflr", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4331) {"bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4332) {"bbfr", XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4333) {"bflrl", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4334) {"bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4335) {"bbfrl", XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4336) {"bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4337) {"bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4338) {"bflr-", XLO(19,BOFM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4339) {"bflrl-", XLO(19,BOFM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4340) {"bflr+", XLO(19,BOFP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4341) {"bflrl+", XLO(19,BOFP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4342) {"bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4343) {"bdnztlr-", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4344) {"bdnztlrl", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4345) {"bdnztlrl-", XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4346) {"bdnztlr+", XLO(19,BODNZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4347) {"bdnztlrl+", XLO(19,BODNZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4348) {"bdztlr", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4349) {"bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4350) {"bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4351) {"bdztlrl-", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4352) {"bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4353) {"bdztlrl+", XLO(19,BODZTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4354) {"btlr", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4355) {"btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4356) {"bbtr", XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4357) {"btlrl", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4358) {"btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4359) {"bbtrl", XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4360) {"btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4361) {"btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4362) {"btlr-", XLO(19,BOTM4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4363) {"btlrl-", XLO(19,BOTM4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4364) {"btlr+", XLO(19,BOTP4,16,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4365) {"btlrl+", XLO(19,BOTP4,16,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4366)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4367) {"bclr-", XLYLK(19,16,0,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4368) {"bclrl-", XLYLK(19,16,0,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4369) {"bclr+", XLYLK(19,16,1,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4370) {"bclrl+", XLYLK(19,16,1,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4371) {"bclr", XLLK(19,16,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4372) {"bcr", XLLK(19,16,0), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4373) {"bclrl", XLLK(19,16,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4374) {"bcrl", XLLK(19,16,1), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4375)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4376) {"rfid", XL(19,18), 0xffffffff, PPC64, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4377)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4378) {"crnot", XL(19,33), XL_MASK, PPCCOM, PPCVLE, {BT, BA, BBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4379) {"crnor", XL(19,33), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4380) {"rfmci", X(19,38), 0xffffffff, PPCRFMCI|PPCA2|PPC476, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4381)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4382) {"rfdi", XL(19,39), 0xffffffff, E500MC, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4383) {"rfi", XL(19,50), 0xffffffff, COM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4384) {"rfci", XL(19,51), 0xffffffff, PPC403|BOOKE|PPCE300|PPCA2|PPC476, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4385)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4386) {"rfsvc", XL(19,82), 0xffffffff, POWER, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4387)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4388) {"rfgi", XL(19,102), 0xffffffff, E500MC|PPCA2, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4389)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4390) {"crandc", XL(19,129), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4391)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4392) {"rfebb", XL(19,146), XLS_MASK, POWER8, PPCVLE, {SXL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4393)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4394) {"isync", XL(19,150), 0xffffffff, PPCCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4395) {"ics", XL(19,150), 0xffffffff, PWRCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4396)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4397) {"crclr", XL(19,193), XL_MASK, PPCCOM, PPCVLE, {BT, BAT, BBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4398) {"crxor", XL(19,193), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4399)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4400) {"dnh", X(19,198), X_MASK, E500MC, PPCVLE, {DUI, DUIS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4401)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4402) {"crnand", XL(19,225), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4403)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4404) {"crand", XL(19,257), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4405)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4406) {"hrfid", XL(19,274), 0xffffffff, POWER5|CELL, PPC476|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4407)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4408) {"crset", XL(19,289), XL_MASK, PPCCOM, PPCVLE, {BT, BAT, BBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4409) {"creqv", XL(19,289), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4410)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4411) {"urfid", XL(19,306), 0xffffffff, POWER9, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4412) {"stop", XL(19,370), 0xffffffff, POWER9, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4413)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4414) {"doze", XL(19,402), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4415)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4416) {"crorc", XL(19,417), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4417)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4418) {"nap", XL(19,434), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4419)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4420) {"crmove", XL(19,449), XL_MASK, PPCCOM, PPCVLE, {BT, BA, BBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4421) {"cror", XL(19,449), XL_MASK, COM, PPCVLE, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4422)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4423) {"sleep", XL(19,466), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4424) {"rvwinkle", XL(19,498), 0xffffffff, POWER6, POWER9|PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4425)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4426) {"bctr", XLO(19,BOU,528,0), XLBOBIBB_MASK, COM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4427) {"bctrl", XLO(19,BOU,528,1), XLBOBIBB_MASK, COM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4428)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4429) {"bgectr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4430) {"bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4431) {"bnlctr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4432) {"bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4433) {"bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4434) {"bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4435) {"bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4436) {"bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4437) {"blectr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4438) {"blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4439) {"bngctr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4440) {"bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4441) {"blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4442) {"blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4443) {"bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4444) {"bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4445) {"bnectr", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4446) {"bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4447) {"bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4448) {"bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4449) {"bnsctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4450) {"bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4451) {"bnuctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4452) {"bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4453) {"bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4454) {"bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4455) {"bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4456) {"bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4457) {"bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4458) {"bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4459) {"bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4460) {"bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4461) {"blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4462) {"bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4463) {"blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4464) {"bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4465) {"bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4466) {"bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4467) {"bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4468) {"bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4469) {"bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4470) {"bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4471) {"bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4472) {"bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4473) {"bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4474) {"bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4475) {"blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4476) {"bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4477) {"blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4478) {"bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4479) {"bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4480) {"bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4481) {"bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4482) {"bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4483) {"bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4484) {"bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4485) {"bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4486) {"bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4487) {"bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4488) {"bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4489) {"blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4490) {"bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4491) {"blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4492) {"bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4493) {"bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4494) {"bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4495) {"bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4496) {"bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4497) {"bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4498) {"bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4499) {"bltctr", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4500) {"bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4501) {"bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4502) {"bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4503) {"bgtctr", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4504) {"bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4505) {"bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4506) {"bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4507) {"beqctr", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4508) {"beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4509) {"beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4510) {"beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4511) {"bsoctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4512) {"bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4513) {"bunctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4514) {"bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4515) {"bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4516) {"bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4517) {"bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4518) {"bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4519) {"bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4520) {"bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4521) {"bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4522) {"bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4523) {"beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4524) {"beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4525) {"bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4526) {"bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4527) {"bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4528) {"bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, ISA_V2|PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4529) {"bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4530) {"bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4531) {"bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4532) {"bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4533) {"beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4534) {"beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4535) {"bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4536) {"bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4537) {"bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4538) {"bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4539) {"bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4540) {"bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4541) {"bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4542) {"bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4543) {"beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4544) {"beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4545) {"bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4546) {"bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4547) {"bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4548) {"bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, ISA_V2, PPCVLE, {CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4549)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4550) {"bfctr", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4551) {"bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4552) {"bfctrl", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4553) {"bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4554) {"bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4555) {"bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4556) {"bfctr-", XLO(19,BOFM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4557) {"bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4558) {"bfctr+", XLO(19,BOFP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4559) {"bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4560) {"btctr", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4561) {"btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4562) {"btctrl", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4563) {"btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4564) {"btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4565) {"btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, PPCCOM, ISA_V2|PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4566) {"btctr-", XLO(19,BOTM4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4567) {"btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4568) {"btctr+", XLO(19,BOTP4,528,0), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4569) {"btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, ISA_V2, PPCVLE, {BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4570)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4571) {"bcctr-", XLYLK(19,528,0,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4572) {"bcctrl-", XLYLK(19,528,0,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4573) {"bcctr+", XLYLK(19,528,1,0), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4574) {"bcctrl+", XLYLK(19,528,1,1), XLYBB_MASK, PPCCOM, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4575) {"bcctr", XLLK(19,528,0), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4576) {"bcc", XLLK(19,528,0), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4577) {"bcctrl", XLLK(19,528,1), XLBH_MASK, PPCCOM, PPCVLE, {BO, BI, BH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4578) {"bccl", XLLK(19,528,1), XLBB_MASK, PWRCOM, PPCVLE, {BO, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4579)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4580) {"bctar-", XLYLK(19,560,0,0), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4581) {"bctarl-", XLYLK(19,560,0,1), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4582) {"bctar+", XLYLK(19,560,1,0), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4583) {"bctarl+", XLYLK(19,560,1,1), XLYBB_MASK, POWER8, PPCVLE, {BOE, BI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4584) {"bctar", XLLK(19,560,0), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4585) {"bctarl", XLLK(19,560,1), XLBH_MASK, POWER8, PPCVLE, {BO, BI, BH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4586)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4587) {"rlwimi", M(20,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4588) {"rlimi", M(20,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4589)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4590) {"rlwimi.", M(20,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4591) {"rlimi.", M(20,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4592)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4593) {"rotlwi", MME(21,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4594) {"clrlwi", MME(21,31,0), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4595) {"rlwinm", M(21,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4596) {"rlinm", M(21,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4597) {"rotlwi.", MME(21,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4598) {"clrlwi.", MME(21,31,1), MSHME_MASK, PPCCOM, PPCVLE, {RA, RS, MB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4599) {"rlwinm.", M(21,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4600) {"rlinm.", M(21,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, SH, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4601)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4602) {"rlmi", M(22,0), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4603) {"rlmi.", M(22,1), M_MASK, M601, PPCVLE, {RA, RS, RB, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4604)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4605) {"rotlw", MME(23,31,0), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4606) {"rlwnm", M(23,0), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4607) {"rlnm", M(23,0), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4608) {"rotlw.", MME(23,31,1), MMBME_MASK, PPCCOM, PPCVLE, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4609) {"rlwnm.", M(23,1), M_MASK, PPCCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4610) {"rlnm.", M(23,1), M_MASK, PWRCOM, PPCVLE, {RA, RS, RB, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4611)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4612) {"nop", OP(24), 0xffffffff, PPCCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4613) {"ori", OP(24), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4614) {"oril", OP(24), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4615)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4616) {"oris", OP(25), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4617) {"oriu", OP(25), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4618)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4619) {"xnop", OP(26), 0xffffffff, PPCCOM, PPCVLE, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4620) {"xori", OP(26), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4621) {"xoril", OP(26), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4622)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4623) {"xoris", OP(27), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4624) {"xoriu", OP(27), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4625)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4626) {"andi.", OP(28), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4627) {"andil.", OP(28), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4628)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4629) {"andis.", OP(29), OP_MASK, PPCCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4630) {"andiu.", OP(29), OP_MASK, PWRCOM, PPCVLE, {RA, RS, UI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4631)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4632) {"rotldi", MD(30,0,0), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4633) {"clrldi", MD(30,0,0), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4634) {"rldicl", MD(30,0,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4635) {"rotldi.", MD(30,0,1), MDMB_MASK, PPC64, PPCVLE, {RA, RS, SH6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4636) {"clrldi.", MD(30,0,1), MDSH_MASK, PPC64, PPCVLE, {RA, RS, MB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4637) {"rldicl.", MD(30,0,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4638)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4639) {"rldicr", MD(30,1,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4640) {"rldicr.", MD(30,1,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, ME6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4641)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4642) {"rldic", MD(30,2,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4643) {"rldic.", MD(30,2,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4644)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4645) {"rldimi", MD(30,3,0), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4646) {"rldimi.", MD(30,3,1), MD_MASK, PPC64, PPCVLE, {RA, RS, SH6, MB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4647)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4648) {"rotld", MDS(30,8,0), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4649) {"rldcl", MDS(30,8,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4650) {"rotld.", MDS(30,8,1), MDSMB_MASK, PPC64, PPCVLE, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4651) {"rldcl.", MDS(30,8,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, MB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4652)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4653) {"rldcr", MDS(30,9,0), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4654) {"rldcr.", MDS(30,9,1), MDS_MASK, PPC64, PPCVLE, {RA, RS, RB, ME6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4655)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4656) {"cmpw", XOPL(31,0,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4657) {"cmpd", XOPL(31,0,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4658) {"cmp", X(31,0), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4659) {"cmp", X(31,0), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4660)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4661) {"twlgt", XTO(31,4,TOLGT), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4662) {"tlgt", XTO(31,4,TOLGT), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4663) {"twllt", XTO(31,4,TOLLT), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4664) {"tllt", XTO(31,4,TOLLT), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4665) {"tweq", XTO(31,4,TOEQ), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4666) {"teq", XTO(31,4,TOEQ), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4667) {"twlge", XTO(31,4,TOLGE), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4668) {"tlge", XTO(31,4,TOLGE), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4669) {"twlnl", XTO(31,4,TOLNL), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4670) {"tlnl", XTO(31,4,TOLNL), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4671) {"twlle", XTO(31,4,TOLLE), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4672) {"tlle", XTO(31,4,TOLLE), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4673) {"twlng", XTO(31,4,TOLNG), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4674) {"tlng", XTO(31,4,TOLNG), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4675) {"twgt", XTO(31,4,TOGT), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4676) {"tgt", XTO(31,4,TOGT), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4677) {"twge", XTO(31,4,TOGE), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4678) {"tge", XTO(31,4,TOGE), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4679) {"twnl", XTO(31,4,TONL), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4680) {"tnl", XTO(31,4,TONL), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4681) {"twlt", XTO(31,4,TOLT), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4682) {"tlt", XTO(31,4,TOLT), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4683) {"twle", XTO(31,4,TOLE), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4684) {"tle", XTO(31,4,TOLE), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4685) {"twng", XTO(31,4,TONG), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4686) {"tng", XTO(31,4,TONG), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4687) {"twne", XTO(31,4,TONE), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4688) {"tne", XTO(31,4,TONE), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4689) {"trap", XTO(31,4,TOU), 0xffffffff, PPCCOM, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4690) {"twu", XTO(31,4,TOU), XTO_MASK, PPCCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4691) {"tu", XTO(31,4,TOU), XTO_MASK, PWRCOM, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4692) {"tw", X(31,4), X_MASK, PPCCOM, 0, {TO, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4693) {"t", X(31,4), X_MASK, PWRCOM, 0, {TO, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4694)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4695) {"lvsl", X(31,6), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4696) {"lvebx", X(31,7), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4697) {"lbfcmx", APU(31,7,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4698)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4699) {"subfc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4700) {"sf", XO(31,8,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4701) {"subc", XO(31,8,0,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4702) {"subfc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4703) {"sf.", XO(31,8,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4704) {"subc.", XO(31,8,0,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4705)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4706) {"mulhdu", XO(31,9,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4707) {"mulhdu.", XO(31,9,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4708)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4709) {"addc", XO(31,10,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4710) {"a", XO(31,10,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4711) {"addc.", XO(31,10,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4712) {"a.", XO(31,10,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4713)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4714) {"mulhwu", XO(31,11,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4715) {"mulhwu.", XO(31,11,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4716)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4717) {"lxsiwzx", X(31,12), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4718)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4719) {"isellt", X(31,15), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4720)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4721) {"tlbilxlpid", XTO(31,18,0), XTO_MASK, E500MC|PPCA2, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4722) {"tlbilxpid", XTO(31,18,1), XTO_MASK, E500MC|PPCA2, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4723) {"tlbilxva", XTO(31,18,3), XTO_MASK, E500MC|PPCA2, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4724) {"tlbilx", X(31,18), X_MASK, E500MC|PPCA2, 0, {T, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4725)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4726) {"mfcr", XFXM(31,19,0,0), XFXFXM_MASK, COM, 0, {RT, FXM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4727) {"mfocrf", XFXM(31,19,0,1), XFXFXM_MASK, COM, 0, {RT, FXM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4728)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4729) {"lwarx", X(31,20), XEH_MASK, PPC, 0, {RT, RA0, RB, EH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4730)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4731) {"ldx", X(31,21), X_MASK, PPC64, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4732)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4733) {"icbt", X(31,22), X_MASK, BOOKE|PPCE300|PPCA2|PPC476, 0, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4734)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4735) {"lwzx", X(31,23), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4736) {"lx", X(31,23), X_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4737)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4738) {"slw", XRC(31,24,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4739) {"sl", XRC(31,24,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4740) {"slw.", XRC(31,24,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4741) {"sl.", XRC(31,24,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4742)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4743) {"cntlzw", XRC(31,26,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4744) {"cntlz", XRC(31,26,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4745) {"cntlzw.", XRC(31,26,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4746) {"cntlz.", XRC(31,26,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4747)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4748) {"sld", XRC(31,27,0), X_MASK, PPC64, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4749) {"sld.", XRC(31,27,1), X_MASK, PPC64, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4750)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4751) {"and", XRC(31,28,0), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4752) {"and.", XRC(31,28,1), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4753)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4754) {"maskg", XRC(31,29,0), X_MASK, M601, PPCA2, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4755) {"maskg.", XRC(31,29,1), X_MASK, M601, PPCA2, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4756)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4757) {"ldepx", X(31,29), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4758)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4759) {"waitasec", X(31,30), XRTRARB_MASK, POWER8, POWER9, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4760) {"wait", X(31,30), XWC_MASK, POWER9, 0, {WC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4761)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4762) {"lwepx", X(31,31), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4763)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4764) {"cmplw", XOPL(31,32,0), XCMPL_MASK, PPCCOM, 0, {OBF, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4765) {"cmpld", XOPL(31,32,1), XCMPL_MASK, PPC64, 0, {OBF, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4766) {"cmpl", X(31,32), XCMP_MASK, PPC, 0, {BF, L32OPT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4767) {"cmpl", X(31,32), XCMPL_MASK, PWRCOM, PPC, {BF, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4768)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4769) {"lvsr", X(31,38), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4770) {"lvehx", X(31,39), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4771) {"lhfcmx", APU(31,39,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4772)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4773) {"mviwsplt", X(31,46), X_MASK, PPCVEC2, 0, {VD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4774)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4775) {"iselgt", X(31,47), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4776)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4777) {"lvewx", X(31,71), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4778)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4779) {"addg6s", XO(31,74,0,0), XO_MASK, POWER6, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4780)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4781) {"lxsiwax", X(31,76), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4782)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4783) {"iseleq", X(31,79), X_MASK, PPCISEL, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4784)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4785) {"isel", XISEL(31,15), XISEL_MASK, PPCISEL|TITAN, 0, {RT, RA0, RB, CRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4786)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4787) {"subf", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4788) {"sub", XO(31,40,0,0), XO_MASK, PPC, 0, {RT, RB, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4789) {"subf.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4790) {"sub.", XO(31,40,0,1), XO_MASK, PPC, 0, {RT, RB, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4791)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4792) {"mfvsrd", X(31,51), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4793) {"mffprd", X(31,51), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4794) {"mfvrd", X(31,51)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4795) {"eratilx", X(31,51), X_MASK, PPCA2, 0, {ERAT_T, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4796)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4797) {"lbarx", X(31,52), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4798)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4799) {"ldux", X(31,53), X_MASK, PPC64, 0, {RT, RAL, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4800)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4801) {"dcbst", X(31,54), XRT_MASK, PPC, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4802)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4803) {"lwzux", X(31,55), X_MASK, PPCCOM, 0, {RT, RAL, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4804) {"lux", X(31,55), X_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4805)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4806) {"cntlzd", XRC(31,58,0), XRB_MASK, PPC64, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4807) {"cntlzd.", XRC(31,58,1), XRB_MASK, PPC64, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4808)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4809) {"andc", XRC(31,60,0), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4810) {"andc.", XRC(31,60,1), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4811)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4812) {"waitrsv", X(31,62)|(1<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4813) {"waitimpl", X(31,62)|(2<<21), 0xffffffff, E500MC|PPCA2, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4814) {"wait", X(31,62), XWC_MASK, E500MC|PPCA2, 0, {WC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4815)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4816) {"dcbstep", XRT(31,63,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4817)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4818) {"tdlgt", XTO(31,68,TOLGT), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4819) {"tdllt", XTO(31,68,TOLLT), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4820) {"tdeq", XTO(31,68,TOEQ), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4821) {"tdlge", XTO(31,68,TOLGE), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4822) {"tdlnl", XTO(31,68,TOLNL), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4823) {"tdlle", XTO(31,68,TOLLE), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4824) {"tdlng", XTO(31,68,TOLNG), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4825) {"tdgt", XTO(31,68,TOGT), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4826) {"tdge", XTO(31,68,TOGE), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4827) {"tdnl", XTO(31,68,TONL), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4828) {"tdlt", XTO(31,68,TOLT), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4829) {"tdle", XTO(31,68,TOLE), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4830) {"tdng", XTO(31,68,TONG), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4831) {"tdne", XTO(31,68,TONE), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4832) {"tdu", XTO(31,68,TOU), XTO_MASK, PPC64, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4833) {"td", X(31,68), X_MASK, PPC64, 0, {TO, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4834)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4835) {"lwfcmx", APU(31,71,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4836) {"mulhd", XO(31,73,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4837) {"mulhd.", XO(31,73,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4838)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4839) {"mulhw", XO(31,75,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4840) {"mulhw.", XO(31,75,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4841)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4842) {"dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440|TITAN, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4843) {"dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440|TITAN, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4844)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4845) {"mtsrd", X(31,82), XRB_MASK|(1<<20), PPC64, 0, {SR, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4846)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4847) {"mfmsr", X(31,83), XRARB_MASK, COM, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4848)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4849) {"ldarx", X(31,84), XEH_MASK, PPC64, 0, {RT, RA0, RB, EH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4850)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4851) {"dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, PPC476, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4852) {"dcbf", X(31,86), XLRT_MASK, PPC, 0, {RA0, RB, L2OPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4853)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4854) {"lbzx", X(31,87), X_MASK, COM, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4855)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4856) {"lbepx", X(31,95), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4857)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4858) {"dni", XRC(31,97,1), XRB_MASK, E6500, 0, {DUI, DCTL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4859)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4860) {"lvx", X(31,103), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4861) {"lqfcmx", APU(31,103,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4862)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4863) {"neg", XO(31,104,0,0), XORB_MASK, COM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4864) {"neg.", XO(31,104,0,1), XORB_MASK, COM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4865)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4866) {"mul", XO(31,107,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4867) {"mul.", XO(31,107,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4868)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4869) {"mvidsplt", X(31,110), X_MASK, PPCVEC2, 0, {VD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4870)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4871) {"mtsrdin", X(31,114), XRA_MASK, PPC64, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4872)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4873) {"mffprwz", X(31,115), XX1RB_MASK|1, PPCVSX2, 0, {RA, FRS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4874) {"mfvrwz", X(31,115)|1, XX1RB_MASK|1, PPCVSX2, 0, {RA, VS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4875) {"mfvsrwz", X(31,115), XX1RB_MASK, PPCVSX2, 0, {RA, XS6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4876)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4877) {"lharx", X(31,116), XEH_MASK, POWER8|E6500, 0, {RT, RA0, RB, EH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4878)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4879) {"clf", X(31,118), XTO_MASK, POWER, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4880)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4881) {"lbzux", X(31,119), X_MASK, COM, 0, {RT, RAL, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4882)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4883) {"popcntb", X(31,122), XRB_MASK, POWER5, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4884)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4885) {"not", XRC(31,124,0), X_MASK, COM, 0, {RA, RS, RBS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4886) {"nor", XRC(31,124,0), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4887) {"not.", XRC(31,124,1), X_MASK, COM, 0, {RA, RS, RBS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4888) {"nor.", XRC(31,124,1), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4889)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4890) {"dcbfep", XRT(31,127,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4891)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4892) {"setb", X(31,128), XRB_MASK|(3<<16), POWER9, 0, {RT, BFA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4893)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4894) {"wrtee", X(31,131), XRARB_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4895)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4896) {"dcbtstls", X(31,134), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4897)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4898) {"stvebx", X(31,135), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4899) {"stbfcmx", APU(31,135,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4900)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4901) {"subfe", XO(31,136,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4902) {"sfe", XO(31,136,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4903) {"subfe.", XO(31,136,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4904) {"sfe.", XO(31,136,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4905)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4906) {"adde", XO(31,138,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4907) {"ae", XO(31,138,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4908) {"adde.", XO(31,138,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4909) {"ae.", XO(31,138,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4910)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4911) {"stxsiwx", X(31,140), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4912)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4913) {"msgsndp", XRTRA(31,142,0,0), XRTRA_MASK, POWER8, 0, {RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4914) {"dcbtstlse", X(31,142), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4915)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4916) {"mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4917) {"mtcrf", XFXM(31,144,0,0), XFXFXM_MASK, COM, 0, {FXM, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4918) {"mtocrf", XFXM(31,144,0,1), XFXFXM_MASK, COM, 0, {FXM, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4919)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4920) {"mtmsr", X(31,146), XRLARB_MASK, COM, 0, {RS, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4921)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4922) {"mtsle", X(31,147), XRTLRARB_MASK, POWER8, 0, {L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4923)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4924) {"eratsx", XRC(31,147,0), X_MASK, PPCA2, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4925) {"eratsx.", XRC(31,147,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4926)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4927) {"stdx", X(31,149), X_MASK, PPC64, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4928)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4929) {"stwcx.", XRC(31,150,1), X_MASK, PPC, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4930)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4931) {"stwx", X(31,151), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4932) {"stx", X(31,151), X_MASK, PWRCOM, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4933)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4934) {"slq", XRC(31,152,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4935) {"slq.", XRC(31,152,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4936)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4937) {"sle", XRC(31,153,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4938) {"sle.", XRC(31,153,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4939)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4940) {"prtyw", X(31,154), XRB_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4941)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4942) {"stdepx", X(31,157), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4943)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4944) {"stwepx", X(31,159), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4945)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4946) {"wrteei", X(31,163), XE_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {E}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4947)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4948) {"dcbtls", X(31,166), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4949)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4950) {"stvehx", X(31,167), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4951) {"sthfcmx", APU(31,167,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4952)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4953) {"addex", ZRC(31,170,0), Z2_MASK, POWER9, 0, {RT, RA, RB, CY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4954)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4955) {"msgclrp", XRTRA(31,174,0,0), XRTRA_MASK, POWER8, 0, {RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4956) {"dcbtlse", X(31,174), X_MASK, PPCCHLK, E500MC, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4957)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4958) {"mtmsrd", X(31,178), XRLARB_MASK, PPC64, 0, {RS, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4959)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4960) {"mtvsrd", X(31,179), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4961) {"mtfprd", X(31,179), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4962) {"mtvrd", X(31,179)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4963) {"eratre", X(31,179), X_MASK, PPCA2, 0, {RT, RA, WS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4964)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4965) {"stdux", X(31,181), X_MASK, PPC64, 0, {RS, RAS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4966)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4967) {"stqcx.", XRC(31,182,1), X_MASK, POWER8, 0, {RSQ, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4968) {"wchkall", X(31,182), X_MASK, PPCA2, 0, {OBF}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4969)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4970) {"stwux", X(31,183), X_MASK, PPCCOM, 0, {RS, RAS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4971) {"stux", X(31,183), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4972)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4973) {"sliq", XRC(31,184,0), X_MASK, M601, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4974) {"sliq.", XRC(31,184,1), X_MASK, M601, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4975)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4976) {"prtyd", X(31,186), XRB_MASK, POWER6|PPCA2, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4977)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4978) {"cmprb", X(31,192), XCMP_MASK, POWER9, 0, {BF, L, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4979)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4980) {"icblq.", XRC(31,198,1), X_MASK, E6500, 0, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4981)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4982) {"stvewx", X(31,199), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4983) {"stwfcmx", APU(31,199,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4984)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4985) {"subfze", XO(31,200,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4986) {"sfze", XO(31,200,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4987) {"subfze.", XO(31,200,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4988) {"sfze.", XO(31,200,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4989)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4990) {"addze", XO(31,202,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4991) {"aze", XO(31,202,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4992) {"addze.", XO(31,202,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4993) {"aze.", XO(31,202,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4994)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4995) {"msgsnd", XRTRA(31,206,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4996)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4997) {"mtsr", X(31,210), XRB_MASK|(1<<20), COM, NON32, {SR, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4998)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4999) {"mtfprwa", X(31,211), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5000) {"mtvrwa", X(31,211)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5001) {"mtvsrwa", X(31,211), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5002) {"eratwe", X(31,211), X_MASK, PPCA2, 0, {RS, RA, WS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5003)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5004) {"ldawx.", XRC(31,212,1), X_MASK, PPCA2, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5005)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5006) {"stdcx.", XRC(31,214,1), X_MASK, PPC64, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5007)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5008) {"stbx", X(31,215), X_MASK, COM, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5009)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5010) {"sllq", XRC(31,216,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5011) {"sllq.", XRC(31,216,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5012)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5013) {"sleq", XRC(31,217,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5014) {"sleq.", XRC(31,217,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5015)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5016) {"stbepx", X(31,223), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5017)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5018) {"cmpeqb", X(31,224), XCMPL_MASK, POWER9, 0, {BF, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5019)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5020) {"icblc", X(31,230), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5021)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5022) {"stvx", X(31,231), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5023) {"stqfcmx", APU(31,231,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5024)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5025) {"subfme", XO(31,232,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5026) {"sfme", XO(31,232,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5027) {"subfme.", XO(31,232,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5028) {"sfme.", XO(31,232,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5029)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5030) {"mulld", XO(31,233,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5031) {"mulld.", XO(31,233,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5032)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5033) {"addme", XO(31,234,0,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5034) {"ame", XO(31,234,0,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5035) {"addme.", XO(31,234,0,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5036) {"ame.", XO(31,234,0,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5037)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5038) {"mullw", XO(31,235,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5039) {"muls", XO(31,235,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5040) {"mullw.", XO(31,235,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5041) {"muls.", XO(31,235,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5042)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5043) {"icblce", X(31,238), X_MASK, PPCCHLK, E500MC|PPCA2, {CT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5044) {"msgclr", XRTRA(31,238,0,0), XRTRA_MASK, E500MC|PPCA2|POWER8, 0, {RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5045) {"mtsrin", X(31,242), XRA_MASK, PPC, NON32, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5046) {"mtsri", X(31,242), XRA_MASK, POWER, NON32, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5047)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5048) {"mtfprwz", X(31,243), XX1RB_MASK|1, PPCVSX2, 0, {FRT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5049) {"mtvrwz", X(31,243)|1, XX1RB_MASK|1, PPCVSX2, 0, {VD, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5050) {"mtvsrwz", X(31,243), XX1RB_MASK, PPCVSX2, 0, {XT6, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5051)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5052) {"dcbtstt", XRT(31,246,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5053) {"dcbtst", X(31,246), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5054) {"dcbtst", X(31,246), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5055) {"dcbtst", X(31,246), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5056)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5057) {"stbux", X(31,247), X_MASK, COM, 0, {RS, RAS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5058)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5059) {"slliq", XRC(31,248,0), X_MASK, M601, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5060) {"slliq.", XRC(31,248,1), X_MASK, M601, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5061)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5062) {"bpermd", X(31,252), X_MASK, POWER7|PPCA2, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5063)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5064) {"dcbtstep", XRT(31,255,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5065)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5066) {"mfdcrx", X(31,259), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5067) {"mfdcrx.", XRC(31,259,1), X_MASK, PPCA2, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5068)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5069) {"lvexbx", X(31,261), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5070)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5071) {"icbt", X(31,262), XRT_MASK, PPC403, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5072)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5073) {"lvepxl", X(31,263), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5074)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5075) {"ldfcmx", APU(31,263,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5076) {"doz", XO(31,264,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5077) {"doz.", XO(31,264,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5078)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5079) {"modud", X(31,265), X_MASK, POWER9, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5080)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5081) {"add", XO(31,266,0,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5082) {"cax", XO(31,266,0,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5083) {"add.", XO(31,266,0,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5084) {"cax.", XO(31,266,0,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5085)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5086) {"moduw", X(31,267), X_MASK, POWER9, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5087)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5088) {"lxvx", X(31,268), XX1_MASK|1<<6, PPCVSX3, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5089) {"lxvl", X(31,269), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5090)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5091) {"ehpriv", X(31,270), 0xffffffff, E500MC|PPCA2, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5092)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5093) {"tlbiel", X(31,274), X_MASK|1<<20,POWER9, PPC476, {RB, RSO, RIC, PRS, X_R}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5094) {"tlbiel", X(31,274), XRTLRA_MASK, POWER4, POWER9|PPC476, {RB, LOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5095)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5096) {"mfapidi", X(31,275), X_MASK, BOOKE, E500|TITAN, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5097)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5098) {"lqarx", X(31,276), XEH_MASK, POWER8, 0, {RTQ, RAX, RBX, EH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5099)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5100) {"lscbx", XRC(31,277,0), X_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5101) {"lscbx.", XRC(31,277,1), X_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5103) {"dcbtt", XRT(31,278,0x10), XRT_MASK, POWER7, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5104) {"dcbt", X(31,278), X_MASK, POWER4, DCBT_EO, {RA0, RB, CT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5105) {"dcbt", X(31,278), X_MASK, DCBT_EO, 0, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5106) {"dcbt", X(31,278), X_MASK, PPC, POWER4|DCBT_EO, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5107)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5108) {"lhzx", X(31,279), X_MASK, COM, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5110) {"cdtbcd", X(31,282), XRB_MASK, POWER6, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5112) {"eqv", XRC(31,284,0), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5113) {"eqv.", XRC(31,284,1), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5114)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5115) {"lhepx", X(31,287), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5117) {"mfdcrux", X(31,291), X_MASK, PPC464, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5118)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5119) {"lvexhx", X(31,293), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5120) {"lvepx", X(31,295), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5122) {"lxvll", X(31,301), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5123)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5124) {"mfbhrbe", X(31,302), X_MASK, POWER8, 0, {RT, BHRBE}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5126) {"tlbie", X(31,306), X_MASK|1<<20,POWER9, TITAN, {RB, RS, RIC, PRS, X_R}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5127) {"tlbie", X(31,306), XRA_MASK, POWER7, POWER9|TITAN, {RB, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5128) {"tlbie", X(31,306), XRTLRA_MASK, PPC, E500|POWER7|TITAN, {RB, LOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5129) {"tlbi", X(31,306), XRT_MASK, POWER, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5130)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5131) {"mfvsrld", X(31,307), XX1RB_MASK, PPCVSX3, 0, {RA, XS6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5132)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5133) {"ldmx", X(31,309), X_MASK, POWER9, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5134)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5135) {"eciwx", X(31,310), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5137) {"lhzux", X(31,311), X_MASK, COM, 0, {RT, RAL, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5138)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5139) {"cbcdtd", X(31,314), XRB_MASK, POWER6, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5141) {"xor", XRC(31,316,0), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5142) {"xor.", XRC(31,316,1), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5143)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5144) {"dcbtep", XRT(31,319,0), X_MASK, E500MC|PPCA2, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5146) {"mfexisr", XSPR(31,323, 64), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5147) {"mfexier", XSPR(31,323, 66), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5148) {"mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5149) {"mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5150) {"mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5151) {"mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5152) {"mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5153) {"mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5154) {"mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5155) {"mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5156) {"mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5157) {"mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5158) {"mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5159) {"mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5160) {"mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5161) {"mfdmada0", XSPR(31,323,194), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5162) {"mfdmasa0", XSPR(31,323,195), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5163) {"mfdmacc0", XSPR(31,323,196), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5164) {"mfdmacr1", XSPR(31,323,200), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5165) {"mfdmact1", XSPR(31,323,201), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5166) {"mfdmada1", XSPR(31,323,202), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5167) {"mfdmasa1", XSPR(31,323,203), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5168) {"mfdmacc1", XSPR(31,323,204), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5169) {"mfdmacr2", XSPR(31,323,208), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5170) {"mfdmact2", XSPR(31,323,209), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5171) {"mfdmada2", XSPR(31,323,210), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5172) {"mfdmasa2", XSPR(31,323,211), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5173) {"mfdmacc2", XSPR(31,323,212), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5174) {"mfdmacr3", XSPR(31,323,216), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5175) {"mfdmact3", XSPR(31,323,217), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5176) {"mfdmada3", XSPR(31,323,218), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5177) {"mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5178) {"mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5179) {"mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5180) {"mfdcr", X(31,323), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {RT, SPR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5181) {"mfdcr.", XRC(31,323,1), X_MASK, PPCA2, 0, {RT, SPR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5183) {"lvexwx", X(31,325), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5185) {"dcread", X(31,326), X_MASK, PPC476|TITAN, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5187) {"div", XO(31,331,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5188) {"div.", XO(31,331,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5189)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5190) {"lxvdsx", X(31,332), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5192) {"mfpmr", X(31,334), X_MASK, PPCPMR|PPCE300, 0, {RT, PMR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5193) {"mftmr", X(31,366), X_MASK, PPCTMR|E6500, 0, {RT, TMR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5194)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5195) {"slbsync", X(31,338), 0xffffffff, POWER9, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5196)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5197) {"mfmq", XSPR(31,339, 0), XSPR_MASK, M601, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5198) {"mfxer", XSPR(31,339, 1), XSPR_MASK, COM, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5199) {"mfrtcu", XSPR(31,339, 4), XSPR_MASK, COM, TITAN, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5200) {"mfrtcl", XSPR(31,339, 5), XSPR_MASK, COM, TITAN, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5201) {"mfdec", XSPR(31,339, 6), XSPR_MASK, MFDEC1, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5202) {"mflr", XSPR(31,339, 8), XSPR_MASK, COM, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5203) {"mfctr", XSPR(31,339, 9), XSPR_MASK, COM, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5204) {"mfdscr", XSPR(31,339, 17), XSPR_MASK, POWER6, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5205) {"mftid", XSPR(31,339, 17), XSPR_MASK, POWER, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5206) {"mfdsisr", XSPR(31,339, 18), XSPR_MASK, COM, TITAN, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5207) {"mfdar", XSPR(31,339, 19), XSPR_MASK, COM, TITAN, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5208) {"mfdec", XSPR(31,339, 22), XSPR_MASK, MFDEC2, MFDEC1, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5209) {"mfsdr0", XSPR(31,339, 24), XSPR_MASK, POWER, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5210) {"mfsdr1", XSPR(31,339, 25), XSPR_MASK, COM, TITAN, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5211) {"mfsrr0", XSPR(31,339, 26), XSPR_MASK, COM, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5212) {"mfsrr1", XSPR(31,339, 27), XSPR_MASK, COM, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5213) {"mfcfar", XSPR(31,339, 28), XSPR_MASK, POWER6, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5214) {"mfpid", XSPR(31,339, 48), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5215) {"mfcsrr0", XSPR(31,339, 58), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5216) {"mfcsrr1", XSPR(31,339, 59), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5217) {"mfdear", XSPR(31,339, 61), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5218) {"mfesr", XSPR(31,339, 62), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5219) {"mfivpr", XSPR(31,339, 63), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5220) {"mfctrl", XSPR(31,339,136), XSPR_MASK, POWER4, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5221) {"mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5222) {"mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5223) {"mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5224) {"mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5225) {"mficr", XSPR(31,339,148), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5226) {"mfder", XSPR(31,339,149), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5227) {"mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5228) {"mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5229) {"mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5230) {"mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5231) {"mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5232) {"mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5233) {"mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5234) {"mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5235) {"mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5236) {"mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5237) {"mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5238) {"mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5239) {"mfsprg", XSPR(31,339,256), XSPRG_MASK, PPC, 0, {RT, SPRG}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5240) {"mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5241) {"mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5242) {"mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5243) {"mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405|BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5244) {"mftbu", XSPR(31,339,269), XSPR_MASK, POWER4|BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5245) {"mftb", X(31,339), X_MASK, POWER4|BOOKE, 0, {RT, TBR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5246) {"mftbl", XSPR(31,339,268), XSPR_MASK, POWER4|BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5247) {"mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5248) {"mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5249) {"mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5250) {"mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5251) {"mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5252) {"mfear", XSPR(31,339,282), XSPR_MASK, PPC, TITAN, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5253) {"mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5254) {"mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5255) {"mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5256) {"mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5257) {"mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5258) {"mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5259) {"mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5260) {"mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5261) {"mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5262) {"mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5263) {"mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5264) {"mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5265) {"mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5266) {"mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5267) {"mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5268) {"mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5269) {"mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5270) {"mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5271) {"mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5272) {"mfivor3", XSPR(31,339,403), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5273) {"mfivor4", XSPR(31,339,404), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5274) {"mfivor5", XSPR(31,339,405), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5275) {"mfivor6", XSPR(31,339,406), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5276) {"mfivor7", XSPR(31,339,407), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5277) {"mfivor8", XSPR(31,339,408), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5278) {"mfivor9", XSPR(31,339,409), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5279) {"mfivor10", XSPR(31,339,410), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5280) {"mfivor11", XSPR(31,339,411), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5281) {"mfivor12", XSPR(31,339,412), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5282) {"mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5283) {"mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5284) {"mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5285) {"mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5286) {"mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5287) {"mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5288) {"mfivor32", XSPR(31,339,528), XSPR_MASK, PPCSPE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5289) {"mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5290) {"mfivor33", XSPR(31,339,529), XSPR_MASK, PPCSPE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5291) {"mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5292) {"mfivor34", XSPR(31,339,530), XSPR_MASK, PPCSPE, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5293) {"mfivor35", XSPR(31,339,531), XSPR_MASK, PPCPMR, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5294) {"mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5295) {"mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, TITAN, {RT, SPRBAT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5296) {"mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5297) {"mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5298) {"mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5299) {"mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5300) {"mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5301) {"mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5302) {"mfmcsrr0", XSPR(31,339,570), XSPR_MASK, PPCRFMCI, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5303) {"mfmcsrr1", XSPR(31,339,571), XSPR_MASK, PPCRFMCI, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5304) {"mfmcsr", XSPR(31,339,572), XSPR_MASK, PPCRFMCI, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5305) {"mfmcar", XSPR(31,339,573), XSPR_MASK, PPCRFMCI, TITAN, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5306) {"mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5307) {"mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5308) {"mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5309) {"mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5310) {"mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5311) {"mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5312) {"mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5313) {"mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5314) {"mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5315) {"mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5316) {"mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5317) {"mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5318) {"mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5319) {"mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5320) {"mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5321) {"mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5322) {"mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5323) {"mfmi_dbram0", XSPR(31,339,817), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5324) {"mfmi_dbram1", XSPR(31,339,818), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5325) {"mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5326) {"mfmd_dbram0", XSPR(31,339,825), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5327) {"mfmd_dbram1", XSPR(31,339,826), XSPR_MASK, PPC860, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5328) {"mfivndx", XSPR(31,339,880), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5329) {"mfdvndx", XSPR(31,339,881), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5330) {"mfivlim", XSPR(31,339,882), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5331) {"mfdvlim", XSPR(31,339,883), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5332) {"mfclcsr", XSPR(31,339,884), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5333) {"mfccr1", XSPR(31,339,888), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5334) {"mfppr", XSPR(31,339,896), XSPR_MASK, POWER7, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5335) {"mfppr32", XSPR(31,339,898), XSPR_MASK, POWER7, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5336) {"mfrstcfg", XSPR(31,339,923), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5337) {"mfdcdbtrl", XSPR(31,339,924), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5338) {"mfdcdbtrh", XSPR(31,339,925), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5339) {"mficdbtr", XSPR(31,339,927), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5340) {"mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5341) {"mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5342) {"mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5343) {"mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5344) {"mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5345) {"mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5346) {"mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5347) {"mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5348) {"mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5349) {"mfmmucr", XSPR(31,339,946), XSPR_MASK, TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5350) {"mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405|TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5351) {"mfiac3", XSPR(31,339,948), XSPR_MASK, PPC405, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5352) {"mfiac4", XSPR(31,339,949), XSPR_MASK, PPC405, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5353) {"mfdvc1", XSPR(31,339,950), XSPR_MASK, PPC405, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5354) {"mfdvc2", XSPR(31,339,951), XSPR_MASK, PPC405, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5355) {"mfmmcr0", XSPR(31,339,952), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5356) {"mfpmc1", XSPR(31,339,953), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5357) {"mfsgr", XSPR(31,339,953), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5358) {"mfdcwr", XSPR(31,339,954), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5359) {"mfpmc2", XSPR(31,339,954), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5360) {"mfsia", XSPR(31,339,955), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5361) {"mfsler", XSPR(31,339,955), XSPR_MASK, PPC405, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5362) {"mfmmcr1", XSPR(31,339,956), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5363) {"mfsu0r", XSPR(31,339,956), XSPR_MASK, PPC405, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5364) {"mfdbcr1", XSPR(31,339,957), XSPR_MASK, PPC405, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5365) {"mfpmc3", XSPR(31,339,957), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5366) {"mfpmc4", XSPR(31,339,958), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5367) {"mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403|TITAN, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5368) {"mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5369) {"mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5370) {"mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5371) {"mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5372) {"mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5373) {"mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5374) {"mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5375) {"mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5376) {"mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5377) {"mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5378) {"mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5379) {"mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5380) {"mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5381) {"mfdbdr", XSPR(31,339,1011), XSPR_MASK, TITAN, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5382) {"mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5383) {"mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5384) {"mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5385) {"mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5386) {"mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5387) {"mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5388) {"mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5389) {"mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5390) {"mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5391) {"mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5392) {"mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5393) {"mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5394) {"mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5395) {"mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5396) {"mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, 0, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5397) {"mfspr", X(31,339), X_MASK, COM, 0, {RT, SPR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5398)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5399) {"lwax", X(31,341), X_MASK, PPC64, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5401) {"dst", XDSS(31,342,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5402)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5403) {"lhax", X(31,343), X_MASK, COM, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5404)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5405) {"lvxl", X(31,359), X_MASK, PPCVEC, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5406)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5407) {"abs", XO(31,360,0,0), XORB_MASK, M601, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5408) {"abs.", XO(31,360,0,1), XORB_MASK, M601, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5409)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5410) {"divs", XO(31,363,0,0), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5411) {"divs.", XO(31,363,0,1), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5412)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5413) {"lxvwsx", X(31,364), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5414)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5415) {"tlbia", X(31,370), 0xffffffff, PPC, E500|TITAN, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5416)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5417) {"mftbu", XSPR(31,371,269), XSPR_MASK, PPC, NO371|POWER4, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5418) {"mftb", X(31,371), X_MASK, PPC, NO371|POWER4, {RT, TBR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5419) {"mftbl", XSPR(31,371,268), XSPR_MASK, PPC, NO371|POWER4, {RT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5420)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5421) {"lwaux", X(31,373), X_MASK, PPC64, 0, {RT, RAL, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5422)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5423) {"dstst", XDSS(31,374,0), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5424)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5425) {"lhaux", X(31,375), X_MASK, COM, 0, {RT, RAL, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5426)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5427) {"popcntw", X(31,378), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5428)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5429) {"mtdcrx", X(31,387), X_MASK, BOOKE|PPCA2|PPC476, TITAN, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5430) {"mtdcrx.", XRC(31,387,1), X_MASK, PPCA2, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5431)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5432) {"stvexbx", X(31,389), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5433)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5434) {"dcblc", X(31,390), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5435) {"stdfcmx", APU(31,391,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5436)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5437) {"divdeu", XO(31,393,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5438) {"divdeu.", XO(31,393,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5439) {"divweu", XO(31,395,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5440) {"divweu.", XO(31,395,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5441)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5442) {"stxvx", X(31,396), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5443) {"stxvl", X(31,397), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5444)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5445) {"dcblce", X(31,398), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5446)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5447) {"slbmte", X(31,402), XRA_MASK, PPC64, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5448)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5449) {"mtvsrws", X(31,403), XX1RB_MASK, PPCVSX3, 0, {XT6, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5450)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5451) {"pbt.", XRC(31,404,1), X_MASK, POWER8, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5452)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5453) {"icswx", XRC(31,406,0), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5454) {"icswx.", XRC(31,406,1), X_MASK, POWER7|PPCA2, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5455)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5456) {"sthx", X(31,407), X_MASK, COM, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5457)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5458) {"orc", XRC(31,412,0), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5459) {"orc.", XRC(31,412,1), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5460)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5461) {"sthepx", X(31,415), X_MASK, E500MC|PPCA2, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5462)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5463) {"mtdcrux", X(31,419), X_MASK, PPC464, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5464)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5465) {"stvexhx", X(31,421), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5466)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5467) {"dcblq.", XRC(31,422,1), X_MASK, E6500, 0, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5468)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5469) {"divde", XO(31,425,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5470) {"divde.", XO(31,425,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5471) {"divwe", XO(31,427,0,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5472) {"divwe.", XO(31,427,0,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5473)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5474) {"stxvll", X(31,429), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5475)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5476) {"clrbhrb", X(31,430), 0xffffffff, POWER8, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5477)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5478) {"slbie", X(31,434), XRTRA_MASK, PPC64, 0, {RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5479)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5480) {"mtvsrdd", X(31,435), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5481)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5482) {"ecowx", X(31,438), X_MASK, PPC, E500|TITAN, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5483)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5484) {"sthux", X(31,439), X_MASK, COM, 0, {RS, RAS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5485)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5486) {"mdors", 0x7f9ce378, 0xffffffff, E500MC, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5487)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5488) {"miso", 0x7f5ad378, 0xffffffff, E6500, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5489)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5490) /* The "yield", "mdoio" and "mdoom" instructions are extended mnemonics for
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5491) "or rX,rX,rX", with rX being r27, r29 and r30 respectively. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5492) {"yield", 0x7f7bdb78, 0xffffffff, POWER7, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5493) {"mdoio", 0x7fbdeb78, 0xffffffff, POWER7, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5494) {"mdoom", 0x7fdef378, 0xffffffff, POWER7, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5495) {"mr", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RBS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5496) {"or", XRC(31,444,0), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5497) {"mr.", XRC(31,444,1), X_MASK, COM, 0, {RA, RS, RBS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5498) {"or.", XRC(31,444,1), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5499)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5500) {"mtexisr", XSPR(31,451, 64), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5501) {"mtexier", XSPR(31,451, 66), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5502) {"mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5503) {"mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5504) {"mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5505) {"mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5506) {"mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5507) {"mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5508) {"mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5509) {"mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5510) {"mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5511) {"mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5512) {"mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5513) {"mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5514) {"mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5515) {"mtdmada0", XSPR(31,451,194), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5516) {"mtdmasa0", XSPR(31,451,195), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5517) {"mtdmacc0", XSPR(31,451,196), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5518) {"mtdmacr1", XSPR(31,451,200), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5519) {"mtdmact1", XSPR(31,451,201), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5520) {"mtdmada1", XSPR(31,451,202), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5521) {"mtdmasa1", XSPR(31,451,203), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5522) {"mtdmacc1", XSPR(31,451,204), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5523) {"mtdmacr2", XSPR(31,451,208), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5524) {"mtdmact2", XSPR(31,451,209), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5525) {"mtdmada2", XSPR(31,451,210), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5526) {"mtdmasa2", XSPR(31,451,211), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5527) {"mtdmacc2", XSPR(31,451,212), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5528) {"mtdmacr3", XSPR(31,451,216), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5529) {"mtdmact3", XSPR(31,451,217), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5530) {"mtdmada3", XSPR(31,451,218), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5531) {"mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5532) {"mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5533) {"mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5534) {"mtdcr", X(31,451), X_MASK, PPC403|BOOKE|PPCA2|PPC476, E500|TITAN, {SPR, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5535) {"mtdcr.", XRC(31,451,1), X_MASK, PPCA2, 0, {SPR, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5536)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5537) {"stvexwx", X(31,453), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5538)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5539) {"dccci", X(31,454), XRT_MASK, PPC403|PPC440|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5540) {"dci", X(31,454), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5541)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5542) {"divdu", XO(31,457,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5543) {"divdu.", XO(31,457,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5544)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5545) {"divwu", XO(31,459,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5546) {"divwu.", XO(31,459,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5547)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5548) {"mtpmr", X(31,462), X_MASK, PPCPMR|PPCE300, 0, {PMR, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5549) {"mttmr", X(31,494), X_MASK, PPCTMR|E6500, 0, {TMR, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5550)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5551) {"slbieg", X(31,466), XRA_MASK, POWER9, 0, {RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5552)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5553) {"mtmq", XSPR(31,467, 0), XSPR_MASK, M601, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5554) {"mtxer", XSPR(31,467, 1), XSPR_MASK, COM, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5555) {"mtlr", XSPR(31,467, 8), XSPR_MASK, COM, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5556) {"mtctr", XSPR(31,467, 9), XSPR_MASK, COM, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5557) {"mtdscr", XSPR(31,467, 17), XSPR_MASK, POWER6, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5558) {"mttid", XSPR(31,467, 17), XSPR_MASK, POWER, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5559) {"mtdsisr", XSPR(31,467, 18), XSPR_MASK, COM, TITAN, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5560) {"mtdar", XSPR(31,467, 19), XSPR_MASK, COM, TITAN, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5561) {"mtrtcu", XSPR(31,467, 20), XSPR_MASK, COM, TITAN, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5562) {"mtrtcl", XSPR(31,467, 21), XSPR_MASK, COM, TITAN, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5563) {"mtdec", XSPR(31,467, 22), XSPR_MASK, COM, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5564) {"mtsdr0", XSPR(31,467, 24), XSPR_MASK, POWER, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5565) {"mtsdr1", XSPR(31,467, 25), XSPR_MASK, COM, TITAN, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5566) {"mtsrr0", XSPR(31,467, 26), XSPR_MASK, COM, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5567) {"mtsrr1", XSPR(31,467, 27), XSPR_MASK, COM, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5568) {"mtcfar", XSPR(31,467, 28), XSPR_MASK, POWER6, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5569) {"mtpid", XSPR(31,467, 48), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5570) {"mtdecar", XSPR(31,467, 54), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5571) {"mtcsrr0", XSPR(31,467, 58), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5572) {"mtcsrr1", XSPR(31,467, 59), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5573) {"mtdear", XSPR(31,467, 61), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5574) {"mtesr", XSPR(31,467, 62), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5575) {"mtivpr", XSPR(31,467, 63), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5576) {"mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5577) {"mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5578) {"mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5579) {"mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5580) {"mticr", XSPR(31,467,148), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5581) {"mtder", XSPR(31,467,149), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5582) {"mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5583) {"mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5584) {"mtctrl", XSPR(31,467,152), XSPR_MASK, POWER4, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5585) {"mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5586) {"mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5587) {"mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5588) {"mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5589) {"mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5590) {"mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5591) {"mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5592) {"mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5593) {"mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5594) {"mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5595) {"mtsprg", XSPR(31,467,256), XSPRG_MASK, PPC, 0, {SPRG, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5596) {"mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5597) {"mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5598) {"mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5599) {"mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5600) {"mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5601) {"mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5602) {"mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5603) {"mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405|BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5604) {"mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5605) {"mtear", XSPR(31,467,282), XSPR_MASK, PPC, TITAN, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5606) {"mttbl", XSPR(31,467,284), XSPR_MASK, PPC, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5607) {"mttbu", XSPR(31,467,285), XSPR_MASK, PPC, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5608) {"mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5609) {"mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5610) {"mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5611) {"mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5612) {"mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5613) {"mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5614) {"mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5615) {"mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5616) {"mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5617) {"mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5618) {"mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5619) {"mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5620) {"mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5621) {"mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5622) {"mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5623) {"mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5624) {"mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5625) {"mtivor3", XSPR(31,467,403), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5626) {"mtivor4", XSPR(31,467,404), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5627) {"mtivor5", XSPR(31,467,405), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5628) {"mtivor6", XSPR(31,467,406), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5629) {"mtivor7", XSPR(31,467,407), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5630) {"mtivor8", XSPR(31,467,408), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5631) {"mtivor9", XSPR(31,467,409), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5632) {"mtivor10", XSPR(31,467,410), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5633) {"mtivor11", XSPR(31,467,411), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5634) {"mtivor12", XSPR(31,467,412), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5635) {"mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5636) {"mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5637) {"mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5638) {"mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5639) {"mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5640) {"mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5641) {"mtivor32", XSPR(31,467,528), XSPR_MASK, PPCSPE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5642) {"mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5643) {"mtivor33", XSPR(31,467,529), XSPR_MASK, PPCSPE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5644) {"mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5645) {"mtivor34", XSPR(31,467,530), XSPR_MASK, PPCSPE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5646) {"mtivor35", XSPR(31,467,531), XSPR_MASK, PPCPMR, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5647) {"mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5648) {"mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, TITAN, {SPRBAT, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5649) {"mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5650) {"mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5651) {"mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5652) {"mtivndx", XSPR(31,467,880), XSPR_MASK, TITAN, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5653) {"mtdvndx", XSPR(31,467,881), XSPR_MASK, TITAN, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5654) {"mtivlim", XSPR(31,467,882), XSPR_MASK, TITAN, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5655) {"mtdvlim", XSPR(31,467,883), XSPR_MASK, TITAN, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5656) {"mtclcsr", XSPR(31,467,884), XSPR_MASK, TITAN, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5657) {"mtccr1", XSPR(31,467,888), XSPR_MASK, TITAN, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5658) {"mtppr", XSPR(31,467,896), XSPR_MASK, POWER7, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5659) {"mtppr32", XSPR(31,467,898), XSPR_MASK, POWER7, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5660) {"mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5661) {"mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5662) {"mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5663) {"mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5664) {"mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5665) {"mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5666) {"mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5667) {"mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5668) {"mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5669) {"mtrmmucr", XSPR(31,467,946), XSPR_MASK, TITAN, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5670) {"mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405|TITAN, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5671) {"mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5672) {"mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5673) {"mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5674) {"mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5675) {"mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5676) {"mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5677) {"mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5678) {"mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5679) {"mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5680) {"mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5681) {"mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5682) {"mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5683) {"mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5684) {"mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5685) {"mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5686) {"mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5687) {"mticdbdr", XSPR(31,467,979), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5688) {"mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5689) {"mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5690) {"mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5691) {"mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5692) {"mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5693) {"mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5694) {"mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5695) {"mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5696) {"mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5697) {"mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5698) {"mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5699) {"mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5700) {"mtdbdr", XSPR(31,467,1011), XSPR_MASK, TITAN, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5701) {"mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5702) {"mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5703) {"mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5704) {"mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5705) {"mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5706) {"mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5707) {"mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5708) {"mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5709) {"mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5710) {"mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5711) {"mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5712) {"mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5713) {"mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5714) {"mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5715) {"mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5716) {"mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5717) {"mtspr", X(31,467), X_MASK, COM, 0, {SPR, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5718)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5719) {"dcbi", X(31,470), XRT_MASK, PPC, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5720)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5721) {"nand", XRC(31,476,0), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5722) {"nand.", XRC(31,476,1), X_MASK, COM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5723)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5724) {"dsn", X(31,483), XRT_MASK, E500MC, 0, {RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5725)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5726) {"dcread", X(31,486), X_MASK, PPC403|PPC440, PPCA2|PPC476, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5727)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5728) {"icbtls", X(31,486), X_MASK, PPCCHLK|PPC476|TITAN, 0, {CT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5729)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5730) {"stvxl", X(31,487), X_MASK, PPCVEC, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5731)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5732) {"nabs", XO(31,488,0,0), XORB_MASK, M601, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5733) {"nabs.", XO(31,488,0,1), XORB_MASK, M601, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5734)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5735) {"divd", XO(31,489,0,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5736) {"divd.", XO(31,489,0,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5737)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5738) {"divw", XO(31,491,0,0), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5739) {"divw.", XO(31,491,0,1), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5740)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5741) {"icbtlse", X(31,494), X_MASK, PPCCHLK, E500MC, {CT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5742)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5743) {"slbia", X(31,498), 0xff1fffff, POWER6, 0, {IH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5744) {"slbia", X(31,498), 0xffffffff, PPC64, POWER6, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5745)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5746) {"cli", X(31,502), XRB_MASK, POWER, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5747)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5748) {"popcntd", X(31,506), XRB_MASK, POWER7|PPCA2, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5749)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5750) {"cmpb", X(31,508), X_MASK, POWER6|PPCA2|PPC476, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5751)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5752) {"mcrxr", X(31,512), XBFRARB_MASK, COM, POWER7, {BF}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5753)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5754) {"lbdcbx", X(31,514), X_MASK, E200Z4, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5755) {"lbdx", X(31,515), X_MASK, E500MC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5756)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5757) {"bblels", X(31,518), X_MASK, PPCBRLK, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5758)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5759) {"lvlx", X(31,519), X_MASK, CELL, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5760) {"lbfcmux", APU(31,519,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5761)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5762) {"subfco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5763) {"sfo", XO(31,8,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5764) {"subco", XO(31,8,1,0), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5765) {"subfco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5766) {"sfo.", XO(31,8,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5767) {"subco.", XO(31,8,1,1), XO_MASK, PPCCOM, 0, {RT, RB, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5768)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5769) {"addco", XO(31,10,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5770) {"ao", XO(31,10,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5771) {"addco.", XO(31,10,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5772) {"ao.", XO(31,10,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5773)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5774) {"lxsspx", X(31,524), XX1_MASK, PPCVSX2, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5775)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5776) {"clcs", X(31,531), XRB_MASK, M601, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5777)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5778) {"ldbrx", X(31,532), X_MASK, CELL|POWER7|PPCA2, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5779)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5780) {"lswx", X(31,533), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, RBX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5781) {"lsx", X(31,533), X_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5782)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5783) {"lwbrx", X(31,534), X_MASK, PPCCOM, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5784) {"lbrx", X(31,534), X_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5785)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5786) {"lfsx", X(31,535), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5787)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5788) {"srw", XRC(31,536,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5789) {"sr", XRC(31,536,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5790) {"srw.", XRC(31,536,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5791) {"sr.", XRC(31,536,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5792)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5793) {"rrib", XRC(31,537,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5794) {"rrib.", XRC(31,537,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5795)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5796) {"cnttzw", XRC(31,538,0), XRB_MASK, POWER9, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5797) {"cnttzw.", XRC(31,538,1), XRB_MASK, POWER9, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5798)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5799) {"srd", XRC(31,539,0), X_MASK, PPC64, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5800) {"srd.", XRC(31,539,1), X_MASK, PPC64, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5801)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5802) {"maskir", XRC(31,541,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5803) {"maskir.", XRC(31,541,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5804)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5805) {"lhdcbx", X(31,546), X_MASK, E200Z4, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5806) {"lhdx", X(31,547), X_MASK, E500MC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5807)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5808) {"lvtrx", X(31,549), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5809)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5810) {"bbelr", X(31,550), X_MASK, PPCBRLK, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5811)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5812) {"lvrx", X(31,551), X_MASK, CELL, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5813) {"lhfcmux", APU(31,551,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5814)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5815) {"subfo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5816) {"subo", XO(31,40,1,0), XO_MASK, PPC, 0, {RT, RB, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5817) {"subfo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5818) {"subo.", XO(31,40,1,1), XO_MASK, PPC, 0, {RT, RB, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5819)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5820) {"tlbsync", X(31,566), 0xffffffff, PPC, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5821)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5822) {"lfsux", X(31,567), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5823)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5824) {"cnttzd", XRC(31,570,0), XRB_MASK, POWER9, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5825) {"cnttzd.", XRC(31,570,1), XRB_MASK, POWER9, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5826)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5827) {"mcrxrx", X(31,576), XBFRARB_MASK, POWER9, 0, {BF}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5828)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5829) {"lwdcbx", X(31,578), X_MASK, E200Z4, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5830) {"lwdx", X(31,579), X_MASK, E500MC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5831)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5832) {"lvtlx", X(31,581), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5833)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5834) {"lwat", X(31,582), X_MASK, POWER9, 0, {RT, RA0, FC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5835)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5836) {"lwfcmux", APU(31,583,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5837)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5838) {"lxsdx", X(31,588), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5839)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5840) {"mfsr", X(31,595), XRB_MASK|(1<<20), COM, NON32, {RT, SR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5841)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5842) {"lswi", X(31,597), X_MASK, PPCCOM, E500|E500MC, {RT, RAX, NBI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5843) {"lsi", X(31,597), X_MASK, PWRCOM, 0, {RT, RA0, NB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5844)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5845) {"hwsync", XSYNC(31,598,0), 0xffffffff, POWER4, BOOKE|PPC476, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5846) {"lwsync", XSYNC(31,598,1), 0xffffffff, PPC, E500, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5847) {"ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5848) {"sync", X(31,598), XSYNCLE_MASK, E6500, 0, {LS, ESYNC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5849) {"sync", X(31,598), XSYNC_MASK, PPCCOM, BOOKE|PPC476, {LS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5850) {"msync", X(31,598), 0xffffffff, BOOKE|PPCA2|PPC476, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5851) {"sync", X(31,598), 0xffffffff, BOOKE|PPC476, E6500, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5852) {"lwsync", X(31,598), 0xffffffff, E500, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5853) {"dcs", X(31,598), 0xffffffff, PWRCOM, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5854)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5855) {"lfdx", X(31,599), X_MASK, COM, PPCEFS, {FRT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5856)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5857) {"mffgpr", XRC(31,607,0), XRA_MASK, POWER6, POWER7, {FRT, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5858) {"lfdepx", X(31,607), X_MASK, E500MC|PPCA2, 0, {FRT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5859)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5860) {"lddx", X(31,611), X_MASK, E500MC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5861)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5862) {"lvswx", X(31,613), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5863)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5864) {"ldat", X(31,614), X_MASK, POWER9, 0, {RT, RA0, FC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5865)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5866) {"lqfcmux", APU(31,615,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5867)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5868) {"nego", XO(31,104,1,0), XORB_MASK, COM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5869) {"nego.", XO(31,104,1,1), XORB_MASK, COM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5870)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5871) {"mulo", XO(31,107,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5872) {"mulo.", XO(31,107,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5873)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5874) {"mfsri", X(31,627), X_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5875)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5876) {"dclst", X(31,630), XRB_MASK, M601, 0, {RS, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5877)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5878) {"lfdux", X(31,631), X_MASK, COM, PPCEFS, {FRT, RAS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5879)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5880) {"stbdcbx", X(31,642), X_MASK, E200Z4, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5881) {"stbdx", X(31,643), X_MASK, E500MC, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5882)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5883) {"stvlx", X(31,647), X_MASK, CELL, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5884) {"stbfcmux", APU(31,647,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5885)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5886) {"stxsspx", X(31,652), XX1_MASK, PPCVSX2, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5887)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5888) {"tbegin.", XRC(31,654,1), XRTLRARB_MASK, PPCHTM, 0, {HTM_R}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5889)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5890) {"subfeo", XO(31,136,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5891) {"sfeo", XO(31,136,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5892) {"subfeo.", XO(31,136,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5893) {"sfeo.", XO(31,136,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5894)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5895) {"addeo", XO(31,138,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5896) {"aeo", XO(31,138,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5897) {"addeo.", XO(31,138,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5898) {"aeo.", XO(31,138,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5899)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5900) {"mfsrin", X(31,659), XRA_MASK, PPC, NON32, {RT, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5901)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5902) {"stdbrx", X(31,660), X_MASK, CELL|POWER7|PPCA2, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5903)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5904) {"stswx", X(31,661), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5905) {"stsx", X(31,661), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5906)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5907) {"stwbrx", X(31,662), X_MASK, PPCCOM, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5908) {"stbrx", X(31,662), X_MASK, PWRCOM, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5909)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5910) {"stfsx", X(31,663), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5911)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5912) {"srq", XRC(31,664,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5913) {"srq.", XRC(31,664,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5914)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5915) {"sre", XRC(31,665,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5916) {"sre.", XRC(31,665,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5917)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5918) {"sthdcbx", X(31,674), X_MASK, E200Z4, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5919) {"sthdx", X(31,675), X_MASK, E500MC, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5920)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5921) {"stvfrx", X(31,677), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5922)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5923) {"stvrx", X(31,679), X_MASK, CELL, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5924) {"sthfcmux", APU(31,679,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5925)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5926) {"tendall.", XRC(31,686,1)|(1<<25), XRTRARB_MASK, PPCHTM, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5927) {"tend.", XRC(31,686,1), XRTARARB_MASK, PPCHTM, 0, {HTM_A}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5928)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5929) {"stbcx.", XRC(31,694,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5930)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5931) {"stfsux", X(31,695), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5932)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5933) {"sriq", XRC(31,696,0), X_MASK, M601, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5934) {"sriq.", XRC(31,696,1), X_MASK, M601, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5935)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5936) {"stwdcbx", X(31,706), X_MASK, E200Z4, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5937) {"stwdx", X(31,707), X_MASK, E500MC, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5938)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5939) {"stvflx", X(31,709), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5940)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5941) {"stwat", X(31,710), X_MASK, POWER9, 0, {RS, RA0, FC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5942)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5943) {"stwfcmux", APU(31,711,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5944)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5945) {"stxsdx", X(31,716), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5946)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5947) {"tcheck", X(31,718), XRTBFRARB_MASK, PPCHTM, 0, {BF}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5948)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5949) {"subfzeo", XO(31,200,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5950) {"sfzeo", XO(31,200,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5951) {"subfzeo.", XO(31,200,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5952) {"sfzeo.", XO(31,200,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5953)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5954) {"addzeo", XO(31,202,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5955) {"azeo", XO(31,202,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5956) {"addzeo.", XO(31,202,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5957) {"azeo.", XO(31,202,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5958)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5959) {"stswi", X(31,725), X_MASK, PPCCOM, E500|E500MC, {RS, RA0, NB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5960) {"stsi", X(31,725), X_MASK, PWRCOM, 0, {RS, RA0, NB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5961)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5962) {"sthcx.", XRC(31,726,1), X_MASK, POWER8|E6500, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5963)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5964) {"stfdx", X(31,727), X_MASK, COM, PPCEFS, {FRS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5965)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5966) {"srlq", XRC(31,728,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5967) {"srlq.", XRC(31,728,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5968)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5969) {"sreq", XRC(31,729,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5970) {"sreq.", XRC(31,729,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5971)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5972) {"mftgpr", XRC(31,735,0), XRA_MASK, POWER6, POWER7, {RT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5973) {"stfdepx", X(31,735), X_MASK, E500MC|PPCA2, 0, {FRS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5974)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5975) {"stddx", X(31,739), X_MASK, E500MC, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5976)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5977) {"stvswx", X(31,741), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5978)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5979) {"stdat", X(31,742), X_MASK, POWER9, 0, {RS, RA0, FC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5980)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5981) {"stqfcmux", APU(31,743,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5982)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5983) {"subfmeo", XO(31,232,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5984) {"sfmeo", XO(31,232,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5985) {"subfmeo.", XO(31,232,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5986) {"sfmeo.", XO(31,232,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5987)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5988) {"mulldo", XO(31,233,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5989) {"mulldo.", XO(31,233,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5990)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5991) {"addmeo", XO(31,234,1,0), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5992) {"ameo", XO(31,234,1,0), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5993) {"addmeo.", XO(31,234,1,1), XORB_MASK, PPCCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5994) {"ameo.", XO(31,234,1,1), XORB_MASK, PWRCOM, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5995)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5996) {"mullwo", XO(31,235,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5997) {"mulso", XO(31,235,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5998) {"mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5999) {"mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6000)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6001) {"tsuspend.", XRCL(31,750,0,1), XRTRARB_MASK,PPCHTM, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6002) {"tresume.", XRCL(31,750,1,1), XRTRARB_MASK,PPCHTM, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6003) {"tsr.", XRC(31,750,1), XRTLRARB_MASK,PPCHTM, 0, {L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6004)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6005) {"darn", X(31,755), XLRAND_MASK, POWER9, 0, {RT, LRAND}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6006)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6007) {"dcba", X(31,758), XRT_MASK, PPC405|PPC7450|BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6008) {"dcbal", XOPL(31,758,1), XRT_MASK, E500MC, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6009)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6010) {"stfdux", X(31,759), X_MASK, COM, PPCEFS, {FRS, RAS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6011)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6012) {"srliq", XRC(31,760,0), X_MASK, M601, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6013) {"srliq.", XRC(31,760,1), X_MASK, M601, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6014)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6015) {"lvsm", X(31,773), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6016)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6017) {"copy", XOPL(31,774,1), XRT_MASK, POWER9, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6018)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6019) {"stvepxl", X(31,775), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6020) {"lvlxl", X(31,775), X_MASK, CELL, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6021) {"ldfcmux", APU(31,775,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6022)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6023) {"dozo", XO(31,264,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6024) {"dozo.", XO(31,264,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6025)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6026) {"addo", XO(31,266,1,0), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6027) {"caxo", XO(31,266,1,0), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6028) {"addo.", XO(31,266,1,1), XO_MASK, PPCCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6029) {"caxo.", XO(31,266,1,1), XO_MASK, PWRCOM, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6030)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6031) {"modsd", X(31,777), X_MASK, POWER9, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6032) {"modsw", X(31,779), X_MASK, POWER9, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6033)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6034) {"lxvw4x", X(31,780), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6035) {"lxsibzx", X(31,781), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6036)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6037) {"tabortwc.", XRC(31,782,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6038)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6039) {"tlbivax", X(31,786), XRT_MASK, BOOKE|PPCA2|PPC476, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6040)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6041) {"lwzcix", X(31,789), X_MASK, POWER6, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6042)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6043) {"lhbrx", X(31,790), X_MASK, COM, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6044)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6045) {"lfdpx", X(31,791), X_MASK, POWER6, POWER7, {FRTp, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6046) {"lfqx", X(31,791), X_MASK, POWER2, 0, {FRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6047)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6048) {"sraw", XRC(31,792,0), X_MASK, PPCCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6049) {"sra", XRC(31,792,0), X_MASK, PWRCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6050) {"sraw.", XRC(31,792,1), X_MASK, PPCCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6051) {"sra.", XRC(31,792,1), X_MASK, PWRCOM, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6052)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6053) {"srad", XRC(31,794,0), X_MASK, PPC64, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6054) {"srad.", XRC(31,794,1), X_MASK, PPC64, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6055)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6056) {"lfddx", X(31,803), X_MASK, E500MC, 0, {FRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6057)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6058) {"lvtrxl", X(31,805), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6059) {"stvepx", X(31,807), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6060) {"lvrxl", X(31,807), X_MASK, CELL, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6061)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6062) {"lxvh8x", X(31,812), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6063) {"lxsihzx", X(31,813), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6064)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6065) {"tabortdc.", XRC(31,814,1), X_MASK, PPCHTM, 0, {TO, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6066)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6067) {"rac", X(31,818), X_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6068)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6069) {"erativax", X(31,819), X_MASK, PPCA2, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6070)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6071) {"lhzcix", X(31,821), X_MASK, POWER6, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6072)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6073) {"dss", XDSS(31,822,0), XDSS_MASK, PPCVEC, 0, {STRM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6074)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6075) {"lfqux", X(31,823), X_MASK, POWER2, 0, {FRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6076)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6077) {"srawi", XRC(31,824,0), X_MASK, PPCCOM, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6078) {"srai", XRC(31,824,0), X_MASK, PWRCOM, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6079) {"srawi.", XRC(31,824,1), X_MASK, PPCCOM, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6080) {"srai.", XRC(31,824,1), X_MASK, PWRCOM, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6081)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6082) {"sradi", XS(31,413,0), XS_MASK, PPC64, 0, {RA, RS, SH6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6083) {"sradi.", XS(31,413,1), XS_MASK, PPC64, 0, {RA, RS, SH6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6084)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6085) {"lvtlxl", X(31,837), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6086)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6087) {"cpabort", X(31,838), XRTRARB_MASK,POWER9, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6088)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6089) {"divo", XO(31,331,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6090) {"divo.", XO(31,331,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6091)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6092) {"lxvd2x", X(31,844), XX1_MASK, PPCVSX, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6093) {"lxvx", X(31,844), XX1_MASK, POWER8, POWER9|PPCVSX3, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6094)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6095) {"tabortwci.", XRC(31,846,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6096)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6097) {"tlbsrx.", XRC(31,850,1), XRT_MASK, PPCA2, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6098)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6099) {"slbiag", X(31,850), XRARB_MASK, POWER9, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6100) {"slbmfev", X(31,851), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6101) {"slbmfev", X(31,851), XRA_MASK, PPC64, POWER9, {RT, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6103) {"lbzcix", X(31,853), X_MASK, POWER6, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6104)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6105) {"eieio", X(31,854), 0xffffffff, PPC, BOOKE|PPCA2|PPC476, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6106) {"mbar", X(31,854), X_MASK, BOOKE|PPCA2|PPC476, 0, {MO}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6107) {"eieio", XMBAR(31,854,1),0xffffffff, E500, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6108) {"eieio", X(31,854), 0xffffffff, PPCA2|PPC476, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6110) {"lfiwax", X(31,855), X_MASK, POWER6|PPCA2|PPC476, 0, {FRT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6111)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6112) {"lvswxl", X(31,869), X_MASK, PPCVEC2, 0, {VD, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6113)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6114) {"abso", XO(31,360,1,0), XORB_MASK, M601, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6115) {"abso.", XO(31,360,1,1), XORB_MASK, M601, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6116)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6117) {"divso", XO(31,363,1,0), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6118) {"divso.", XO(31,363,1,1), XO_MASK, M601, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6119)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6120) {"lxvb16x", X(31,876), XX1_MASK, PPCVSX3, 0, {XT6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6121)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6122) {"tabortdci.", XRC(31,878,1), X_MASK, PPCHTM, 0, {TO, RA, HTM_SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6123)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6124) {"rmieg", X(31,882), XRTRA_MASK, POWER9, 0, {RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6125)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6126) {"ldcix", X(31,885), X_MASK, POWER6, 0, {RT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6128) {"msgsync", X(31,886), 0xffffffff, POWER9, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6129)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6130) {"lfiwzx", X(31,887), X_MASK, POWER7|PPCA2, 0, {FRT, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6131)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6132) {"extswsli", XS(31,445,0), XS_MASK, POWER9, 0, {RA, RS, SH6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6133) {"extswsli.", XS(31,445,1), XS_MASK, POWER9, 0, {RA, RS, SH6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6134)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6135) {"paste.", XRCL(31,902,1,1),XRT_MASK, POWER9, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6136)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6137) {"stvlxl", X(31,903), X_MASK, CELL, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6138) {"stdfcmux", APU(31,903,0), APU_MASK, PPC405, 0, {FCRT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6139)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6140) {"divdeuo", XO(31,393,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6141) {"divdeuo.", XO(31,393,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6142) {"divweuo", XO(31,395,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6143) {"divweuo.", XO(31,395,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6144)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6145) {"stxvw4x", X(31,908), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6146) {"stxsibx", X(31,909), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6147)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6148) {"tabort.", XRC(31,910,1), XRTRB_MASK, PPCHTM, 0, {RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6150) {"tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6151) {"tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RTO, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6152)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6153) {"slbmfee", X(31,915), XRLA_MASK, POWER9, 0, {RT, RB, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6154) {"slbmfee", X(31,915), XRA_MASK, PPC64, POWER9, {RT, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6155)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6156) {"stwcix", X(31,917), X_MASK, POWER6, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6158) {"sthbrx", X(31,918), X_MASK, COM, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6160) {"stfdpx", X(31,919), X_MASK, POWER6, POWER7, {FRSp, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6161) {"stfqx", X(31,919), X_MASK, POWER2, 0, {FRS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6163) {"sraq", XRC(31,920,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6164) {"sraq.", XRC(31,920,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6166) {"srea", XRC(31,921,0), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6167) {"srea.", XRC(31,921,1), X_MASK, M601, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6168)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6169) {"extsh", XRC(31,922,0), XRB_MASK, PPCCOM, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6170) {"exts", XRC(31,922,0), XRB_MASK, PWRCOM, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6171) {"extsh.", XRC(31,922,1), XRB_MASK, PPCCOM, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6172) {"exts.", XRC(31,922,1), XRB_MASK, PWRCOM, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6174) {"stfddx", X(31,931), X_MASK, E500MC, 0, {FRS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6176) {"stvfrxl", X(31,933), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6177)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6178) {"wclrone", XOPL2(31,934,2),XRT_MASK, PPCA2, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6179) {"wclrall", X(31,934), XRARB_MASK, PPCA2, 0, {L2}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6180) {"wclr", X(31,934), X_MASK, PPCA2, 0, {L2, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6181)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6182) {"stvrxl", X(31,935), X_MASK, CELL, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6183)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6184) {"divdeo", XO(31,425,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6185) {"divdeo.", XO(31,425,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6186) {"divweo", XO(31,427,1,0), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6187) {"divweo.", XO(31,427,1,1), XO_MASK, POWER7|PPCA2, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6188)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6189) {"stxvh8x", X(31,940), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6190) {"stxsihx", X(31,941), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6192) {"treclaim.", XRC(31,942,1), XRTRB_MASK, PPCHTM, 0, {RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6193)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6194) {"tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6195) {"tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, PPCA2, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6196) {"tlbre", X(31,946), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6197)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6198) {"sthcix", X(31,949), X_MASK, POWER6, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6199)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6200) {"icswepx", XRC(31,950,0), X_MASK, PPCA2, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6201) {"icswepx.", XRC(31,950,1), X_MASK, PPCA2, 0, {RS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6202)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6203) {"stfqux", X(31,951), X_MASK, POWER2, 0, {FRS, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6204)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6205) {"sraiq", XRC(31,952,0), X_MASK, M601, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6206) {"sraiq.", XRC(31,952,1), X_MASK, M601, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6207)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6208) {"extsb", XRC(31,954,0), XRB_MASK, PPC, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6209) {"extsb.", XRC(31,954,1), XRB_MASK, PPC, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6210)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6211) {"stvflxl", X(31,965), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6213) {"iccci", X(31,966), XRT_MASK, PPC403|PPC440|TITAN|PPCA2, 0, {RAOPT, RBOPT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6214) {"ici", X(31,966), XRARB_MASK, PPCA2|PPC476, 0, {CT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6216) {"divduo", XO(31,457,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6217) {"divduo.", XO(31,457,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6218)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6219) {"divwuo", XO(31,459,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6220) {"divwuo.", XO(31,459,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6221)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6222) {"stxvd2x", X(31,972), XX1_MASK, PPCVSX, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6223) {"stxvx", X(31,972), XX1_MASK, POWER8, POWER9|PPCVSX3, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6224)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6225) {"tlbld", X(31,978), XRTRA_MASK, PPC, PPC403|BOOKE|PPCA2|PPC476, {RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6226) {"tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6227) {"tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6228) {"tlbwe", X(31,978), X_MASK, PPC403|BOOKE|PPCA2|PPC476, 0, {RSO, RAOPT, SHO}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6229)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6230) {"slbfee.", XRC(31,979,1), XRA_MASK, POWER6, 0, {RT, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6231)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6232) {"stbcix", X(31,981), X_MASK, POWER6, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6233)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6234) {"icbi", X(31,982), XRT_MASK, PPC, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6235)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6236) {"stfiwx", X(31,983), X_MASK, PPC, PPCEFS, {FRS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6237)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6238) {"extsw", XRC(31,986,0), XRB_MASK, PPC64, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6239) {"extsw.", XRC(31,986,1), XRB_MASK, PPC64, 0, {RA, RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6240)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6241) {"icbiep", XRT(31,991,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6243) {"stvswxl", X(31,997), X_MASK, PPCVEC2, 0, {VS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6244)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6245) {"icread", X(31,998), XRT_MASK, PPC403|PPC440|PPC476|TITAN, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6246)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6247) {"nabso", XO(31,488,1,0), XORB_MASK, M601, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6248) {"nabso.", XO(31,488,1,1), XORB_MASK, M601, 0, {RT, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6249)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6250) {"divdo", XO(31,489,1,0), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6251) {"divdo.", XO(31,489,1,1), XO_MASK, PPC64, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6252)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6253) {"divwo", XO(31,491,1,0), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6254) {"divwo.", XO(31,491,1,1), XO_MASK, PPC, 0, {RT, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6255)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6256) {"stxvb16x", X(31,1004), XX1_MASK, PPCVSX3, 0, {XS6, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6257)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6258) {"trechkpt.", XRC(31,1006,1), XRTRARB_MASK,PPCHTM, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6259)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6260) {"tlbli", X(31,1010), XRTRA_MASK, PPC, TITAN, {RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6261)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6262) {"stdcix", X(31,1013), X_MASK, POWER6, 0, {RS, RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6263)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6264) {"dcbz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6265) {"dclz", X(31,1014), XRT_MASK, PPC, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6266)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6267) {"dcbzep", XRT(31,1023,0), XRT_MASK, E500MC|PPCA2, 0, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6268)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6269) {"dcbzl", XOPL(31,1014,1), XRT_MASK, POWER4|E500MC, PPC476, {RA0, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6270)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6271) {"cctpl", 0x7c210b78, 0xffffffff, CELL, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6272) {"cctpm", 0x7c421378, 0xffffffff, CELL, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6273) {"cctph", 0x7c631b78, 0xffffffff, CELL, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6274)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6275) {"dstt", XDSS(31,342,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6276) {"dststt", XDSS(31,374,1), XDSS_MASK, PPCVEC, 0, {RA, RB, STRM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6277) {"dssall", XDSS(31,822,1), XDSS_MASK, PPCVEC, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6278)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6279) {"db8cyc", 0x7f9ce378, 0xffffffff, CELL, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6280) {"db10cyc", 0x7fbdeb78, 0xffffffff, CELL, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6281) {"db12cyc", 0x7fdef378, 0xffffffff, CELL, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6282) {"db16cyc", 0x7ffffb78, 0xffffffff, CELL, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6283)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6284) {"lwz", OP(32), OP_MASK, PPCCOM, PPCVLE, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6285) {"l", OP(32), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6286)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6287) {"lwzu", OP(33), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6288) {"lu", OP(33), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6289)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6290) {"lbz", OP(34), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6291)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6292) {"lbzu", OP(35), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6293)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6294) {"stw", OP(36), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6295) {"st", OP(36), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6296)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6297) {"stwu", OP(37), OP_MASK, PPCCOM, PPCVLE, {RS, D, RAS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6298) {"stu", OP(37), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6299)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6300) {"stb", OP(38), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6301)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6302) {"stbu", OP(39), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6303)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6304) {"lhz", OP(40), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6305)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6306) {"lhzu", OP(41), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6307)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6308) {"lha", OP(42), OP_MASK, COM, PPCVLE, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6309)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6310) {"lhau", OP(43), OP_MASK, COM, PPCVLE, {RT, D, RAL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6311)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6312) {"sth", OP(44), OP_MASK, COM, PPCVLE, {RS, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6313)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6314) {"sthu", OP(45), OP_MASK, COM, PPCVLE, {RS, D, RAS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6315)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6316) {"lmw", OP(46), OP_MASK, PPCCOM, PPCVLE, {RT, D, RAM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6317) {"lm", OP(46), OP_MASK, PWRCOM, PPCVLE, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6318)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6319) {"stmw", OP(47), OP_MASK, PPCCOM, PPCVLE, {RS, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6320) {"stm", OP(47), OP_MASK, PWRCOM, PPCVLE, {RS, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6321)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6322) {"lfs", OP(48), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6323)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6324) {"lfsu", OP(49), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6325)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6326) {"lfd", OP(50), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6327)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6328) {"lfdu", OP(51), OP_MASK, COM, PPCEFS|PPCVLE, {FRT, D, RAS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6329)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6330) {"stfs", OP(52), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6331)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6332) {"stfsu", OP(53), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6333)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6334) {"stfd", OP(54), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6335)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6336) {"stfdu", OP(55), OP_MASK, COM, PPCEFS|PPCVLE, {FRS, D, RAS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6337)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6338) {"lq", OP(56), OP_MASK, POWER4, PPC476|PPCVLE, {RTQ, DQ, RAQ}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6339) {"psq_l", OP(56), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6340) {"lfq", OP(56), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6341)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6342) {"lxsd", DSO(57,2), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6343) {"lxssp", DSO(57,3), DS_MASK, PPCVSX3, PPCVLE, {VD, DS, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6344) {"lfdp", OP(57), OP_MASK, POWER6, POWER7|PPCVLE, {FRTp, DS, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6345) {"psq_lu", OP(57), OP_MASK, PPCPS, PPCVLE, {FRT,PSD,RA,PSW,PSQ}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6346) {"lfqu", OP(57), OP_MASK, POWER2, PPCVLE, {FRT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6347)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6348) {"ld", DSO(58,0), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6349) {"ldu", DSO(58,1), DS_MASK, PPC64, PPCVLE, {RT, DS, RAL}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6350) {"lwa", DSO(58,2), DS_MASK, PPC64, PPCVLE, {RT, DS, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6351)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6352) {"dadd", XRC(59,2,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6353) {"dadd.", XRC(59,2,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6354)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6355) {"dqua", ZRC(59,3,0), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6356) {"dqua.", ZRC(59,3,1), Z2_MASK, POWER6, PPCVLE, {FRT,FRA,FRB,RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6357)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6358) {"fdivs", A(59,18,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6359) {"fdivs.", A(59,18,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6360)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6361) {"fsubs", A(59,20,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6362) {"fsubs.", A(59,20,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6363)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6364) {"fadds", A(59,21,0), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6365) {"fadds.", A(59,21,1), AFRC_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6366)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6367) {"fsqrts", A(59,22,0), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6368) {"fsqrts.", A(59,22,1), AFRAFRC_MASK, PPC, TITAN|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6369)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6370) {"fres", A(59,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6371) {"fres", A(59,24,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6372) {"fres.", A(59,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6373) {"fres.", A(59,24,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6374)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6375) {"fmuls", A(59,25,0), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6376) {"fmuls.", A(59,25,1), AFRB_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6377)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6378) {"frsqrtes", A(59,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6379) {"frsqrtes", A(59,26,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6380) {"frsqrtes.", A(59,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6381) {"frsqrtes.", A(59,26,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6382)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6383) {"fmsubs", A(59,28,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6384) {"fmsubs.", A(59,28,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6385)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6386) {"fmadds", A(59,29,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6387) {"fmadds.", A(59,29,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6388)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6389) {"fnmsubs", A(59,30,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6390) {"fnmsubs.", A(59,30,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6391)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6392) {"fnmadds", A(59,31,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6393) {"fnmadds.", A(59,31,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6394)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6395) {"dmul", XRC(59,34,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6396) {"dmul.", XRC(59,34,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6397)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6398) {"drrnd", ZRC(59,35,0), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6399) {"drrnd.", ZRC(59,35,1), Z2_MASK, POWER6, PPCVLE, {FRT, FRA, FRB, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6400)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6401) {"dscli", ZRC(59,66,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6402) {"dscli.", ZRC(59,66,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6403)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6404) {"dquai", ZRC(59,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6405) {"dquai.", ZRC(59,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRT,FRB,RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6406)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6407) {"dscri", ZRC(59,98,0), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6408) {"dscri.", ZRC(59,98,1), Z_MASK, POWER6, PPCVLE, {FRT, FRA, SH16}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6409)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6410) {"drintx", ZRC(59,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6411) {"drintx.", ZRC(59,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6412)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6413) {"dcmpo", X(59,130), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6414)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6415) {"dtstex", X(59,162), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6416) {"dtstdc", Z(59,194), Z_MASK, POWER6, PPCVLE, {BF, FRA, DCM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6417) {"dtstdg", Z(59,226), Z_MASK, POWER6, PPCVLE, {BF, FRA, DGM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6418)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6419) {"drintn", ZRC(59,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6420) {"drintn.", ZRC(59,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRT, FRB, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6421)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6422) {"dctdp", XRC(59,258,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6423) {"dctdp.", XRC(59,258,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6424)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6425) {"dctfix", XRC(59,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6426) {"dctfix.", XRC(59,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6427)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6428) {"ddedpd", XRC(59,322,0), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6429) {"ddedpd.", XRC(59,322,1), X_MASK, POWER6, PPCVLE, {SP, FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6430)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6431) {"dxex", XRC(59,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6432) {"dxex.", XRC(59,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6433)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6434) {"dsub", XRC(59,514,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6435) {"dsub.", XRC(59,514,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6436)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6437) {"ddiv", XRC(59,546,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6438) {"ddiv.", XRC(59,546,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6439)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6440) {"dcmpu", X(59,642), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6441)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6442) {"dtstsf", X(59,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6443) {"dtstsfi", X(59,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6444)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6445) {"drsp", XRC(59,770,0), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6446) {"drsp.", XRC(59,770,1), X_MASK, POWER6, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6447)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6448) {"dcffix", XRC(59,802,0), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6449) {"dcffix.", XRC(59,802,1), X_MASK|FRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6450)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6451) {"denbcd", XRC(59,834,0), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6452) {"denbcd.", XRC(59,834,1), X_MASK, POWER6, PPCVLE, {S, FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6453)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6454) {"fcfids", XRC(59,846,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6455) {"fcfids.", XRC(59,846,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6456)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6457) {"diex", XRC(59,866,0), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6458) {"diex.", XRC(59,866,1), X_MASK, POWER6, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6459)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6460) {"fcfidus", XRC(59,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6461) {"fcfidus.", XRC(59,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6462)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6463) {"xsaddsp", XX3(60,0), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6464) {"xsmaddasp", XX3(60,1), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6465) {"xxsldwi", XX3(60,2), XX3SHW_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, SHW}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6466) {"xscmpeqdp", XX3(60,3), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6467) {"xsrsqrtesp", XX2(60,10), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6468) {"xssqrtsp", XX2(60,11), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6469) {"xxsel", XX4(60,3), XX4_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, XC6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6470) {"xssubsp", XX3(60,8), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6471) {"xsmaddmsp", XX3(60,9), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6472) {"xxspltd", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6S, DMEX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6473) {"xxmrghd", XX3(60,10), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6474) {"xxswapd", XX3(60,10)|(2<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6S}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6475) {"xxmrgld", XX3(60,10)|(3<<8), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6476) {"xxpermdi", XX3(60,10), XX3DM_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6, DM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6477) {"xscmpgtdp", XX3(60,11), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6478) {"xsresp", XX2(60,26), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6479) {"xsmulsp", XX3(60,16), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6480) {"xsmsubasp", XX3(60,17), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6481) {"xxmrghw", XX3(60,18), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6482) {"xscmpgedp", XX3(60,19), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6483) {"xsdivsp", XX3(60,24), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6484) {"xsmsubmsp", XX3(60,25), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6485) {"xxperm", XX3(60,26), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6486) {"xsadddp", XX3(60,32), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6487) {"xsmaddadp", XX3(60,33), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6488) {"xscmpudp", XX3(60,35), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6489) {"xscvdpuxws", XX2(60,72), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6490) {"xsrdpi", XX2(60,73), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6491) {"xsrsqrtedp", XX2(60,74), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6492) {"xssqrtdp", XX2(60,75), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6493) {"xssubdp", XX3(60,40), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6494) {"xsmaddmdp", XX3(60,41), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6495) {"xscmpodp", XX3(60,43), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6496) {"xscvdpsxws", XX2(60,88), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6497) {"xsrdpiz", XX2(60,89), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6498) {"xsredp", XX2(60,90), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6499) {"xsmuldp", XX3(60,48), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6500) {"xsmsubadp", XX3(60,49), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6501) {"xxmrglw", XX3(60,50), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6502) {"xsrdpip", XX2(60,105), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6503) {"xstsqrtdp", XX2(60,106), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6504) {"xsrdpic", XX2(60,107), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6505) {"xsdivdp", XX3(60,56), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6506) {"xsmsubmdp", XX3(60,57), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6507) {"xxpermr", XX3(60,58), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6508) {"xscmpexpdp", XX3(60,59), XX3BF_MASK, PPCVSX3, PPCVLE, {BF, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6509) {"xsrdpim", XX2(60,121), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6510) {"xstdivdp", XX3(60,61), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6511) {"xvaddsp", XX3(60,64), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6512) {"xvmaddasp", XX3(60,65), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6513) {"xvcmpeqsp", XX3RC(60,67,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6514) {"xvcmpeqsp.", XX3RC(60,67,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6515) {"xvcvspuxws", XX2(60,136), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6516) {"xvrspi", XX2(60,137), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6517) {"xvrsqrtesp", XX2(60,138), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6518) {"xvsqrtsp", XX2(60,139), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6519) {"xvsubsp", XX3(60,72), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6520) {"xvmaddmsp", XX3(60,73), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6521) {"xvcmpgtsp", XX3RC(60,75,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6522) {"xvcmpgtsp.", XX3RC(60,75,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6523) {"xvcvspsxws", XX2(60,152), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6524) {"xvrspiz", XX2(60,153), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6525) {"xvresp", XX2(60,154), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6526) {"xvmulsp", XX3(60,80), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6527) {"xvmsubasp", XX3(60,81), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6528) {"xxspltw", XX2(60,164), XX2UIM_MASK, PPCVSX, PPCVLE, {XT6, XB6, UIM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6529) {"xxextractuw", XX2(60,165), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6530) {"xvcmpgesp", XX3RC(60,83,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6531) {"xvcmpgesp.", XX3RC(60,83,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6532) {"xvcvuxwsp", XX2(60,168), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6533) {"xvrspip", XX2(60,169), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6534) {"xvtsqrtsp", XX2(60,170), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6535) {"xvrspic", XX2(60,171), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6536) {"xvdivsp", XX3(60,88), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6537) {"xvmsubmsp", XX3(60,89), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6538) {"xxspltib", X(60,360), XX1_MASK|3<<19, PPCVSX3, PPCVLE, {XT6, IMM8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6539) {"xxinsertw", XX2(60,181), XX2UIM4_MASK, PPCVSX3, PPCVLE, {XT6, XB6, UIMM4}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6540) {"xvcvsxwsp", XX2(60,184), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6541) {"xvrspim", XX2(60,185), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6542) {"xvtdivsp", XX3(60,93), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6543) {"xvadddp", XX3(60,96), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6544) {"xvmaddadp", XX3(60,97), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6545) {"xvcmpeqdp", XX3RC(60,99,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6546) {"xvcmpeqdp.", XX3RC(60,99,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6547) {"xvcvdpuxws", XX2(60,200), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6548) {"xvrdpi", XX2(60,201), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6549) {"xvrsqrtedp", XX2(60,202), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6550) {"xvsqrtdp", XX2(60,203), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6551) {"xvsubdp", XX3(60,104), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6552) {"xvmaddmdp", XX3(60,105), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6553) {"xvcmpgtdp", XX3RC(60,107,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6554) {"xvcmpgtdp.", XX3RC(60,107,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6555) {"xvcvdpsxws", XX2(60,216), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6556) {"xvrdpiz", XX2(60,217), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6557) {"xvredp", XX2(60,218), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6558) {"xvmuldp", XX3(60,112), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6559) {"xvmsubadp", XX3(60,113), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6560) {"xvcmpgedp", XX3RC(60,115,0), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6561) {"xvcmpgedp.", XX3RC(60,115,1), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6562) {"xvcvuxwdp", XX2(60,232), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6563) {"xvrdpip", XX2(60,233), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6564) {"xvtsqrtdp", XX2(60,234), XX2BF_MASK, PPCVSX, PPCVLE, {BF, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6565) {"xvrdpic", XX2(60,235), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6566) {"xvdivdp", XX3(60,120), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6567) {"xvmsubmdp", XX3(60,121), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6568) {"xvcvsxwdp", XX2(60,248), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6569) {"xvrdpim", XX2(60,249), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6570) {"xvtdivdp", XX3(60,125), XX3BF_MASK, PPCVSX, PPCVLE, {BF, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6571) {"xsmaxcdp", XX3(60,128), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6572) {"xsnmaddasp", XX3(60,129), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6573) {"xxland", XX3(60,130), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6574) {"xscvdpsp", XX2(60,265), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6575) {"xscvdpspn", XX2(60,267), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6576) {"xsmincdp", XX3(60,136), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6577) {"xsnmaddmsp", XX3(60,137), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6578) {"xxlandc", XX3(60,138), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6579) {"xsrsp", XX2(60,281), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6580) {"xsmaxjdp", XX3(60,144), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6581) {"xsnmsubasp", XX3(60,145), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6582) {"xxlor", XX3(60,146), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6583) {"xscvuxdsp", XX2(60,296), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6584) {"xststdcsp", XX2(60,298), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6585) {"xsminjdp", XX3(60,152), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6586) {"xsnmsubmsp", XX3(60,153), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6587) {"xxlxor", XX3(60,154), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6588) {"xscvsxdsp", XX2(60,312), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6589) {"xsmaxdp", XX3(60,160), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6590) {"xsnmaddadp", XX3(60,161), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6591) {"xxlnor", XX3(60,162), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6592) {"xscvdpuxds", XX2(60,328), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6593) {"xscvspdp", XX2(60,329), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6594) {"xscvspdpn", XX2(60,331), XX2_MASK, PPCVSX2, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6595) {"xsmindp", XX3(60,168), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6596) {"xsnmaddmdp", XX3(60,169), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6597) {"xxlorc", XX3(60,170), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6598) {"xscvdpsxds", XX2(60,344), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6599) {"xsabsdp", XX2(60,345), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6600) {"xsxexpdp", XX2VA(60,347,0),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6601) {"xsxsigdp", XX2VA(60,347,1),XX2_MASK|1, PPCVSX3, PPCVLE, {RT, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6602) {"xscvhpdp", XX2VA(60,347,16),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6603) {"xscvdphp", XX2VA(60,347,17),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6604) {"xscpsgndp", XX3(60,176), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6605) {"xsnmsubadp", XX3(60,177), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6606) {"xxlnand", XX3(60,178), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6607) {"xscvuxddp", XX2(60,360), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6608) {"xsnabsdp", XX2(60,361), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6609) {"xststdcdp", XX2(60,362), XX2BFD_MASK, PPCVSX3, PPCVLE, {BF, XB6, DCMX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6610) {"xsnmsubmdp", XX3(60,185), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6611) {"xxleqv", XX3(60,186), XX3_MASK, PPCVSX2, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6612) {"xscvsxddp", XX2(60,376), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6613) {"xsnegdp", XX2(60,377), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6614) {"xvmaxsp", XX3(60,192), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6615) {"xvnmaddasp", XX3(60,193), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6616) {"xvcvspuxds", XX2(60,392), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6617) {"xvcvdpsp", XX2(60,393), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6618) {"xvminsp", XX3(60,200), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6619) {"xvnmaddmsp", XX3(60,201), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6620) {"xvcvspsxds", XX2(60,408), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6621) {"xvabssp", XX2(60,409), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6622) {"xvmovsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6S}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6623) {"xvcpsgnsp", XX3(60,208), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6624) {"xvnmsubasp", XX3(60,209), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6625) {"xvcvuxdsp", XX2(60,424), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6626) {"xvnabssp", XX2(60,425), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6627) {"xvtstdcsp", XX2(60,426), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6628) {"xviexpsp", XX3(60,216), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6629) {"xvnmsubmsp", XX3(60,217), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6630) {"xvcvsxdsp", XX2(60,440), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6631) {"xvnegsp", XX2(60,441), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6632) {"xvmaxdp", XX3(60,224), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6633) {"xvnmaddadp", XX3(60,225), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6634) {"xvcvdpuxds", XX2(60,456), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6635) {"xvcvspdp", XX2(60,457), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6636) {"xsiexpdp", X(60,918), XX1_MASK, PPCVSX3, PPCVLE, {XT6, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6637) {"xvmindp", XX3(60,232), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6638) {"xvnmaddmdp", XX3(60,233), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6639) {"xvcvdpsxds", XX2(60,472), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6640) {"xvabsdp", XX2(60,473), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6641) {"xvxexpdp", XX2VA(60,475,0),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6642) {"xvxsigdp", XX2VA(60,475,1),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6643) {"xxbrh", XX2VA(60,475,7),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6644) {"xvxexpsp", XX2VA(60,475,8),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6645) {"xvxsigsp", XX2VA(60,475,9),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6646) {"xxbrw", XX2VA(60,475,15),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6647) {"xxbrd", XX2VA(60,475,23),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6648) {"xvcvhpsp", XX2VA(60,475,24),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6649) {"xvcvsphp", XX2VA(60,475,25),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6650) {"xxbrq", XX2VA(60,475,31),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6651) {"xvmovdp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6S}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6652) {"xvcpsgndp", XX3(60,240), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6653) {"xvnmsubadp", XX3(60,241), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6654) {"xvcvuxddp", XX2(60,488), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6655) {"xvnabsdp", XX2(60,489), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6656) {"xvtstdcdp", XX2(60,490), XX2DCMXS_MASK, PPCVSX3, PPCVLE, {XT6, XB6, DCMXS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6657) {"xviexpdp", XX3(60,248), XX3_MASK, PPCVSX3, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6658) {"xvnmsubmdp", XX3(60,249), XX3_MASK, PPCVSX, PPCVLE, {XT6, XA6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6659) {"xvcvsxddp", XX2(60,504), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6660) {"xvnegdp", XX2(60,505), XX2_MASK, PPCVSX, PPCVLE, {XT6, XB6}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6661)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6662) {"psq_st", OP(60), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6663) {"stfq", OP(60), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6664)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6665) {"lxv", DQX(61,1), DQX_MASK, PPCVSX3, PPCVLE, {XTQ6, DQ, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6666) {"stxv", DQX(61,5), DQX_MASK, PPCVSX3, PPCVLE, {XSQ6, DQ, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6667) {"stxsd", DSO(61,2), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6668) {"stxssp", DSO(61,3), DS_MASK, PPCVSX3, PPCVLE, {VS, DS, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6669) {"stfdp", OP(61), OP_MASK, POWER6, POWER7|PPCVLE, {FRSp, DS, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6670) {"psq_stu", OP(61), OP_MASK, PPCPS, PPCVLE, {FRS,PSD,RA,PSW,PSQ}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6671) {"stfqu", OP(61), OP_MASK, POWER2, PPCVLE, {FRS, D, RA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6672)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6673) {"std", DSO(62,0), DS_MASK, PPC64, PPCVLE, {RS, DS, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6674) {"stdu", DSO(62,1), DS_MASK, PPC64, PPCVLE, {RS, DS, RAS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6675) {"stq", DSO(62,2), DS_MASK, POWER4, PPC476|PPCVLE, {RSQ, DS, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6676)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6677) {"fcmpu", X(63,0), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6678)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6679) {"daddq", XRC(63,2,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6680) {"daddq.", XRC(63,2,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6681)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6682) {"dquaq", ZRC(63,3,0), Z2_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6683) {"dquaq.", ZRC(63,3,1), Z2_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6684)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6685) {"xsaddqp", XRC(63,4,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6686) {"xsaddqpo", XRC(63,4,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6687)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6688) {"xsrqpi", ZRC(63,5,0), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6689) {"xsrqpix", ZRC(63,5,1), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6690)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6691) {"fcpsgn", XRC(63,8,0), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6692) {"fcpsgn.", XRC(63,8,1), X_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6693)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6694) {"frsp", XRC(63,12,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6695) {"frsp.", XRC(63,12,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6696)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6697) {"fctiw", XRC(63,14,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6698) {"fcir", XRC(63,14,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6699) {"fctiw.", XRC(63,14,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6700) {"fcir.", XRC(63,14,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6701)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6702) {"fctiwz", XRC(63,15,0), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6703) {"fcirz", XRC(63,15,0), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6704) {"fctiwz.", XRC(63,15,1), XRA_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6705) {"fcirz.", XRC(63,15,1), XRA_MASK, PWR2COM, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6706)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6707) {"fdiv", A(63,18,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6708) {"fd", A(63,18,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6709) {"fdiv.", A(63,18,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6710) {"fd.", A(63,18,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6711)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6712) {"fsub", A(63,20,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6713) {"fs", A(63,20,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6714) {"fsub.", A(63,20,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6715) {"fs.", A(63,20,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6716)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6717) {"fadd", A(63,21,0), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6718) {"fa", A(63,21,0), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6719) {"fadd.", A(63,21,1), AFRC_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6720) {"fa.", A(63,21,1), AFRC_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6721)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6722) {"fsqrt", A(63,22,0), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6723) {"fsqrt.", A(63,22,1), AFRAFRC_MASK, PPCPWR2, TITAN|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6724)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6725) {"fsel", A(63,23,0), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6726) {"fsel.", A(63,23,1), A_MASK, PPC, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6727)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6728) {"fre", A(63,24,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6729) {"fre", A(63,24,0), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6730) {"fre.", A(63,24,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6731) {"fre.", A(63,24,1), AFRALFRC_MASK, POWER5, POWER7|PPCVLE, {FRT, FRB, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6732)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6733) {"fmul", A(63,25,0), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6734) {"fm", A(63,25,0), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6735) {"fmul.", A(63,25,1), AFRB_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6736) {"fm.", A(63,25,1), AFRB_MASK, PWRCOM, PPCVLE|PPCVLE, {FRT, FRA, FRC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6737)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6738) {"frsqrte", A(63,26,0), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6739) {"frsqrte", A(63,26,0), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6740) {"frsqrte.", A(63,26,1), AFRAFRC_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6741) {"frsqrte.", A(63,26,1), AFRALFRC_MASK, PPC, POWER7|PPCVLE, {FRT, FRB, A_L}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6742)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6743) {"fmsub", A(63,28,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6744) {"fms", A(63,28,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6745) {"fmsub.", A(63,28,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6746) {"fms.", A(63,28,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6747)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6748) {"fmadd", A(63,29,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6749) {"fma", A(63,29,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6750) {"fmadd.", A(63,29,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6751) {"fma.", A(63,29,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6752)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6753) {"fnmsub", A(63,30,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6754) {"fnms", A(63,30,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6755) {"fnmsub.", A(63,30,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6756) {"fnms.", A(63,30,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6757)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6758) {"fnmadd", A(63,31,0), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6759) {"fnma", A(63,31,0), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6760) {"fnmadd.", A(63,31,1), A_MASK, PPCCOM, PPCEFS|PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6761) {"fnma.", A(63,31,1), A_MASK, PWRCOM, PPCVLE, {FRT, FRA, FRC, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6762)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6763) {"fcmpo", X(63,32), XBF_MASK, COM, PPCEFS|PPCVLE, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6764)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6765) {"dmulq", XRC(63,34,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6766) {"dmulq.", XRC(63,34,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6767)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6768) {"drrndq", ZRC(63,35,0), Z2_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6769) {"drrndq.", ZRC(63,35,1), Z2_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6770)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6771) {"xsmulqp", XRC(63,36,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6772) {"xsmulqpo", XRC(63,36,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6773)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6774) {"xsrqpxp", Z(63,37), Z2_MASK, PPCVSX3, PPCVLE, {R, VD, VB, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6775)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6776) {"mtfsb1", XRC(63,38,0), XRARB_MASK, COM, PPCVLE, {BT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6777) {"mtfsb1.", XRC(63,38,1), XRARB_MASK, COM, PPCVLE, {BT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6778)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6779) {"fneg", XRC(63,40,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6780) {"fneg.", XRC(63,40,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6781)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6782) {"mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, PPCVLE, {BF, BFA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6783)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6784) {"dscliq", ZRC(63,66,0), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6785) {"dscliq.", ZRC(63,66,1), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6786)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6787) {"dquaiq", ZRC(63,67,0), Z2_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6788) {"dquaiq.", ZRC(63,67,1), Z2_MASK, POWER6, PPCVLE, {TE, FRTp, FRBp, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6789)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6790) {"mtfsb0", XRC(63,70,0), XRARB_MASK, COM, PPCVLE, {BT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6791) {"mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, PPCVLE, {BT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6792)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6793) {"fmr", XRC(63,72,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6794) {"fmr.", XRC(63,72,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6795)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6796) {"dscriq", ZRC(63,98,0), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6797) {"dscriq.", ZRC(63,98,1), Z_MASK, POWER6, PPCVLE, {FRTp, FRAp, SH16}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6798)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6799) {"drintxq", ZRC(63,99,0), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6800) {"drintxq.", ZRC(63,99,1), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6801)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6802) {"xscpsgnqp", X(63,100), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6803)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6804) {"ftdiv", X(63,128), XBF_MASK, POWER7, PPCVLE, {BF, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6805)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6806) {"dcmpoq", X(63,130), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6807)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6808) {"xscmpoqp", X(63,132), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6809)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6810) {"mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6811) {"mtfsfi", XRC(63,134,0), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6812) {"mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), POWER6|PPCA2|PPC476, PPCVLE, {BFF, U, W}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6813) {"mtfsfi.", XRC(63,134,1), XRA_MASK|(3<<21)|(1<<11), COM, POWER6|PPCA2|PPC476|PPCVLE, {BFF, U}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6814)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6815) {"fnabs", XRC(63,136,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6816) {"fnabs.", XRC(63,136,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6817)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6818) {"fctiwu", XRC(63,142,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6819) {"fctiwu.", XRC(63,142,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6820) {"fctiwuz", XRC(63,143,0), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6821) {"fctiwuz.", XRC(63,143,1), XRA_MASK, POWER7, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6822)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6823) {"ftsqrt", X(63,160), XBF_MASK|FRA_MASK, POWER7, PPCVLE, {BF, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6824)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6825) {"dtstexq", X(63,162), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6826)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6827) {"xscmpexpqp", X(63,164), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6828)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6829) {"dtstdcq", Z(63,194), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DCM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6830) {"dtstdgq", Z(63,226), Z_MASK, POWER6, PPCVLE, {BF, FRAp, DGM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6831)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6832) {"drintnq", ZRC(63,227,0), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6833) {"drintnq.", ZRC(63,227,1), Z2_MASK, POWER6, PPCVLE, {R, FRTp, FRBp, RMC}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6834)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6835) {"dctqpq", XRC(63,258,0), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6836) {"dctqpq.", XRC(63,258,1), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6837)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6838) {"fabs", XRC(63,264,0), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6839) {"fabs.", XRC(63,264,1), XRA_MASK, COM, PPCEFS|PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6840)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6841) {"dctfixq", XRC(63,290,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6842) {"dctfixq.", XRC(63,290,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6843)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6844) {"ddedpdq", XRC(63,322,0), X_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6845) {"ddedpdq.", XRC(63,322,1), X_MASK, POWER6, PPCVLE, {SP, FRTp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6846)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6847) {"dxexq", XRC(63,354,0), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6848) {"dxexq.", XRC(63,354,1), X_MASK, POWER6, PPCVLE, {FRT, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6849)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6850) {"xsmaddqp", XRC(63,388,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6851) {"xsmaddqpo", XRC(63,388,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6852)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6853) {"frin", XRC(63,392,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6854) {"frin.", XRC(63,392,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6855)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6856) {"xsmsubqp", XRC(63,420,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6857) {"xsmsubqpo", XRC(63,420,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6858)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6859) {"friz", XRC(63,424,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6860) {"friz.", XRC(63,424,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6861)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6862) {"xsnmaddqp", XRC(63,452,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6863) {"xsnmaddqpo", XRC(63,452,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6864)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6865) {"frip", XRC(63,456,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6866) {"frip.", XRC(63,456,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6867)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6868) {"xsnmsubqp", XRC(63,484,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6869) {"xsnmsubqpo", XRC(63,484,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6870)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6871) {"frim", XRC(63,488,0), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6872) {"frim.", XRC(63,488,1), XRA_MASK, POWER5, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6873)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6874) {"dsubq", XRC(63,514,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6875) {"dsubq.", XRC(63,514,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6876)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6877) {"xssubqp", XRC(63,516,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6878) {"xssubqpo", XRC(63,516,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6879)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6880) {"ddivq", XRC(63,546,0), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6881) {"ddivq.", XRC(63,546,1), X_MASK, POWER6, PPCVLE, {FRTp, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6882)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6883) {"xsdivqp", XRC(63,548,0), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6884) {"xsdivqpo", XRC(63,548,1), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6885)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6886) {"mffs", XRC(63,583,0), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6887) {"mffs.", XRC(63,583,1), XRARB_MASK, COM, PPCEFS|PPCVLE, {FRT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6888)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6889) {"mffsce", XMMF(63,583,0,1), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6890) {"mffscdrn", XMMF(63,583,2,4), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6891) {"mffscdrni", XMMF(63,583,2,5), XMMF_MASK|(3<<14), POWER9, PPCVLE, {FRT, DRM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6892) {"mffscrn", XMMF(63,583,2,6), XMMF_MASK, POWER9, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6893) {"mffscrni", XMMF(63,583,2,7), XMMF_MASK|(7<<13), POWER9, PPCVLE, {FRT, RM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6894) {"mffsl", XMMF(63,583,3,0), XMMF_MASK|RB_MASK, POWER9, PPCVLE, {FRT}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6895)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6896) {"dcmpuq", X(63,642), X_MASK, POWER6, PPCVLE, {BF, FRAp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6897)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6898) {"xscmpuqp", X(63,644), XBF_MASK, PPCVSX3, PPCVLE, {BF, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6899)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6900) {"dtstsfq", X(63,674), X_MASK, POWER6, PPCVLE, {BF, FRA, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6901) {"dtstsfiq", X(63,675), X_MASK|1<<22,POWER9, PPCVLE, {BF, UIM6, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6902)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6903) {"xststdcqp", X(63,708), X_MASK, PPCVSX3, PPCVLE, {BF, VB, DCMX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6904)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6905) {"mtfsf", XFL(63,711,0), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6906) {"mtfsf", XFL(63,711,0), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6907) {"mtfsf.", XFL(63,711,1), XFL_MASK, POWER6|PPCA2|PPC476, PPCVLE, {FLM, FRB, XFL_L, W}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6908) {"mtfsf.", XFL(63,711,1), XFL_MASK, COM, POWER6|PPCA2|PPC476|PPCEFS|PPCVLE, {FLM, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6909)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6910) {"drdpq", XRC(63,770,0), X_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6911) {"drdpq.", XRC(63,770,1), X_MASK, POWER6, PPCVLE, {FRTp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6912)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6913) {"dcffixq", XRC(63,802,0), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6914) {"dcffixq.", XRC(63,802,1), X_MASK, POWER6, PPCVLE, {FRTp, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6915)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6916) {"xsabsqp", XVA(63,804,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6917) {"xsxexpqp", XVA(63,804,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6918) {"xsnabsqp", XVA(63,804,8), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6919) {"xsnegqp", XVA(63,804,16), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6920) {"xsxsigqp", XVA(63,804,18), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6921) {"xssqrtqp", XVARC(63,804,27,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6922) {"xssqrtqpo", XVARC(63,804,27,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6923)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6924) {"fctid", XRC(63,814,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6925) {"fctid", XRC(63,814,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6926) {"fctid.", XRC(63,814,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6927) {"fctid.", XRC(63,814,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6928)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6929) {"fctidz", XRC(63,815,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6930) {"fctidz", XRC(63,815,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6931) {"fctidz.", XRC(63,815,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6932) {"fctidz.", XRC(63,815,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6933)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6934) {"denbcdq", XRC(63,834,0), X_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6935) {"denbcdq.", XRC(63,834,1), X_MASK, POWER6, PPCVLE, {S, FRTp, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6936)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6937) {"xscvqpuwz", XVA(63,836,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6938) {"xscvudqp", XVA(63,836,2), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6939) {"xscvqpswz", XVA(63,836,9), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6940) {"xscvsdqp", XVA(63,836,10), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6941) {"xscvqpudz", XVA(63,836,17), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6942) {"xscvqpdp", XVARC(63,836,20,0), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6943) {"xscvqpdpo", XVARC(63,836,20,1), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6944) {"xscvdpqp", XVA(63,836,22), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6945) {"xscvqpsdz", XVA(63,836,25), XVA_MASK, PPCVSX3, PPCVLE, {VD, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6946)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6947) {"fmrgow", X(63,838), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6948)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6949) {"fcfid", XRC(63,846,0), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6950) {"fcfid", XRC(63,846,0), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6951) {"fcfid.", XRC(63,846,1), XRA_MASK, PPC64, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6952) {"fcfid.", XRC(63,846,1), XRA_MASK, PPC476, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6953)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6954) {"diexq", XRC(63,866,0), X_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6955) {"diexq.", XRC(63,866,1), X_MASK, POWER6, PPCVLE, {FRTp, FRA, FRBp}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6956)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6957) {"xsiexpqp", X(63,868), X_MASK, PPCVSX3, PPCVLE, {VD, VA, VB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6958)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6959) {"fctidu", XRC(63,942,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6960) {"fctidu.", XRC(63,942,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6961)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6962) {"fctiduz", XRC(63,943,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6963) {"fctiduz.", XRC(63,943,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6964)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6965) {"fmrgew", X(63,966), X_MASK, PPCVSX2, PPCVLE, {FRT, FRA, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6966)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6967) {"fcfidu", XRC(63,974,0), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6968) {"fcfidu.", XRC(63,974,1), XRA_MASK, POWER7|PPCA2, PPCVLE, {FRT, FRB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6969) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6970)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6971) const int powerpc_num_opcodes =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6972) sizeof (powerpc_opcodes) / sizeof (powerpc_opcodes[0]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6973)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6974) /* The VLE opcode table.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6975)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6976) The format of this opcode table is the same as the main opcode table. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6977)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6978) const struct powerpc_opcode vle_opcodes[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6979) {"se_illegal", C(0), C_MASK, PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6980) {"se_isync", C(1), C_MASK, PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6981) {"se_sc", C(2), C_MASK, PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6982) {"se_blr", C_LK(2,0), C_LK_MASK, PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6983) {"se_blrl", C_LK(2,1), C_LK_MASK, PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6984) {"se_bctr", C_LK(3,0), C_LK_MASK, PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6985) {"se_bctrl", C_LK(3,1), C_LK_MASK, PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6986) {"se_rfi", C(8), C_MASK, PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6987) {"se_rfci", C(9), C_MASK, PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6988) {"se_rfdi", C(10), C_MASK, PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6989) {"se_rfmci", C(11), C_MASK, PPCRFMCI|PPCVLE, 0, {}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6990) {"se_not", SE_R(0,2), SE_R_MASK, PPCVLE, 0, {RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6991) {"se_neg", SE_R(0,3), SE_R_MASK, PPCVLE, 0, {RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6992) {"se_mflr", SE_R(0,8), SE_R_MASK, PPCVLE, 0, {RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6993) {"se_mtlr", SE_R(0,9), SE_R_MASK, PPCVLE, 0, {RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6994) {"se_mfctr", SE_R(0,10), SE_R_MASK, PPCVLE, 0, {RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6995) {"se_mtctr", SE_R(0,11), SE_R_MASK, PPCVLE, 0, {RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6996) {"se_extzb", SE_R(0,12), SE_R_MASK, PPCVLE, 0, {RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6997) {"se_extsb", SE_R(0,13), SE_R_MASK, PPCVLE, 0, {RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6998) {"se_extzh", SE_R(0,14), SE_R_MASK, PPCVLE, 0, {RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6999) {"se_extsh", SE_R(0,15), SE_R_MASK, PPCVLE, 0, {RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7000) {"se_mr", SE_RR(0,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7001) {"se_mtar", SE_RR(0,2), SE_RR_MASK, PPCVLE, 0, {ARX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7002) {"se_mfar", SE_RR(0,3), SE_RR_MASK, PPCVLE, 0, {RX, ARY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7003) {"se_add", SE_RR(1,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7004) {"se_mullw", SE_RR(1,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7005) {"se_sub", SE_RR(1,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7006) {"se_subf", SE_RR(1,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7007) {"se_cmp", SE_RR(3,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7008) {"se_cmpl", SE_RR(3,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7009) {"se_cmph", SE_RR(3,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7010) {"se_cmphl", SE_RR(3,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7011)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7012) {"e_cmpi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7013) {"e_cmpwi", SCI8BF(6,0,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7014) {"e_cmpli", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7015) {"e_cmplwi", SCI8BF(6,1,21), SCI8BF_MASK, PPCVLE, 0, {CRD32, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7016) {"e_addi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7017) {"e_subi", SCI8(6,16), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7018) {"e_addi.", SCI8(6,17), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7019) {"e_addic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7020) {"e_subic", SCI8(6,18), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7021) {"e_addic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7022) {"e_subic.", SCI8(6,19), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8N}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7023) {"e_mulli", SCI8(6,20), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7024) {"e_subfic", SCI8(6,22), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7025) {"e_subfic.", SCI8(6,23), SCI8_MASK, PPCVLE, 0, {RT, RA, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7026) {"e_andi", SCI8(6,24), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7027) {"e_andi.", SCI8(6,25), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7028) {"e_nop", SCI8(6,26), 0xffffffff, PPCVLE, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7029) {"e_ori", SCI8(6,26), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7030) {"e_ori.", SCI8(6,27), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7031) {"e_xori", SCI8(6,28), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7032) {"e_xori.", SCI8(6,29), SCI8_MASK, PPCVLE, 0, {RA, RS, SCLSCI8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7033) {"e_lbzu", OPVUP(6,0), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7034) {"e_lhau", OPVUP(6,3), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7035) {"e_lhzu", OPVUP(6,1), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7036) {"e_lmw", OPVUP(6,8), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7037) {"e_lwzu", OPVUP(6,2), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7038) {"e_stbu", OPVUP(6,4), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7039) {"e_sthu", OPVUP(6,5), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7040) {"e_stwu", OPVUP(6,6), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7041) {"e_stmw", OPVUP(6,9), OPVUP_MASK, PPCVLE, 0, {RT, D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7042) {"e_ldmvgprw", OPVUPRT(6,16,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7043) {"e_stmvgprw", OPVUPRT(6,17,0),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7044) {"e_ldmvsprw", OPVUPRT(6,16,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7045) {"e_stmvsprw", OPVUPRT(6,17,1),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7046) {"e_ldmvsrrw", OPVUPRT(6,16,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7047) {"e_stmvsrrw", OPVUPRT(6,17,4),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7048) {"e_ldmvcsrrw", OPVUPRT(6,16,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7049) {"e_stmvcsrrw", OPVUPRT(6,17,5),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7050) {"e_ldmvdsrrw", OPVUPRT(6,16,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7051) {"e_stmvdsrrw", OPVUPRT(6,17,6),OPVUPRT_MASK, PPCVLE, 0, {D8, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7052) {"e_add16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, SI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7053) {"e_la", OP(7), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7054) {"e_sub16i", OP(7), OP_MASK, PPCVLE, 0, {RT, RA, NSI}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7055)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7056) {"se_addi", SE_IM5(8,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7057) {"se_cmpli", SE_IM5(8,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7058) {"se_subi", SE_IM5(9,0), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7059) {"se_subi.", SE_IM5(9,1), SE_IM5_MASK, PPCVLE, 0, {RX, OIMM5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7060) {"se_cmpi", SE_IM5(10,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7061) {"se_bmaski", SE_IM5(11,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7062) {"se_andi", SE_IM5(11,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7063)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7064) {"e_lbz", OP(12), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7065) {"e_stb", OP(13), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7066) {"e_lha", OP(14), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7067)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7068) {"se_srw", SE_RR(16,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7069) {"se_sraw", SE_RR(16,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7070) {"se_slw", SE_RR(16,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7071) {"se_nop", SE_RR(17,0), 0xffff, PPCVLE, 0, {0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7072) {"se_or", SE_RR(17,0), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7073) {"se_andc", SE_RR(17,1), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7074) {"se_and", SE_RR(17,2), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7075) {"se_and.", SE_RR(17,3), SE_RR_MASK, PPCVLE, 0, {RX, RY}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7076) {"se_li", IM7(9), IM7_MASK, PPCVLE, 0, {RX, UI7}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7077)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7078) {"e_lwz", OP(20), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7079) {"e_stw", OP(21), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7080) {"e_lhz", OP(22), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7081) {"e_sth", OP(23), OP_MASK, PPCVLE, 0, {RT, D, RA0}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7082)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7083) {"se_bclri", SE_IM5(24,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7084) {"se_bgeni", SE_IM5(24,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7085) {"se_bseti", SE_IM5(25,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7086) {"se_btsti", SE_IM5(25,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7087) {"se_srwi", SE_IM5(26,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7088) {"se_srawi", SE_IM5(26,1), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7089) {"se_slwi", SE_IM5(27,0), SE_IM5_MASK, PPCVLE, 0, {RX, UI5}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7090)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7091) {"e_lis", I16L(28,28), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7092) {"e_and2is.", I16L(28,29), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7093) {"e_or2is", I16L(28,26), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7094) {"e_and2i.", I16L(28,25), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7095) {"e_or2i", I16L(28,24), I16L_MASK, PPCVLE, 0, {RD, VLEUIMML}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7096) {"e_cmphl16i", IA16(28,23), IA16_MASK, PPCVLE, 0, {RA, VLEUIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7097) {"e_cmph16i", IA16(28,22), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7098) {"e_cmpl16i", I16A(28,21), I16A_MASK, PPCVLE, 0, {RA, VLEUIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7099) {"e_mull2i", I16A(28,20), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7100) {"e_cmp16i", IA16(28,19), IA16_MASK, PPCVLE, 0, {RA, VLESIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7101) {"e_sub2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7102) {"e_add2is", I16A(28,18), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7103) {"e_sub2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLENSIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7104) {"e_add2i.", I16A(28,17), I16A_MASK, PPCVLE, 0, {RA, VLESIMM}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7105) {"e_li", LI20(28,0), LI20_MASK, PPCVLE, 0, {RT, IMM20}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7106) {"e_rlwimi", M(29,0), M_MASK, PPCVLE, 0, {RA, RS, SH, MB, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7107) {"e_rlwinm", M(29,1), M_MASK, PPCVLE, 0, {RA, RT, SH, MBE, ME}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7108) {"e_b", BD24(30,0,0), BD24_MASK, PPCVLE, 0, {B24}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7109) {"e_bl", BD24(30,0,1), BD24_MASK, PPCVLE, 0, {B24}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7110) {"e_bdnz", EBD15(30,8,BO32DNZ,0), EBD15_MASK, PPCVLE, 0, {B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7111) {"e_bdnzl", EBD15(30,8,BO32DNZ,1), EBD15_MASK, PPCVLE, 0, {B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7112) {"e_bdz", EBD15(30,8,BO32DZ,0), EBD15_MASK, PPCVLE, 0, {B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7113) {"e_bdzl", EBD15(30,8,BO32DZ,1), EBD15_MASK, PPCVLE, 0, {B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7114) {"e_bge", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7115) {"e_bgel", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7116) {"e_bnl", EBD15BI(30,8,BO32F,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7117) {"e_bnll", EBD15BI(30,8,BO32F,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7118) {"e_blt", EBD15BI(30,8,BO32T,CBLT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7119) {"e_bltl", EBD15BI(30,8,BO32T,CBLT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7120) {"e_bgt", EBD15BI(30,8,BO32T,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7121) {"e_bgtl", EBD15BI(30,8,BO32T,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7122) {"e_ble", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7123) {"e_blel", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7124) {"e_bng", EBD15BI(30,8,BO32F,CBGT,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7125) {"e_bngl", EBD15BI(30,8,BO32F,CBGT,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7126) {"e_bne", EBD15BI(30,8,BO32F,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7127) {"e_bnel", EBD15BI(30,8,BO32F,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7128) {"e_beq", EBD15BI(30,8,BO32T,CBEQ,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7129) {"e_beql", EBD15BI(30,8,BO32T,CBEQ,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7130) {"e_bso", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7131) {"e_bsol", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7132) {"e_bun", EBD15BI(30,8,BO32T,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7133) {"e_bunl", EBD15BI(30,8,BO32T,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7134) {"e_bns", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7135) {"e_bnsl", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7136) {"e_bnu", EBD15BI(30,8,BO32F,CBSO,0), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7137) {"e_bnul", EBD15BI(30,8,BO32F,CBSO,1), EBD15BI_MASK, PPCVLE, 0, {CRS,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7138) {"e_bc", BD15(30,8,0), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7139) {"e_bcl", BD15(30,8,1), BD15_MASK, PPCVLE, 0, {BO32, BI32, B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7140)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7141) {"e_bf", EBD15(30,8,BO32F,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7142) {"e_bfl", EBD15(30,8,BO32F,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7143) {"e_bt", EBD15(30,8,BO32T,0), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7144) {"e_btl", EBD15(30,8,BO32T,1), EBD15_MASK, PPCVLE, 0, {BI32,B15}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7145)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7146) {"e_cmph", X(31,14), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7147) {"e_cmphl", X(31,46), X_MASK, PPCVLE, 0, {CRD, RA, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7148) {"e_crandc", XL(31,129), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7149) {"e_crnand", XL(31,225), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7150) {"e_crnot", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BA, BBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7151) {"e_crnor", XL(31,33), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7152) {"e_crclr", XL(31,193), XL_MASK, PPCVLE, 0, {BT, BAT, BBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7153) {"e_crxor", XL(31,193), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7154) {"e_mcrf", XL(31,16), XL_MASK, PPCVLE, 0, {CRD, CR}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7155) {"e_slwi", EX(31,112), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7156) {"e_slwi.", EX(31,113), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7157)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7158) {"e_crand", XL(31,257), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7160) {"e_rlw", EX(31,560), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7161) {"e_rlw.", EX(31,561), EX_MASK, PPCVLE, 0, {RA, RS, RB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7162)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7163) {"e_crset", XL(31,289), XL_MASK, PPCVLE, 0, {BT, BAT, BBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7164) {"e_creqv", XL(31,289), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7165)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7166) {"e_rlwi", EX(31,624), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7167) {"e_rlwi.", EX(31,625), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7168)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7169) {"e_crorc", XL(31,417), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7170)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7171) {"e_crmove", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BA, BBA}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7172) {"e_cror", XL(31,449), XL_MASK, PPCVLE, 0, {BT, BA, BB}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7174) {"mtmas1", XSPR(31,467,625), XSPR_MASK, PPCVLE, 0, {RS}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7175)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7176) {"e_srwi", EX(31,1136), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7177) {"e_srwi.", EX(31,1137), EX_MASK, PPCVLE, 0, {RA, RS, SH}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7178)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7179) {"se_lbz", SD4(8), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7181) {"se_stb", SD4(9), SD4_MASK, PPCVLE, 0, {RZ, SE_SD, RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7183) {"se_lhz", SD4(10), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7184)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7185) {"se_sth", SD4(11), SD4_MASK, PPCVLE, 0, {RZ, SE_SDH, RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7186)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7187) {"se_lwz", SD4(12), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7188)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7189) {"se_stw", SD4(13), SD4_MASK, PPCVLE, 0, {RZ, SE_SDW, RX}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7190)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7191) {"se_bge", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7192) {"se_bnl", EBD8IO(28,0,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7193) {"se_ble", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7194) {"se_bng", EBD8IO(28,0,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7195) {"se_bne", EBD8IO(28,0,2), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7196) {"se_bns", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7197) {"se_bnu", EBD8IO(28,0,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7198) {"se_bf", EBD8IO(28,0,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7199) {"se_blt", EBD8IO(28,1,0), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7200) {"se_bgt", EBD8IO(28,1,1), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7201) {"se_beq", EBD8IO(28,1,2), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7202) {"se_bso", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7203) {"se_bun", EBD8IO(28,1,3), EBD8IO3_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7204) {"se_bt", EBD8IO(28,1,0), EBD8IO2_MASK, PPCVLE, 0, {BI16, B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7205) {"se_bc", BD8IO(28), BD8IO_MASK, PPCVLE, 0, {BO16, BI16, B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7206) {"se_b", BD8(58,0,0), BD8_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7207) {"se_bl", BD8(58,0,1), BD8_MASK, PPCVLE, 0, {B8}},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7208) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7209)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7210) const int vle_num_opcodes =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7211) sizeof (vle_opcodes) / sizeof (vle_opcodes[0]);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7213) /* The macro table. This is only used by the assembler. */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7214)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7215) /* The expressions of the form (-x ! 31) & (x | 31) have the value 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7216) when x=0; 32-x when x is between 1 and 31; are negative if x is
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7217) negative; and are 32 or more otherwise. This is what you want
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7218) when, for instance, you are emulating a right shift by a
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7219) rotate-left-and-mask, because the underlying instructions support
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7220) shifts of size 0 but not shifts of size 32. By comparison, when
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7221) extracting x bits from some word you want to use just 32-x, because
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7222) the underlying instructions don't support extracting 0 bits but do
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7223) support extracting the whole word (32 bits in this case). */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7224)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7225) const struct powerpc_macro powerpc_macros[] = {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7226) {"extldi", 4, PPC64, "rldicr %0,%1,%3,(%2)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7227) {"extldi.", 4, PPC64, "rldicr. %0,%1,%3,(%2)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7228) {"extrdi", 4, PPC64, "rldicl %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7229) {"extrdi.", 4, PPC64, "rldicl. %0,%1,((%2)+(%3))&((%2)+(%3)<>64),64-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7230) {"insrdi", 4, PPC64, "rldimi %0,%1,64-((%2)+(%3)),%3"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7231) {"insrdi.", 4, PPC64, "rldimi. %0,%1,64-((%2)+(%3)),%3"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7232) {"rotrdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),0"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7233) {"rotrdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),0"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7234) {"sldi", 3, PPC64, "rldicr %0,%1,%2,63-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7235) {"sldi.", 3, PPC64, "rldicr. %0,%1,%2,63-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7236) {"srdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),%2"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7237) {"srdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),%2"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7238) {"clrrdi", 3, PPC64, "rldicr %0,%1,0,63-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7239) {"clrrdi.", 3, PPC64, "rldicr. %0,%1,0,63-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7240) {"clrlsldi", 4, PPC64, "rldic %0,%1,%3,(%2)-(%3)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7241) {"clrlsldi.",4, PPC64, "rldic. %0,%1,%3,(%2)-(%3)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7242)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7243) {"extlwi", 4, PPCCOM, "rlwinm %0,%1,%3,0,(%2)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7244) {"extlwi.", 4, PPCCOM, "rlwinm. %0,%1,%3,0,(%2)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7245) {"extrwi", 4, PPCCOM, "rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7246) {"extrwi.", 4, PPCCOM, "rlwinm. %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7247) {"inslwi", 4, PPCCOM, "rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7248) {"inslwi.", 4, PPCCOM, "rlwimi. %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7249) {"insrwi", 4, PPCCOM, "rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7250) {"insrwi.", 4, PPCCOM, "rlwimi. %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7251) {"rotrwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7252) {"rotrwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),0,31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7253) {"slwi", 3, PPCCOM, "rlwinm %0,%1,%2,0,31-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7254) {"sli", 3, PWRCOM, "rlinm %0,%1,%2,0,31-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7255) {"slwi.", 3, PPCCOM, "rlwinm. %0,%1,%2,0,31-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7256) {"sli.", 3, PWRCOM, "rlinm. %0,%1,%2,0,31-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7257) {"srwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7258) {"sri", 3, PWRCOM, "rlinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7259) {"srwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7260) {"sri.", 3, PWRCOM, "rlinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7261) {"clrrwi", 3, PPCCOM, "rlwinm %0,%1,0,0,31-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7262) {"clrrwi.", 3, PPCCOM, "rlwinm. %0,%1,0,0,31-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7263) {"clrlslwi", 4, PPCCOM, "rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7264) {"clrlslwi.",4, PPCCOM, "rlwinm. %0,%1,%3,(%2)-(%3),31-(%3)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7265)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7266) {"e_extlwi", 4, PPCVLE, "e_rlwinm %0,%1,%3,0,(%2)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7267) {"e_extrwi", 4, PPCVLE, "e_rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7268) {"e_inslwi", 4, PPCVLE, "e_rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7269) {"e_insrwi", 4, PPCVLE, "e_rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7270) {"e_rotlwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7271) {"e_rotrwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7272) {"e_slwi", 3, PPCVLE, "e_rlwinm %0,%1,%2,0,31-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7273) {"e_srwi", 3, PPCVLE, "e_rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7274) {"e_clrlwi", 3, PPCVLE, "e_rlwinm %0,%1,0,%2,31"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7275) {"e_clrrwi", 3, PPCVLE, "e_rlwinm %0,%1,0,0,31-(%2)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7276) {"e_clrlslwi",4, PPCVLE, "e_rlwinm %0,%1,%3,(%2)-(%3),31-(%3)"},
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7277) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7278)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7279) const int powerpc_num_macros =
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7280) sizeof (powerpc_macros) / sizeof (powerpc_macros[0]);