18b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* ppc-dis.c -- Disassemble PowerPC instructions 25d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner Copyright 1994, 1995, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 35d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner Free Software Foundation, Inc. 48b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project Written by Ian Lance Taylor, Cygnus Support 58b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 68b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectThis file is part of GDB, GAS, and the GNU binutils. 78b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 88b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectGDB, GAS, and the GNU binutils are free software; you can redistribute 98b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectthem and/or modify them under the terms of the GNU General Public 108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectLicense as published by the Free Software Foundation; either version 118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project2, or (at your option) any later version. 128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectGDB, GAS, and the GNU binutils are distributed in the hope that they 148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectwill be useful, but WITHOUT ANY WARRANTY; without even the implied 158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectwarranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectthe GNU General Public License for more details. 178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectYou should have received a copy of the GNU General Public License 192910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turneralong with this file; see the file COPYING. If not, 202910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turnersee <http://www.gnu.org/licenses/>. */ 21cc33b2d8035092608c7cba4154e9c44452727e1bDavid 'Digit' Turner#include "disas/bfd.h" 225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BFD_DEFAULT_TARGET_SIZE 64 238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* ppc.h -- Header file for PowerPC opcode table 255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner Copyright 1994, 1995, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 2007 Free Software Foundation, Inc. 278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project Written by Ian Lance Taylor, Cygnus Support 288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectThis file is part of GDB, GAS, and the GNU binutils. 308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectGDB, GAS, and the GNU binutils are free software; you can redistribute 328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectthem and/or modify them under the terms of the GNU General Public 338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectLicense as published by the Free Software Foundation; either version 348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project1, or (at your option) any later version. 358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectGDB, GAS, and the GNU binutils are distributed in the hope that they 378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectwill be useful, but WITHOUT ANY WARRANTY; without even the implied 388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectwarranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectthe GNU General Public License for more details. 408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source ProjectYou should have received a copy of the GNU General Public License 422910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turneralong with this file; see the file COPYING. If not, 432910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turnersee <http://www.gnu.org/licenses/>. */ 448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The opcode table is an array of struct powerpc_opcode. */ 468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct powerpc_opcode 488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The opcode name. */ 508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project const char *name; 518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The opcode itself. Those bits which will be filled in with 538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project operands are zeroes. */ 545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long opcode; 558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The opcode mask. This is used by the disassembler. This is a 578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project mask containing ones indicating those bits which must match the 588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project opcode field, and zeroes indicating those bits which need not 598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project match (and are presumably filled in by operands). */ 605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long mask; 618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* One bit flags for the opcode. These are used to indicate which 638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project specific processors support the instructions. The defined values 648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project are listed below. */ 655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long flags; 668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* An array of operand codes. Each code is an index into the 688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project operand table. They appear in the order which the operands must 698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project appear in assembly code, and are terminated by a zero. */ 708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned char operands[8]; 718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The table itself is sorted by major opcode number, and is otherwise 748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project in the order in which the disassembler should consider 758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project instructions. */ 768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern const struct powerpc_opcode powerpc_opcodes[]; 778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern const int powerpc_num_opcodes; 788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Values defined for the flags field of a struct powerpc_opcode. */ 808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Opcode is defined for the PowerPC architecture. */ 825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_PPC 1 838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Opcode is defined for the POWER (RS/6000) architecture. */ 855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_POWER 2 868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Opcode is defined for the POWER2 (Rios 2) architecture. */ 885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_POWER2 4 898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Opcode is only defined on 32 bit architectures. */ 915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_32 8 928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Opcode is only defined on 64 bit architectures. */ 945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_64 0x10 958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Opcode is supported by the Motorola PowerPC 601 processor. The 601 978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project is assumed to support all PowerPC (PPC_OPCODE_PPC) instructions, 988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project but it also supports many additional POWER instructions. */ 995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_601 0x20 1005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported in both the Power and PowerPC architectures 1025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (ie, compiler's -mcpu=common or assembler's -mcom). */ 1035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_COMMON 0x40 1045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported for any Power or PowerPC platform (this is 1065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner for the assembler's -many option, and it eliminates duplicates). */ 1075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_ANY 0x80 1085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported as part of the 64-bit bridge. */ 1105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_64_BRIDGE 0x100 1115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported by Altivec Vector Unit */ 1135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_ALTIVEC 0x200 1145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported by PowerPC 403 processor. */ 1165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_403 0x400 1175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported by PowerPC BookE processor. */ 1195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_BOOKE 0x800 1205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is only supported by 64-bit PowerPC BookE processor. */ 1225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_BOOKE64 0x1000 1235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported by PowerPC 440 processor. */ 1255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_440 0x2000 1265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is only supported by Power4 architecture. */ 1285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_POWER4 0x4000 1295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode isn't supported by Power4 architecture. */ 1315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_NOPOWER4 0x8000 1325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is only supported by POWERPC Classic architecture. */ 1345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_CLASSIC 0x10000 1355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is only supported by e500x2 Core. */ 1375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_SPE 0x20000 1385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported by e500x2 Integer select APU. */ 1405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_ISEL 0x40000 1415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is an e500 SPE floating point instruction. */ 1435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_EFS 0x80000 1445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported by branch locking APU. */ 1465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_BRLOCK 0x100000 1475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported by performance monitor APU. */ 1495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_PMR 0x200000 1505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported by cache locking APU. */ 1525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_CACHELCK 0x400000 1535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported by machine check APU. */ 1555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_RFMCI 0x800000 1565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is only supported by Power5 architecture. */ 1585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_POWER5 0x1000000 1595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is supported by PowerPC e300 family. */ 1615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_E300 0x2000000 1625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is only supported by Power6 architecture. */ 1645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_POWER6 0x4000000 1655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Opcode is only supported by PowerPC Cell family. */ 1675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPCODE_CELL 0x8000000 1688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* A macro to extract the major opcode from an instruction. */ 1708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define PPC_OP(i) (((i) >> 26) & 0x3f) 1718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The operands table is an array of struct powerpc_operand. */ 1738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct powerpc_operand 1758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 1765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* A bitmask of bits in the operand. */ 1775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned int bitm; 1788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* How far the operand is left shifted in the instruction. 1805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner -1 to indicate that BITM and SHIFT cannot be used to determine 1815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner where the operand goes in the insn. */ 1828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int shift; 1838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Insertion function. This is used by the assembler. To insert an 1858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project operand value into an instruction, check this field. 1868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project If it is NULL, execute 1885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner i |= (op & o->bitm) << o->shift; 1898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (i is the instruction which we are filling in, o is a pointer to 1905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner this structure, and op is the operand value). 1918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project If this field is not NULL, then simply call it with the 1938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project instruction and the operand value. It will return the new value 1948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project of the instruction. If the ERRMSG argument is not NULL, then if 1958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the operand value is illegal, *ERRMSG will be set to a warning 1968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project string (the operand will be inserted in any case). If the 1978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project operand value is legal, *ERRMSG will be unchanged (most operands 1988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project can accept any value). */ 1995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long (*insert) 2005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (unsigned long instruction, long op, int dialect, const char **errmsg); 2018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Extraction function. This is used by the disassembler. To 2038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project extract this operand type from an instruction, check this field. 2048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project If it is NULL, compute 2065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner op = (i >> o->shift) & o->bitm; 2075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((o->flags & PPC_OPERAND_SIGNED) != 0) 2085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner sign_extend (op); 2098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (i is the instruction, o is a pointer to this structure, and op 2105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner is the result). 2118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project If this field is not NULL, then simply call it with the 2138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project instruction value. It will return the value of the operand. If 2148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the INVALID argument is not NULL, *INVALID will be set to 2158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project non-zero if this operand type can not actually be extracted from 2168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project this operand (i.e., the instruction does not match). If the 2178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project operand is valid, *INVALID will not be changed. */ 2185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long (*extract) (unsigned long instruction, int dialect, int *invalid); 2198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* One bit syntax flags. */ 2215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long flags; 2228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 2238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Elements in the table are retrieved by indexing with values from 2258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the operands field of the powerpc_opcodes table. */ 2268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern const struct powerpc_operand powerpc_operands[]; 2285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextern const unsigned int num_powerpc_operands; 2298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Values defined for the flags field of a struct powerpc_operand. */ 2318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This operand takes signed values. */ 2335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_SIGNED (0x1) 2348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This operand takes signed values, but also accepts a full positive 2368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project range of values when running in 32 bit mode. That is, if bits is 2378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16, it takes any value from -0x8000 to 0xffff. In 64 bit mode, 2388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project this flag is ignored. */ 2395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_SIGNOPT (0x2) 2408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This operand does not actually exist in the assembler input. This 2428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project is used to support extended mnemonics such as mr, for which two 2438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project operands fields are identical. The assembler should call the 2448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project insert function with any op value. The disassembler should call 2458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the extract function, ignore the return value, and check the value 2468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project placed in the valid argument. */ 2475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_FAKE (0x4) 2488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The next operand should be wrapped in parentheses rather than 2508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project separated from this one by a comma. This is used for the load and 2518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project store instructions which want their operands to look like 2528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project reg,displacement(reg) 2538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project */ 2545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_PARENS (0x8) 2558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This operand may use the symbolic names for the CR fields, which 2578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project are 2588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project lt 0 gt 1 eq 2 so 3 un 3 2598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project cr0 0 cr1 1 cr2 2 cr3 3 2608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project cr4 4 cr5 5 cr6 6 cr7 7 2618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project These may be combined arithmetically, as in cr2*4+gt. These are 2628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project only supported on the PowerPC, not the POWER. */ 2635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_CR (0x10) 2648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This operand names a register. The disassembler uses this to print 2668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project register names with a leading 'r'. */ 2675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_GPR (0x20) 2685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 2695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Like PPC_OPERAND_GPR, but don't print a leading 'r' for r0. */ 2705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_GPR_0 (0x40) 2718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This operand names a floating point register. The disassembler 2738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project prints these with a leading 'f'. */ 2745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_FPR (0x80) 2758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This operand is a relative branch displacement. The disassembler 2778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project prints these symbolically if possible. */ 2785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_RELATIVE (0x100) 2798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This operand is an absolute branch address. The disassembler 2818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project prints these symbolically if possible. */ 2825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_ABSOLUTE (0x200) 2838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This operand is optional, and is zero if omitted. This is used for 2855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner example, in the optional BF field in the comparison instructions. The 2868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project assembler must count the number of operands remaining on the line, 2878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project and the number of operands remaining for the opcode, and decide 2888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project whether this operand is present or not. The disassembler should 2898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project print this operand out only if it is not zero. */ 2905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_OPTIONAL (0x400) 2918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 2928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This flag is only used with PPC_OPERAND_OPTIONAL. If this operand 2938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project is omitted, then for the next operand use this operand value plus 2948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 1, ignoring the next operand field for the opcode. This wretched 2958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project hack is needed because the Power rotate instructions can take 2968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project either 4 or 5 operands. The disassembler should print this operand 2978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project out regardless of the PPC_OPERAND_OPTIONAL field. */ 2985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_NEXT (0x800) 2998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This operand should be regarded as a negative number for the 3018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project purposes of overflow checking (i.e., the normal most negative 3028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project number is disallowed and one more than the normal most positive 3038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project number is allowed). This flag will only be set for a signed 3048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project operand. */ 3055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_NEGATIVE (0x1000) 3065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 3075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* This operand names a vector unit register. The disassembler 3085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner prints these with a leading 'v'. */ 3095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_VR (0x2000) 3105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 3115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* This operand is for the DS field in a DS form instruction. */ 3125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_DS (0x4000) 3135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 3145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* This operand is for the DQ field in a DQ form instruction. */ 3155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_DQ (0x8000) 3165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 3175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Valid range of operand is 0..n rather than 0..n-1. */ 3185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC_OPERAND_PLUS1 (0x10000) 3198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The POWER and PowerPC assemblers use a few macros. We keep them 3218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project with the operands table for simplicity. The macro table is an 3228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project array of struct powerpc_macro. */ 3238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstruct powerpc_macro 3258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 3268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The macro name. */ 3278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project const char *name; 3288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The number of operands the macro takes. */ 3308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project unsigned int operands; 3318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* One bit flags for the opcode. These are used to indicate which 3338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project specific processors support the instructions. The values are the 3348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project same as those for the struct powerpc_opcode flags field. */ 3355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long flags; 3368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* A format string to turn the macro into a normal instruction. 3388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project Each %N in the string is replaced with operand number N (zero 3398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project based). */ 3408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project const char *format; 3418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 3428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern const struct powerpc_macro powerpc_macros[]; 3448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectextern const int powerpc_num_macros; 3458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* ppc-opc.c -- PowerPC opcode list 3475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner Copyright 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 3485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 2005, 2006, 2007 Free Software Foundation, Inc. 3498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project Written by Ian Lance Taylor, Cygnus Support 3508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner This file is part of GDB, GAS, and the GNU binutils. 3528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner GDB, GAS, and the GNU binutils are free software; you can redistribute 3545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner them and/or modify them under the terms of the GNU General Public 3555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner License as published by the Free Software Foundation; either version 3565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 2, or (at your option) any later version. 3578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner GDB, GAS, and the GNU binutils are distributed in the hope that they 3595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner will be useful, but WITHOUT ANY WARRANTY; without even the implied 3605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See 3615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner the GNU General Public License for more details. 3628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner You should have received a copy of the GNU General Public License 3642910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner along with this file; see the file COPYING. 3652910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner If not, see <http://www.gnu.org/licenses/>. */ 3668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* This file holds the PowerPC opcode table. The opcode table 3688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project includes almost all of the extended instruction mnemonics. This 3698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project permits the disassembler to use them, and simplifies the assembler 3708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project logic, at the cost of increasing the table size. The table is 3718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project strictly constant data, so the compiler should be able to put it in 3728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the .text section. 3738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project This file also holds the operand table. All knowledge about 3758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project inserting operands into instructions and vice-versa is kept in this 3768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project file. */ 3778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Local insertion and extraction functions. */ 3798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 3805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_bat (unsigned long, long, int, const char **); 3815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_bat (unsigned long, int, int *); 3825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_bba (unsigned long, long, int, const char **); 3835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_bba (unsigned long, int, int *); 3845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_bdm (unsigned long, long, int, const char **); 3855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_bdm (unsigned long, int, int *); 3865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_bdp (unsigned long, long, int, const char **); 3875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_bdp (unsigned long, int, int *); 3885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_bo (unsigned long, long, int, const char **); 3895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_bo (unsigned long, int, int *); 3905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_boe (unsigned long, long, int, const char **); 3915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_boe (unsigned long, int, int *); 3925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_fxm (unsigned long, long, int, const char **); 3935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_fxm (unsigned long, int, int *); 3945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_mbe (unsigned long, long, int, const char **); 3955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_mbe (unsigned long, int, int *); 3965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_mb6 (unsigned long, long, int, const char **); 3975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_mb6 (unsigned long, int, int *); 3985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_nb (unsigned long, int, int *); 3995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_nsi (unsigned long, long, int, const char **); 4005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_nsi (unsigned long, int, int *); 4015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_ral (unsigned long, long, int, const char **); 4025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_ram (unsigned long, long, int, const char **); 4035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_raq (unsigned long, long, int, const char **); 4045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_ras (unsigned long, long, int, const char **); 4055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_rbs (unsigned long, long, int, const char **); 4065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_rbs (unsigned long, int, int *); 4075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_sh6 (unsigned long, long, int, const char **); 4085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_sh6 (unsigned long, int, int *); 4095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_spr (unsigned long, long, int, const char **); 4105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_spr (unsigned long, int, int *); 4115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_sprg (unsigned long, long, int, const char **); 4125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_sprg (unsigned long, int, int *); 4135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long insert_tbr (unsigned long, long, int, const char **); 4145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long extract_tbr (unsigned long, int, int *); 4158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The operands table. 4178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner The fields are bitm, shift, insert, extract, flags. 4195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 4205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner We used to put parens around the various additions, like the one 4215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner for BA just below. However, that caused trouble with feeble 4225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner compilers with a limit on depth of a parenthesized expression, like 4235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (reportedly) the compiler in Microsoft Developer Studio 5. So we 4245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner omit the parens, since the macros are never used in a context where 4255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner the addition will be ambiguous. */ 4268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectconst struct powerpc_operand powerpc_operands[] = 4288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 4298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The zero index is used to indicate the end of the list of 4308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project operands. */ 4315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define UNUSED 0 4325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0, 0, NULL, NULL, 0 }, 4338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BA field in an XL form instruction. */ 4355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BA UNUSED + 1 4365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The BI field in a B form or XL form instruction. */ 4375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BI BA 4385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BI_MASK (0x1f << 16) 4395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, NULL, NULL, PPC_OPERAND_CR }, 4408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BA field in an XL form instruction when it must be the same 4428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project as the BT field in the same instruction. */ 4435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BAT BA + 1 4445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, insert_bat, extract_bat, PPC_OPERAND_FAKE }, 4458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BB field in an XL form instruction. */ 4475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BB BAT + 1 4488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BB_MASK (0x1f << 11) 4495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 11, NULL, NULL, PPC_OPERAND_CR }, 4508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BB field in an XL form instruction when it must be the same 4528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project as the BA field in the same instruction. */ 4535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BBA BB + 1 4545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 11, insert_bba, extract_bba, PPC_OPERAND_FAKE }, 4558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BD field in a B form instruction. The lower two bits are 4578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project forced to zero. */ 4585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BD BBA + 1 4595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xfffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 4608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BD field in a B form instruction when absolute addressing is 4628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project used. */ 4635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BDA BD + 1 4645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xfffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 4658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BD field in a B form instruction when the - modifier is used. 4678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project This sets the y bit of the BO field appropriately. */ 4685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BDM BDA + 1 4695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xfffc, 0, insert_bdm, extract_bdm, 4708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 4718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BD field in a B form instruction when the - modifier is used 4738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project and absolute address is used. */ 4745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BDMA BDM + 1 4755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xfffc, 0, insert_bdm, extract_bdm, 4768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 4778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BD field in a B form instruction when the + modifier is used. 4798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project This sets the y bit of the BO field appropriately. */ 4805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BDP BDMA + 1 4815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xfffc, 0, insert_bdp, extract_bdp, 4828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 4838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BD field in a B form instruction when the + modifier is used 4858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project and absolute addressing is used. */ 4865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BDPA BDP + 1 4875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xfffc, 0, insert_bdp, extract_bdp, 4888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 4898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 4908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BF field in an X or XL form instruction. */ 4915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BF BDPA + 1 4925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The CRFD field in an X form instruction. */ 4935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define CRFD BF 4945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7, 23, NULL, NULL, PPC_OPERAND_CR }, 4955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 4965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The BF field in an X or XL form instruction. */ 4975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BFF BF + 1 4985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7, 23, NULL, NULL, 0 }, 4998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* An optional BF field. This is used for comparison instructions, 5018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project in which an omitted BF field is taken as zero. */ 5025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define OBF BFF + 1 5035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7, 23, NULL, NULL, PPC_OPERAND_CR | PPC_OPERAND_OPTIONAL }, 5048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BFA field in an X or XL form instruction. */ 5065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BFA OBF + 1 5075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7, 18, NULL, NULL, PPC_OPERAND_CR }, 5088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BO field in a B form instruction. Certain values are 5108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project illegal. */ 5115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BO BFA + 1 5128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BO_MASK (0x1f << 21) 5135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 21, insert_bo, extract_bo, 0 }, 5148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BO field in a B form instruction when the + or - modifier is 5168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project used. This is like the BO field, but it must be even. */ 5175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BOE BO + 1 5185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1e, 21, insert_boe, extract_boe, 0 }, 5195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 5205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BH BOE + 1 5215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3, 11, NULL, NULL, PPC_OPERAND_OPTIONAL }, 5228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BT field in an X or XL form instruction. */ 5245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BT BH + 1 5255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 21, NULL, NULL, PPC_OPERAND_CR }, 5268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The condition register number portion of the BI field in a B form 5288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project or XL form instruction. This is used for the extended 5298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project conditional branch mnemonics, which set the lower two bits of the 5308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project BI field. This field is optional. */ 5315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define CR BT + 1 5325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7, 18, NULL, NULL, PPC_OPERAND_CR | PPC_OPERAND_OPTIONAL }, 5335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 5345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The CRB field in an X form instruction. */ 5355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define CRB CR + 1 5365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The MB field in an M form instruction. */ 5375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define MB CRB 5385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define MB_MASK (0x1f << 6) 5395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 6, NULL, NULL, 0 }, 5405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 5415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The CRFS field in an X form instruction. */ 5425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define CRFS CRB + 1 5435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7, 0, NULL, NULL, PPC_OPERAND_CR }, 5445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 5455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The CT field in an X form instruction. */ 5465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define CT CRFS + 1 5475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The MO field in an mbar instruction. */ 5485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define MO CT 5495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 5508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The D field in a D form instruction. This is a displacement off 5528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project a register, and implies that the next operand is a register in 5538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project parentheses. */ 5545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define D CT + 1 5555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xffff, 0, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, 5565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 5575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The DE field in a DE form instruction. This is like D, but is 12 5585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner bits only. */ 5595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define DE D + 1 5605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xfff, 4, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, 5615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 5625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The DES field in a DES form instruction. This is like DS, but is 14 5635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner bits only (12 stored.) */ 5645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define DES DE + 1 5655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3ffc, 2, NULL, NULL, PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED }, 5665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 5675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The DQ field in a DQ form instruction. This is like D, but the 5685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner lower four bits are forced to zero. */ 5695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define DQ DES + 1 5705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xfff0, 0, NULL, NULL, 5715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DQ }, 5728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The DS field in a DS form instruction. This is like D, but the 5748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project lower two bits are forced to zero. */ 5752910f183ddd5286911bc1e3499ea93cb57de8b75David 'Digit' Turner#undef DS 5765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define DS DQ + 1 5775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xfffc, 0, NULL, NULL, 5785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PPC_OPERAND_PARENS | PPC_OPERAND_SIGNED | PPC_OPERAND_DS }, 5795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 5805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The E field in a wrteei instruction. */ 5815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define E DS + 1 5825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1, 15, NULL, NULL, 0 }, 5838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The FL1 field in a POWER SC form instruction. */ 5855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define FL1 E + 1 5865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The U field in an X form instruction. */ 5875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define U FL1 5885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xf, 12, NULL, NULL, 0 }, 5898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The FL2 field in a POWER SC form instruction. */ 5915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define FL2 FL1 + 1 5925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7, 2, NULL, NULL, 0 }, 5938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The FLM field in an XFL form instruction. */ 5955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define FLM FL2 + 1 5965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xff, 17, NULL, NULL, 0 }, 5978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 5988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The FRA field in an X or A form instruction. */ 5995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define FRA FLM + 1 6008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define FRA_MASK (0x1f << 16) 6015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, NULL, NULL, PPC_OPERAND_FPR }, 6028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The FRB field in an X or A form instruction. */ 6045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define FRB FRA + 1 6058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define FRB_MASK (0x1f << 11) 6065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 11, NULL, NULL, PPC_OPERAND_FPR }, 6078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The FRC field in an A form instruction. */ 6095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define FRC FRB + 1 6108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define FRC_MASK (0x1f << 6) 6115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 6, NULL, NULL, PPC_OPERAND_FPR }, 6128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The FRS field in an X form instruction or the FRT field in a D, X 6148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project or A form instruction. */ 6155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define FRS FRC + 1 6165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define FRT FRS 6175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 21, NULL, NULL, PPC_OPERAND_FPR }, 6188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The FXM field in an XFX instruction. */ 6205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define FXM FRS + 1 6215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xff, 12, insert_fxm, extract_fxm, 0 }, 6225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 6235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Power4 version for mfcr. */ 6245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define FXM4 FXM + 1 6255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xff, 12, insert_fxm, extract_fxm, PPC_OPERAND_OPTIONAL }, 6268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The L field in a D or X form instruction. */ 6285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define L FXM4 + 1 6295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 6308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The LEV field in a POWER SVC form instruction. */ 6325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SVC_LEV L + 1 6335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7f, 5, NULL, NULL, 0 }, 6345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 6355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The LEV field in an SC form instruction. */ 6365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define LEV SVC_LEV + 1 6375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7f, 5, NULL, NULL, PPC_OPERAND_OPTIONAL }, 6388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The LI field in an I form instruction. The lower two bits are 6408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project forced to zero. */ 6415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define LI LEV + 1 6425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_RELATIVE | PPC_OPERAND_SIGNED }, 6438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The LI field in an I form instruction when used as an absolute 6458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project address. */ 6465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define LIA LI + 1 6475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3fffffc, 0, NULL, NULL, PPC_OPERAND_ABSOLUTE | PPC_OPERAND_SIGNED }, 6488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The LS field in an X (sync) form instruction. */ 6505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define LS LIA + 1 6515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3, 21, NULL, NULL, PPC_OPERAND_OPTIONAL }, 6528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The ME field in an M form instruction. */ 6545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define ME LS + 1 6558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define ME_MASK (0x1f << 1) 6565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 1, NULL, NULL, 0 }, 6578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The MB and ME fields in an M form instruction expressed a single 6598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project operand which is a bitmask indicating which bits to select. This 6608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project is a two operand form using PPC_OPERAND_NEXT. See the 6618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project description in opcode/ppc.h for what this means. */ 6625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define MBE ME + 1 6635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 6, NULL, NULL, PPC_OPERAND_OPTIONAL | PPC_OPERAND_NEXT }, 6645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { -1, 0, insert_mbe, extract_mbe, 0 }, 6658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The MB or ME field in an MD or MDS form instruction. The high 6678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project bit is wrapped to the low end. */ 6685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define MB6 MBE + 2 6695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define ME6 MB6 6708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MB6_MASK (0x3f << 5) 6715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3f, 5, insert_mb6, extract_mb6, 0 }, 6728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The NB field in an X form instruction. The value 32 is stored as 6748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 0. */ 6755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define NB MB6 + 1 6765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 11, NULL, extract_nb, PPC_OPERAND_PLUS1 }, 6778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The NSI field in a D form instruction. This is the same as the 6798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SI field, only negated. */ 6805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define NSI NB + 1 6815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xffff, 0, insert_nsi, extract_nsi, 6828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project PPC_OPERAND_NEGATIVE | PPC_OPERAND_SIGNED }, 6838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The RA field in an D, DS, DQ, X, XO, M, or MDS form instruction. */ 6855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RA NSI + 1 6868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define RA_MASK (0x1f << 16) 6875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR }, 6885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 6895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* As above, but 0 in the RA field means zero, not r0. */ 6905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RA0 RA + 1 6915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR_0 }, 6925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 6935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The RA field in the DQ form lq instruction, which has special 6945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner value restrictions. */ 6955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RAQ RA0 + 1 6965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, insert_raq, NULL, PPC_OPERAND_GPR_0 }, 6978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 6988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The RA field in a D or X form instruction which is an updating 6998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project load, which means that the RA field may not be zero and may not 7008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project equal the RT field. */ 7015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RAL RAQ + 1 7025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, insert_ral, NULL, PPC_OPERAND_GPR_0 }, 7038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The RA field in an lmw instruction, which has special value 7058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project restrictions. */ 7065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RAM RAL + 1 7075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, insert_ram, NULL, PPC_OPERAND_GPR_0 }, 7088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The RA field in a D or X form instruction which is an updating 7108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project store or an updating floating point load, which means that the RA 7118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project field may not be zero. */ 7125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RAS RAM + 1 7135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, insert_ras, NULL, PPC_OPERAND_GPR_0 }, 7145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 7155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The RA field of the tlbwe instruction, which is optional. */ 7165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RAOPT RAS + 1 7175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL }, 7188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The RB field in an X, XO, M, or MDS form instruction. */ 7205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RB RAOPT + 1 7218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define RB_MASK (0x1f << 11) 7225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 11, NULL, NULL, PPC_OPERAND_GPR }, 7238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The RB field in an X form instruction when it must be the same as 7258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the RS field in the instruction. This is used for extended 7268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project mnemonics like mr. */ 7275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RBS RB + 1 7285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 11, insert_rbs, extract_rbs, PPC_OPERAND_FAKE }, 7298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The RS field in a D, DS, X, XFX, XS, M, MD or MDS form 7318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project instruction or the RT field in a D, DS, X, XFX or XO form 7328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project instruction. */ 7335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RS RBS + 1 7345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RT RS 7358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define RT_MASK (0x1f << 21) 7365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR }, 7375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 7385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The RS and RT fields of the DS form stq instruction, which have 7395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner special value restrictions. */ 7405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RSQ RS + 1 7415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RTQ RSQ 7425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1e, 21, NULL, NULL, PPC_OPERAND_GPR_0 }, 7435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 7445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The RS field of the tlbwe instruction, which is optional. */ 7455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RSO RSQ + 1 7465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RTO RSO 7475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 21, NULL, NULL, PPC_OPERAND_GPR | PPC_OPERAND_OPTIONAL }, 7488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The SH field in an X or M form instruction. */ 7505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SH RSO + 1 7518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SH_MASK (0x1f << 11) 7525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The other UIMM field in a EVX form instruction. */ 7535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define EVUIMM SH 7545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 11, NULL, NULL, 0 }, 7558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The SH field in an MD form instruction. This is split. */ 7575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SH6 SH + 1 7588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SH6_MASK ((0x1f << 11) | (1 << 1)) 7595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3f, -1, insert_sh6, extract_sh6, 0 }, 7605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 7615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The SH field of the tlbwe instruction, which is optional. */ 7625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SHO SH6 + 1 7635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 11, NULL, NULL, PPC_OPERAND_OPTIONAL }, 7648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The SI field in a D form instruction. */ 7665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SI SHO + 1 7675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED }, 7688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The SI field in a D form instruction when we accept a wide range 7708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project of positive values. */ 7715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SISIGNOPT SI + 1 7725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xffff, 0, NULL, NULL, PPC_OPERAND_SIGNED | PPC_OPERAND_SIGNOPT }, 7738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The SPR field in an XFX form instruction. This is flipped--the 7758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project lower 5 bits are stored in the upper 5 and vice- versa. */ 7765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SPR SISIGNOPT + 1 7775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PMR SPR 7788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SPR_MASK (0x3ff << 11) 7795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3ff, 11, insert_spr, extract_spr, 0 }, 7808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The BAT index number in an XFX form m[ft]ibat[lu] instruction. */ 7825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SPRBAT SPR + 1 7838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define SPRBAT_MASK (0x3 << 17) 7845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3, 17, NULL, NULL, 0 }, 7858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The SPRG register number in an XFX form m[ft]sprg instruction. */ 7875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SPRG SPRBAT + 1 7885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, insert_sprg, extract_sprg, 0 }, 7898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The SR field in an X form instruction. */ 7915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SR SPRG + 1 7925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xf, 16, NULL, NULL, 0 }, 7935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 7945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The STRM field in an X AltiVec form instruction. */ 7955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define STRM SR + 1 7965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3, 21, NULL, NULL, 0 }, 7978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 7988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The SV field in a POWER SC form instruction. */ 7995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SV STRM + 1 8005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3fff, 2, NULL, NULL, 0 }, 8018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 8028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The TBR field in an XFX form instruction. This is like the SPR 8038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project field, but it is optional. */ 8045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define TBR SV + 1 8055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3ff, 11, insert_tbr, extract_tbr, PPC_OPERAND_OPTIONAL }, 8068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 8078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The TO field in a D or X form instruction. */ 8085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define TO TBR + 1 8098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TO_MASK (0x1f << 21) 8105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 21, NULL, NULL, 0 }, 8118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 8128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The UI field in a D form instruction. */ 8135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define UI TO + 1 8145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xffff, 0, NULL, NULL, 0 }, 8155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The VA field in a VA, VX or VXR form instruction. */ 8175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VA UI + 1 8185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, NULL, NULL, PPC_OPERAND_VR }, 8195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The VB field in a VA, VX or VXR form instruction. */ 8215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VB VA + 1 8225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 11, NULL, NULL, PPC_OPERAND_VR }, 8235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The VC field in a VA form instruction. */ 8255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VC VB + 1 8265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 6, NULL, NULL, PPC_OPERAND_VR }, 8275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The VD or VS field in a VA, VX, VXR or X form instruction. */ 8295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VD VC + 1 8305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VS VD 8315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 21, NULL, NULL, PPC_OPERAND_VR }, 8325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The SIMM field in a VX form instruction. */ 8345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SIMM VD + 1 8355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, NULL, NULL, PPC_OPERAND_SIGNED}, 8365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The UIMM field in a VX form instruction, and TE in Z form. */ 8385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define UIMM SIMM + 1 8395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define TE UIMM 8405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1f, 16, NULL, NULL, 0 }, 8415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The SHB field in a VA form instruction. */ 8435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SHB UIMM + 1 8445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xf, 6, NULL, NULL, 0 }, 8455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The other UIMM field in a half word EVX form instruction. */ 8475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define EVUIMM_2 SHB + 1 8485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3e, 10, NULL, NULL, PPC_OPERAND_PARENS }, 8495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The other UIMM field in a word EVX form instruction. */ 8515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define EVUIMM_4 EVUIMM_2 + 1 8525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7c, 9, NULL, NULL, PPC_OPERAND_PARENS }, 8535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The other UIMM field in a double EVX form instruction. */ 8555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define EVUIMM_8 EVUIMM_4 + 1 8565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0xf8, 8, NULL, NULL, PPC_OPERAND_PARENS }, 8575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The WS field. */ 8595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define WS EVUIMM_8 + 1 8605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x7, 11, NULL, NULL, 0 }, 8615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The L field in an mtmsrd or A form instruction or W in an X form. */ 8635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define A_L WS + 1 8645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define W A_L 8655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1, 16, NULL, NULL, PPC_OPERAND_OPTIONAL }, 8665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define RMC A_L + 1 8685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3, 9, NULL, NULL, 0 }, 8695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define R RMC + 1 8715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1, 16, NULL, NULL, 0 }, 8725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SP R + 1 8745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3, 19, NULL, NULL, 0 }, 8755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define S SP + 1 8775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1, 20, NULL, NULL, 0 }, 8785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* SH field starting at bit position 16. */ 8805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SH16 S + 1 8815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The DCM and DGM fields in a Z form instruction. */ 8825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define DCM SH16 8835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define DGM DCM 8845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x3f, 10, NULL, NULL, 0 }, 8855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The EH field in larx instruction. */ 8875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define EH SH16 + 1 8885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1, 0, NULL, NULL, PPC_OPERAND_OPTIONAL }, 8895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* The L field in an mtfsf or XFL form instruction. */ 8915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XFL_L EH + 1 8925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 0x1, 25, NULL, NULL, PPC_OPERAND_OPTIONAL}, 8938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 8948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 8955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerconst unsigned int num_powerpc_operands = (sizeof (powerpc_operands) 8965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner / sizeof (powerpc_operands[0])); 8975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 8988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The functions used to insert and extract complicated operands. */ 8998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The BA field in an XL form instruction when it must be the same as 9018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the BT field in the same instruction. This operand is marked FAKE. 9028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project The insertion function just copies the BT field into the BA field, 9038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project and the extraction function just checks that the fields are the 9048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project same. */ 9058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 9075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_bat (unsigned long insn, 9085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value ATTRIBUTE_UNUSED, 9095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 9105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg ATTRIBUTE_UNUSED) 9118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 9128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | (((insn >> 21) & 0x1f) << 16); 9138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 9148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 9165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_bat (unsigned long insn, 9175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 9185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 9198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 9205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (((insn >> 21) & 0x1f) != ((insn >> 16) & 0x1f)) 9218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *invalid = 1; 9228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return 0; 9238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 9248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The BB field in an XL form instruction when it must be the same as 9268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the BA field in the same instruction. This operand is marked FAKE. 9278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project The insertion function just copies the BA field into the BB field, 9288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project and the extraction function just checks that the fields are the 9298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project same. */ 9308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 9325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_bba (unsigned long insn, 9335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value ATTRIBUTE_UNUSED, 9345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 9355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg ATTRIBUTE_UNUSED) 9368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 9378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | (((insn >> 16) & 0x1f) << 11); 9388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 9398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 9415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_bba (unsigned long insn, 9425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 9435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 9448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 9455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (((insn >> 16) & 0x1f) != ((insn >> 11) & 0x1f)) 9468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *invalid = 1; 9478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return 0; 9488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 9498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The BD field in a B form instruction when the - modifier is used. 9518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project This modifier means that the branch is not expected to be taken. 9525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner For chips built to versions of the architecture prior to version 2 9535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (ie. not Power4 compatible), we set the y bit of the BO field to 1 9545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if the offset is negative. When extracting, we require that the y 9555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner bit be 1 and that the offset be positive, since if the y bit is 0 9565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner we just want to print the normal form of the instruction. 9575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner Power4 compatible targets use two bits, "a", and "t", instead of 9585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner the "y" bit. "at" == 00 => no hint, "at" == 01 => unpredictable, 9595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner "at" == 10 => not taken, "at" == 11 => taken. The "t" bit is 00001 9605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner in BO field, the "a" bit is 00010 for branch on CR(BI) and 01000 9615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner for branch on CTR. We only handle the taken/not-taken hint here. 9625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner Note that we don't relax the conditions tested here when 9635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner disassembling with -Many because insns using extract_bdm and 9645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner extract_bdp always occur in pairs. One or the other will always 9655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner be valid. */ 9668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 9685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_bdm (unsigned long insn, 9695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 9705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 9715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg ATTRIBUTE_UNUSED) 9728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 9735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((dialect & PPC_OPCODE_POWER4) == 0) 9745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 9755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((value & 0x8000) != 0) 9765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner insn |= 1 << 21; 9775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 9785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else 9795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 9805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((insn & (0x14 << 21)) == (0x04 << 21)) 9815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner insn |= 0x02 << 21; 9825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((insn & (0x14 << 21)) == (0x10 << 21)) 9835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner insn |= 0x08 << 21; 9845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 9858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | (value & 0xfffc); 9868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 9878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 9888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 9895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_bdm (unsigned long insn, 9905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 9915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 9928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 9935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((dialect & PPC_OPCODE_POWER4) == 0) 9945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 9955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (((insn & (1 << 21)) == 0) != ((insn & (1 << 15)) == 0)) 9965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *invalid = 1; 9975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 9988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project else 9995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 10005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((insn & (0x17 << 21)) != (0x06 << 21) 10015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && (insn & (0x1d << 21)) != (0x18 << 21)) 10025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *invalid = 1; 10035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 10045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 10055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return ((insn & 0xfffc) ^ 0x8000) - 0x8000; 10068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 10078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 10088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The BD field in a B form instruction when the + modifier is used. 10098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project This is like BDM, above, except that the branch is expected to be 10108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project taken. */ 10118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 10128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 10135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_bdp (unsigned long insn, 10145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 10155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 10165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg ATTRIBUTE_UNUSED) 10178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 10185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((dialect & PPC_OPCODE_POWER4) == 0) 10195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 10205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((value & 0x8000) == 0) 10215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner insn |= 1 << 21; 10225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 10235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else 10245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 10255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((insn & (0x14 << 21)) == (0x04 << 21)) 10265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner insn |= 0x03 << 21; 10275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((insn & (0x14 << 21)) == (0x10 << 21)) 10285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner insn |= 0x09 << 21; 10295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 10308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | (value & 0xfffc); 10318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 10328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 10338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 10345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_bdp (unsigned long insn, 10355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 10365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 10378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 10385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((dialect & PPC_OPCODE_POWER4) == 0) 10395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 10405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (((insn & (1 << 21)) == 0) == ((insn & (1 << 15)) == 0)) 10415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *invalid = 1; 10425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 10438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project else 10445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 10455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((insn & (0x17 << 21)) != (0x07 << 21) 10465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && (insn & (0x1d << 21)) != (0x19 << 21)) 10475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *invalid = 1; 10485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 10495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 10505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return ((insn & 0xfffc) ^ 0x8000) - 0x8000; 10518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 10528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 10538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Check for legal values of a BO field. */ 10548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 10558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic int 10565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnervalid_bo (long value, int dialect, int extract) 10578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 10585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((dialect & PPC_OPCODE_POWER4) == 0) 10598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 10605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int valid; 10615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Certain encodings have bits that are required to be zero. 10625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner These are (z must be zero, y may be anything): 10635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 001zy 10645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 011zy 10655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1z00y 10665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1z01y 10675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1z1zz 10685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner */ 10695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner switch (value & 0x14) 10705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 10715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner default: 10725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner case 0: 10735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner valid = 1; 10745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner break; 10755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner case 0x4: 10765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner valid = (value & 0x2) == 0; 10775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner break; 10785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner case 0x10: 10795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner valid = (value & 0x8) == 0; 10805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner break; 10815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner case 0x14: 10825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner valid = value == 0x14; 10835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner break; 10845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 10855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* When disassembling with -Many, accept power4 encodings too. */ 10865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (valid 10875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || (dialect & PPC_OPCODE_ANY) == 0 10885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || !extract) 10895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return valid; 10908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 10915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 10925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Certain encodings have bits that are required to be zero. 10935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner These are (z must be zero, a & t may be anything): 10945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 0000z 10955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 0001z 10965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 0100z 10975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 0101z 10985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 001at 10995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 011at 11005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1a00t 11015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1a01t 11025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 1z1zz 11035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner */ 11045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((value & 0x14) == 0) 11055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return (value & 0x1) == 0; 11065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((value & 0x14) == 0x14) 11075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return value == 0x14; 11085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else 11095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return 1; 11108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 11118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The BO field in a B form instruction. Warn about attempts to set 11138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the field to an illegal value. */ 11148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 11165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_bo (unsigned long insn, 11175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 11185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 11195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg) 11208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 11215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (!valid_bo (value, dialect, 0)) 11225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("invalid conditional option"); 11238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | ((value & 0x1f) << 21); 11248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 11258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 11275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_bo (unsigned long insn, 11285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 11295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 11308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 11315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value; 11328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project value = (insn >> 21) & 0x1f; 11345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (!valid_bo (value, dialect, 1)) 11358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *invalid = 1; 11368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return value; 11378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 11388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The BO field in a B form instruction when the + or - modifier is 11408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project used. This is like the BO field, but it must be even. When 11418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project extracting it, we force it to be even. */ 11428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 11445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_boe (unsigned long insn, 11455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 11465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 11475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg) 11488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 11495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (!valid_bo (value, dialect, 0)) 11505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("invalid conditional option"); 11515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((value & 1) != 0) 11525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("attempt to set y bit when using + or - modifier"); 11535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 11548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | ((value & 0x1f) << 21); 11558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 11568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 11585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_boe (unsigned long insn, 11595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 11605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 11618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 11625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value; 11638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project value = (insn >> 21) & 0x1f; 11655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (!valid_bo (value, dialect, 1)) 11668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *invalid = 1; 11678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return value & 0x1e; 11688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 11698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* FXM mask in mfcr and mtcrf instructions. */ 11718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 11728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 11735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_fxm (unsigned long insn, 11745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 11755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 11765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg) 11778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 11785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* If we're handling the mfocrf and mtocrf insns ensure that exactly 11795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner one bit of the mask field is set. */ 11805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((insn & (1 << 20)) != 0) 11815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 11825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (value == 0 || (value & -value) != value) 11835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 11845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("invalid mask field"); 11855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner value = 0; 11865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 11875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 11885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 11895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* If the optional field on mfcr is missing that means we want to use 11905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner the old form of the instruction that moves the whole cr. In that 11915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner case we'll have VALUE zero. There doesn't seem to be a way to 11925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner distinguish this from the case where someone writes mfcr %r3,0. */ 11935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if (value == 0) 11945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ; 11955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 11965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* If only one bit of the FXM field is set, we can use the new form 11975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner of the instruction, which is faster. Unlike the Power4 branch hint 11985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner encoding, this is not backward compatible. Do not generate the 11995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner new form unless -mpower4 has been given, or -many and the two 12005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner operand form of mfcr was used. */ 12015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((value & -value) == value 12025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && ((dialect & PPC_OPCODE_POWER4) != 0 12035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || ((dialect & PPC_OPCODE_ANY) != 0 12045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && (insn & (0x3ff << 1)) == 19 << 1))) 12055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner insn |= 1 << 20; 12065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 12075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Any other value on mfcr is an error. */ 12085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((insn & (0x3ff << 1)) == 19 << 1) 12095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 12105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("ignoring invalid mfcr mask"); 12115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner value = 0; 12125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 12135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 12145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return insn | ((value & 0xff) << 12); 12158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 12168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 12185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_fxm (unsigned long insn, 12195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 12205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 12218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 12225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long mask = (insn >> 12) & 0xff; 12238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Is this a Power4 insn? */ 12255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((insn & (1 << 20)) != 0) 12265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 12275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Exactly one bit of MASK should be set. */ 12285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (mask == 0 || (mask & -mask) != mask) 12295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *invalid = 1; 12305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 12318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Check that non-power4 form of mfcr has a zero MASK. */ 12335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((insn & (0x3ff << 1)) == 19 << 1) 12345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 12355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (mask != 0) 12365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *invalid = 1; 12375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 12388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return mask; 12408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 12418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The MB and ME fields in an M form instruction expressed as a single 12438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project operand which is itself a bitmask. The extraction function always 12448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project marks it as invalid, since we never want to recognize an 12458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project instruction which uses a field of this type. */ 12468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 12485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_mbe (unsigned long insn, 12495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 12505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 12515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg) 12528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 12535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long uval, mask; 12545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int mb, me, mx, count, last; 12558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project uval = value; 12578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (uval == 0) 12598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 12605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("illegal bitmask"); 12618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn; 12628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 12638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner mb = 0; 12655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner me = 32; 12665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((uval & 1) != 0) 12675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner last = 1; 12685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else 12695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner last = 0; 12705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner count = 0; 12718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* mb: location of last 0->1 transition */ 12735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* me: location of last 1->0 transition */ 12745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* count: # transitions */ 12758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner for (mx = 0, mask = 1L << 31; mx < 32; ++mx, mask >>= 1) 12778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 12785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((uval & mask) && !last) 12795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 12805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ++count; 12815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner mb = mx; 12825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner last = 1; 12835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 12845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if (!(uval & mask) && last) 12855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 12865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ++count; 12875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner me = mx; 12885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner last = 0; 12895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 12908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 12915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (me == 0) 12925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner me = 32; 12935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 12945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (count != 2 && (count != 0 || ! last)) 12955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("illegal bitmask"); 12968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 12975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return insn | (mb << 6) | ((me - 1) << 1); 12988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 12998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 13015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_mbe (unsigned long insn, 13025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 13035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 13048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 13058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project long ret; 13068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int mb, me; 13078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int i; 13088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *invalid = 1; 13108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project mb = (insn >> 6) & 0x1f; 13128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project me = (insn >> 1) & 0x1f; 13135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (mb < me + 1) 13145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 13155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ret = 0; 13165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner for (i = mb; i <= me; i++) 13175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ret |= 1L << (31 - i); 13185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 13195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if (mb == me + 1) 13205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ret = ~0; 13215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else /* (mb > me + 1) */ 13225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 13235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ret = ~0; 13245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner for (i = me + 1; i < mb; i++) 13255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner ret &= ~(1L << (31 - i)); 13265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 13278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ret; 13288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 13298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The MB or ME field in an MD or MDS form instruction. The high bit 13318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project is wrapped to the low end. */ 13328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 13345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_mb6 (unsigned long insn, 13355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 13365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 13375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg ATTRIBUTE_UNUSED) 13388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 13398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | ((value & 0x1f) << 6) | (value & 0x20); 13408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 13418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 13435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_mb6 (unsigned long insn, 13445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 13455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid ATTRIBUTE_UNUSED) 13468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 13478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((insn >> 6) & 0x1f) | (insn & 0x20); 13488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 13498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The NB field in an X form instruction. The value 32 is stored as 13518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 0. */ 13528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 13545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_nb (unsigned long insn, 13555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 13565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid ATTRIBUTE_UNUSED) 13578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 13588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project long ret; 13598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project ret = (insn >> 11) & 0x1f; 13618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (ret == 0) 13628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project ret = 32; 13638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ret; 13648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 13658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The NSI field in a D form instruction. This is the same as the SI 13678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project field, only negated. The extraction function always marks it as 13688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project invalid, since we never want to recognize an instruction which uses 13698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project a field of this type. */ 13708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 13725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_nsi (unsigned long insn, 13735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 13745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 13755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg ATTRIBUTE_UNUSED) 13768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 13775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return insn | (-value & 0xffff); 13788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 13798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 13815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_nsi (unsigned long insn, 13825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 13835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 13848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 13855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *invalid = 1; 13865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return -(((insn & 0xffff) ^ 0x8000) - 0x8000); 13878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 13888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The RA field in a D or X form instruction which is an updating 13908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project load, which means that the RA field may not be zero and may not 13918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project equal the RT field. */ 13928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 13938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 13945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_ral (unsigned long insn, 13955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 13965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 13975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg) 13988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 13998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (value == 0 14005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || (unsigned long) value == ((insn >> 21) & 0x1f)) 14018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *errmsg = "invalid register operand when updating"; 14028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | ((value & 0x1f) << 16); 14038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 14048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The RA field in an lmw instruction, which has special value 14068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project restrictions. */ 14078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 14095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_ram (unsigned long insn, 14105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 14115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 14125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg) 14135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 14145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((unsigned long) value >= ((insn >> 21) & 0x1f)) 14155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("index register in load range"); 14165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return insn | ((value & 0x1f) << 16); 14175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 14185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 14195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* The RA field in the DQ form lq instruction, which has special 14205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner value restrictions. */ 14215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 14225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long 14235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_raq (unsigned long insn, 14245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 14255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 14265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg) 14278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 14285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long rtvalue = (insn & RT_MASK) >> 21; 14295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 14305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (value == rtvalue) 14315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("source and target register operands must be different"); 14328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | ((value & 0x1f) << 16); 14338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 14348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The RA field in a D or X form instruction which is an updating 14368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project store or an updating floating point load, which means that the RA 14378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project field may not be zero. */ 14388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 14405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_ras (unsigned long insn, 14415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 14425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 14435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg) 14448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 14458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (value == 0) 14465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("invalid register operand when updating"); 14478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | ((value & 0x1f) << 16); 14488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 14498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The RB field in an X form instruction when it must be the same as 14518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the RS field in the instruction. This is used for extended 14528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project mnemonics like mr. This operand is marked FAKE. The insertion 14538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project function just copies the BT field into the BA field, and the 14548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project extraction function just checks that the fields are the same. */ 14558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 14575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_rbs (unsigned long insn, 14585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value ATTRIBUTE_UNUSED, 14595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 14605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg ATTRIBUTE_UNUSED) 14618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 14628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | (((insn >> 21) & 0x1f) << 11); 14638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 14648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 14665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_rbs (unsigned long insn, 14675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 14685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 14698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 14705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (((insn >> 21) & 0x1f) != ((insn >> 11) & 0x1f)) 14718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project *invalid = 1; 14728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return 0; 14738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 14748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The SH field in an MD form instruction. This is split. */ 14768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 14785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_sh6 (unsigned long insn, 14795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 14805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 14815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg ATTRIBUTE_UNUSED) 14828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 14838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | ((value & 0x1f) << 11) | ((value & 0x20) >> 4); 14848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 14858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 14875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_sh6 (unsigned long insn, 14885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 14895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid ATTRIBUTE_UNUSED) 14908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 14918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((insn >> 11) & 0x1f) | ((insn << 4) & 0x20); 14928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 14938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The SPR field in an XFX form instruction. This is flipped--the 14958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project lower 5 bits are stored in the upper 5 and vice- versa. */ 14968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 14978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 14985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_spr (unsigned long insn, 14995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 15005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 15015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg ATTRIBUTE_UNUSED) 15028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 15038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6); 15048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 15058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 15075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_spr (unsigned long insn, 15085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 15095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid ATTRIBUTE_UNUSED) 15108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 15118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0); 15128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 15138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Some dialects have 8 SPRG registers instead of the standard 4. */ 15155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 15165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic unsigned long 15175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_sprg (unsigned long insn, 15185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 15195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 15205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg) 15215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 15225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* This check uses PPC_OPCODE_403 because PPC405 is later defined 15235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner as a synonym. If ever a 405 specific dialect is added this 15245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner check should use that instead. */ 15255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (value > 7 15265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || (value > 3 15275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && (dialect & (PPC_OPCODE_BOOKE | PPC_OPCODE_403)) == 0)) 15285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *errmsg = _("invalid sprg number"); 15295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 15305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* If this is mfsprg4..7 then use spr 260..263 which can be read in 15315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner user mode. Anything else must use spr 272..279. */ 15325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (value <= 3 || (insn & 0x100) != 0) 15335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner value |= 0x10; 15345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 15355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return insn | ((value & 0x17) << 16); 15365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 15375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 15385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long 15395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_sprg (unsigned long insn, 15405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect, 15415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid) 15425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 15435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long val = (insn >> 16) & 0x1f; 15445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 15455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* mfsprg can use 260..263 and 272..279. mtsprg only uses spr 272..279 15465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner If not BOOKE or 405, then both use only 272..275. */ 15475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (val <= 3 15485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || (val < 0x10 && (insn & 0x100) != 0) 15495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || (val - 0x10 > 3 15505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && (dialect & (PPC_OPCODE_BOOKE | PPC_OPCODE_403)) == 0)) 15515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner *invalid = 1; 15525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return val & 7; 15535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 15545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 15558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The TBR field in an XFX instruction. This is just like SPR, but it 15568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project is optional. When TBR is omitted, it must be inserted as 268 (the 15578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project magic number of the TB register). These functions treat 0 15588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project (indicating an omitted optional operand) as 268. This means that 15598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project ``mftb 4,0'' is not handled correctly. This does not matter very 15608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project much, since the architecture manual does not define mftb as 15618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project accepting any values other than 268 or 269. */ 15628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TB (268) 15648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic unsigned long 15665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerinsert_tbr (unsigned long insn, 15675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value, 15685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 15695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const char **errmsg ATTRIBUTE_UNUSED) 15708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 15718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (value == 0) 15728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project value = TB; 15738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return insn | ((value & 0x1f) << 16) | ((value & 0x3e0) << 6); 15748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 15758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic long 15775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerextract_tbr (unsigned long insn, 15785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect ATTRIBUTE_UNUSED, 15795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int *invalid ATTRIBUTE_UNUSED) 15808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 15818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project long ret; 15828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project ret = ((insn >> 16) & 0x1f) | ((insn >> 6) & 0x3e0); 15848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (ret == TB) 15858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project ret = 0; 15868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return ret; 15878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 15888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Macros used to form opcodes. */ 15908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The main opcode. */ 15925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define OP(x) ((((unsigned long)(x)) & 0x3f) << 26) 15938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define OP_MASK OP (0x3f) 15948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 15958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The main opcode combined with a trap code in the TO field of a D 15968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project form instruction. Used for extended mnemonics for the trap 15978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project instructions. */ 15985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define OPTO(x,to) (OP (x) | ((((unsigned long)(to)) & 0x1f) << 21)) 15998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define OPTO_MASK (OP_MASK | TO_MASK) 16008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The main opcode combined with a comparison size bit in the L field 16028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project of a D form or X form instruction. Used for extended mnemonics for 16038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the comparison instructions. */ 16045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define OPL(x,l) (OP (x) | ((((unsigned long)(l)) & 1) << 21)) 16058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define OPL_MASK OPL (0x3f,1) 16068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An A form instruction. */ 16085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define A(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1) | (((unsigned long)(rc)) & 1)) 16098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define A_MASK A (0x3f, 0x1f, 1) 16108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An A_MASK with the FRB field fixed. */ 16128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define AFRB_MASK (A_MASK | FRB_MASK) 16138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An A_MASK with the FRC field fixed. */ 16158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define AFRC_MASK (A_MASK | FRC_MASK) 16168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An A_MASK with the FRA and FRC fields fixed. */ 16188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define AFRAFRC_MASK (A_MASK | FRA_MASK | FRC_MASK) 16198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An AFRAFRC_MASK, but with L bit clear. */ 16215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define AFRALFRC_MASK (AFRAFRC_MASK & ~((unsigned long) 1 << 16)) 16225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 16238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* A B form instruction. */ 16245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define B(op, aa, lk) (OP (op) | ((((unsigned long)(aa)) & 1) << 1) | ((lk) & 1)) 16258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define B_MASK B (0x3f, 1, 1) 16268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* A B form instruction setting the BO field. */ 16285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BBO(op, bo, aa, lk) (B ((op), (aa), (lk)) | ((((unsigned long)(bo)) & 0x1f) << 21)) 16298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BBO_MASK BBO (0x3f, 0x1f, 1, 1) 16308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* A BBO_MASK with the y bit of the BO field removed. This permits 16328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project matching a conditional branch regardless of the setting of the y 16335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner bit. Similarly for the 'at' bits used for power4 branch hints. */ 16345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define Y_MASK (((unsigned long) 1) << 21) 16355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define AT1_MASK (((unsigned long) 3) << 21) 16365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define AT2_MASK (((unsigned long) 9) << 21) 16375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BBOY_MASK (BBO_MASK &~ Y_MASK) 16385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BBOAT_MASK (BBO_MASK &~ AT1_MASK) 16398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* A B form instruction setting the BO field and the condition bits of 16418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project the BI field. */ 16428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BBOCB(op, bo, cb, aa, lk) \ 16435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (BBO ((op), (bo), (aa), (lk)) | ((((unsigned long)(cb)) & 0x3) << 16)) 16448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BBOCB_MASK BBOCB (0x3f, 0x1f, 0x3, 1, 1) 16458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* A BBOCB_MASK with the y bit of the BO field removed. */ 16478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BBOYCB_MASK (BBOCB_MASK &~ Y_MASK) 16485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BBOATCB_MASK (BBOCB_MASK &~ AT1_MASK) 16495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BBOAT2CB_MASK (BBOCB_MASK &~ AT2_MASK) 16508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* A BBOYCB_MASK in which the BI field is fixed. */ 16528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BBOYBI_MASK (BBOYCB_MASK | BI_MASK) 16535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BBOATBI_MASK (BBOAT2CB_MASK | BI_MASK) 16545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 16555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An Context form instruction. */ 16565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define CTX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7)) 16575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define CTX_MASK CTX(0x3f, 0x7) 16585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 16595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An User Context form instruction. */ 16605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define UCTX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f)) 16615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define UCTX_MASK UCTX(0x3f, 0x1f) 16628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The main opcode mask with the RA field clear. */ 16648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define DRA_MASK (OP_MASK | RA_MASK) 16658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* A DS form instruction. */ 16678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define DSO(op, xop) (OP (op) | ((xop) & 0x3)) 16688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define DS_MASK DSO (0x3f, 3) 16698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* A DE form instruction. */ 16715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define DEO(op, xop) (OP (op) | ((xop) & 0xf)) 16725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define DE_MASK DEO (0x3e, 0xf) 16735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 16745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An EVSEL form instruction. */ 16755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define EVSEL(op, xop) (OP (op) | (((unsigned long)(xop)) & 0xff) << 3) 16765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define EVSEL_MASK EVSEL(0x3f, 0xff) 16775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 16788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An M form instruction. */ 16798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define M(op, rc) (OP (op) | ((rc) & 1)) 16808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define M_MASK M (0x3f, 1) 16818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An M form instruction with the ME field specified. */ 16835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define MME(op, me, rc) (M ((op), (rc)) | ((((unsigned long)(me)) & 0x1f) << 1)) 16848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An M_MASK with the MB and ME fields fixed. */ 16868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MMBME_MASK (M_MASK | MB_MASK | ME_MASK) 16878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An M_MASK with the SH and ME fields fixed. */ 16898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MSHME_MASK (M_MASK | SH_MASK | ME_MASK) 16908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An MD form instruction. */ 16925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define MD(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x7) << 2) | ((rc) & 1)) 16938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MD_MASK MD (0x3f, 0x7, 1) 16948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An MD_MASK with the MB field fixed. */ 16968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MDMB_MASK (MD_MASK | MB6_MASK) 16978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 16988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An MD_MASK with the SH field fixed. */ 16998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MDSH_MASK (MD_MASK | SH6_MASK) 17008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An MDS form instruction. */ 17025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define MDS(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0xf) << 1) | ((rc) & 1)) 17038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MDS_MASK MDS (0x3f, 0xf, 1) 17048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An MDS_MASK with the MB field fixed. */ 17068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define MDSMB_MASK (MDS_MASK | MB6_MASK) 17078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An SC form instruction. */ 17095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SC(op, sa, lk) (OP (op) | ((((unsigned long)(sa)) & 1) << 1) | ((lk) & 1)) 17105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define SC_MASK (OP_MASK | (((unsigned long)0x3ff) << 16) | (((unsigned long)1) << 1) | 1) 17115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An VX form instruction. */ 17135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VX(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x7ff)) 17145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* The mask for an VX form instruction. */ 17165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VX_MASK VX(0x3f, 0x7ff) 17175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An VA form instruction. */ 17195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VXA(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x03f)) 17205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* The mask for an VA form instruction. */ 17225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VXA_MASK VXA(0x3f, 0x3f) 17235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An VXR form instruction. */ 17255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VXR(op, xop, rc) (OP (op) | (((rc) & 1) << 10) | (((unsigned long)(xop)) & 0x3ff)) 17265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* The mask for a VXR form instruction. */ 17285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define VXR_MASK VXR(0x3f, 0x3ff, 1) 17298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An X form instruction. */ 17315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define X(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1)) 17325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* A Z form instruction. */ 17345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define Z(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 1)) 17358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An X form instruction with the RC bit specified. */ 17378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XRC(op, xop, rc) (X ((op), (xop)) | ((rc) & 1)) 17388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* A Z form instruction with the RC bit specified. */ 17405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define ZRC(op, xop, rc) (Z ((op), (xop)) | ((rc) & 1)) 17415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The mask for an X form instruction. */ 17438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define X_MASK XRC (0x3f, 0x3ff, 1) 17448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* The mask for a Z form instruction. */ 17465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define Z_MASK ZRC (0x3f, 0x1ff, 1) 17475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define Z2_MASK ZRC (0x3f, 0xff, 1) 17485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An X_MASK with the RA field fixed. */ 17508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XRA_MASK (X_MASK | RA_MASK) 17518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An XRA_MASK with the W field clear. */ 17535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XWRA_MASK (XRA_MASK & ~((unsigned long) 1 << 16)) 17545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An X_MASK with the RB field fixed. */ 17568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XRB_MASK (X_MASK | RB_MASK) 17578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An X_MASK with the RT field fixed. */ 17598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XRT_MASK (X_MASK | RT_MASK) 17608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An XRT_MASK mask with the L bits clear. */ 17625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XLRT_MASK (XRT_MASK & ~((unsigned long) 0x3 << 21)) 17635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An X_MASK with the RA and RB fields fixed. */ 17658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XRARB_MASK (X_MASK | RA_MASK | RB_MASK) 17668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An XRARB_MASK, but with the L bit clear. */ 17685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XRLARB_MASK (XRARB_MASK & ~((unsigned long) 1 << 16)) 17695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An X_MASK with the RT and RA fields fixed. */ 17718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XRTRA_MASK (X_MASK | RT_MASK | RA_MASK) 17728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An XRTRA_MASK, but with L bit clear. */ 17745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XRTLRA_MASK (XRTRA_MASK & ~((unsigned long) 1 << 21)) 17755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An X form instruction with the L bit specified. */ 17775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XOPL(op, xop, l) (X ((op), (xop)) | ((((unsigned long)(l)) & 1) << 21)) 17788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The mask for an X form comparison instruction. */ 17805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XCMP_MASK (X_MASK | (((unsigned long)1) << 22)) 17818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The mask for an X form comparison instruction with the L field 17838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project fixed. */ 17845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XCMPL_MASK (XCMP_MASK | (((unsigned long)1) << 21)) 17858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An X form trap instruction with the TO field specified. */ 17875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XTO(op, xop, to) (X ((op), (xop)) | ((((unsigned long)(to)) & 0x1f) << 21)) 17888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XTO_MASK (X_MASK | TO_MASK) 17898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 17905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An X form tlb instruction with the SH field specified. */ 17915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XTLB(op, xop, sh) (X ((op), (xop)) | ((((unsigned long)(sh)) & 0x1f) << 11)) 17925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XTLB_MASK (X_MASK | SH_MASK) 17935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An X form sync instruction. */ 17955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XSYNC(op, xop, l) (X ((op), (xop)) | ((((unsigned long)(l)) & 3) << 21)) 17965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 17975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An X form sync instruction with everything filled in except the LS field. */ 17985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XSYNC_MASK (0xff9fffff) 17995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 18005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An X_MASK, but with the EH bit clear. */ 18015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XEH_MASK (X_MASK & ~((unsigned long )1)) 18025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 18035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An X form AltiVec dss instruction. */ 18045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XDSS(op, xop, a) (X ((op), (xop)) | ((((unsigned long)(a)) & 1) << 25)) 18055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XDSS_MASK XDSS(0x3f, 0x3ff, 1) 18065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 18078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XFL form instruction. */ 18085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XFL(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1) | (((unsigned long)(rc)) & 1)) 18095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XFL_MASK XFL (0x3f, 0x3ff, 1) 18105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 18115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An X form isel instruction. */ 18125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XISEL(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x1f) << 1)) 18135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XISEL_MASK XISEL(0x3f, 0x1f) 18148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XL form instruction with the LK field set to 0. */ 18165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XL(op, xop) (OP (op) | ((((unsigned long)(xop)) & 0x3ff) << 1)) 18178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XL form instruction which uses the LK field. */ 18198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLLK(op, xop, lk) (XL ((op), (xop)) | ((lk) & 1)) 18208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The mask for an XL form instruction. */ 18228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XL_MASK XLLK (0x3f, 0x3ff, 1) 18238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XL form instruction which explicitly sets the BO field. */ 18258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLO(op, bo, xop, lk) \ 18265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (XLLK ((op), (xop), (lk)) | ((((unsigned long)(bo)) & 0x1f) << 21)) 18278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLO_MASK (XL_MASK | BO_MASK) 18288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XL form instruction which explicitly sets the y bit of the BO 18308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project field. */ 18315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XLYLK(op, xop, y, lk) (XLLK ((op), (xop), (lk)) | ((((unsigned long)(y)) & 1) << 21)) 18328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLYLK_MASK (XL_MASK | Y_MASK) 18338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XL form instruction which sets the BO field and the condition 18358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project bits of the BI field. */ 18368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLOCB(op, bo, cb, xop, lk) \ 18375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (XLO ((op), (bo), (xop), (lk)) | ((((unsigned long)(cb)) & 3) << 16)) 18388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLOCB_MASK XLOCB (0x3f, 0x1f, 0x3, 0x3ff, 1) 18398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XL_MASK or XLYLK_MASK or XLOCB_MASK with the BB field fixed. */ 18418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLBB_MASK (XL_MASK | BB_MASK) 18428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLYBB_MASK (XLYLK_MASK | BB_MASK) 18438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLBOCBBB_MASK (XLOCB_MASK | BB_MASK) 18448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* A mask for branch instructions using the BH field. */ 18465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XLBH_MASK (XL_MASK | (0x1c << 11)) 18475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 18488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XL_MASK with the BO and BB fields fixed. */ 18498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLBOBB_MASK (XL_MASK | BO_MASK | BB_MASK) 18508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XL_MASK with the BO, BI and BB fields fixed. */ 18528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XLBOBIBB_MASK (XL_MASK | BO_MASK | BI_MASK | BB_MASK) 18538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XO form instruction. */ 18558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XO(op, xop, oe, rc) \ 18565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 1) | ((((unsigned long)(oe)) & 1) << 10) | (((unsigned long)(rc)) & 1)) 18578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XO_MASK XO (0x3f, 0x1ff, 1, 1) 18588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XO_MASK with the RB field fixed. */ 18608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XORB_MASK (XO_MASK | RB_MASK) 18618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XS form instruction. */ 18635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XS(op, xop, rc) (OP (op) | ((((unsigned long)(xop)) & 0x1ff) << 2) | (((unsigned long)(rc)) & 1)) 18648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XS_MASK XS (0x3f, 0x1ff, 1) 18658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* A mask for the FXM version of an XFX form instruction. */ 18675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XFXFXM_MASK (X_MASK | (1 << 11) | (1 << 20)) 18688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XFX form instruction with the FXM field filled in. */ 18705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XFXM(op, xop, fxm, p4) \ 18715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (X ((op), (xop)) | ((((unsigned long)(fxm)) & 0xff) << 12) \ 18725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner | ((unsigned long)(p4) << 20)) 18738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XFX form instruction with the SPR field filled in. */ 18758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XSPR(op, xop, spr) \ 18765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (X ((op), (xop)) | ((((unsigned long)(spr)) & 0x1f) << 16) | ((((unsigned long)(spr)) & 0x3e0) << 6)) 18778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XSPR_MASK (X_MASK | SPR_MASK) 18788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XFX form instruction with the SPR field filled in except for the 18808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SPRBAT field. */ 18818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define XSPRBAT_MASK (XSPR_MASK &~ SPRBAT_MASK) 18828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* An XFX form instruction with the SPR field filled in except for the 18848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project SPRG field. */ 18855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XSPRG_MASK (XSPR_MASK & ~(0x1f << 16)) 18865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 18875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An X form instruction with everything filled in except the E field. */ 18885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XE_MASK (0xffff7fff) 18895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 18905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* An X form user context instruction. */ 18915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XUC(op, xop) (OP (op) | (((unsigned long)(xop)) & 0x1f)) 18925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define XUC_MASK XUC(0x3f, 0x1f) 18938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 18948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The BO encodings used in extended conditional branch mnemonics. */ 18958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODNZF (0x0) 18968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODNZFP (0x1) 18978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODZF (0x2) 18988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODZFP (0x3) 18998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODNZT (0x8) 19008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODNZTP (0x9) 19018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODZT (0xa) 19028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODZTP (0xb) 19035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 19045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BOF (0x4) 19055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BOFP (0x5) 19065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BOFM4 (0x6) 19075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BOFP4 (0x7) 19088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BOT (0xc) 19098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BOTP (0xd) 19105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BOTM4 (0xe) 19115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BOTP4 (0xf) 19125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 19138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODNZ (0x10) 19148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODNZP (0x11) 19158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODZ (0x12) 19168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BODZP (0x13) 19175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BODNZM4 (0x18) 19185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BODNZP4 (0x19) 19195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BODZM4 (0x1a) 19205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BODZP4 (0x1b) 19215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 19228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define BOU (0x14) 19238b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The BI condition bit encodings used in extended conditional branch 19258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project mnemonics. */ 19268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CBLT (0) 19278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CBGT (1) 19288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CBEQ (2) 19298b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define CBSO (3) 19308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The TO encodings used in extended trap mnemonics. */ 19328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOLGT (0x1) 19338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOLLT (0x2) 19348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOEQ (0x4) 19358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOLGE (0x5) 19368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOLNL (0x5) 19378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOLLE (0x6) 19388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOLNG (0x6) 19398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOGT (0x8) 19408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOGE (0xc) 19418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TONL (0xc) 19428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOLT (0x10) 19438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOLE (0x14) 19448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TONG (0x14) 19458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TONE (0x18) 19468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project#define TOU (0x1f) 19478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Smaller names for the flags so each entry in the opcodes table will 19498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project fit on a single line. */ 19505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#undef PPC 19515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC PPC_OPCODE_PPC 19525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCCOM PPC_OPCODE_PPC | PPC_OPCODE_COMMON 19535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define NOPOWER4 PPC_OPCODE_NOPOWER4 | PPCCOM 19545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define POWER4 PPC_OPCODE_POWER4 19555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define POWER5 PPC_OPCODE_POWER5 19565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define POWER6 PPC_OPCODE_POWER6 19575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define CELL PPC_OPCODE_CELL 19585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC32 PPC_OPCODE_32 | PPC_OPCODE_PPC 19595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC64 PPC_OPCODE_64 | PPC_OPCODE_PPC 19605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC403 PPC_OPCODE_403 19615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC405 PPC403 19625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC440 PPC_OPCODE_440 19635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC750 PPC 19645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPC860 PPC 19655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCVEC PPC_OPCODE_ALTIVEC 19665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define POWER PPC_OPCODE_POWER 19675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define POWER2 PPC_OPCODE_POWER | PPC_OPCODE_POWER2 19685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCPWR2 PPC_OPCODE_PPC | PPC_OPCODE_POWER | PPC_OPCODE_POWER2 19695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define POWER32 PPC_OPCODE_POWER | PPC_OPCODE_32 19705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define COM PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON 19715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define COM32 PPC_OPCODE_POWER | PPC_OPCODE_PPC | PPC_OPCODE_COMMON | PPC_OPCODE_32 19725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define M601 PPC_OPCODE_POWER | PPC_OPCODE_601 19735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PWRCOM PPC_OPCODE_POWER | PPC_OPCODE_601 | PPC_OPCODE_COMMON 19745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define MFDEC1 PPC_OPCODE_POWER 19755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define MFDEC2 PPC_OPCODE_PPC | PPC_OPCODE_601 | PPC_OPCODE_BOOKE 19765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BOOKE PPC_OPCODE_BOOKE 19775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define BOOKE64 PPC_OPCODE_BOOKE64 19785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define CLASSIC PPC_OPCODE_CLASSIC 19795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCE300 PPC_OPCODE_E300 19805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCSPE PPC_OPCODE_SPE 19815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCISEL PPC_OPCODE_ISEL 19825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCEFS PPC_OPCODE_EFS 19835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCBRLK PPC_OPCODE_BRLOCK 19845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCPMR PPC_OPCODE_PMR 19855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCCHLK PPC_OPCODE_CACHELCK 19865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCCHLK64 PPC_OPCODE_CACHELCK | PPC_OPCODE_BOOKE64 19875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner#define PPCRFMCI PPC_OPCODE_RFMCI 19888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The opcode table. 19908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project The format of the opcode table is: 19928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project NAME OPCODE MASK FLAGS { OPERANDS } 19948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 19958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project NAME is the name of the instruction. 19968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project OPCODE is the instruction opcode. 19978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project MASK is the opcode mask; this is used to tell the disassembler 19988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project which bits in the actual opcode must match OPCODE. 19998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project FLAGS are flags indicated what processors support the instruction. 20008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project OPERANDS is the list of operands. 20018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project The disassembler reads the table in order and prints the first 20038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project instruction which matches, so this table is sorted to put more 20048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project specific instructions before more general instructions. It is also 20058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project sorted by major opcode. */ 20068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 20078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectconst struct powerpc_opcode powerpc_opcodes[] = { 20085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "attn", X(0,256), X_MASK, POWER4, { 0 } }, 20095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlgti", OPTO(2,TOLGT), OPTO_MASK, PPC64, { RA, SI } }, 20105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdllti", OPTO(2,TOLLT), OPTO_MASK, PPC64, { RA, SI } }, 20115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdeqi", OPTO(2,TOEQ), OPTO_MASK, PPC64, { RA, SI } }, 20125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlgei", OPTO(2,TOLGE), OPTO_MASK, PPC64, { RA, SI } }, 20135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlnli", OPTO(2,TOLNL), OPTO_MASK, PPC64, { RA, SI } }, 20145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdllei", OPTO(2,TOLLE), OPTO_MASK, PPC64, { RA, SI } }, 20155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlngi", OPTO(2,TOLNG), OPTO_MASK, PPC64, { RA, SI } }, 20165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdgti", OPTO(2,TOGT), OPTO_MASK, PPC64, { RA, SI } }, 20175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdgei", OPTO(2,TOGE), OPTO_MASK, PPC64, { RA, SI } }, 20185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdnli", OPTO(2,TONL), OPTO_MASK, PPC64, { RA, SI } }, 20195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlti", OPTO(2,TOLT), OPTO_MASK, PPC64, { RA, SI } }, 20205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlei", OPTO(2,TOLE), OPTO_MASK, PPC64, { RA, SI } }, 20215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdngi", OPTO(2,TONG), OPTO_MASK, PPC64, { RA, SI } }, 20225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdnei", OPTO(2,TONE), OPTO_MASK, PPC64, { RA, SI } }, 20235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdi", OP(2), OP_MASK, PPC64, { TO, RA, SI } }, 20245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 20255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlgti", OPTO(3,TOLGT), OPTO_MASK, PPCCOM, { RA, SI } }, 20265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlgti", OPTO(3,TOLGT), OPTO_MASK, PWRCOM, { RA, SI } }, 20275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twllti", OPTO(3,TOLLT), OPTO_MASK, PPCCOM, { RA, SI } }, 20285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tllti", OPTO(3,TOLLT), OPTO_MASK, PWRCOM, { RA, SI } }, 20295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tweqi", OPTO(3,TOEQ), OPTO_MASK, PPCCOM, { RA, SI } }, 20305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "teqi", OPTO(3,TOEQ), OPTO_MASK, PWRCOM, { RA, SI } }, 20315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlgei", OPTO(3,TOLGE), OPTO_MASK, PPCCOM, { RA, SI } }, 20325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlgei", OPTO(3,TOLGE), OPTO_MASK, PWRCOM, { RA, SI } }, 20335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlnli", OPTO(3,TOLNL), OPTO_MASK, PPCCOM, { RA, SI } }, 20345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlnli", OPTO(3,TOLNL), OPTO_MASK, PWRCOM, { RA, SI } }, 20355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twllei", OPTO(3,TOLLE), OPTO_MASK, PPCCOM, { RA, SI } }, 20365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tllei", OPTO(3,TOLLE), OPTO_MASK, PWRCOM, { RA, SI } }, 20375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlngi", OPTO(3,TOLNG), OPTO_MASK, PPCCOM, { RA, SI } }, 20385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlngi", OPTO(3,TOLNG), OPTO_MASK, PWRCOM, { RA, SI } }, 20395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twgti", OPTO(3,TOGT), OPTO_MASK, PPCCOM, { RA, SI } }, 20405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tgti", OPTO(3,TOGT), OPTO_MASK, PWRCOM, { RA, SI } }, 20415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twgei", OPTO(3,TOGE), OPTO_MASK, PPCCOM, { RA, SI } }, 20425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tgei", OPTO(3,TOGE), OPTO_MASK, PWRCOM, { RA, SI } }, 20435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twnli", OPTO(3,TONL), OPTO_MASK, PPCCOM, { RA, SI } }, 20445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tnli", OPTO(3,TONL), OPTO_MASK, PWRCOM, { RA, SI } }, 20455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlti", OPTO(3,TOLT), OPTO_MASK, PPCCOM, { RA, SI } }, 20465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlti", OPTO(3,TOLT), OPTO_MASK, PWRCOM, { RA, SI } }, 20475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlei", OPTO(3,TOLE), OPTO_MASK, PPCCOM, { RA, SI } }, 20485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlei", OPTO(3,TOLE), OPTO_MASK, PWRCOM, { RA, SI } }, 20495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twngi", OPTO(3,TONG), OPTO_MASK, PPCCOM, { RA, SI } }, 20505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tngi", OPTO(3,TONG), OPTO_MASK, PWRCOM, { RA, SI } }, 20515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twnei", OPTO(3,TONE), OPTO_MASK, PPCCOM, { RA, SI } }, 20525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tnei", OPTO(3,TONE), OPTO_MASK, PWRCOM, { RA, SI } }, 20535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twi", OP(3), OP_MASK, PPCCOM, { TO, RA, SI } }, 20545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ti", OP(3), OP_MASK, PWRCOM, { TO, RA, SI } }, 20555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 20565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchw", XO(4,172,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchw.", XO(4,172,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwo", XO(4,172,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwo.", XO(4,172,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchws", XO(4,236,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchws.", XO(4,236,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwso", XO(4,236,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwso.", XO(4,236,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwsu", XO(4,204,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwsu.", XO(4,204,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwsuo", XO(4,204,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwsuo.", XO(4,204,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwu", XO(4,140,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwu.", XO(4,140,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwuo", XO(4,140,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "macchwuo.", XO(4,140,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhw", XO(4,44,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhw.", XO(4,44,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwo", XO(4,44,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwo.", XO(4,44,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhws", XO(4,108,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhws.", XO(4,108,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwso", XO(4,108,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwso.", XO(4,108,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwsu", XO(4,76,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwsu.", XO(4,76,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwsuo", XO(4,76,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwsuo.", XO(4,76,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwu", XO(4,12,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwu.", XO(4,12,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwuo", XO(4,12,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "machhwuo.", XO(4,12,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhw", XO(4,428,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhw.", XO(4,428,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwo", XO(4,428,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwo.", XO(4,428,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhws", XO(4,492,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhws.", XO(4,492,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwso", XO(4,492,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwso.", XO(4,492,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwsu", XO(4,460,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwsu.", XO(4,460,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwsuo", XO(4,460,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 20995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwsuo.", XO(4,460,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwu", XO(4,396,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwu.", XO(4,396,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwuo", XO(4,396,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maclhwuo.", XO(4,396,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulchw", XRC(4,168,0), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulchw.", XRC(4,168,1), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulchwu", XRC(4,136,0), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulchwu.", XRC(4,136,1), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulhhw", XRC(4,40,0), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulhhw.", XRC(4,40,1), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulhhwu", XRC(4,8,0), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulhhwu.", XRC(4,8,1), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mullhw", XRC(4,424,0), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mullhw.", XRC(4,424,1), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mullhwu", XRC(4,392,0), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mullhwu.", XRC(4,392,1), X_MASK, PPC405|PPC440, { RT, RA, RB } }, 21165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmacchw", XO(4,174,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmacchw.", XO(4,174,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmacchwo", XO(4,174,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmacchwo.", XO(4,174,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmacchws", XO(4,238,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmacchws.", XO(4,238,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmacchwso", XO(4,238,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmacchwso.", XO(4,238,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmachhw", XO(4,46,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmachhw.", XO(4,46,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmachhwo", XO(4,46,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmachhwo.", XO(4,46,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmachhws", XO(4,110,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmachhws.", XO(4,110,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmachhwso", XO(4,110,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmachhwso.", XO(4,110,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmaclhw", XO(4,430,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmaclhw.", XO(4,430,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmaclhwo", XO(4,430,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmaclhwo.", XO(4,430,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmaclhws", XO(4,494,0,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmaclhws.", XO(4,494,0,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmaclhwso", XO(4,494,1,0), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nmaclhwso.", XO(4,494,1,1), XO_MASK, PPC405|PPC440, { RT, RA, RB } }, 21405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfvscr", VX(4, 1540), VX_MASK, PPCVEC, { VD } }, 21415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtvscr", VX(4, 1604), VX_MASK, PPCVEC, { VB } }, 21425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 21435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Double-precision opcodes. */ 21445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Some of these conflict with AltiVec, so move them before, since 21455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner PPCVEC includes the PPC_OPCODE_PPC set. */ 21465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efscfd", VX(4, 719), VX_MASK, PPCEFS, { RS, RB } }, 21475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdabs", VX(4, 740), VX_MASK, PPCEFS, { RS, RA } }, 21485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdnabs", VX(4, 741), VX_MASK, PPCEFS, { RS, RA } }, 21495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdneg", VX(4, 742), VX_MASK, PPCEFS, { RS, RA } }, 21505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdadd", VX(4, 736), VX_MASK, PPCEFS, { RS, RA, RB } }, 21515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdsub", VX(4, 737), VX_MASK, PPCEFS, { RS, RA, RB } }, 21525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdmul", VX(4, 744), VX_MASK, PPCEFS, { RS, RA, RB } }, 21535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efddiv", VX(4, 745), VX_MASK, PPCEFS, { RS, RA, RB } }, 21545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdcmpgt", VX(4, 748), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 21555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdcmplt", VX(4, 749), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 21565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdcmpeq", VX(4, 750), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 21575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdtstgt", VX(4, 764), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 21585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdtstlt", VX(4, 765), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 21595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdtsteq", VX(4, 766), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 21605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdcfsi", VX(4, 753), VX_MASK, PPCEFS, { RS, RB } }, 21615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdcfsid", VX(4, 739), VX_MASK, PPCEFS, { RS, RB } }, 21625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdcfui", VX(4, 752), VX_MASK, PPCEFS, { RS, RB } }, 21635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdcfuid", VX(4, 738), VX_MASK, PPCEFS, { RS, RB } }, 21645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdcfsf", VX(4, 755), VX_MASK, PPCEFS, { RS, RB } }, 21655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdcfuf", VX(4, 754), VX_MASK, PPCEFS, { RS, RB } }, 21665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdctsi", VX(4, 757), VX_MASK, PPCEFS, { RS, RB } }, 21675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdctsidz",VX(4, 747), VX_MASK, PPCEFS, { RS, RB } }, 21685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdctsiz", VX(4, 762), VX_MASK, PPCEFS, { RS, RB } }, 21695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdctui", VX(4, 756), VX_MASK, PPCEFS, { RS, RB } }, 21705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdctuidz",VX(4, 746), VX_MASK, PPCEFS, { RS, RB } }, 21715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdctuiz", VX(4, 760), VX_MASK, PPCEFS, { RS, RB } }, 21725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdctsf", VX(4, 759), VX_MASK, PPCEFS, { RS, RB } }, 21735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdctuf", VX(4, 758), VX_MASK, PPCEFS, { RS, RB } }, 21745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efdcfs", VX(4, 751), VX_MASK, PPCEFS, { RS, RB } }, 21755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* End of double-precision opcodes. */ 21765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 21775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vaddcuw", VX(4, 384), VX_MASK, PPCVEC, { VD, VA, VB } }, 21785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vaddfp", VX(4, 10), VX_MASK, PPCVEC, { VD, VA, VB } }, 21795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vaddsbs", VX(4, 768), VX_MASK, PPCVEC, { VD, VA, VB } }, 21805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vaddshs", VX(4, 832), VX_MASK, PPCVEC, { VD, VA, VB } }, 21815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vaddsws", VX(4, 896), VX_MASK, PPCVEC, { VD, VA, VB } }, 21825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vaddubm", VX(4, 0), VX_MASK, PPCVEC, { VD, VA, VB } }, 21835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vaddubs", VX(4, 512), VX_MASK, PPCVEC, { VD, VA, VB } }, 21845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vadduhm", VX(4, 64), VX_MASK, PPCVEC, { VD, VA, VB } }, 21855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vadduhs", VX(4, 576), VX_MASK, PPCVEC, { VD, VA, VB } }, 21865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vadduwm", VX(4, 128), VX_MASK, PPCVEC, { VD, VA, VB } }, 21875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vadduws", VX(4, 640), VX_MASK, PPCVEC, { VD, VA, VB } }, 21885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vand", VX(4, 1028), VX_MASK, PPCVEC, { VD, VA, VB } }, 21895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vandc", VX(4, 1092), VX_MASK, PPCVEC, { VD, VA, VB } }, 21905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vavgsb", VX(4, 1282), VX_MASK, PPCVEC, { VD, VA, VB } }, 21915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vavgsh", VX(4, 1346), VX_MASK, PPCVEC, { VD, VA, VB } }, 21925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vavgsw", VX(4, 1410), VX_MASK, PPCVEC, { VD, VA, VB } }, 21935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vavgub", VX(4, 1026), VX_MASK, PPCVEC, { VD, VA, VB } }, 21945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vavguh", VX(4, 1090), VX_MASK, PPCVEC, { VD, VA, VB } }, 21955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vavguw", VX(4, 1154), VX_MASK, PPCVEC, { VD, VA, VB } }, 21965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcfsx", VX(4, 842), VX_MASK, PPCVEC, { VD, VB, UIMM } }, 21975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcfux", VX(4, 778), VX_MASK, PPCVEC, { VD, VB, UIMM } }, 21985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpbfp", VXR(4, 966, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 21995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpbfp.", VXR(4, 966, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpeqfp", VXR(4, 198, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpeqfp.", VXR(4, 198, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpequb", VXR(4, 6, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpequb.", VXR(4, 6, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpequh", VXR(4, 70, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpequh.", VXR(4, 70, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpequw", VXR(4, 134, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpequw.", VXR(4, 134, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgefp", VXR(4, 454, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgefp.", VXR(4, 454, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtfp", VXR(4, 710, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtfp.", VXR(4, 710, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtsb", VXR(4, 774, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtsb.", VXR(4, 774, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtsh", VXR(4, 838, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtsh.", VXR(4, 838, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtsw", VXR(4, 902, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtsw.", VXR(4, 902, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtub", VXR(4, 518, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtub.", VXR(4, 518, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtuh", VXR(4, 582, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtuh.", VXR(4, 582, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtuw", VXR(4, 646, 0), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vcmpgtuw.", VXR(4, 646, 1), VXR_MASK, PPCVEC, { VD, VA, VB } }, 22245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vctsxs", VX(4, 970), VX_MASK, PPCVEC, { VD, VB, UIMM } }, 22255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vctuxs", VX(4, 906), VX_MASK, PPCVEC, { VD, VB, UIMM } }, 22265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vexptefp", VX(4, 394), VX_MASK, PPCVEC, { VD, VB } }, 22275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vlogefp", VX(4, 458), VX_MASK, PPCVEC, { VD, VB } }, 22285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmaddfp", VXA(4, 46), VXA_MASK, PPCVEC, { VD, VA, VC, VB } }, 22295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmaxfp", VX(4, 1034), VX_MASK, PPCVEC, { VD, VA, VB } }, 22305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmaxsb", VX(4, 258), VX_MASK, PPCVEC, { VD, VA, VB } }, 22315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmaxsh", VX(4, 322), VX_MASK, PPCVEC, { VD, VA, VB } }, 22325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmaxsw", VX(4, 386), VX_MASK, PPCVEC, { VD, VA, VB } }, 22335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmaxub", VX(4, 2), VX_MASK, PPCVEC, { VD, VA, VB } }, 22345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmaxuh", VX(4, 66), VX_MASK, PPCVEC, { VD, VA, VB } }, 22355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmaxuw", VX(4, 130), VX_MASK, PPCVEC, { VD, VA, VB } }, 22365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmhaddshs", VXA(4, 32), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmhraddshs", VXA(4, 33), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vminfp", VX(4, 1098), VX_MASK, PPCVEC, { VD, VA, VB } }, 22395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vminsb", VX(4, 770), VX_MASK, PPCVEC, { VD, VA, VB } }, 22405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vminsh", VX(4, 834), VX_MASK, PPCVEC, { VD, VA, VB } }, 22415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vminsw", VX(4, 898), VX_MASK, PPCVEC, { VD, VA, VB } }, 22425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vminub", VX(4, 514), VX_MASK, PPCVEC, { VD, VA, VB } }, 22435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vminuh", VX(4, 578), VX_MASK, PPCVEC, { VD, VA, VB } }, 22445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vminuw", VX(4, 642), VX_MASK, PPCVEC, { VD, VA, VB } }, 22455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmladduhm", VXA(4, 34), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmrghb", VX(4, 12), VX_MASK, PPCVEC, { VD, VA, VB } }, 22475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmrghh", VX(4, 76), VX_MASK, PPCVEC, { VD, VA, VB } }, 22485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmrghw", VX(4, 140), VX_MASK, PPCVEC, { VD, VA, VB } }, 22495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmrglb", VX(4, 268), VX_MASK, PPCVEC, { VD, VA, VB } }, 22505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmrglh", VX(4, 332), VX_MASK, PPCVEC, { VD, VA, VB } }, 22515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmrglw", VX(4, 396), VX_MASK, PPCVEC, { VD, VA, VB } }, 22525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmsummbm", VXA(4, 37), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmsumshm", VXA(4, 40), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmsumshs", VXA(4, 41), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmsumubm", VXA(4, 36), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmsumuhm", VXA(4, 38), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmsumuhs", VXA(4, 39), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmulesb", VX(4, 776), VX_MASK, PPCVEC, { VD, VA, VB } }, 22595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmulesh", VX(4, 840), VX_MASK, PPCVEC, { VD, VA, VB } }, 22605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmuleub", VX(4, 520), VX_MASK, PPCVEC, { VD, VA, VB } }, 22615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmuleuh", VX(4, 584), VX_MASK, PPCVEC, { VD, VA, VB } }, 22625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmulosb", VX(4, 264), VX_MASK, PPCVEC, { VD, VA, VB } }, 22635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmulosh", VX(4, 328), VX_MASK, PPCVEC, { VD, VA, VB } }, 22645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmuloub", VX(4, 8), VX_MASK, PPCVEC, { VD, VA, VB } }, 22655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vmulouh", VX(4, 72), VX_MASK, PPCVEC, { VD, VA, VB } }, 22665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vnmsubfp", VXA(4, 47), VXA_MASK, PPCVEC, { VD, VA, VC, VB } }, 22675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vnor", VX(4, 1284), VX_MASK, PPCVEC, { VD, VA, VB } }, 22685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vor", VX(4, 1156), VX_MASK, PPCVEC, { VD, VA, VB } }, 22695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vperm", VXA(4, 43), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vpkpx", VX(4, 782), VX_MASK, PPCVEC, { VD, VA, VB } }, 22715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vpkshss", VX(4, 398), VX_MASK, PPCVEC, { VD, VA, VB } }, 22725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vpkshus", VX(4, 270), VX_MASK, PPCVEC, { VD, VA, VB } }, 22735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vpkswss", VX(4, 462), VX_MASK, PPCVEC, { VD, VA, VB } }, 22745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vpkswus", VX(4, 334), VX_MASK, PPCVEC, { VD, VA, VB } }, 22755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vpkuhum", VX(4, 14), VX_MASK, PPCVEC, { VD, VA, VB } }, 22765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vpkuhus", VX(4, 142), VX_MASK, PPCVEC, { VD, VA, VB } }, 22775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vpkuwum", VX(4, 78), VX_MASK, PPCVEC, { VD, VA, VB } }, 22785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vpkuwus", VX(4, 206), VX_MASK, PPCVEC, { VD, VA, VB } }, 22795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vrefp", VX(4, 266), VX_MASK, PPCVEC, { VD, VB } }, 22805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vrfim", VX(4, 714), VX_MASK, PPCVEC, { VD, VB } }, 22815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vrfin", VX(4, 522), VX_MASK, PPCVEC, { VD, VB } }, 22825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vrfip", VX(4, 650), VX_MASK, PPCVEC, { VD, VB } }, 22835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vrfiz", VX(4, 586), VX_MASK, PPCVEC, { VD, VB } }, 22845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vrlb", VX(4, 4), VX_MASK, PPCVEC, { VD, VA, VB } }, 22855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vrlh", VX(4, 68), VX_MASK, PPCVEC, { VD, VA, VB } }, 22865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vrlw", VX(4, 132), VX_MASK, PPCVEC, { VD, VA, VB } }, 22875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vrsqrtefp", VX(4, 330), VX_MASK, PPCVEC, { VD, VB } }, 22885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsel", VXA(4, 42), VXA_MASK, PPCVEC, { VD, VA, VB, VC } }, 22895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsl", VX(4, 452), VX_MASK, PPCVEC, { VD, VA, VB } }, 22905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vslb", VX(4, 260), VX_MASK, PPCVEC, { VD, VA, VB } }, 22915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsldoi", VXA(4, 44), VXA_MASK, PPCVEC, { VD, VA, VB, SHB } }, 22925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vslh", VX(4, 324), VX_MASK, PPCVEC, { VD, VA, VB } }, 22935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vslo", VX(4, 1036), VX_MASK, PPCVEC, { VD, VA, VB } }, 22945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vslw", VX(4, 388), VX_MASK, PPCVEC, { VD, VA, VB } }, 22955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vspltb", VX(4, 524), VX_MASK, PPCVEC, { VD, VB, UIMM } }, 22965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsplth", VX(4, 588), VX_MASK, PPCVEC, { VD, VB, UIMM } }, 22975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vspltisb", VX(4, 780), VX_MASK, PPCVEC, { VD, SIMM } }, 22985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vspltish", VX(4, 844), VX_MASK, PPCVEC, { VD, SIMM } }, 22995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vspltisw", VX(4, 908), VX_MASK, PPCVEC, { VD, SIMM } }, 23005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vspltw", VX(4, 652), VX_MASK, PPCVEC, { VD, VB, UIMM } }, 23015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsr", VX(4, 708), VX_MASK, PPCVEC, { VD, VA, VB } }, 23025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsrab", VX(4, 772), VX_MASK, PPCVEC, { VD, VA, VB } }, 23035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsrah", VX(4, 836), VX_MASK, PPCVEC, { VD, VA, VB } }, 23045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsraw", VX(4, 900), VX_MASK, PPCVEC, { VD, VA, VB } }, 23055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsrb", VX(4, 516), VX_MASK, PPCVEC, { VD, VA, VB } }, 23065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsrh", VX(4, 580), VX_MASK, PPCVEC, { VD, VA, VB } }, 23075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsro", VX(4, 1100), VX_MASK, PPCVEC, { VD, VA, VB } }, 23085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsrw", VX(4, 644), VX_MASK, PPCVEC, { VD, VA, VB } }, 23095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsubcuw", VX(4, 1408), VX_MASK, PPCVEC, { VD, VA, VB } }, 23105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsubfp", VX(4, 74), VX_MASK, PPCVEC, { VD, VA, VB } }, 23115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsubsbs", VX(4, 1792), VX_MASK, PPCVEC, { VD, VA, VB } }, 23125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsubshs", VX(4, 1856), VX_MASK, PPCVEC, { VD, VA, VB } }, 23135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsubsws", VX(4, 1920), VX_MASK, PPCVEC, { VD, VA, VB } }, 23145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsububm", VX(4, 1024), VX_MASK, PPCVEC, { VD, VA, VB } }, 23155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsububs", VX(4, 1536), VX_MASK, PPCVEC, { VD, VA, VB } }, 23165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsubuhm", VX(4, 1088), VX_MASK, PPCVEC, { VD, VA, VB } }, 23175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsubuhs", VX(4, 1600), VX_MASK, PPCVEC, { VD, VA, VB } }, 23185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsubuwm", VX(4, 1152), VX_MASK, PPCVEC, { VD, VA, VB } }, 23195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsubuws", VX(4, 1664), VX_MASK, PPCVEC, { VD, VA, VB } }, 23205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsumsws", VX(4, 1928), VX_MASK, PPCVEC, { VD, VA, VB } }, 23215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsum2sws", VX(4, 1672), VX_MASK, PPCVEC, { VD, VA, VB } }, 23225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsum4sbs", VX(4, 1800), VX_MASK, PPCVEC, { VD, VA, VB } }, 23235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsum4shs", VX(4, 1608), VX_MASK, PPCVEC, { VD, VA, VB } }, 23245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vsum4ubs", VX(4, 1544), VX_MASK, PPCVEC, { VD, VA, VB } }, 23255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vupkhpx", VX(4, 846), VX_MASK, PPCVEC, { VD, VB } }, 23265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vupkhsb", VX(4, 526), VX_MASK, PPCVEC, { VD, VB } }, 23275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vupkhsh", VX(4, 590), VX_MASK, PPCVEC, { VD, VB } }, 23285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vupklpx", VX(4, 974), VX_MASK, PPCVEC, { VD, VB } }, 23295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vupklsb", VX(4, 654), VX_MASK, PPCVEC, { VD, VB } }, 23305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vupklsh", VX(4, 718), VX_MASK, PPCVEC, { VD, VB } }, 23315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "vxor", VX(4, 1220), VX_MASK, PPCVEC, { VD, VA, VB } }, 23325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 23335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evaddw", VX(4, 512), VX_MASK, PPCSPE, { RS, RA, RB } }, 23345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evaddiw", VX(4, 514), VX_MASK, PPCSPE, { RS, RB, UIMM } }, 23355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsubfw", VX(4, 516), VX_MASK, PPCSPE, { RS, RA, RB } }, 23365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsubw", VX(4, 516), VX_MASK, PPCSPE, { RS, RB, RA } }, 23375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsubifw", VX(4, 518), VX_MASK, PPCSPE, { RS, UIMM, RB } }, 23385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsubiw", VX(4, 518), VX_MASK, PPCSPE, { RS, RB, UIMM } }, 23395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evabs", VX(4, 520), VX_MASK, PPCSPE, { RS, RA } }, 23405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evneg", VX(4, 521), VX_MASK, PPCSPE, { RS, RA } }, 23415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evextsb", VX(4, 522), VX_MASK, PPCSPE, { RS, RA } }, 23425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evextsh", VX(4, 523), VX_MASK, PPCSPE, { RS, RA } }, 23435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evrndw", VX(4, 524), VX_MASK, PPCSPE, { RS, RA } }, 23445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evcntlzw", VX(4, 525), VX_MASK, PPCSPE, { RS, RA } }, 23455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evcntlsw", VX(4, 526), VX_MASK, PPCSPE, { RS, RA } }, 23465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 23475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "brinc", VX(4, 527), VX_MASK, PPCSPE, { RS, RA, RB } }, 23485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 23495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evand", VX(4, 529), VX_MASK, PPCSPE, { RS, RA, RB } }, 23505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evandc", VX(4, 530), VX_MASK, PPCSPE, { RS, RA, RB } }, 23515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmr", VX(4, 535), VX_MASK, PPCSPE, { RS, RA, BBA } }, 23525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evor", VX(4, 535), VX_MASK, PPCSPE, { RS, RA, RB } }, 23535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evorc", VX(4, 539), VX_MASK, PPCSPE, { RS, RA, RB } }, 23545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evxor", VX(4, 534), VX_MASK, PPCSPE, { RS, RA, RB } }, 23555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "eveqv", VX(4, 537), VX_MASK, PPCSPE, { RS, RA, RB } }, 23565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evnand", VX(4, 542), VX_MASK, PPCSPE, { RS, RA, RB } }, 23575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evnot", VX(4, 536), VX_MASK, PPCSPE, { RS, RA, BBA } }, 23585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evnor", VX(4, 536), VX_MASK, PPCSPE, { RS, RA, RB } }, 23595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 23605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evrlw", VX(4, 552), VX_MASK, PPCSPE, { RS, RA, RB } }, 23615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evrlwi", VX(4, 554), VX_MASK, PPCSPE, { RS, RA, EVUIMM } }, 23625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evslw", VX(4, 548), VX_MASK, PPCSPE, { RS, RA, RB } }, 23635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evslwi", VX(4, 550), VX_MASK, PPCSPE, { RS, RA, EVUIMM } }, 23645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsrws", VX(4, 545), VX_MASK, PPCSPE, { RS, RA, RB } }, 23655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsrwu", VX(4, 544), VX_MASK, PPCSPE, { RS, RA, RB } }, 23665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsrwis", VX(4, 547), VX_MASK, PPCSPE, { RS, RA, EVUIMM } }, 23675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsrwiu", VX(4, 546), VX_MASK, PPCSPE, { RS, RA, EVUIMM } }, 23685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsplati", VX(4, 553), VX_MASK, PPCSPE, { RS, SIMM } }, 23695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsplatfi", VX(4, 555), VX_MASK, PPCSPE, { RS, SIMM } }, 23705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmergehi", VX(4, 556), VX_MASK, PPCSPE, { RS, RA, RB } }, 23715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmergelo", VX(4, 557), VX_MASK, PPCSPE, { RS, RA, RB } }, 23725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmergehilo",VX(4,558), VX_MASK, PPCSPE, { RS, RA, RB } }, 23735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmergelohi",VX(4,559), VX_MASK, PPCSPE, { RS, RA, RB } }, 23745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 23755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evcmpgts", VX(4, 561), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 23765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evcmpgtu", VX(4, 560), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 23775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evcmplts", VX(4, 563), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 23785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evcmpltu", VX(4, 562), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 23795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evcmpeq", VX(4, 564), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 23805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsel", EVSEL(4,79),EVSEL_MASK, PPCSPE, { RS, RA, RB, CRFS } }, 23815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 23825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evldd", VX(4, 769), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, 23835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlddx", VX(4, 768), VX_MASK, PPCSPE, { RS, RA, RB } }, 23845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evldw", VX(4, 771), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, 23855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evldwx", VX(4, 770), VX_MASK, PPCSPE, { RS, RA, RB } }, 23865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evldh", VX(4, 773), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, 23875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evldhx", VX(4, 772), VX_MASK, PPCSPE, { RS, RA, RB } }, 23885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlwhe", VX(4, 785), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, 23895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlwhex", VX(4, 784), VX_MASK, PPCSPE, { RS, RA, RB } }, 23905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlwhou", VX(4, 789), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, 23915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlwhoux", VX(4, 788), VX_MASK, PPCSPE, { RS, RA, RB } }, 23925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlwhos", VX(4, 791), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, 23935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlwhosx", VX(4, 790), VX_MASK, PPCSPE, { RS, RA, RB } }, 23945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlwwsplat",VX(4, 793), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, 23955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlwwsplatx",VX(4, 792), VX_MASK, PPCSPE, { RS, RA, RB } }, 23965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlwhsplat",VX(4, 797), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, 23975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlwhsplatx",VX(4, 796), VX_MASK, PPCSPE, { RS, RA, RB } }, 23985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlhhesplat",VX(4, 777), VX_MASK, PPCSPE, { RS, EVUIMM_2, RA } }, 23995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlhhesplatx",VX(4, 776), VX_MASK, PPCSPE, { RS, RA, RB } }, 24005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlhhousplat",VX(4, 781), VX_MASK, PPCSPE, { RS, EVUIMM_2, RA } }, 24015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlhhousplatx",VX(4, 780), VX_MASK, PPCSPE, { RS, RA, RB } }, 24025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlhhossplat",VX(4, 783), VX_MASK, PPCSPE, { RS, EVUIMM_2, RA } }, 24035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evlhhossplatx",VX(4, 782), VX_MASK, PPCSPE, { RS, RA, RB } }, 24045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 24055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstdd", VX(4, 801), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, 24065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstddx", VX(4, 800), VX_MASK, PPCSPE, { RS, RA, RB } }, 24075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstdw", VX(4, 803), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, 24085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstdwx", VX(4, 802), VX_MASK, PPCSPE, { RS, RA, RB } }, 24095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstdh", VX(4, 805), VX_MASK, PPCSPE, { RS, EVUIMM_8, RA } }, 24105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstdhx", VX(4, 804), VX_MASK, PPCSPE, { RS, RA, RB } }, 24115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstwwe", VX(4, 825), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, 24125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstwwex", VX(4, 824), VX_MASK, PPCSPE, { RS, RA, RB } }, 24135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstwwo", VX(4, 829), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, 24145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstwwox", VX(4, 828), VX_MASK, PPCSPE, { RS, RA, RB } }, 24155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstwhe", VX(4, 817), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, 24165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstwhex", VX(4, 816), VX_MASK, PPCSPE, { RS, RA, RB } }, 24175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstwho", VX(4, 821), VX_MASK, PPCSPE, { RS, EVUIMM_4, RA } }, 24185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evstwhox", VX(4, 820), VX_MASK, PPCSPE, { RS, RA, RB } }, 24195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 24205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsabs", VX(4, 644), VX_MASK, PPCSPE, { RS, RA } }, 24215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsnabs", VX(4, 645), VX_MASK, PPCSPE, { RS, RA } }, 24225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsneg", VX(4, 646), VX_MASK, PPCSPE, { RS, RA } }, 24235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsadd", VX(4, 640), VX_MASK, PPCSPE, { RS, RA, RB } }, 24245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfssub", VX(4, 641), VX_MASK, PPCSPE, { RS, RA, RB } }, 24255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsmul", VX(4, 648), VX_MASK, PPCSPE, { RS, RA, RB } }, 24265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsdiv", VX(4, 649), VX_MASK, PPCSPE, { RS, RA, RB } }, 24275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfscmpgt", VX(4, 652), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 24285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfscmplt", VX(4, 653), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 24295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfscmpeq", VX(4, 654), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 24305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfststgt", VX(4, 668), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 24315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfststlt", VX(4, 669), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 24325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfststeq", VX(4, 670), VX_MASK, PPCSPE, { CRFD, RA, RB } }, 24335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfscfui", VX(4, 656), VX_MASK, PPCSPE, { RS, RB } }, 24345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsctuiz", VX(4, 664), VX_MASK, PPCSPE, { RS, RB } }, 24355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfscfsi", VX(4, 657), VX_MASK, PPCSPE, { RS, RB } }, 24365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfscfuf", VX(4, 658), VX_MASK, PPCSPE, { RS, RB } }, 24375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfscfsf", VX(4, 659), VX_MASK, PPCSPE, { RS, RB } }, 24385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsctui", VX(4, 660), VX_MASK, PPCSPE, { RS, RB } }, 24395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsctsi", VX(4, 661), VX_MASK, PPCSPE, { RS, RB } }, 24405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsctsiz", VX(4, 666), VX_MASK, PPCSPE, { RS, RB } }, 24415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsctuf", VX(4, 662), VX_MASK, PPCSPE, { RS, RB } }, 24425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evfsctsf", VX(4, 663), VX_MASK, PPCSPE, { RS, RB } }, 24435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 24445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsabs", VX(4, 708), VX_MASK, PPCEFS, { RS, RA } }, 24455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsnabs", VX(4, 709), VX_MASK, PPCEFS, { RS, RA } }, 24465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsneg", VX(4, 710), VX_MASK, PPCEFS, { RS, RA } }, 24475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsadd", VX(4, 704), VX_MASK, PPCEFS, { RS, RA, RB } }, 24485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efssub", VX(4, 705), VX_MASK, PPCEFS, { RS, RA, RB } }, 24495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsmul", VX(4, 712), VX_MASK, PPCEFS, { RS, RA, RB } }, 24505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsdiv", VX(4, 713), VX_MASK, PPCEFS, { RS, RA, RB } }, 24515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efscmpgt", VX(4, 716), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 24525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efscmplt", VX(4, 717), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 24535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efscmpeq", VX(4, 718), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 24545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efststgt", VX(4, 732), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 24555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efststlt", VX(4, 733), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 24565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efststeq", VX(4, 734), VX_MASK, PPCEFS, { CRFD, RA, RB } }, 24575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efscfui", VX(4, 720), VX_MASK, PPCEFS, { RS, RB } }, 24585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsctuiz", VX(4, 728), VX_MASK, PPCEFS, { RS, RB } }, 24595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efscfsi", VX(4, 721), VX_MASK, PPCEFS, { RS, RB } }, 24605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efscfuf", VX(4, 722), VX_MASK, PPCEFS, { RS, RB } }, 24615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efscfsf", VX(4, 723), VX_MASK, PPCEFS, { RS, RB } }, 24625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsctui", VX(4, 724), VX_MASK, PPCEFS, { RS, RB } }, 24635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsctsi", VX(4, 725), VX_MASK, PPCEFS, { RS, RB } }, 24645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsctsiz", VX(4, 730), VX_MASK, PPCEFS, { RS, RB } }, 24655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsctuf", VX(4, 726), VX_MASK, PPCEFS, { RS, RB } }, 24665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "efsctsf", VX(4, 727), VX_MASK, PPCEFS, { RS, RB } }, 24675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 24685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhossf", VX(4, 1031), VX_MASK, PPCSPE, { RS, RA, RB } }, 24695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhossfa", VX(4, 1063), VX_MASK, PPCSPE, { RS, RA, RB } }, 24705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhosmf", VX(4, 1039), VX_MASK, PPCSPE, { RS, RA, RB } }, 24715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhosmfa", VX(4, 1071), VX_MASK, PPCSPE, { RS, RA, RB } }, 24725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhosmi", VX(4, 1037), VX_MASK, PPCSPE, { RS, RA, RB } }, 24735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhosmia", VX(4, 1069), VX_MASK, PPCSPE, { RS, RA, RB } }, 24745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhoumi", VX(4, 1036), VX_MASK, PPCSPE, { RS, RA, RB } }, 24755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhoumia", VX(4, 1068), VX_MASK, PPCSPE, { RS, RA, RB } }, 24765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhessf", VX(4, 1027), VX_MASK, PPCSPE, { RS, RA, RB } }, 24775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhessfa", VX(4, 1059), VX_MASK, PPCSPE, { RS, RA, RB } }, 24785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhesmf", VX(4, 1035), VX_MASK, PPCSPE, { RS, RA, RB } }, 24795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhesmfa", VX(4, 1067), VX_MASK, PPCSPE, { RS, RA, RB } }, 24805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhesmi", VX(4, 1033), VX_MASK, PPCSPE, { RS, RA, RB } }, 24815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhesmia", VX(4, 1065), VX_MASK, PPCSPE, { RS, RA, RB } }, 24825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmheumi", VX(4, 1032), VX_MASK, PPCSPE, { RS, RA, RB } }, 24835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmheumia", VX(4, 1064), VX_MASK, PPCSPE, { RS, RA, RB } }, 24845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 24855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhossfaaw",VX(4, 1287), VX_MASK, PPCSPE, { RS, RA, RB } }, 24865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhossiaaw",VX(4, 1285), VX_MASK, PPCSPE, { RS, RA, RB } }, 24875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhosmfaaw",VX(4, 1295), VX_MASK, PPCSPE, { RS, RA, RB } }, 24885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhosmiaaw",VX(4, 1293), VX_MASK, PPCSPE, { RS, RA, RB } }, 24895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhousiaaw",VX(4, 1284), VX_MASK, PPCSPE, { RS, RA, RB } }, 24905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhoumiaaw",VX(4, 1292), VX_MASK, PPCSPE, { RS, RA, RB } }, 24915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhessfaaw",VX(4, 1283), VX_MASK, PPCSPE, { RS, RA, RB } }, 24925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhessiaaw",VX(4, 1281), VX_MASK, PPCSPE, { RS, RA, RB } }, 24935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhesmfaaw",VX(4, 1291), VX_MASK, PPCSPE, { RS, RA, RB } }, 24945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhesmiaaw",VX(4, 1289), VX_MASK, PPCSPE, { RS, RA, RB } }, 24955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmheusiaaw",VX(4, 1280), VX_MASK, PPCSPE, { RS, RA, RB } }, 24965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmheumiaaw",VX(4, 1288), VX_MASK, PPCSPE, { RS, RA, RB } }, 24975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 24985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhossfanw",VX(4, 1415), VX_MASK, PPCSPE, { RS, RA, RB } }, 24995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhossianw",VX(4, 1413), VX_MASK, PPCSPE, { RS, RA, RB } }, 25005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhosmfanw",VX(4, 1423), VX_MASK, PPCSPE, { RS, RA, RB } }, 25015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhosmianw",VX(4, 1421), VX_MASK, PPCSPE, { RS, RA, RB } }, 25025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhousianw",VX(4, 1412), VX_MASK, PPCSPE, { RS, RA, RB } }, 25035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhoumianw",VX(4, 1420), VX_MASK, PPCSPE, { RS, RA, RB } }, 25045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhessfanw",VX(4, 1411), VX_MASK, PPCSPE, { RS, RA, RB } }, 25055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhessianw",VX(4, 1409), VX_MASK, PPCSPE, { RS, RA, RB } }, 25065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhesmfanw",VX(4, 1419), VX_MASK, PPCSPE, { RS, RA, RB } }, 25075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhesmianw",VX(4, 1417), VX_MASK, PPCSPE, { RS, RA, RB } }, 25085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmheusianw",VX(4, 1408), VX_MASK, PPCSPE, { RS, RA, RB } }, 25095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmheumianw",VX(4, 1416), VX_MASK, PPCSPE, { RS, RA, RB } }, 25105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhogsmfaa",VX(4, 1327), VX_MASK, PPCSPE, { RS, RA, RB } }, 25125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhogsmiaa",VX(4, 1325), VX_MASK, PPCSPE, { RS, RA, RB } }, 25135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhogumiaa",VX(4, 1324), VX_MASK, PPCSPE, { RS, RA, RB } }, 25145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhegsmfaa",VX(4, 1323), VX_MASK, PPCSPE, { RS, RA, RB } }, 25155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhegsmiaa",VX(4, 1321), VX_MASK, PPCSPE, { RS, RA, RB } }, 25165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhegumiaa",VX(4, 1320), VX_MASK, PPCSPE, { RS, RA, RB } }, 25175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhogsmfan",VX(4, 1455), VX_MASK, PPCSPE, { RS, RA, RB } }, 25195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhogsmian",VX(4, 1453), VX_MASK, PPCSPE, { RS, RA, RB } }, 25205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhogumian",VX(4, 1452), VX_MASK, PPCSPE, { RS, RA, RB } }, 25215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhegsmfan",VX(4, 1451), VX_MASK, PPCSPE, { RS, RA, RB } }, 25225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhegsmian",VX(4, 1449), VX_MASK, PPCSPE, { RS, RA, RB } }, 25235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmhegumian",VX(4, 1448), VX_MASK, PPCSPE, { RS, RA, RB } }, 25245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwhssf", VX(4, 1095), VX_MASK, PPCSPE, { RS, RA, RB } }, 25265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwhssfa", VX(4, 1127), VX_MASK, PPCSPE, { RS, RA, RB } }, 25275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwhsmf", VX(4, 1103), VX_MASK, PPCSPE, { RS, RA, RB } }, 25285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwhsmfa", VX(4, 1135), VX_MASK, PPCSPE, { RS, RA, RB } }, 25295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwhsmi", VX(4, 1101), VX_MASK, PPCSPE, { RS, RA, RB } }, 25305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwhsmia", VX(4, 1133), VX_MASK, PPCSPE, { RS, RA, RB } }, 25315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwhumi", VX(4, 1100), VX_MASK, PPCSPE, { RS, RA, RB } }, 25325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwhumia", VX(4, 1132), VX_MASK, PPCSPE, { RS, RA, RB } }, 25335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwlumi", VX(4, 1096), VX_MASK, PPCSPE, { RS, RA, RB } }, 25355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwlumia", VX(4, 1128), VX_MASK, PPCSPE, { RS, RA, RB } }, 25365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwlssiaaw",VX(4, 1345), VX_MASK, PPCSPE, { RS, RA, RB } }, 25385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwlsmiaaw",VX(4, 1353), VX_MASK, PPCSPE, { RS, RA, RB } }, 25395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwlusiaaw",VX(4, 1344), VX_MASK, PPCSPE, { RS, RA, RB } }, 25405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwlumiaaw",VX(4, 1352), VX_MASK, PPCSPE, { RS, RA, RB } }, 25415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwlssianw",VX(4, 1473), VX_MASK, PPCSPE, { RS, RA, RB } }, 25435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwlsmianw",VX(4, 1481), VX_MASK, PPCSPE, { RS, RA, RB } }, 25445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwlusianw",VX(4, 1472), VX_MASK, PPCSPE, { RS, RA, RB } }, 25455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwlumianw",VX(4, 1480), VX_MASK, PPCSPE, { RS, RA, RB } }, 25465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwssf", VX(4, 1107), VX_MASK, PPCSPE, { RS, RA, RB } }, 25485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwssfa", VX(4, 1139), VX_MASK, PPCSPE, { RS, RA, RB } }, 25495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwsmf", VX(4, 1115), VX_MASK, PPCSPE, { RS, RA, RB } }, 25505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwsmfa", VX(4, 1147), VX_MASK, PPCSPE, { RS, RA, RB } }, 25515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwsmi", VX(4, 1113), VX_MASK, PPCSPE, { RS, RA, RB } }, 25525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwsmia", VX(4, 1145), VX_MASK, PPCSPE, { RS, RA, RB } }, 25535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwumi", VX(4, 1112), VX_MASK, PPCSPE, { RS, RA, RB } }, 25545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwumia", VX(4, 1144), VX_MASK, PPCSPE, { RS, RA, RB } }, 25555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwssfaa", VX(4, 1363), VX_MASK, PPCSPE, { RS, RA, RB } }, 25575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwsmfaa", VX(4, 1371), VX_MASK, PPCSPE, { RS, RA, RB } }, 25585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwsmiaa", VX(4, 1369), VX_MASK, PPCSPE, { RS, RA, RB } }, 25595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwumiaa", VX(4, 1368), VX_MASK, PPCSPE, { RS, RA, RB } }, 25605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwssfan", VX(4, 1491), VX_MASK, PPCSPE, { RS, RA, RB } }, 25625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwsmfan", VX(4, 1499), VX_MASK, PPCSPE, { RS, RA, RB } }, 25635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwsmian", VX(4, 1497), VX_MASK, PPCSPE, { RS, RA, RB } }, 25645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmwumian", VX(4, 1496), VX_MASK, PPCSPE, { RS, RA, RB } }, 25655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evaddssiaaw",VX(4, 1217), VX_MASK, PPCSPE, { RS, RA } }, 25675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evaddsmiaaw",VX(4, 1225), VX_MASK, PPCSPE, { RS, RA } }, 25685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evaddusiaaw",VX(4, 1216), VX_MASK, PPCSPE, { RS, RA } }, 25695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evaddumiaaw",VX(4, 1224), VX_MASK, PPCSPE, { RS, RA } }, 25705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsubfssiaaw",VX(4, 1219), VX_MASK, PPCSPE, { RS, RA } }, 25725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsubfsmiaaw",VX(4, 1227), VX_MASK, PPCSPE, { RS, RA } }, 25735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsubfusiaaw",VX(4, 1218), VX_MASK, PPCSPE, { RS, RA } }, 25745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evsubfumiaaw",VX(4, 1226), VX_MASK, PPCSPE, { RS, RA } }, 25755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evmra", VX(4, 1220), VX_MASK, PPCSPE, { RS, RA } }, 25775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evdivws", VX(4, 1222), VX_MASK, PPCSPE, { RS, RA, RB } }, 25795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "evdivwu", VX(4, 1223), VX_MASK, PPCSPE, { RS, RA, RB } }, 25805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulli", OP(7), OP_MASK, PPCCOM, { RT, RA, SI } }, 25825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "muli", OP(7), OP_MASK, PWRCOM, { RT, RA, SI } }, 25835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfic", OP(8), OP_MASK, PPCCOM, { RT, RA, SI } }, 25855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfi", OP(8), OP_MASK, PWRCOM, { RT, RA, SI } }, 25865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dozi", OP(9), OP_MASK, M601, { RT, RA, SI } }, 25885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bce", B(9,0,0), B_MASK, BOOKE64, { BO, BI, BD } }, 25905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcel", B(9,0,1), B_MASK, BOOKE64, { BO, BI, BD } }, 25915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcea", B(9,1,0), B_MASK, BOOKE64, { BO, BI, BDA } }, 25925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcela", B(9,1,1), B_MASK, BOOKE64, { BO, BI, BDA } }, 25935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 25945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmplwi", OPL(10,0), OPL_MASK, PPCCOM, { OBF, RA, UI } }, 25955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpldi", OPL(10,1), OPL_MASK, PPC64, { OBF, RA, UI } }, 25968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "cmpli", OP(10), OP_MASK, PPC, { BF, L, RA, UI } }, 25975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpli", OP(10), OP_MASK, PWRCOM, { BF, RA, UI } }, 25988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 25995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpwi", OPL(11,0), OPL_MASK, PPCCOM, { OBF, RA, SI } }, 26005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpdi", OPL(11,1), OPL_MASK, PPC64, { OBF, RA, SI } }, 26018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "cmpi", OP(11), OP_MASK, PPC, { BF, L, RA, SI } }, 26025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpi", OP(11), OP_MASK, PWRCOM, { BF, RA, SI } }, 26035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 26045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addic", OP(12), OP_MASK, PPCCOM, { RT, RA, SI } }, 26055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ai", OP(12), OP_MASK, PWRCOM, { RT, RA, SI } }, 26065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subic", OP(12), OP_MASK, PPCCOM, { RT, RA, NSI } }, 26075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 26085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addic.", OP(13), OP_MASK, PPCCOM, { RT, RA, SI } }, 26095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ai.", OP(13), OP_MASK, PWRCOM, { RT, RA, SI } }, 26105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subic.", OP(13), OP_MASK, PPCCOM, { RT, RA, NSI } }, 26115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 26125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "li", OP(14), DRA_MASK, PPCCOM, { RT, SI } }, 26135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lil", OP(14), DRA_MASK, PWRCOM, { RT, SI } }, 26145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addi", OP(14), OP_MASK, PPCCOM, { RT, RA0, SI } }, 26155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cal", OP(14), OP_MASK, PWRCOM, { RT, D, RA0 } }, 26165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subi", OP(14), OP_MASK, PPCCOM, { RT, RA0, NSI } }, 26175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "la", OP(14), OP_MASK, PPCCOM, { RT, D, RA0 } }, 26185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 26195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lis", OP(15), DRA_MASK, PPCCOM, { RT, SISIGNOPT } }, 26205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "liu", OP(15), DRA_MASK, PWRCOM, { RT, SISIGNOPT } }, 26215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addis", OP(15), OP_MASK, PPCCOM, { RT,RA0,SISIGNOPT } }, 26225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cau", OP(15), OP_MASK, PWRCOM, { RT,RA0,SISIGNOPT } }, 26235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subis", OP(15), OP_MASK, PPCCOM, { RT, RA0, NSI } }, 26245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 26255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnz-", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, { BDM } }, 26265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnz+", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, { BDP } }, 26275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnz", BBO(16,BODNZ,0,0), BBOATBI_MASK, PPCCOM, { BD } }, 26285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdn", BBO(16,BODNZ,0,0), BBOATBI_MASK, PWRCOM, { BD } }, 26295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzl-", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, { BDM } }, 26305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzl+", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, { BDP } }, 26315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PPCCOM, { BD } }, 26325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnl", BBO(16,BODNZ,0,1), BBOATBI_MASK, PWRCOM, { BD } }, 26335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnza-", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, { BDMA } }, 26345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnza+", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, { BDPA } }, 26355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnza", BBO(16,BODNZ,1,0), BBOATBI_MASK, PPCCOM, { BDA } }, 26365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdna", BBO(16,BODNZ,1,0), BBOATBI_MASK, PWRCOM, { BDA } }, 26375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzla-", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, { BDMA } }, 26385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzla+", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, { BDPA } }, 26395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PPCCOM, { BDA } }, 26405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnla", BBO(16,BODNZ,1,1), BBOATBI_MASK, PWRCOM, { BDA } }, 26415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdz-", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, { BDM } }, 26425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdz+", BBO(16,BODZ,0,0), BBOATBI_MASK, PPCCOM, { BDP } }, 26435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdz", BBO(16,BODZ,0,0), BBOATBI_MASK, COM, { BD } }, 26445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzl-", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, { BDM } }, 26455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzl+", BBO(16,BODZ,0,1), BBOATBI_MASK, PPCCOM, { BDP } }, 26465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzl", BBO(16,BODZ,0,1), BBOATBI_MASK, COM, { BD } }, 26475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdza-", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, { BDMA } }, 26485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdza+", BBO(16,BODZ,1,0), BBOATBI_MASK, PPCCOM, { BDPA } }, 26495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdza", BBO(16,BODZ,1,0), BBOATBI_MASK, COM, { BDA } }, 26505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzla-", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, { BDMA } }, 26515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzla+", BBO(16,BODZ,1,1), BBOATBI_MASK, PPCCOM, { BDPA } }, 26525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzla", BBO(16,BODZ,1,1), BBOATBI_MASK, COM, { BDA } }, 26535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blt-", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 26545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blt+", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 26555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blt", BBOCB(16,BOT,CBLT,0,0), BBOATCB_MASK, COM, { CR, BD } }, 26565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltl-", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 26575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltl+", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 26585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltl", BBOCB(16,BOT,CBLT,0,1), BBOATCB_MASK, COM, { CR, BD } }, 26595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blta-", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 26605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blta+", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 26615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blta", BBOCB(16,BOT,CBLT,1,0), BBOATCB_MASK, COM, { CR, BDA } }, 26625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltla-", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 26635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltla+", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 26645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltla", BBOCB(16,BOT,CBLT,1,1), BBOATCB_MASK, COM, { CR, BDA } }, 26655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgt-", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 26665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgt+", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 26675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgt", BBOCB(16,BOT,CBGT,0,0), BBOATCB_MASK, COM, { CR, BD } }, 26685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtl-", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 26695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtl+", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 26705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtl", BBOCB(16,BOT,CBGT,0,1), BBOATCB_MASK, COM, { CR, BD } }, 26715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgta-", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 26725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgta+", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 26735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgta", BBOCB(16,BOT,CBGT,1,0), BBOATCB_MASK, COM, { CR, BDA } }, 26745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtla-", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 26755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtla+", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 26765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtla", BBOCB(16,BOT,CBGT,1,1), BBOATCB_MASK, COM, { CR, BDA } }, 26775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beq-", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 26785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beq+", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 26795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beq", BBOCB(16,BOT,CBEQ,0,0), BBOATCB_MASK, COM, { CR, BD } }, 26805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beql-", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 26815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beql+", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 26825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beql", BBOCB(16,BOT,CBEQ,0,1), BBOATCB_MASK, COM, { CR, BD } }, 26835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqa-", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 26845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqa+", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 26855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqa", BBOCB(16,BOT,CBEQ,1,0), BBOATCB_MASK, COM, { CR, BDA } }, 26865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqla-", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 26875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqla+", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 26885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqla", BBOCB(16,BOT,CBEQ,1,1), BBOATCB_MASK, COM, { CR, BDA } }, 26895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bso-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 26905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bso+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 26915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bso", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, COM, { CR, BD } }, 26925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsol-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 26935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsol+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 26945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsol", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, COM, { CR, BD } }, 26955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoa-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 26965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoa+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 26975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoa", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, COM, { CR, BDA } }, 26985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsola-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 26995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsola+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsola", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, COM, { CR, BDA } }, 27015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bun-", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bun+", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bun", BBOCB(16,BOT,CBSO,0,0), BBOATCB_MASK, PPCCOM, { CR, BD } }, 27045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunl-", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunl+", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunl", BBOCB(16,BOT,CBSO,0,1), BBOATCB_MASK, PPCCOM, { CR, BD } }, 27075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "buna-", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "buna+", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "buna", BBOCB(16,BOT,CBSO,1,0), BBOATCB_MASK, PPCCOM, { CR, BDA } }, 27105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunla-", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunla+", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunla", BBOCB(16,BOT,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDA } }, 27135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bge-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bge+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bge", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, { CR, BD } }, 27165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgel-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgel+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgel", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, { CR, BD } }, 27195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgea-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgea+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgea", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, { CR, BDA } }, 27225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgela-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgela+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgela", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, { CR, BDA } }, 27255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnl-", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnl+", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnl", BBOCB(16,BOF,CBLT,0,0), BBOATCB_MASK, COM, { CR, BD } }, 27285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnll-", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnll+", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnll", BBOCB(16,BOF,CBLT,0,1), BBOATCB_MASK, COM, { CR, BD } }, 27315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnla-", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnla+", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnla", BBOCB(16,BOF,CBLT,1,0), BBOATCB_MASK, COM, { CR, BDA } }, 27345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlla-", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlla+", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlla", BBOCB(16,BOF,CBLT,1,1), BBOATCB_MASK, COM, { CR, BDA } }, 27375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ble-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ble+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ble", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, { CR, BD } }, 27405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blel-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blel+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blel", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, { CR, BD } }, 27435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blea-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blea+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blea", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, { CR, BDA } }, 27465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blela-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blela+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blela", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, { CR, BDA } }, 27495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bng-", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bng+", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bng", BBOCB(16,BOF,CBGT,0,0), BBOATCB_MASK, COM, { CR, BD } }, 27525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngl-", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngl+", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngl", BBOCB(16,BOF,CBGT,0,1), BBOATCB_MASK, COM, { CR, BD } }, 27555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnga-", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnga+", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnga", BBOCB(16,BOF,CBGT,1,0), BBOATCB_MASK, COM, { CR, BDA } }, 27585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngla-", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngla+", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngla", BBOCB(16,BOF,CBGT,1,1), BBOATCB_MASK, COM, { CR, BDA } }, 27615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bne-", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bne+", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bne", BBOCB(16,BOF,CBEQ,0,0), BBOATCB_MASK, COM, { CR, BD } }, 27645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnel-", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnel+", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnel", BBOCB(16,BOF,CBEQ,0,1), BBOATCB_MASK, COM, { CR, BD } }, 27675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnea-", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnea+", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnea", BBOCB(16,BOF,CBEQ,1,0), BBOATCB_MASK, COM, { CR, BDA } }, 27705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnela-", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnela+", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnela", BBOCB(16,BOF,CBEQ,1,1), BBOATCB_MASK, COM, { CR, BDA } }, 27735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bns-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bns+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bns", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, COM, { CR, BD } }, 27765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsl-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsl+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsl", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, COM, { CR, BD } }, 27795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsa-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsa+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsa", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, COM, { CR, BDA } }, 27825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsla-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsla+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsla", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, COM, { CR, BDA } }, 27855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnu-", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnu+", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnu", BBOCB(16,BOF,CBSO,0,0), BBOATCB_MASK, PPCCOM, { CR, BD } }, 27885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnul-", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, { CR, BDM } }, 27895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnul+", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, { CR, BDP } }, 27905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnul", BBOCB(16,BOF,CBSO,0,1), BBOATCB_MASK, PPCCOM, { CR, BD } }, 27915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnua-", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnua+", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnua", BBOCB(16,BOF,CBSO,1,0), BBOATCB_MASK, PPCCOM, { CR, BDA } }, 27945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnula-", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDMA } }, 27955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnula+", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDPA } }, 27965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnula", BBOCB(16,BOF,CBSO,1,1), BBOATCB_MASK, PPCCOM, { CR, BDA } }, 27975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzt-", BBO(16,BODNZT,0,0), BBOY_MASK, NOPOWER4, { BI, BDM } }, 27985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzt+", BBO(16,BODNZT,0,0), BBOY_MASK, NOPOWER4, { BI, BDP } }, 27995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzt", BBO(16,BODNZT,0,0), BBOY_MASK, PPCCOM, { BI, BD } }, 28005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztl-", BBO(16,BODNZT,0,1), BBOY_MASK, NOPOWER4, { BI, BDM } }, 28015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztl+", BBO(16,BODNZT,0,1), BBOY_MASK, NOPOWER4, { BI, BDP } }, 28025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztl", BBO(16,BODNZT,0,1), BBOY_MASK, PPCCOM, { BI, BD } }, 28035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzta-", BBO(16,BODNZT,1,0), BBOY_MASK, NOPOWER4, { BI, BDMA } }, 28045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzta+", BBO(16,BODNZT,1,0), BBOY_MASK, NOPOWER4, { BI, BDPA } }, 28055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzta", BBO(16,BODNZT,1,0), BBOY_MASK, PPCCOM, { BI, BDA } }, 28065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztla-",BBO(16,BODNZT,1,1), BBOY_MASK, NOPOWER4, { BI, BDMA } }, 28075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztla+",BBO(16,BODNZT,1,1), BBOY_MASK, NOPOWER4, { BI, BDPA } }, 28085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztla", BBO(16,BODNZT,1,1), BBOY_MASK, PPCCOM, { BI, BDA } }, 28095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzf-", BBO(16,BODNZF,0,0), BBOY_MASK, NOPOWER4, { BI, BDM } }, 28105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzf+", BBO(16,BODNZF,0,0), BBOY_MASK, NOPOWER4, { BI, BDP } }, 28115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzf", BBO(16,BODNZF,0,0), BBOY_MASK, PPCCOM, { BI, BD } }, 28125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzfl-", BBO(16,BODNZF,0,1), BBOY_MASK, NOPOWER4, { BI, BDM } }, 28135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzfl+", BBO(16,BODNZF,0,1), BBOY_MASK, NOPOWER4, { BI, BDP } }, 28145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzfl", BBO(16,BODNZF,0,1), BBOY_MASK, PPCCOM, { BI, BD } }, 28155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzfa-", BBO(16,BODNZF,1,0), BBOY_MASK, NOPOWER4, { BI, BDMA } }, 28165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzfa+", BBO(16,BODNZF,1,0), BBOY_MASK, NOPOWER4, { BI, BDPA } }, 28175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzfa", BBO(16,BODNZF,1,0), BBOY_MASK, PPCCOM, { BI, BDA } }, 28185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzfla-",BBO(16,BODNZF,1,1), BBOY_MASK, NOPOWER4, { BI, BDMA } }, 28195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzfla+",BBO(16,BODNZF,1,1), BBOY_MASK, NOPOWER4, { BI, BDPA } }, 28205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzfla", BBO(16,BODNZF,1,1), BBOY_MASK, PPCCOM, { BI, BDA } }, 28215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bt-", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, { BI, BDM } }, 28225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bt+", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, { BI, BDP } }, 28235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bt", BBO(16,BOT,0,0), BBOAT_MASK, PPCCOM, { BI, BD } }, 28245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbt", BBO(16,BOT,0,0), BBOAT_MASK, PWRCOM, { BI, BD } }, 28255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btl-", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, { BI, BDM } }, 28265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btl+", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, { BI, BDP } }, 28275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btl", BBO(16,BOT,0,1), BBOAT_MASK, PPCCOM, { BI, BD } }, 28285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbtl", BBO(16,BOT,0,1), BBOAT_MASK, PWRCOM, { BI, BD } }, 28295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bta-", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, { BI, BDMA } }, 28305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bta+", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, { BI, BDPA } }, 28315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bta", BBO(16,BOT,1,0), BBOAT_MASK, PPCCOM, { BI, BDA } }, 28325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbta", BBO(16,BOT,1,0), BBOAT_MASK, PWRCOM, { BI, BDA } }, 28335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btla-", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, { BI, BDMA } }, 28345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btla+", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, { BI, BDPA } }, 28355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btla", BBO(16,BOT,1,1), BBOAT_MASK, PPCCOM, { BI, BDA } }, 28365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbtla", BBO(16,BOT,1,1), BBOAT_MASK, PWRCOM, { BI, BDA } }, 28375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bf-", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, { BI, BDM } }, 28385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bf+", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, { BI, BDP } }, 28395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bf", BBO(16,BOF,0,0), BBOAT_MASK, PPCCOM, { BI, BD } }, 28405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbf", BBO(16,BOF,0,0), BBOAT_MASK, PWRCOM, { BI, BD } }, 28415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfl-", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, { BI, BDM } }, 28425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfl+", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, { BI, BDP } }, 28435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfl", BBO(16,BOF,0,1), BBOAT_MASK, PPCCOM, { BI, BD } }, 28445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbfl", BBO(16,BOF,0,1), BBOAT_MASK, PWRCOM, { BI, BD } }, 28455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfa-", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, { BI, BDMA } }, 28465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfa+", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, { BI, BDPA } }, 28475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfa", BBO(16,BOF,1,0), BBOAT_MASK, PPCCOM, { BI, BDA } }, 28485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbfa", BBO(16,BOF,1,0), BBOAT_MASK, PWRCOM, { BI, BDA } }, 28495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfla-", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, { BI, BDMA } }, 28505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfla+", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, { BI, BDPA } }, 28515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfla", BBO(16,BOF,1,1), BBOAT_MASK, PPCCOM, { BI, BDA } }, 28525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbfla", BBO(16,BOF,1,1), BBOAT_MASK, PWRCOM, { BI, BDA } }, 28535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzt-", BBO(16,BODZT,0,0), BBOY_MASK, NOPOWER4, { BI, BDM } }, 28545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzt+", BBO(16,BODZT,0,0), BBOY_MASK, NOPOWER4, { BI, BDP } }, 28555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzt", BBO(16,BODZT,0,0), BBOY_MASK, PPCCOM, { BI, BD } }, 28565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztl-", BBO(16,BODZT,0,1), BBOY_MASK, NOPOWER4, { BI, BDM } }, 28575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztl+", BBO(16,BODZT,0,1), BBOY_MASK, NOPOWER4, { BI, BDP } }, 28585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztl", BBO(16,BODZT,0,1), BBOY_MASK, PPCCOM, { BI, BD } }, 28595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzta-", BBO(16,BODZT,1,0), BBOY_MASK, NOPOWER4, { BI, BDMA } }, 28605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzta+", BBO(16,BODZT,1,0), BBOY_MASK, NOPOWER4, { BI, BDPA } }, 28615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzta", BBO(16,BODZT,1,0), BBOY_MASK, PPCCOM, { BI, BDA } }, 28625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztla-", BBO(16,BODZT,1,1), BBOY_MASK, NOPOWER4, { BI, BDMA } }, 28635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztla+", BBO(16,BODZT,1,1), BBOY_MASK, NOPOWER4, { BI, BDPA } }, 28645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztla", BBO(16,BODZT,1,1), BBOY_MASK, PPCCOM, { BI, BDA } }, 28655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzf-", BBO(16,BODZF,0,0), BBOY_MASK, NOPOWER4, { BI, BDM } }, 28665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzf+", BBO(16,BODZF,0,0), BBOY_MASK, NOPOWER4, { BI, BDP } }, 28675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzf", BBO(16,BODZF,0,0), BBOY_MASK, PPCCOM, { BI, BD } }, 28685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzfl-", BBO(16,BODZF,0,1), BBOY_MASK, NOPOWER4, { BI, BDM } }, 28695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzfl+", BBO(16,BODZF,0,1), BBOY_MASK, NOPOWER4, { BI, BDP } }, 28705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzfl", BBO(16,BODZF,0,1), BBOY_MASK, PPCCOM, { BI, BD } }, 28715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzfa-", BBO(16,BODZF,1,0), BBOY_MASK, NOPOWER4, { BI, BDMA } }, 28725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzfa+", BBO(16,BODZF,1,0), BBOY_MASK, NOPOWER4, { BI, BDPA } }, 28735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzfa", BBO(16,BODZF,1,0), BBOY_MASK, PPCCOM, { BI, BDA } }, 28745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzfla-", BBO(16,BODZF,1,1), BBOY_MASK, NOPOWER4, { BI, BDMA } }, 28755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzfla+", BBO(16,BODZF,1,1), BBOY_MASK, NOPOWER4, { BI, BDPA } }, 28765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzfla", BBO(16,BODZF,1,1), BBOY_MASK, PPCCOM, { BI, BDA } }, 28775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bc-", B(16,0,0), B_MASK, PPCCOM, { BOE, BI, BDM } }, 28785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bc+", B(16,0,0), B_MASK, PPCCOM, { BOE, BI, BDP } }, 28795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bc", B(16,0,0), B_MASK, COM, { BO, BI, BD } }, 28805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcl-", B(16,0,1), B_MASK, PPCCOM, { BOE, BI, BDM } }, 28815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcl+", B(16,0,1), B_MASK, PPCCOM, { BOE, BI, BDP } }, 28825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcl", B(16,0,1), B_MASK, COM, { BO, BI, BD } }, 28835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bca-", B(16,1,0), B_MASK, PPCCOM, { BOE, BI, BDMA } }, 28845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bca+", B(16,1,0), B_MASK, PPCCOM, { BOE, BI, BDPA } }, 28855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bca", B(16,1,0), B_MASK, COM, { BO, BI, BDA } }, 28865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcla-", B(16,1,1), B_MASK, PPCCOM, { BOE, BI, BDMA } }, 28875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcla+", B(16,1,1), B_MASK, PPCCOM, { BOE, BI, BDPA } }, 28885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcla", B(16,1,1), B_MASK, COM, { BO, BI, BDA } }, 28895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 28905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sc", SC(17,1,0), SC_MASK, PPC, { LEV } }, 28915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "svc", SC(17,0,0), SC_MASK, POWER, { SVC_LEV, FL1, FL2 } }, 28925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "svcl", SC(17,0,1), SC_MASK, POWER, { SVC_LEV, FL1, FL2 } }, 28935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "svca", SC(17,1,0), SC_MASK, PWRCOM, { SV } }, 28948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "svcla", SC(17,1,1), SC_MASK, POWER, { SV } }, 28958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 28965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "b", B(18,0,0), B_MASK, COM, { LI } }, 28975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bl", B(18,0,1), B_MASK, COM, { LI } }, 28985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ba", B(18,1,0), B_MASK, COM, { LIA } }, 28995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bla", B(18,1,1), B_MASK, COM, { LIA } }, 29005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 29015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mcrf", XL(19,0), XLBB_MASK|(3 << 21)|(3 << 16), COM, { BF, BFA } }, 29025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 29035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blr", XLO(19,BOU,16,0), XLBOBIBB_MASK, PPCCOM, { 0 } }, 29045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "br", XLO(19,BOU,16,0), XLBOBIBB_MASK, PWRCOM, { 0 } }, 29055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blrl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PPCCOM, { 0 } }, 29065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "brl", XLO(19,BOU,16,1), XLBOBIBB_MASK, PWRCOM, { 0 } }, 29075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzlr", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, PPCCOM, { 0 } }, 29085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzlr-", XLO(19,BODNZ,16,0), XLBOBIBB_MASK, NOPOWER4, { 0 } }, 29095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzlr-", XLO(19,BODNZM4,16,0), XLBOBIBB_MASK, POWER4, { 0 } }, 29105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzlr+", XLO(19,BODNZP,16,0), XLBOBIBB_MASK, NOPOWER4, { 0 } }, 29115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzlr+", XLO(19,BODNZP4,16,0), XLBOBIBB_MASK, POWER4, { 0 } }, 29125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzlrl", XLO(19,BODNZ,16,1), XLBOBIBB_MASK, PPCCOM, { 0 } }, 29135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzlrl-",XLO(19,BODNZ,16,1), XLBOBIBB_MASK, NOPOWER4, { 0 } }, 29145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzlrl-",XLO(19,BODNZM4,16,1), XLBOBIBB_MASK, POWER4, { 0 } }, 29155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzlrl+",XLO(19,BODNZP,16,1), XLBOBIBB_MASK, NOPOWER4, { 0 } }, 29165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzlrl+",XLO(19,BODNZP4,16,1), XLBOBIBB_MASK, POWER4, { 0 } }, 29175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzlr", XLO(19,BODZ,16,0), XLBOBIBB_MASK, PPCCOM, { 0 } }, 29185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzlr-", XLO(19,BODZ,16,0), XLBOBIBB_MASK, NOPOWER4, { 0 } }, 29195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzlr-", XLO(19,BODZM4,16,0), XLBOBIBB_MASK, POWER4, { 0 } }, 29205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzlr+", XLO(19,BODZP,16,0), XLBOBIBB_MASK, NOPOWER4, { 0 } }, 29215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzlr+", XLO(19,BODZP4,16,0), XLBOBIBB_MASK, POWER4, { 0 } }, 29225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzlrl", XLO(19,BODZ,16,1), XLBOBIBB_MASK, PPCCOM, { 0 } }, 29235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzlrl-", XLO(19,BODZ,16,1), XLBOBIBB_MASK, NOPOWER4, { 0 } }, 29245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzlrl-", XLO(19,BODZM4,16,1), XLBOBIBB_MASK, POWER4, { 0 } }, 29255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzlrl+", XLO(19,BODZP,16,1), XLBOBIBB_MASK, NOPOWER4, { 0 } }, 29265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzlrl+", XLO(19,BODZP4,16,1), XLBOBIBB_MASK, POWER4, { 0 } }, 29275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltlr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 29285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltlr-", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltlr-", XLOCB(19,BOTM4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltlr+", XLOCB(19,BOTP,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltlr+", XLOCB(19,BOTP4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltr", XLOCB(19,BOT,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } }, 29335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltlrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 29345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltlrl-", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltlrl-", XLOCB(19,BOTM4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltlrl+", XLOCB(19,BOTP,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltlrl+", XLOCB(19,BOTP4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltrl", XLOCB(19,BOT,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } }, 29395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtlr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 29405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtlr-", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtlr-", XLOCB(19,BOTM4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtlr+", XLOCB(19,BOTP,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtlr+", XLOCB(19,BOTP4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtr", XLOCB(19,BOT,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } }, 29455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtlrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 29465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtlrl-", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtlrl-", XLOCB(19,BOTM4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtlrl+", XLOCB(19,BOTP,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtlrl+", XLOCB(19,BOTP4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtrl", XLOCB(19,BOT,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } }, 29515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqlr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 29525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqlr-", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqlr-", XLOCB(19,BOTM4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqlr+", XLOCB(19,BOTP,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqlr+", XLOCB(19,BOTP4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqr", XLOCB(19,BOT,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, { CR } }, 29575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqlrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 29585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqlrl-", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqlrl-", XLOCB(19,BOTM4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqlrl+", XLOCB(19,BOTP,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqlrl+", XLOCB(19,BOTP4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqrl", XLOCB(19,BOT,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, { CR } }, 29635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsolr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 29645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsolr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsolr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsolr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsolr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsor", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, { CR } }, 29695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsolrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 29705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsolrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsolrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsolrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsolrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsorl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, { CR } }, 29755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunlr", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 29765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunlr-", XLOCB(19,BOT,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunlr-", XLOCB(19,BOTM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunlr+", XLOCB(19,BOTP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunlr+", XLOCB(19,BOTP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunlrl", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 29815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunlrl-", XLOCB(19,BOT,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunlrl-", XLOCB(19,BOTM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunlrl+", XLOCB(19,BOTP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunlrl+", XLOCB(19,BOTP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgelr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 29865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgelr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgelr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgelr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgelr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 29905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bger", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } }, 29915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgelrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 29925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgelrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgelrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgelrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgelrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 29965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgerl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } }, 29975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnllr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 29985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnllr-", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 29995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnllr-", XLOCB(19,BOFM4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnllr+", XLOCB(19,BOFP,CBLT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnllr+", XLOCB(19,BOFP4,CBLT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlr", XLOCB(19,BOF,CBLT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } }, 30035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnllrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 30045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnllrl-", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnllrl-", XLOCB(19,BOFM4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnllrl+", XLOCB(19,BOFP,CBLT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnllrl+", XLOCB(19,BOFP4,CBLT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlrl", XLOCB(19,BOF,CBLT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } }, 30095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blelr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 30105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blelr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blelr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blelr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blelr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bler", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } }, 30155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blelrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 30165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blelrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blelrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blelrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blelrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blerl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } }, 30215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnglr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 30225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnglr-", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnglr-", XLOCB(19,BOFM4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnglr+", XLOCB(19,BOFP,CBGT,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnglr+", XLOCB(19,BOFP4,CBGT,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngr", XLOCB(19,BOF,CBGT,16,0), XLBOCBBB_MASK, PWRCOM, { CR } }, 30275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnglrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 30285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnglrl-", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnglrl-", XLOCB(19,BOFM4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnglrl+", XLOCB(19,BOFP,CBGT,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnglrl+", XLOCB(19,BOFP4,CBGT,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngrl", XLOCB(19,BOF,CBGT,16,1), XLBOCBBB_MASK, PWRCOM, { CR } }, 30335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnelr", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 30345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnelr-", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnelr-", XLOCB(19,BOFM4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnelr+", XLOCB(19,BOFP,CBEQ,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnelr+", XLOCB(19,BOFP4,CBEQ,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bner", XLOCB(19,BOF,CBEQ,16,0), XLBOCBBB_MASK, PWRCOM, { CR } }, 30395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnelrl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 30405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnelrl-", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnelrl-", XLOCB(19,BOFM4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnelrl+", XLOCB(19,BOFP,CBEQ,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnelrl+", XLOCB(19,BOFP4,CBEQ,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnerl", XLOCB(19,BOF,CBEQ,16,1), XLBOCBBB_MASK, PWRCOM, { CR } }, 30455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnslr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 30465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnslr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnslr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnslr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnslr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PWRCOM, { CR } }, 30515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnslrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 30525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnslrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnslrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnslrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnslrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PWRCOM, { CR } }, 30575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnulr", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 30585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnulr-", XLOCB(19,BOF,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnulr-", XLOCB(19,BOFM4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnulr+", XLOCB(19,BOFP,CBSO,16,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnulr+", XLOCB(19,BOFP4,CBSO,16,0), XLBOCBBB_MASK, POWER4, { CR } }, 30625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnulrl", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 30635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnulrl-", XLOCB(19,BOF,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnulrl-", XLOCB(19,BOFM4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnulrl+", XLOCB(19,BOFP,CBSO,16,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 30665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnulrl+", XLOCB(19,BOFP4,CBSO,16,1), XLBOCBBB_MASK, POWER4, { CR } }, 30675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btlr", XLO(19,BOT,16,0), XLBOBB_MASK, PPCCOM, { BI } }, 30685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btlr-", XLO(19,BOT,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 30695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btlr-", XLO(19,BOTM4,16,0), XLBOBB_MASK, POWER4, { BI } }, 30705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btlr+", XLO(19,BOTP,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 30715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btlr+", XLO(19,BOTP4,16,0), XLBOBB_MASK, POWER4, { BI } }, 30725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbtr", XLO(19,BOT,16,0), XLBOBB_MASK, PWRCOM, { BI } }, 30735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btlrl", XLO(19,BOT,16,1), XLBOBB_MASK, PPCCOM, { BI } }, 30745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btlrl-", XLO(19,BOT,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 30755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btlrl-", XLO(19,BOTM4,16,1), XLBOBB_MASK, POWER4, { BI } }, 30765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btlrl+", XLO(19,BOTP,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 30775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btlrl+", XLO(19,BOTP4,16,1), XLBOBB_MASK, POWER4, { BI } }, 30785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbtrl", XLO(19,BOT,16,1), XLBOBB_MASK, PWRCOM, { BI } }, 30795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bflr", XLO(19,BOF,16,0), XLBOBB_MASK, PPCCOM, { BI } }, 30805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bflr-", XLO(19,BOF,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 30815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bflr-", XLO(19,BOFM4,16,0), XLBOBB_MASK, POWER4, { BI } }, 30825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bflr+", XLO(19,BOFP,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 30835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bflr+", XLO(19,BOFP4,16,0), XLBOBB_MASK, POWER4, { BI } }, 30845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbfr", XLO(19,BOF,16,0), XLBOBB_MASK, PWRCOM, { BI } }, 30855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bflrl", XLO(19,BOF,16,1), XLBOBB_MASK, PPCCOM, { BI } }, 30865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bflrl-", XLO(19,BOF,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 30875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bflrl-", XLO(19,BOFM4,16,1), XLBOBB_MASK, POWER4, { BI } }, 30885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bflrl+", XLO(19,BOFP,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 30895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bflrl+", XLO(19,BOFP4,16,1), XLBOBB_MASK, POWER4, { BI } }, 30905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbfrl", XLO(19,BOF,16,1), XLBOBB_MASK, PWRCOM, { BI } }, 30915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztlr", XLO(19,BODNZT,16,0), XLBOBB_MASK, PPCCOM, { BI } }, 30925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztlr-",XLO(19,BODNZT,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 30935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztlr+",XLO(19,BODNZTP,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 30945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztlrl",XLO(19,BODNZT,16,1), XLBOBB_MASK, PPCCOM, { BI } }, 30955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztlrl-",XLO(19,BODNZT,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 30965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnztlrl+",XLO(19,BODNZTP,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 30975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzflr", XLO(19,BODNZF,16,0), XLBOBB_MASK, PPCCOM, { BI } }, 30985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzflr-",XLO(19,BODNZF,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 30995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzflr+",XLO(19,BODNZFP,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 31005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzflrl",XLO(19,BODNZF,16,1), XLBOBB_MASK, PPCCOM, { BI } }, 31015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzflrl-",XLO(19,BODNZF,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 31025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdnzflrl+",XLO(19,BODNZFP,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 31035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztlr", XLO(19,BODZT,16,0), XLBOBB_MASK, PPCCOM, { BI } }, 31045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztlr-", XLO(19,BODZT,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 31055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztlr+", XLO(19,BODZTP,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 31065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztlrl", XLO(19,BODZT,16,1), XLBOBB_MASK, PPCCOM, { BI } }, 31075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztlrl-",XLO(19,BODZT,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 31085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdztlrl+",XLO(19,BODZTP,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 31095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzflr", XLO(19,BODZF,16,0), XLBOBB_MASK, PPCCOM, { BI } }, 31105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzflr-", XLO(19,BODZF,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 31115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzflr+", XLO(19,BODZFP,16,0), XLBOBB_MASK, NOPOWER4, { BI } }, 31125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzflrl", XLO(19,BODZF,16,1), XLBOBB_MASK, PPCCOM, { BI } }, 31135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzflrl-",XLO(19,BODZF,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 31145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bdzflrl+",XLO(19,BODZFP,16,1), XLBOBB_MASK, NOPOWER4, { BI } }, 31155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bclr+", XLYLK(19,16,1,0), XLYBB_MASK, PPCCOM, { BOE, BI } }, 31165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bclrl+", XLYLK(19,16,1,1), XLYBB_MASK, PPCCOM, { BOE, BI } }, 31175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bclr-", XLYLK(19,16,0,0), XLYBB_MASK, PPCCOM, { BOE, BI } }, 31185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bclrl-", XLYLK(19,16,0,1), XLYBB_MASK, PPCCOM, { BOE, BI } }, 31195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bclr", XLLK(19,16,0), XLBH_MASK, PPCCOM, { BO, BI, BH } }, 31205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bclrl", XLLK(19,16,1), XLBH_MASK, PPCCOM, { BO, BI, BH } }, 31215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcr", XLLK(19,16,0), XLBB_MASK, PWRCOM, { BO, BI } }, 31225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcrl", XLLK(19,16,1), XLBB_MASK, PWRCOM, { BO, BI } }, 31235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bclre", XLLK(19,17,0), XLBB_MASK, BOOKE64, { BO, BI } }, 31245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bclrel", XLLK(19,17,1), XLBB_MASK, BOOKE64, { BO, BI } }, 31255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rfid", XL(19,18), 0xffffffff, PPC64, { 0 } }, 31275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "crnot", XL(19,33), XL_MASK, PPCCOM, { BT, BA, BBA } }, 31295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "crnor", XL(19,33), XL_MASK, COM, { BT, BA, BB } }, 31305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rfmci", X(19,38), 0xffffffff, PPCRFMCI, { 0 } }, 31315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rfi", XL(19,50), 0xffffffff, COM, { 0 } }, 31335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rfci", XL(19,51), 0xffffffff, PPC403 | BOOKE, { 0 } }, 31348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 31358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "rfsvc", XL(19,82), 0xffffffff, POWER, { 0 } }, 31368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 31375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "crandc", XL(19,129), XL_MASK, COM, { BT, BA, BB } }, 31385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "isync", XL(19,150), 0xffffffff, PPCCOM, { 0 } }, 31405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ics", XL(19,150), 0xffffffff, PWRCOM, { 0 } }, 31415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "crclr", XL(19,193), XL_MASK, PPCCOM, { BT, BAT, BBA } }, 31435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "crxor", XL(19,193), XL_MASK, COM, { BT, BA, BB } }, 31445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "crnand", XL(19,225), XL_MASK, COM, { BT, BA, BB } }, 31465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "crand", XL(19,257), XL_MASK, COM, { BT, BA, BB } }, 31485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "hrfid", XL(19,274), 0xffffffff, POWER5 | CELL, { 0 } }, 31505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "crset", XL(19,289), XL_MASK, PPCCOM, { BT, BAT, BBA } }, 31525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "creqv", XL(19,289), XL_MASK, COM, { BT, BA, BB } }, 31535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "doze", XL(19,402), 0xffffffff, POWER6, { 0 } }, 31555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "crorc", XL(19,417), XL_MASK, COM, { BT, BA, BB } }, 31575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nap", XL(19,434), 0xffffffff, POWER6, { 0 } }, 31595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "crmove", XL(19,449), XL_MASK, PPCCOM, { BT, BA, BBA } }, 31615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cror", XL(19,449), XL_MASK, COM, { BT, BA, BB } }, 31625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sleep", XL(19,466), 0xffffffff, POWER6, { 0 } }, 31645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rvwinkle", XL(19,498), 0xffffffff, POWER6, { 0 } }, 31655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 31665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bctr", XLO(19,BOU,528,0), XLBOBIBB_MASK, COM, { 0 } }, 31675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bctrl", XLO(19,BOU,528,1), XLBOBIBB_MASK, COM, { 0 } }, 31685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltctr", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 31695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltctr-", XLOCB(19,BOT,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltctr-", XLOCB(19,BOTM4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 31715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltctr+", XLOCB(19,BOTP,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltctr+", XLOCB(19,BOTP4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 31735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltctrl", XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 31745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltctrl-",XLOCB(19,BOT,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltctrl-",XLOCB(19,BOTM4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 31765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltctrl+",XLOCB(19,BOTP,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bltctrl+",XLOCB(19,BOTP4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 31785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtctr", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 31795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtctr-", XLOCB(19,BOT,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtctr-", XLOCB(19,BOTM4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 31815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtctr+", XLOCB(19,BOTP,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtctr+", XLOCB(19,BOTP4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 31835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtctrl", XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 31845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtctrl-",XLOCB(19,BOT,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtctrl-",XLOCB(19,BOTM4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 31865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtctrl+",XLOCB(19,BOTP,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgtctrl+",XLOCB(19,BOTP4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 31885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqctr", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 31895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqctr-", XLOCB(19,BOT,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqctr-", XLOCB(19,BOTM4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 31915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqctr+", XLOCB(19,BOTP,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqctr+", XLOCB(19,BOTP4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 31935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqctrl", XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 31945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqctrl-",XLOCB(19,BOT,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqctrl-",XLOCB(19,BOTM4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 31965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqctrl+",XLOCB(19,BOTP,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 31975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "beqctrl+",XLOCB(19,BOTP4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 31985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 31995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 32045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bsoctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunctr", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 32095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunctr-", XLOCB(19,BOT,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunctr-", XLOCB(19,BOTM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunctr+", XLOCB(19,BOTP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunctr+", XLOCB(19,BOTP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunctrl", XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 32145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunctrl-",XLOCB(19,BOT,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunctrl-",XLOCB(19,BOTM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunctrl+",XLOCB(19,BOTP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bunctrl+",XLOCB(19,BOTP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgectr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 32195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgectr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgectr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgectr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgectr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgectrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 32245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgectrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgectrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgectrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bgectrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlctr", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 32295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlctr-", XLOCB(19,BOF,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlctr-", XLOCB(19,BOFM4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlctr+", XLOCB(19,BOFP,CBLT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlctr+", XLOCB(19,BOFP4,CBLT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlctrl", XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 32345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlctrl-",XLOCB(19,BOF,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlctrl-",XLOCB(19,BOFM4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlctrl+",XLOCB(19,BOFP,CBLT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnlctrl+",XLOCB(19,BOFP4,CBLT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blectr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 32395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blectr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blectr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blectr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blectr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blectrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 32445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blectrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blectrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blectrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "blectrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngctr", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 32495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngctr-", XLOCB(19,BOF,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngctr-", XLOCB(19,BOFM4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngctr+", XLOCB(19,BOFP,CBGT,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngctr+", XLOCB(19,BOFP4,CBGT,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngctrl", XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 32545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngctrl-",XLOCB(19,BOF,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngctrl-",XLOCB(19,BOFM4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngctrl+",XLOCB(19,BOFP,CBGT,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bngctrl+",XLOCB(19,BOFP4,CBGT,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnectr", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 32595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnectr-", XLOCB(19,BOF,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnectr-", XLOCB(19,BOFM4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnectr+", XLOCB(19,BOFP,CBEQ,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnectr+", XLOCB(19,BOFP4,CBEQ,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnectrl", XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 32645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnectrl-",XLOCB(19,BOF,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnectrl-",XLOCB(19,BOFM4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnectrl+",XLOCB(19,BOFP,CBEQ,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnectrl+",XLOCB(19,BOFP4,CBEQ,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 32695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 32745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnsctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnuctr", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, PPCCOM, { CR } }, 32795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnuctr-", XLOCB(19,BOF,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnuctr-", XLOCB(19,BOFM4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnuctr+", XLOCB(19,BOFP,CBSO,528,0), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnuctr+", XLOCB(19,BOFP4,CBSO,528,0), XLBOCBBB_MASK, POWER4, { CR } }, 32835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnuctrl", XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, PPCCOM, { CR } }, 32845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnuctrl-",XLOCB(19,BOF,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnuctrl-",XLOCB(19,BOFM4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnuctrl+",XLOCB(19,BOFP,CBSO,528,1), XLBOCBBB_MASK, NOPOWER4, { CR } }, 32875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bnuctrl+",XLOCB(19,BOFP4,CBSO,528,1), XLBOCBBB_MASK, POWER4, { CR } }, 32885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btctr", XLO(19,BOT,528,0), XLBOBB_MASK, PPCCOM, { BI } }, 32895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btctr-", XLO(19,BOT,528,0), XLBOBB_MASK, NOPOWER4, { BI } }, 32905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btctr-", XLO(19,BOTM4,528,0), XLBOBB_MASK, POWER4, { BI } }, 32915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btctr+", XLO(19,BOTP,528,0), XLBOBB_MASK, NOPOWER4, { BI } }, 32925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btctr+", XLO(19,BOTP4,528,0), XLBOBB_MASK, POWER4, { BI } }, 32935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btctrl", XLO(19,BOT,528,1), XLBOBB_MASK, PPCCOM, { BI } }, 32945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btctrl-", XLO(19,BOT,528,1), XLBOBB_MASK, NOPOWER4, { BI } }, 32955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btctrl-", XLO(19,BOTM4,528,1), XLBOBB_MASK, POWER4, { BI } }, 32965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btctrl+", XLO(19,BOTP,528,1), XLBOBB_MASK, NOPOWER4, { BI } }, 32975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "btctrl+", XLO(19,BOTP4,528,1), XLBOBB_MASK, POWER4, { BI } }, 32985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfctr", XLO(19,BOF,528,0), XLBOBB_MASK, PPCCOM, { BI } }, 32995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfctr-", XLO(19,BOF,528,0), XLBOBB_MASK, NOPOWER4, { BI } }, 33005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfctr-", XLO(19,BOFM4,528,0), XLBOBB_MASK, POWER4, { BI } }, 33015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfctr+", XLO(19,BOFP,528,0), XLBOBB_MASK, NOPOWER4, { BI } }, 33025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfctr+", XLO(19,BOFP4,528,0), XLBOBB_MASK, POWER4, { BI } }, 33035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfctrl", XLO(19,BOF,528,1), XLBOBB_MASK, PPCCOM, { BI } }, 33045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfctrl-", XLO(19,BOF,528,1), XLBOBB_MASK, NOPOWER4, { BI } }, 33055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfctrl-", XLO(19,BOFM4,528,1), XLBOBB_MASK, POWER4, { BI } }, 33065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfctrl+", XLO(19,BOFP,528,1), XLBOBB_MASK, NOPOWER4, { BI } }, 33075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bfctrl+", XLO(19,BOFP4,528,1), XLBOBB_MASK, POWER4, { BI } }, 33085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcctr-", XLYLK(19,528,0,0), XLYBB_MASK, PPCCOM, { BOE, BI } }, 33095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcctr+", XLYLK(19,528,1,0), XLYBB_MASK, PPCCOM, { BOE, BI } }, 33105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcctrl-", XLYLK(19,528,0,1), XLYBB_MASK, PPCCOM, { BOE, BI } }, 33115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcctrl+", XLYLK(19,528,1,1), XLYBB_MASK, PPCCOM, { BOE, BI } }, 33125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcctr", XLLK(19,528,0), XLBH_MASK, PPCCOM, { BO, BI, BH } }, 33135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcctrl", XLLK(19,528,1), XLBH_MASK, PPCCOM, { BO, BI, BH } }, 33145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcc", XLLK(19,528,0), XLBB_MASK, PWRCOM, { BO, BI } }, 33155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bccl", XLLK(19,528,1), XLBB_MASK, PWRCOM, { BO, BI } }, 33165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcctre", XLLK(19,529,0), XLBB_MASK, BOOKE64, { BO, BI } }, 33175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bcctrel", XLLK(19,529,1), XLBB_MASK, BOOKE64, { BO, BI } }, 33185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlwimi", M(20,0), M_MASK, PPCCOM, { RA,RS,SH,MBE,ME } }, 33205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlimi", M(20,0), M_MASK, PWRCOM, { RA,RS,SH,MBE,ME } }, 33215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlwimi.", M(20,1), M_MASK, PPCCOM, { RA,RS,SH,MBE,ME } }, 33235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlimi.", M(20,1), M_MASK, PWRCOM, { RA,RS,SH,MBE,ME } }, 33245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotlwi", MME(21,31,0), MMBME_MASK, PPCCOM, { RA, RS, SH } }, 33265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrlwi", MME(21,31,0), MSHME_MASK, PPCCOM, { RA, RS, MB } }, 33275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlwinm", M(21,0), M_MASK, PPCCOM, { RA,RS,SH,MBE,ME } }, 33285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlinm", M(21,0), M_MASK, PWRCOM, { RA,RS,SH,MBE,ME } }, 33295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotlwi.", MME(21,31,1), MMBME_MASK, PPCCOM, { RA,RS,SH } }, 33305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrlwi.", MME(21,31,1), MSHME_MASK, PPCCOM, { RA, RS, MB } }, 33315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlwinm.", M(21,1), M_MASK, PPCCOM, { RA,RS,SH,MBE,ME } }, 33325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlinm.", M(21,1), M_MASK, PWRCOM, { RA,RS,SH,MBE,ME } }, 33335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlmi", M(22,0), M_MASK, M601, { RA,RS,RB,MBE,ME } }, 33355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlmi.", M(22,1), M_MASK, M601, { RA,RS,RB,MBE,ME } }, 33365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "be", B(22,0,0), B_MASK, BOOKE64, { LI } }, 33385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bel", B(22,0,1), B_MASK, BOOKE64, { LI } }, 33395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bea", B(22,1,0), B_MASK, BOOKE64, { LIA } }, 33405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bela", B(22,1,1), B_MASK, BOOKE64, { LIA } }, 33415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotlw", MME(23,31,0), MMBME_MASK, PPCCOM, { RA, RS, RB } }, 33435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlwnm", M(23,0), M_MASK, PPCCOM, { RA,RS,RB,MBE,ME } }, 33445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlnm", M(23,0), M_MASK, PWRCOM, { RA,RS,RB,MBE,ME } }, 33455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotlw.", MME(23,31,1), MMBME_MASK, PPCCOM, { RA, RS, RB } }, 33465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlwnm.", M(23,1), M_MASK, PPCCOM, { RA,RS,RB,MBE,ME } }, 33475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rlnm.", M(23,1), M_MASK, PWRCOM, { RA,RS,RB,MBE,ME } }, 33485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nop", OP(24), 0xffffffff, PPCCOM, { 0 } }, 33505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ori", OP(24), OP_MASK, PPCCOM, { RA, RS, UI } }, 33515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "oril", OP(24), OP_MASK, PWRCOM, { RA, RS, UI } }, 33525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "oris", OP(25), OP_MASK, PPCCOM, { RA, RS, UI } }, 33545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "oriu", OP(25), OP_MASK, PWRCOM, { RA, RS, UI } }, 33555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "xori", OP(26), OP_MASK, PPCCOM, { RA, RS, UI } }, 33575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "xoril", OP(26), OP_MASK, PWRCOM, { RA, RS, UI } }, 33585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "xoris", OP(27), OP_MASK, PPCCOM, { RA, RS, UI } }, 33605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "xoriu", OP(27), OP_MASK, PWRCOM, { RA, RS, UI } }, 33615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "andi.", OP(28), OP_MASK, PPCCOM, { RA, RS, UI } }, 33635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "andil.", OP(28), OP_MASK, PWRCOM, { RA, RS, UI } }, 33645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "andis.", OP(29), OP_MASK, PPCCOM, { RA, RS, UI } }, 33665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "andiu.", OP(29), OP_MASK, PWRCOM, { RA, RS, UI } }, 33675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotldi", MD(30,0,0), MDMB_MASK, PPC64, { RA, RS, SH6 } }, 33695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrldi", MD(30,0,0), MDSH_MASK, PPC64, { RA, RS, MB6 } }, 33705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldicl", MD(30,0,0), MD_MASK, PPC64, { RA, RS, SH6, MB6 } }, 33715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotldi.", MD(30,0,1), MDMB_MASK, PPC64, { RA, RS, SH6 } }, 33725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrldi.", MD(30,0,1), MDSH_MASK, PPC64, { RA, RS, MB6 } }, 33735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldicl.", MD(30,0,1), MD_MASK, PPC64, { RA, RS, SH6, MB6 } }, 33745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldicr", MD(30,1,0), MD_MASK, PPC64, { RA, RS, SH6, ME6 } }, 33765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldicr.", MD(30,1,1), MD_MASK, PPC64, { RA, RS, SH6, ME6 } }, 33775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldic", MD(30,2,0), MD_MASK, PPC64, { RA, RS, SH6, MB6 } }, 33795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldic.", MD(30,2,1), MD_MASK, PPC64, { RA, RS, SH6, MB6 } }, 33805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldimi", MD(30,3,0), MD_MASK, PPC64, { RA, RS, SH6, MB6 } }, 33825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldimi.", MD(30,3,1), MD_MASK, PPC64, { RA, RS, SH6, MB6 } }, 33835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotld", MDS(30,8,0), MDSMB_MASK, PPC64, { RA, RS, RB } }, 33855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldcl", MDS(30,8,0), MDS_MASK, PPC64, { RA, RS, RB, MB6 } }, 33865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotld.", MDS(30,8,1), MDSMB_MASK, PPC64, { RA, RS, RB } }, 33875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldcl.", MDS(30,8,1), MDS_MASK, PPC64, { RA, RS, RB, MB6 } }, 33885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldcr", MDS(30,9,0), MDS_MASK, PPC64, { RA, RS, RB, ME6 } }, 33905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rldcr.", MDS(30,9,1), MDS_MASK, PPC64, { RA, RS, RB, ME6 } }, 33915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpw", XOPL(31,0,0), XCMPL_MASK, PPCCOM, { OBF, RA, RB } }, 33935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpd", XOPL(31,0,1), XCMPL_MASK, PPC64, { OBF, RA, RB } }, 33948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "cmp", X(31,0), XCMP_MASK, PPC, { BF, L, RA, RB } }, 33955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmp", X(31,0), XCMPL_MASK, PWRCOM, { BF, RA, RB } }, 33965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 33975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlgt", XTO(31,4,TOLGT), XTO_MASK, PPCCOM, { RA, RB } }, 33985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlgt", XTO(31,4,TOLGT), XTO_MASK, PWRCOM, { RA, RB } }, 33995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twllt", XTO(31,4,TOLLT), XTO_MASK, PPCCOM, { RA, RB } }, 34005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tllt", XTO(31,4,TOLLT), XTO_MASK, PWRCOM, { RA, RB } }, 34015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tweq", XTO(31,4,TOEQ), XTO_MASK, PPCCOM, { RA, RB } }, 34025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "teq", XTO(31,4,TOEQ), XTO_MASK, PWRCOM, { RA, RB } }, 34035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlge", XTO(31,4,TOLGE), XTO_MASK, PPCCOM, { RA, RB } }, 34045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlge", XTO(31,4,TOLGE), XTO_MASK, PWRCOM, { RA, RB } }, 34055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlnl", XTO(31,4,TOLNL), XTO_MASK, PPCCOM, { RA, RB } }, 34065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlnl", XTO(31,4,TOLNL), XTO_MASK, PWRCOM, { RA, RB } }, 34075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlle", XTO(31,4,TOLLE), XTO_MASK, PPCCOM, { RA, RB } }, 34085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlle", XTO(31,4,TOLLE), XTO_MASK, PWRCOM, { RA, RB } }, 34095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlng", XTO(31,4,TOLNG), XTO_MASK, PPCCOM, { RA, RB } }, 34105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlng", XTO(31,4,TOLNG), XTO_MASK, PWRCOM, { RA, RB } }, 34115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twgt", XTO(31,4,TOGT), XTO_MASK, PPCCOM, { RA, RB } }, 34125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tgt", XTO(31,4,TOGT), XTO_MASK, PWRCOM, { RA, RB } }, 34135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twge", XTO(31,4,TOGE), XTO_MASK, PPCCOM, { RA, RB } }, 34145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tge", XTO(31,4,TOGE), XTO_MASK, PWRCOM, { RA, RB } }, 34155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twnl", XTO(31,4,TONL), XTO_MASK, PPCCOM, { RA, RB } }, 34165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tnl", XTO(31,4,TONL), XTO_MASK, PWRCOM, { RA, RB } }, 34175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twlt", XTO(31,4,TOLT), XTO_MASK, PPCCOM, { RA, RB } }, 34185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlt", XTO(31,4,TOLT), XTO_MASK, PWRCOM, { RA, RB } }, 34195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twle", XTO(31,4,TOLE), XTO_MASK, PPCCOM, { RA, RB } }, 34205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tle", XTO(31,4,TOLE), XTO_MASK, PWRCOM, { RA, RB } }, 34215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twng", XTO(31,4,TONG), XTO_MASK, PPCCOM, { RA, RB } }, 34225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tng", XTO(31,4,TONG), XTO_MASK, PWRCOM, { RA, RB } }, 34235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "twne", XTO(31,4,TONE), XTO_MASK, PPCCOM, { RA, RB } }, 34245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tne", XTO(31,4,TONE), XTO_MASK, PWRCOM, { RA, RB } }, 34255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "trap", XTO(31,4,TOU), 0xffffffff, PPCCOM, { 0 } }, 34265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tw", X(31,4), X_MASK, PPCCOM, { TO, RA, RB } }, 34275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "t", X(31,4), X_MASK, PWRCOM, { TO, RA, RB } }, 34285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 34295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfc", XO(31,8,0,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 34305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sf", XO(31,8,0,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 34318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "subc", XO(31,8,0,0), XO_MASK, PPC, { RT, RB, RA } }, 34325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfc.", XO(31,8,0,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 34335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sf.", XO(31,8,0,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 34345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subc.", XO(31,8,0,1), XO_MASK, PPCCOM, { RT, RB, RA } }, 34355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfco", XO(31,8,1,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 34365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfo", XO(31,8,1,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 34378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "subco", XO(31,8,1,0), XO_MASK, PPC, { RT, RB, RA } }, 34385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfco.", XO(31,8,1,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 34395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfo.", XO(31,8,1,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 34408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "subco.", XO(31,8,1,1), XO_MASK, PPC, { RT, RB, RA } }, 34418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulhdu", XO(31,9,0,0), XO_MASK, PPC64, { RT, RA, RB } }, 34435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulhdu.", XO(31,9,0,1), XO_MASK, PPC64, { RT, RA, RB } }, 34448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addc", XO(31,10,0,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 34465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "a", XO(31,10,0,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 34475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addc.", XO(31,10,0,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 34485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "a.", XO(31,10,0,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 34495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addco", XO(31,10,1,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 34505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ao", XO(31,10,1,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 34515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addco.", XO(31,10,1,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 34525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ao.", XO(31,10,1,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 34538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "mulhwu", XO(31,11,0,0), XO_MASK, PPC, { RT, RA, RB } }, 34558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "mulhwu.", XO(31,11,0,1), XO_MASK, PPC, { RT, RA, RB } }, 34568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "isellt", X(31,15), X_MASK, PPCISEL, { RT, RA, RB } }, 34585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "iselgt", X(31,47), X_MASK, PPCISEL, { RT, RA, RB } }, 34595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "iseleq", X(31,79), X_MASK, PPCISEL, { RT, RA, RB } }, 34605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "isel", XISEL(31,15), XISEL_MASK, PPCISEL, { RT, RA, RB, CRB } }, 34615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 34625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfocrf", XFXM(31,19,0,1), XFXFXM_MASK, COM, { RT, FXM } }, 34635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcr", X(31,19), XRARB_MASK, NOPOWER4 | COM, { RT } }, 34645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcr", X(31,19), XFXFXM_MASK, POWER4, { RT, FXM4 } }, 34655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 34665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwarx", X(31,20), XEH_MASK, PPC, { RT, RA0, RB, EH } }, 34678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ldx", X(31,21), X_MASK, PPC64, { RT, RA0, RB } }, 34698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "icbt", X(31,22), X_MASK, BOOKE|PPCE300, { CT, RA, RB } }, 34715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "icbt", X(31,262), XRT_MASK, PPC403, { RA, RB } }, 34728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwzx", X(31,23), X_MASK, PPCCOM, { RT, RA0, RB } }, 34745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lx", X(31,23), X_MASK, PWRCOM, { RT, RA, RB } }, 34758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slw", XRC(31,24,0), X_MASK, PPCCOM, { RA, RS, RB } }, 34775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sl", XRC(31,24,0), X_MASK, PWRCOM, { RA, RS, RB } }, 34785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slw.", XRC(31,24,1), X_MASK, PPCCOM, { RA, RS, RB } }, 34795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sl.", XRC(31,24,1), X_MASK, PWRCOM, { RA, RS, RB } }, 34808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cntlzw", XRC(31,26,0), XRB_MASK, PPCCOM, { RA, RS } }, 34825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cntlz", XRC(31,26,0), XRB_MASK, PWRCOM, { RA, RS } }, 34835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cntlzw.", XRC(31,26,1), XRB_MASK, PPCCOM, { RA, RS } }, 34845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cntlz.", XRC(31,26,1), XRB_MASK, PWRCOM, { RA, RS } }, 34858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sld", XRC(31,27,0), X_MASK, PPC64, { RA, RS, RB } }, 34875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sld.", XRC(31,27,1), X_MASK, PPC64, { RA, RS, RB } }, 34888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "and", XRC(31,28,0), X_MASK, COM, { RA, RS, RB } }, 34905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "and.", XRC(31,28,1), X_MASK, COM, { RA, RS, RB } }, 34918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maskg", XRC(31,29,0), X_MASK, M601, { RA, RS, RB } }, 34935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maskg.", XRC(31,29,1), X_MASK, M601, { RA, RS, RB } }, 34948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 34955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "icbte", X(31,30), X_MASK, BOOKE64, { CT, RA, RB } }, 34965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 34975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwzxe", X(31,31), X_MASK, BOOKE64, { RT, RA0, RB } }, 34985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 34995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmplw", XOPL(31,32,0), XCMPL_MASK, PPCCOM, { OBF, RA, RB } }, 35005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpld", XOPL(31,32,1), XCMPL_MASK, PPC64, { OBF, RA, RB } }, 35015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpl", X(31,32), XCMP_MASK, PPC, { BF, L, RA, RB } }, 35025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpl", X(31,32), XCMPL_MASK, PWRCOM, { BF, RA, RB } }, 35038b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "subf", XO(31,40,0,0), XO_MASK, PPC, { RT, RA, RB } }, 35058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "sub", XO(31,40,0,0), XO_MASK, PPC, { RT, RB, RA } }, 35068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "subf.", XO(31,40,0,1), XO_MASK, PPC, { RT, RA, RB } }, 35078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "sub.", XO(31,40,0,1), XO_MASK, PPC, { RT, RB, RA } }, 35088b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "subfo", XO(31,40,1,0), XO_MASK, PPC, { RT, RA, RB } }, 35098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "subo", XO(31,40,1,0), XO_MASK, PPC, { RT, RB, RA } }, 35108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "subfo.", XO(31,40,1,1), XO_MASK, PPC, { RT, RA, RB } }, 35118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "subo.", XO(31,40,1,1), XO_MASK, PPC, { RT, RB, RA } }, 35128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ldux", X(31,53), X_MASK, PPC64, { RT, RAL, RB } }, 35148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "dcbst", X(31,54), XRT_MASK, PPC, { RA, RB } }, 35168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwzux", X(31,55), X_MASK, PPCCOM, { RT, RAL, RB } }, 35185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lux", X(31,55), X_MASK, PWRCOM, { RT, RA, RB } }, 35195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbste", X(31,62), XRT_MASK, BOOKE64, { RA, RB } }, 35215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwzuxe", X(31,63), X_MASK, BOOKE64, { RT, RAL, RB } }, 35235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cntlzd", XRC(31,58,0), XRB_MASK, PPC64, { RA, RS } }, 35255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cntlzd.", XRC(31,58,1), XRB_MASK, PPC64, { RA, RS } }, 35265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "andc", XRC(31,60,0), X_MASK, COM, { RA, RS, RB } }, 35285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "andc.", XRC(31,60,1), X_MASK, COM, { RA, RS, RB } }, 35295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlgt", XTO(31,68,TOLGT), XTO_MASK, PPC64, { RA, RB } }, 35315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdllt", XTO(31,68,TOLLT), XTO_MASK, PPC64, { RA, RB } }, 35325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdeq", XTO(31,68,TOEQ), XTO_MASK, PPC64, { RA, RB } }, 35335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlge", XTO(31,68,TOLGE), XTO_MASK, PPC64, { RA, RB } }, 35345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlnl", XTO(31,68,TOLNL), XTO_MASK, PPC64, { RA, RB } }, 35355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlle", XTO(31,68,TOLLE), XTO_MASK, PPC64, { RA, RB } }, 35365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlng", XTO(31,68,TOLNG), XTO_MASK, PPC64, { RA, RB } }, 35375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdgt", XTO(31,68,TOGT), XTO_MASK, PPC64, { RA, RB } }, 35385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdge", XTO(31,68,TOGE), XTO_MASK, PPC64, { RA, RB } }, 35395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdnl", XTO(31,68,TONL), XTO_MASK, PPC64, { RA, RB } }, 35405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdlt", XTO(31,68,TOLT), XTO_MASK, PPC64, { RA, RB } }, 35415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdle", XTO(31,68,TOLE), XTO_MASK, PPC64, { RA, RB } }, 35425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdng", XTO(31,68,TONG), XTO_MASK, PPC64, { RA, RB } }, 35435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tdne", XTO(31,68,TONE), XTO_MASK, PPC64, { RA, RB } }, 35445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "td", X(31,68), X_MASK, PPC64, { TO, RA, RB } }, 35455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulhd", XO(31,73,0,0), XO_MASK, PPC64, { RT, RA, RB } }, 35475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulhd.", XO(31,73,0,1), XO_MASK, PPC64, { RT, RA, RB } }, 35488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "mulhw", XO(31,75,0,0), XO_MASK, PPC, { RT, RA, RB } }, 35508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "mulhw.", XO(31,75,0,1), XO_MASK, PPC, { RT, RA, RB } }, 35518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dlmzb", XRC(31,78,0), X_MASK, PPC403|PPC440, { RA, RS, RB } }, 35535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dlmzb.", XRC(31,78,1), X_MASK, PPC403|PPC440, { RA, RS, RB } }, 35545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsrd", X(31,82), XRB_MASK|(1<<20), PPC64, { SR, RS } }, 35565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmsr", X(31,83), XRARB_MASK, COM, { RT } }, 35585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ldarx", X(31,84), XEH_MASK, PPC64, { RT, RA0, RB, EH } }, 35605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbfl", XOPL(31,86,1), XRT_MASK, POWER5, { RA, RB } }, 35625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbf", X(31,86), XLRT_MASK, PPC, { RA, RB, L } }, 35635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lbzx", X(31,87), X_MASK, COM, { RT, RA0, RB } }, 35655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbfe", X(31,94), XRT_MASK, BOOKE64, { RA, RB } }, 35675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lbzxe", X(31,95), X_MASK, BOOKE64, { RT, RA0, RB } }, 35695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 35705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "neg", XO(31,104,0,0), XORB_MASK, COM, { RT, RA } }, 35715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "neg.", XO(31,104,0,1), XORB_MASK, COM, { RT, RA } }, 35725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nego", XO(31,104,1,0), XORB_MASK, COM, { RT, RA } }, 35735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nego.", XO(31,104,1,1), XORB_MASK, COM, { RT, RA } }, 35748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mul", XO(31,107,0,0), XO_MASK, M601, { RT, RA, RB } }, 35765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mul.", XO(31,107,0,1), XO_MASK, M601, { RT, RA, RB } }, 35775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulo", XO(31,107,1,0), XO_MASK, M601, { RT, RA, RB } }, 35785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulo.", XO(31,107,1,1), XO_MASK, M601, { RT, RA, RB } }, 35798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsrdin", X(31,114), XRA_MASK, PPC64, { RS, RB } }, 35818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clf", X(31,118), XTO_MASK, POWER, { RA, RB } }, 35838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lbzux", X(31,119), X_MASK, COM, { RT, RAL, RB } }, 35858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "popcntb", X(31,122), XRB_MASK, POWER5, { RA, RS } }, 35878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "not", XRC(31,124,0), X_MASK, COM, { RA, RS, RBS } }, 35895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nor", XRC(31,124,0), X_MASK, COM, { RA, RS, RB } }, 35905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "not.", XRC(31,124,1), X_MASK, COM, { RA, RS, RBS } }, 35915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nor.", XRC(31,124,1), X_MASK, COM, { RA, RS, RB } }, 35928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwarxe", X(31,126), X_MASK, BOOKE64, { RT, RA0, RB } }, 35948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lbzuxe", X(31,127), X_MASK, BOOKE64, { RT, RAL, RB } }, 35968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "wrtee", X(31,131), XRARB_MASK, PPC403 | BOOKE, { RS } }, 35988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 35995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbtstls",X(31,134), X_MASK, PPCCHLK, { CT, RA, RB }}, 36008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfe", XO(31,136,0,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 36025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfe", XO(31,136,0,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 36035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfe.", XO(31,136,0,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 36045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfe.", XO(31,136,0,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 36055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfeo", XO(31,136,1,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 36065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfeo", XO(31,136,1,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 36075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfeo.", XO(31,136,1,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 36085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfeo.", XO(31,136,1,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 36098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "adde", XO(31,138,0,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 36115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ae", XO(31,138,0,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 36125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "adde.", XO(31,138,0,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 36135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ae.", XO(31,138,0,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 36145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addeo", XO(31,138,1,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 36155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "aeo", XO(31,138,1,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 36165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addeo.", XO(31,138,1,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 36175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "aeo.", XO(31,138,1,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 36188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbtstlse",X(31,142),X_MASK, PPCCHLK64, { CT, RA, RB }}, 36208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtocrf", XFXM(31,144,0,1), XFXFXM_MASK, COM, { FXM, RS } }, 36225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcr", XFXM(31,144,0xff,0), XRARB_MASK, COM, { RS }}, 36235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcrf", X(31,144), XFXFXM_MASK, COM, { FXM, RS } }, 36248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtmsr", X(31,146), XRARB_MASK, COM, { RS } }, 36268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stdx", X(31,149), X_MASK, PPC64, { RS, RA0, RB } }, 36288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwcx.", XRC(31,150,1), X_MASK, PPC, { RS, RA0, RB } }, 36308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwx", X(31,151), X_MASK, PPCCOM, { RS, RA0, RB } }, 36325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stx", X(31,151), X_MASK, PWRCOM, { RS, RA, RB } }, 36338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwcxe.", XRC(31,158,1), X_MASK, BOOKE64, { RS, RA0, RB } }, 36358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwxe", X(31,159), X_MASK, BOOKE64, { RS, RA0, RB } }, 36378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slq", XRC(31,152,0), X_MASK, M601, { RA, RS, RB } }, 36395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slq.", XRC(31,152,1), X_MASK, M601, { RA, RS, RB } }, 36408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sle", XRC(31,153,0), X_MASK, M601, { RA, RS, RB } }, 36425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sle.", XRC(31,153,1), X_MASK, M601, { RA, RS, RB } }, 36438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "prtyw", X(31,154), XRB_MASK, POWER6, { RA, RS } }, 36458b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "wrteei", X(31,163), XE_MASK, PPC403 | BOOKE, { E } }, 36478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbtls", X(31,166), X_MASK, PPCCHLK, { CT, RA, RB }}, 36495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbtlse", X(31,174), X_MASK, PPCCHLK64, { CT, RA, RB }}, 36508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtmsrd", X(31,178), XRLARB_MASK, PPC64, { RS, A_L } }, 36528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stdux", X(31,181), X_MASK, PPC64, { RS, RAS, RB } }, 36548b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwux", X(31,183), X_MASK, PPCCOM, { RS, RAS, RB } }, 36565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stux", X(31,183), X_MASK, PWRCOM, { RS, RA0, RB } }, 36578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sliq", XRC(31,184,0), X_MASK, M601, { RA, RS, SH } }, 36595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sliq.", XRC(31,184,1), X_MASK, M601, { RA, RS, SH } }, 36608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "prtyd", X(31,186), XRB_MASK, POWER6, { RA, RS } }, 36628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwuxe", X(31,191), X_MASK, BOOKE64, { RS, RAS, RB } }, 36648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfze", XO(31,200,0,0), XORB_MASK, PPCCOM, { RT, RA } }, 36665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfze", XO(31,200,0,0), XORB_MASK, PWRCOM, { RT, RA } }, 36675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfze.", XO(31,200,0,1), XORB_MASK, PPCCOM, { RT, RA } }, 36685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfze.", XO(31,200,0,1), XORB_MASK, PWRCOM, { RT, RA } }, 36695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfzeo", XO(31,200,1,0), XORB_MASK, PPCCOM, { RT, RA } }, 36705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfzeo", XO(31,200,1,0), XORB_MASK, PWRCOM, { RT, RA } }, 36715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfzeo.",XO(31,200,1,1), XORB_MASK, PPCCOM, { RT, RA } }, 36725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfzeo.", XO(31,200,1,1), XORB_MASK, PWRCOM, { RT, RA } }, 36738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addze", XO(31,202,0,0), XORB_MASK, PPCCOM, { RT, RA } }, 36755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "aze", XO(31,202,0,0), XORB_MASK, PWRCOM, { RT, RA } }, 36765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addze.", XO(31,202,0,1), XORB_MASK, PPCCOM, { RT, RA } }, 36775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "aze.", XO(31,202,0,1), XORB_MASK, PWRCOM, { RT, RA } }, 36785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addzeo", XO(31,202,1,0), XORB_MASK, PPCCOM, { RT, RA } }, 36795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "azeo", XO(31,202,1,0), XORB_MASK, PWRCOM, { RT, RA } }, 36805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addzeo.", XO(31,202,1,1), XORB_MASK, PPCCOM, { RT, RA } }, 36815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "azeo.", XO(31,202,1,1), XORB_MASK, PWRCOM, { RT, RA } }, 36828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsr", X(31,210), XRB_MASK|(1<<20), COM32, { SR, RS } }, 36848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stdcx.", XRC(31,214,1), X_MASK, PPC64, { RS, RA0, RB } }, 36868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stbx", X(31,215), X_MASK, COM, { RS, RA0, RB } }, 36888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sllq", XRC(31,216,0), X_MASK, M601, { RA, RS, RB } }, 36905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sllq.", XRC(31,216,1), X_MASK, M601, { RA, RS, RB } }, 36918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sleq", XRC(31,217,0), X_MASK, M601, { RA, RS, RB } }, 36935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sleq.", XRC(31,217,1), X_MASK, M601, { RA, RS, RB } }, 36948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 36955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stbxe", X(31,223), X_MASK, BOOKE64, { RS, RA0, RB } }, 36965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 36975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "icblc", X(31,230), X_MASK, PPCCHLK, { CT, RA, RB }}, 36985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 36995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfme", XO(31,232,0,0), XORB_MASK, PPCCOM, { RT, RA } }, 37005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfme", XO(31,232,0,0), XORB_MASK, PWRCOM, { RT, RA } }, 37015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfme.", XO(31,232,0,1), XORB_MASK, PPCCOM, { RT, RA } }, 37025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfme.", XO(31,232,0,1), XORB_MASK, PWRCOM, { RT, RA } }, 37035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfmeo", XO(31,232,1,0), XORB_MASK, PPCCOM, { RT, RA } }, 37045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfmeo", XO(31,232,1,0), XORB_MASK, PWRCOM, { RT, RA } }, 37055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfmeo.",XO(31,232,1,1), XORB_MASK, PPCCOM, { RT, RA } }, 37065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sfmeo.", XO(31,232,1,1), XORB_MASK, PWRCOM, { RT, RA } }, 37075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulld", XO(31,233,0,0), XO_MASK, PPC64, { RT, RA, RB } }, 37095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulld.", XO(31,233,0,1), XO_MASK, PPC64, { RT, RA, RB } }, 37105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulldo", XO(31,233,1,0), XO_MASK, PPC64, { RT, RA, RB } }, 37115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulldo.", XO(31,233,1,1), XO_MASK, PPC64, { RT, RA, RB } }, 37125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addme", XO(31,234,0,0), XORB_MASK, PPCCOM, { RT, RA } }, 37145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ame", XO(31,234,0,0), XORB_MASK, PWRCOM, { RT, RA } }, 37155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addme.", XO(31,234,0,1), XORB_MASK, PPCCOM, { RT, RA } }, 37165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ame.", XO(31,234,0,1), XORB_MASK, PWRCOM, { RT, RA } }, 37175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addmeo", XO(31,234,1,0), XORB_MASK, PPCCOM, { RT, RA } }, 37185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ameo", XO(31,234,1,0), XORB_MASK, PWRCOM, { RT, RA } }, 37195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addmeo.", XO(31,234,1,1), XORB_MASK, PPCCOM, { RT, RA } }, 37205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ameo.", XO(31,234,1,1), XORB_MASK, PWRCOM, { RT, RA } }, 37215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mullw", XO(31,235,0,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 37235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "muls", XO(31,235,0,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 37245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mullw.", XO(31,235,0,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 37255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "muls.", XO(31,235,0,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 37265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mullwo", XO(31,235,1,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 37275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulso", XO(31,235,1,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 37285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mullwo.", XO(31,235,1,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 37295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mulso.", XO(31,235,1,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 37305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "icblce", X(31,238), X_MASK, PPCCHLK64, { CT, RA, RB }}, 37325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsrin", X(31,242), XRA_MASK, PPC32, { RS, RB } }, 37335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsri", X(31,242), XRA_MASK, POWER32, { RS, RB } }, 37345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbtst", X(31,246), X_MASK, PPC, { CT, RA, RB } }, 37365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stbux", X(31,247), X_MASK, COM, { RS, RAS, RB } }, 37385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slliq", XRC(31,248,0), X_MASK, M601, { RA, RS, SH } }, 37405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slliq.", XRC(31,248,1), X_MASK, M601, { RA, RS, SH } }, 37415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbtste", X(31,253), X_MASK, BOOKE64, { CT, RA, RB } }, 37435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stbuxe", X(31,255), X_MASK, BOOKE64, { RS, RAS, RB } }, 37455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdcrx", X(31,259), X_MASK, BOOKE, { RS, RA } }, 37475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "doz", XO(31,264,0,0), XO_MASK, M601, { RT, RA, RB } }, 37495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "doz.", XO(31,264,0,1), XO_MASK, M601, { RT, RA, RB } }, 37505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dozo", XO(31,264,1,0), XO_MASK, M601, { RT, RA, RB } }, 37515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dozo.", XO(31,264,1,1), XO_MASK, M601, { RT, RA, RB } }, 37525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "add", XO(31,266,0,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 37545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cax", XO(31,266,0,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 37555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "add.", XO(31,266,0,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 37565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cax.", XO(31,266,0,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 37575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addo", XO(31,266,1,0), XO_MASK, PPCCOM, { RT, RA, RB } }, 37585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "caxo", XO(31,266,1,0), XO_MASK, PWRCOM, { RT, RA, RB } }, 37595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addo.", XO(31,266,1,1), XO_MASK, PPCCOM, { RT, RA, RB } }, 37605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "caxo.", XO(31,266,1,1), XO_MASK, PWRCOM, { RT, RA, RB } }, 37615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbiel", X(31,274), XRTLRA_MASK, POWER4, { RB, L } }, 37635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfapidi", X(31,275), X_MASK, BOOKE, { RT, RA } }, 37655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lscbx", XRC(31,277,0), X_MASK, M601, { RT, RA, RB } }, 37675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lscbx.", XRC(31,277,1), X_MASK, M601, { RT, RA, RB } }, 37685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbt", X(31,278), X_MASK, PPC, { CT, RA, RB } }, 37705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhzx", X(31,279), X_MASK, COM, { RT, RA0, RB } }, 37725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "eqv", XRC(31,284,0), X_MASK, COM, { RA, RS, RB } }, 37745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "eqv.", XRC(31,284,1), X_MASK, COM, { RA, RS, RB } }, 37755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbte", X(31,286), X_MASK, BOOKE64, { CT, RA, RB } }, 37775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhzxe", X(31,287), X_MASK, BOOKE64, { RT, RA0, RB } }, 37795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbie", X(31,306), XRTLRA_MASK, PPC, { RB, L } }, 37815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbi", X(31,306), XRT_MASK, POWER, { RA0, RB } }, 37828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 37838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "eciwx", X(31,310), X_MASK, PPC, { RT, RA, RB } }, 37848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 37855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhzux", X(31,311), X_MASK, COM, { RT, RAL, RB } }, 37865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "xor", XRC(31,316,0), X_MASK, COM, { RA, RS, RB } }, 37885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "xor.", XRC(31,316,1), X_MASK, COM, { RA, RS, RB } }, 37895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhzuxe", X(31,319), X_MASK, BOOKE64, { RT, RAL, RB } }, 37915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 37925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfexisr", XSPR(31,323,64), XSPR_MASK, PPC403, { RT } }, 37935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfexier", XSPR(31,323,66), XSPR_MASK, PPC403, { RT } }, 37945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbr0", XSPR(31,323,128), XSPR_MASK, PPC403, { RT } }, 37955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbr1", XSPR(31,323,129), XSPR_MASK, PPC403, { RT } }, 37965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbr2", XSPR(31,323,130), XSPR_MASK, PPC403, { RT } }, 37975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbr3", XSPR(31,323,131), XSPR_MASK, PPC403, { RT } }, 37985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbr4", XSPR(31,323,132), XSPR_MASK, PPC403, { RT } }, 37995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbr5", XSPR(31,323,133), XSPR_MASK, PPC403, { RT } }, 38005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbr6", XSPR(31,323,134), XSPR_MASK, PPC403, { RT } }, 38015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbr7", XSPR(31,323,135), XSPR_MASK, PPC403, { RT } }, 38025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbear", XSPR(31,323,144), XSPR_MASK, PPC403, { RT } }, 38035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbesr", XSPR(31,323,145), XSPR_MASK, PPC403, { RT } }, 38045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfiocr", XSPR(31,323,160), XSPR_MASK, PPC403, { RT } }, 38055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmacr0", XSPR(31,323,192), XSPR_MASK, PPC403, { RT } }, 38065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmact0", XSPR(31,323,193), XSPR_MASK, PPC403, { RT } }, 38075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmada0", XSPR(31,323,194), XSPR_MASK, PPC403, { RT } }, 38085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmasa0", XSPR(31,323,195), XSPR_MASK, PPC403, { RT } }, 38095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmacc0", XSPR(31,323,196), XSPR_MASK, PPC403, { RT } }, 38105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmacr1", XSPR(31,323,200), XSPR_MASK, PPC403, { RT } }, 38115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmact1", XSPR(31,323,201), XSPR_MASK, PPC403, { RT } }, 38125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmada1", XSPR(31,323,202), XSPR_MASK, PPC403, { RT } }, 38135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmasa1", XSPR(31,323,203), XSPR_MASK, PPC403, { RT } }, 38145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmacc1", XSPR(31,323,204), XSPR_MASK, PPC403, { RT } }, 38155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmacr2", XSPR(31,323,208), XSPR_MASK, PPC403, { RT } }, 38165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmact2", XSPR(31,323,209), XSPR_MASK, PPC403, { RT } }, 38175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmada2", XSPR(31,323,210), XSPR_MASK, PPC403, { RT } }, 38185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmasa2", XSPR(31,323,211), XSPR_MASK, PPC403, { RT } }, 38195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmacc2", XSPR(31,323,212), XSPR_MASK, PPC403, { RT } }, 38205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmacr3", XSPR(31,323,216), XSPR_MASK, PPC403, { RT } }, 38215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmact3", XSPR(31,323,217), XSPR_MASK, PPC403, { RT } }, 38225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmada3", XSPR(31,323,218), XSPR_MASK, PPC403, { RT } }, 38235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmasa3", XSPR(31,323,219), XSPR_MASK, PPC403, { RT } }, 38245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmacc3", XSPR(31,323,220), XSPR_MASK, PPC403, { RT } }, 38255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdmasr", XSPR(31,323,224), XSPR_MASK, PPC403, { RT } }, 38265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdcr", X(31,323), X_MASK, PPC403 | BOOKE, { RT, SPR } }, 38275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 38285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "div", XO(31,331,0,0), XO_MASK, M601, { RT, RA, RB } }, 38295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "div.", XO(31,331,0,1), XO_MASK, M601, { RT, RA, RB } }, 38305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divo", XO(31,331,1,0), XO_MASK, M601, { RT, RA, RB } }, 38315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divo.", XO(31,331,1,1), XO_MASK, M601, { RT, RA, RB } }, 38325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 38335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpmr", X(31,334), X_MASK, PPCPMR, { RT, PMR }}, 38345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 38355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmq", XSPR(31,339,0), XSPR_MASK, M601, { RT } }, 38365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfxer", XSPR(31,339,1), XSPR_MASK, COM, { RT } }, 38375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfrtcu", XSPR(31,339,4), XSPR_MASK, COM, { RT } }, 38385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfrtcl", XSPR(31,339,5), XSPR_MASK, COM, { RT } }, 38395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdec", XSPR(31,339,6), XSPR_MASK, MFDEC1, { RT } }, 38405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdec", XSPR(31,339,22), XSPR_MASK, MFDEC2, { RT } }, 38415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mflr", XSPR(31,339,8), XSPR_MASK, COM, { RT } }, 38425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfctr", XSPR(31,339,9), XSPR_MASK, COM, { RT } }, 38435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftid", XSPR(31,339,17), XSPR_MASK, POWER, { RT } }, 38445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdsisr", XSPR(31,339,18), XSPR_MASK, COM, { RT } }, 38455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdar", XSPR(31,339,19), XSPR_MASK, COM, { RT } }, 38465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsdr0", XSPR(31,339,24), XSPR_MASK, POWER, { RT } }, 38475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsdr1", XSPR(31,339,25), XSPR_MASK, COM, { RT } }, 38485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsrr0", XSPR(31,339,26), XSPR_MASK, COM, { RT } }, 38495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsrr1", XSPR(31,339,27), XSPR_MASK, COM, { RT } }, 38505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcfar", XSPR(31,339,28), XSPR_MASK, POWER6, { RT } }, 38515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpid", XSPR(31,339,48), XSPR_MASK, BOOKE, { RT } }, 38525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpid", XSPR(31,339,945), XSPR_MASK, PPC403, { RT } }, 38535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcsrr0", XSPR(31,339,58), XSPR_MASK, BOOKE, { RT } }, 38545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcsrr1", XSPR(31,339,59), XSPR_MASK, BOOKE, { RT } }, 38555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdear", XSPR(31,339,61), XSPR_MASK, BOOKE, { RT } }, 38565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdear", XSPR(31,339,981), XSPR_MASK, PPC403, { RT } }, 38575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfesr", XSPR(31,339,62), XSPR_MASK, BOOKE, { RT } }, 38585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfesr", XSPR(31,339,980), XSPR_MASK, PPC403, { RT } }, 38595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivpr", XSPR(31,339,63), XSPR_MASK, BOOKE, { RT } }, 38605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcmpa", XSPR(31,339,144), XSPR_MASK, PPC860, { RT } }, 38615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcmpb", XSPR(31,339,145), XSPR_MASK, PPC860, { RT } }, 38625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcmpc", XSPR(31,339,146), XSPR_MASK, PPC860, { RT } }, 38635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcmpd", XSPR(31,339,147), XSPR_MASK, PPC860, { RT } }, 38645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mficr", XSPR(31,339,148), XSPR_MASK, PPC860, { RT } }, 38655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfder", XSPR(31,339,149), XSPR_MASK, PPC860, { RT } }, 38665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcounta", XSPR(31,339,150), XSPR_MASK, PPC860, { RT } }, 38675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcountb", XSPR(31,339,151), XSPR_MASK, PPC860, { RT } }, 38685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcmpe", XSPR(31,339,152), XSPR_MASK, PPC860, { RT } }, 38695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcmpf", XSPR(31,339,153), XSPR_MASK, PPC860, { RT } }, 38705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcmpg", XSPR(31,339,154), XSPR_MASK, PPC860, { RT } }, 38715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcmph", XSPR(31,339,155), XSPR_MASK, PPC860, { RT } }, 38725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mflctrl1", XSPR(31,339,156), XSPR_MASK, PPC860, { RT } }, 38735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mflctrl2", XSPR(31,339,157), XSPR_MASK, PPC860, { RT } }, 38745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfictrl", XSPR(31,339,158), XSPR_MASK, PPC860, { RT } }, 38755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbar", XSPR(31,339,159), XSPR_MASK, PPC860, { RT } }, 38765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfvrsave", XSPR(31,339,256), XSPR_MASK, PPCVEC, { RT } }, 38775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfusprg0", XSPR(31,339,256), XSPR_MASK, BOOKE, { RT } }, 38785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftb", X(31,371), X_MASK, CLASSIC, { RT, TBR } }, 38795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftb", XSPR(31,339,268), XSPR_MASK, BOOKE, { RT } }, 38805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftbl", XSPR(31,371,268), XSPR_MASK, CLASSIC, { RT } }, 38815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftbl", XSPR(31,339,268), XSPR_MASK, BOOKE, { RT } }, 38825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftbu", XSPR(31,371,269), XSPR_MASK, CLASSIC, { RT } }, 38835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftbu", XSPR(31,339,269), XSPR_MASK, BOOKE, { RT } }, 38845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsprg", XSPR(31,339,256), XSPRG_MASK, PPC, { RT, SPRG } }, 38855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsprg0", XSPR(31,339,272), XSPR_MASK, PPC, { RT } }, 38865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsprg1", XSPR(31,339,273), XSPR_MASK, PPC, { RT } }, 38875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsprg2", XSPR(31,339,274), XSPR_MASK, PPC, { RT } }, 38885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsprg3", XSPR(31,339,275), XSPR_MASK, PPC, { RT } }, 38895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsprg4", XSPR(31,339,260), XSPR_MASK, PPC405 | BOOKE, { RT } }, 38905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsprg5", XSPR(31,339,261), XSPR_MASK, PPC405 | BOOKE, { RT } }, 38915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsprg6", XSPR(31,339,262), XSPR_MASK, PPC405 | BOOKE, { RT } }, 38925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsprg7", XSPR(31,339,263), XSPR_MASK, PPC405 | BOOKE, { RT } }, 38935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfasr", XSPR(31,339,280), XSPR_MASK, PPC64, { RT } }, 38945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfear", XSPR(31,339,282), XSPR_MASK, PPC, { RT } }, 38955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpir", XSPR(31,339,286), XSPR_MASK, BOOKE, { RT } }, 38965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpvr", XSPR(31,339,287), XSPR_MASK, PPC, { RT } }, 38975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdbsr", XSPR(31,339,304), XSPR_MASK, BOOKE, { RT } }, 38985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdbsr", XSPR(31,339,1008), XSPR_MASK, PPC403, { RT } }, 38995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdbcr0", XSPR(31,339,308), XSPR_MASK, BOOKE, { RT } }, 39005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdbcr0", XSPR(31,339,1010), XSPR_MASK, PPC405, { RT } }, 39015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdbcr1", XSPR(31,339,309), XSPR_MASK, BOOKE, { RT } }, 39025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdbcr1", XSPR(31,339,957), XSPR_MASK, PPC405, { RT } }, 39035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdbcr2", XSPR(31,339,310), XSPR_MASK, BOOKE, { RT } }, 39045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfiac1", XSPR(31,339,312), XSPR_MASK, BOOKE, { RT } }, 39055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfiac1", XSPR(31,339,1012), XSPR_MASK, PPC403, { RT } }, 39065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfiac2", XSPR(31,339,313), XSPR_MASK, BOOKE, { RT } }, 39075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfiac2", XSPR(31,339,1013), XSPR_MASK, PPC403, { RT } }, 39085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfiac3", XSPR(31,339,314), XSPR_MASK, BOOKE, { RT } }, 39095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfiac3", XSPR(31,339,948), XSPR_MASK, PPC405, { RT } }, 39105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfiac4", XSPR(31,339,315), XSPR_MASK, BOOKE, { RT } }, 39115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfiac4", XSPR(31,339,949), XSPR_MASK, PPC405, { RT } }, 39125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdac1", XSPR(31,339,316), XSPR_MASK, BOOKE, { RT } }, 39135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdac1", XSPR(31,339,1014), XSPR_MASK, PPC403, { RT } }, 39145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdac2", XSPR(31,339,317), XSPR_MASK, BOOKE, { RT } }, 39155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdac2", XSPR(31,339,1015), XSPR_MASK, PPC403, { RT } }, 39165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdvc1", XSPR(31,339,318), XSPR_MASK, BOOKE, { RT } }, 39175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdvc1", XSPR(31,339,950), XSPR_MASK, PPC405, { RT } }, 39185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdvc2", XSPR(31,339,319), XSPR_MASK, BOOKE, { RT } }, 39195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdvc2", XSPR(31,339,951), XSPR_MASK, PPC405, { RT } }, 39205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftsr", XSPR(31,339,336), XSPR_MASK, BOOKE, { RT } }, 39215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftsr", XSPR(31,339,984), XSPR_MASK, PPC403, { RT } }, 39225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftcr", XSPR(31,339,340), XSPR_MASK, BOOKE, { RT } }, 39235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftcr", XSPR(31,339,986), XSPR_MASK, PPC403, { RT } }, 39245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor0", XSPR(31,339,400), XSPR_MASK, BOOKE, { RT } }, 39255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor1", XSPR(31,339,401), XSPR_MASK, BOOKE, { RT } }, 39265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor2", XSPR(31,339,402), XSPR_MASK, BOOKE, { RT } }, 39275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor3", XSPR(31,339,403), XSPR_MASK, BOOKE, { RT } }, 39285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor4", XSPR(31,339,404), XSPR_MASK, BOOKE, { RT } }, 39295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor5", XSPR(31,339,405), XSPR_MASK, BOOKE, { RT } }, 39305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor6", XSPR(31,339,406), XSPR_MASK, BOOKE, { RT } }, 39315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor7", XSPR(31,339,407), XSPR_MASK, BOOKE, { RT } }, 39325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor8", XSPR(31,339,408), XSPR_MASK, BOOKE, { RT } }, 39335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor9", XSPR(31,339,409), XSPR_MASK, BOOKE, { RT } }, 39345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor10", XSPR(31,339,410), XSPR_MASK, BOOKE, { RT } }, 39355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor11", XSPR(31,339,411), XSPR_MASK, BOOKE, { RT } }, 39365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor12", XSPR(31,339,412), XSPR_MASK, BOOKE, { RT } }, 39375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor13", XSPR(31,339,413), XSPR_MASK, BOOKE, { RT } }, 39385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor14", XSPR(31,339,414), XSPR_MASK, BOOKE, { RT } }, 39395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor15", XSPR(31,339,415), XSPR_MASK, BOOKE, { RT } }, 39405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfspefscr", XSPR(31,339,512), XSPR_MASK, PPCSPE, { RT } }, 39415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbbear", XSPR(31,339,513), XSPR_MASK, PPCBRLK, { RT } }, 39425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfbbtar", XSPR(31,339,514), XSPR_MASK, PPCBRLK, { RT } }, 39435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor32", XSPR(31,339,528), XSPR_MASK, PPCSPE, { RT } }, 39445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor33", XSPR(31,339,529), XSPR_MASK, PPCSPE, { RT } }, 39455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor34", XSPR(31,339,530), XSPR_MASK, PPCSPE, { RT } }, 39465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfivor35", XSPR(31,339,531), XSPR_MASK, PPCPMR, { RT } }, 39475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfibatu", XSPR(31,339,528), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, 39485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfibatl", XSPR(31,339,529), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, 39495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdbatu", XSPR(31,339,536), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, 39505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdbatl", XSPR(31,339,537), XSPRBAT_MASK, PPC, { RT, SPRBAT } }, 39515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfic_cst", XSPR(31,339,560), XSPR_MASK, PPC860, { RT } }, 39525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfic_adr", XSPR(31,339,561), XSPR_MASK, PPC860, { RT } }, 39535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfic_dat", XSPR(31,339,562), XSPR_MASK, PPC860, { RT } }, 39545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdc_cst", XSPR(31,339,568), XSPR_MASK, PPC860, { RT } }, 39555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdc_adr", XSPR(31,339,569), XSPR_MASK, PPC860, { RT } }, 39565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmcsrr0", XSPR(31,339,570), XSPR_MASK, PPCRFMCI, { RT } }, 39575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdc_dat", XSPR(31,339,570), XSPR_MASK, PPC860, { RT } }, 39585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmcsrr1", XSPR(31,339,571), XSPR_MASK, PPCRFMCI, { RT } }, 39595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmcsr", XSPR(31,339,572), XSPR_MASK, PPCRFMCI, { RT } }, 39605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmcar", XSPR(31,339,573), XSPR_MASK, PPCRFMCI, { RT } }, 39615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdpdr", XSPR(31,339,630), XSPR_MASK, PPC860, { RT } }, 39625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdpir", XSPR(31,339,631), XSPR_MASK, PPC860, { RT } }, 39635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfimmr", XSPR(31,339,638), XSPR_MASK, PPC860, { RT } }, 39645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmi_ctr", XSPR(31,339,784), XSPR_MASK, PPC860, { RT } }, 39655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmi_ap", XSPR(31,339,786), XSPR_MASK, PPC860, { RT } }, 39665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmi_epn", XSPR(31,339,787), XSPR_MASK, PPC860, { RT } }, 39675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmi_twc", XSPR(31,339,789), XSPR_MASK, PPC860, { RT } }, 39685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmi_rpn", XSPR(31,339,790), XSPR_MASK, PPC860, { RT } }, 39695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmd_ctr", XSPR(31,339,792), XSPR_MASK, PPC860, { RT } }, 39705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfm_casid", XSPR(31,339,793), XSPR_MASK, PPC860, { RT } }, 39715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmd_ap", XSPR(31,339,794), XSPR_MASK, PPC860, { RT } }, 39725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmd_epn", XSPR(31,339,795), XSPR_MASK, PPC860, { RT } }, 39735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmd_twb", XSPR(31,339,796), XSPR_MASK, PPC860, { RT } }, 39745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmd_twc", XSPR(31,339,797), XSPR_MASK, PPC860, { RT } }, 39755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmd_rpn", XSPR(31,339,798), XSPR_MASK, PPC860, { RT } }, 39765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfm_tw", XSPR(31,339,799), XSPR_MASK, PPC860, { RT } }, 39775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmi_dbcam", XSPR(31,339,816), XSPR_MASK, PPC860, { RT } }, 39785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmi_dbram0",XSPR(31,339,817), XSPR_MASK, PPC860, { RT } }, 39795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmi_dbram1",XSPR(31,339,818), XSPR_MASK, PPC860, { RT } }, 39805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmd_dbcam", XSPR(31,339,824), XSPR_MASK, PPC860, { RT } }, 39815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmd_dbram0",XSPR(31,339,825), XSPR_MASK, PPC860, { RT } }, 39825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmd_dbram1",XSPR(31,339,826), XSPR_MASK, PPC860, { RT } }, 39835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfummcr0", XSPR(31,339,936), XSPR_MASK, PPC750, { RT } }, 39845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfupmc1", XSPR(31,339,937), XSPR_MASK, PPC750, { RT } }, 39855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfupmc2", XSPR(31,339,938), XSPR_MASK, PPC750, { RT } }, 39865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfusia", XSPR(31,339,939), XSPR_MASK, PPC750, { RT } }, 39875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfummcr1", XSPR(31,339,940), XSPR_MASK, PPC750, { RT } }, 39885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfupmc3", XSPR(31,339,941), XSPR_MASK, PPC750, { RT } }, 39895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfupmc4", XSPR(31,339,942), XSPR_MASK, PPC750, { RT } }, 39905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfzpr", XSPR(31,339,944), XSPR_MASK, PPC403, { RT } }, 39915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfccr0", XSPR(31,339,947), XSPR_MASK, PPC405, { RT } }, 39925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmmcr0", XSPR(31,339,952), XSPR_MASK, PPC750, { RT } }, 39935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpmc1", XSPR(31,339,953), XSPR_MASK, PPC750, { RT } }, 39945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsgr", XSPR(31,339,953), XSPR_MASK, PPC403, { RT } }, 39955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpmc2", XSPR(31,339,954), XSPR_MASK, PPC750, { RT } }, 39965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdcwr", XSPR(31,339,954), XSPR_MASK, PPC403, { RT } }, 39975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsia", XSPR(31,339,955), XSPR_MASK, PPC750, { RT } }, 39985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsler", XSPR(31,339,955), XSPR_MASK, PPC405, { RT } }, 39995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfmmcr1", XSPR(31,339,956), XSPR_MASK, PPC750, { RT } }, 40005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsu0r", XSPR(31,339,956), XSPR_MASK, PPC405, { RT } }, 40015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpmc3", XSPR(31,339,957), XSPR_MASK, PPC750, { RT } }, 40025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpmc4", XSPR(31,339,958), XSPR_MASK, PPC750, { RT } }, 40035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mficdbdr", XSPR(31,339,979), XSPR_MASK, PPC403, { RT } }, 40045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfevpr", XSPR(31,339,982), XSPR_MASK, PPC403, { RT } }, 40055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfcdbcr", XSPR(31,339,983), XSPR_MASK, PPC403, { RT } }, 40065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpit", XSPR(31,339,987), XSPR_MASK, PPC403, { RT } }, 40075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftbhi", XSPR(31,339,988), XSPR_MASK, PPC403, { RT } }, 40085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftblo", XSPR(31,339,989), XSPR_MASK, PPC403, { RT } }, 40095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsrr2", XSPR(31,339,990), XSPR_MASK, PPC403, { RT } }, 40105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsrr3", XSPR(31,339,991), XSPR_MASK, PPC403, { RT } }, 40115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfl2cr", XSPR(31,339,1017), XSPR_MASK, PPC750, { RT } }, 40125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfdccr", XSPR(31,339,1018), XSPR_MASK, PPC403, { RT } }, 40135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mficcr", XSPR(31,339,1019), XSPR_MASK, PPC403, { RT } }, 40145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfictc", XSPR(31,339,1019), XSPR_MASK, PPC750, { RT } }, 40155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpbl1", XSPR(31,339,1020), XSPR_MASK, PPC403, { RT } }, 40165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfthrm1", XSPR(31,339,1020), XSPR_MASK, PPC750, { RT } }, 40175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpbu1", XSPR(31,339,1021), XSPR_MASK, PPC403, { RT } }, 40185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfthrm2", XSPR(31,339,1021), XSPR_MASK, PPC750, { RT } }, 40195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpbl2", XSPR(31,339,1022), XSPR_MASK, PPC403, { RT } }, 40205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfthrm3", XSPR(31,339,1022), XSPR_MASK, PPC750, { RT } }, 40215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfpbu2", XSPR(31,339,1023), XSPR_MASK, PPC403, { RT } }, 40225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfspr", X(31,339), X_MASK, COM, { RT, SPR } }, 40235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwax", X(31,341), X_MASK, PPC64, { RT, RA0, RB } }, 40255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dst", XDSS(31,342,0), XDSS_MASK, PPCVEC, { RA, RB, STRM } }, 40275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dstt", XDSS(31,342,1), XDSS_MASK, PPCVEC, { RA, RB, STRM } }, 40285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhax", X(31,343), X_MASK, COM, { RT, RA0, RB } }, 40305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhaxe", X(31,351), X_MASK, BOOKE64, { RT, RA0, RB } }, 40325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dstst", XDSS(31,374,0), XDSS_MASK, PPCVEC, { RA, RB, STRM } }, 40345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dststt", XDSS(31,374,1), XDSS_MASK, PPCVEC, { RA, RB, STRM } }, 40355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dccci", X(31,454), XRT_MASK, PPC403|PPC440, { RA, RB } }, 40375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "abs", XO(31,360,0,0), XORB_MASK, M601, { RT, RA } }, 40395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "abs.", XO(31,360,0,1), XORB_MASK, M601, { RT, RA } }, 40405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "abso", XO(31,360,1,0), XORB_MASK, M601, { RT, RA } }, 40415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "abso.", XO(31,360,1,1), XORB_MASK, M601, { RT, RA } }, 40425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divs", XO(31,363,0,0), XO_MASK, M601, { RT, RA, RB } }, 40445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divs.", XO(31,363,0,1), XO_MASK, M601, { RT, RA, RB } }, 40455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divso", XO(31,363,1,0), XO_MASK, M601, { RT, RA, RB } }, 40465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divso.", XO(31,363,1,1), XO_MASK, M601, { RT, RA, RB } }, 40478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "tlbia", X(31,370), 0xffffffff, PPC, { 0 } }, 40498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwaux", X(31,373), X_MASK, PPC64, { RT, RAL, RB } }, 40515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhaux", X(31,375), X_MASK, COM, { RT, RAL, RB } }, 40535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhauxe", X(31,383), X_MASK, BOOKE64, { RT, RAL, RB } }, 40555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdcrx", X(31,387), X_MASK, BOOKE, { RA, RS } }, 40575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcblc", X(31,390), X_MASK, PPCCHLK, { CT, RA, RB }}, 40595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfe64", XO(31,392,0,0), XO_MASK, BOOKE64, { RT, RA, RB } }, 40615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfe64o",XO(31,392,1,0), XO_MASK, BOOKE64, { RT, RA, RB } }, 40628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "adde64", XO(31,394,0,0), XO_MASK, BOOKE64, { RT, RA, RB } }, 40645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "adde64o", XO(31,394,1,0), XO_MASK, BOOKE64, { RT, RA, RB } }, 40658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcblce", X(31,398), X_MASK, PPCCHLK64, { CT, RA, RB }}, 40678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slbmte", X(31,402), XRA_MASK, PPC64, { RS, RB } }, 40695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sthx", X(31,407), X_MASK, COM, { RS, RA0, RB } }, 40715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cmpb", X(31,508), X_MASK, POWER6, { RA, RS, RB } }, 40738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "lfqx", X(31,791), X_MASK, POWER2, { FRT, RA, RB } }, 40758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfdpx", X(31,791), X_MASK, POWER6, { FRT, RA, RB } }, 40775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 40788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "lfqux", X(31,823), X_MASK, POWER2, { FRT, RA, RB } }, 40798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "stfqx", X(31,919), X_MASK, POWER2, { FRS, RA, RB } }, 40818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfdpx", X(31,919), X_MASK, POWER6, { FRS, RA, RB } }, 40838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfqux", X(31,951), X_MASK, POWER2, { FRS, RA, RB } }, 40858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "orc", XRC(31,412,0), X_MASK, COM, { RA, RS, RB } }, 40875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "orc.", XRC(31,412,1), X_MASK, COM, { RA, RS, RB } }, 40888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sradi", XS(31,413,0), XS_MASK, PPC64, { RA, RS, SH6 } }, 40905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sradi.", XS(31,413,1), XS_MASK, PPC64, { RA, RS, SH6 } }, 40918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sthxe", X(31,415), X_MASK, BOOKE64, { RS, RA0, RB } }, 40938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slbie", X(31,434), XRTRA_MASK, PPC64, { RB } }, 40958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ecowx", X(31,438), X_MASK, PPC, { RT, RA, RB } }, 40978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 40985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sthux", X(31,439), X_MASK, COM, { RS, RAS, RB } }, 40995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 41005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sthuxe", X(31,447), X_MASK, BOOKE64, { RS, RAS, RB } }, 41015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 41025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cctpl", 0x7c210b78, 0xffffffff, CELL, { 0 }}, 41035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cctpm", 0x7c421378, 0xffffffff, CELL, { 0 }}, 41045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "cctph", 0x7c631b78, 0xffffffff, CELL, { 0 }}, 41055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "db8cyc", 0x7f9ce378, 0xffffffff, CELL, { 0 }}, 41065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "db10cyc", 0x7fbdeb78, 0xffffffff, CELL, { 0 }}, 41075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "db12cyc", 0x7fdef378, 0xffffffff, CELL, { 0 }}, 41085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "db16cyc", 0x7ffffb78, 0xffffffff, CELL, { 0 }}, 41095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mr", XRC(31,444,0), X_MASK, COM, { RA, RS, RBS } }, 41105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "or", XRC(31,444,0), X_MASK, COM, { RA, RS, RB } }, 41115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mr.", XRC(31,444,1), X_MASK, COM, { RA, RS, RBS } }, 41125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "or.", XRC(31,444,1), X_MASK, COM, { RA, RS, RB } }, 41135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 41145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtexisr", XSPR(31,451,64), XSPR_MASK, PPC403, { RS } }, 41155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtexier", XSPR(31,451,66), XSPR_MASK, PPC403, { RS } }, 41165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbr0", XSPR(31,451,128), XSPR_MASK, PPC403, { RS } }, 41175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbr1", XSPR(31,451,129), XSPR_MASK, PPC403, { RS } }, 41185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbr2", XSPR(31,451,130), XSPR_MASK, PPC403, { RS } }, 41195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbr3", XSPR(31,451,131), XSPR_MASK, PPC403, { RS } }, 41205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbr4", XSPR(31,451,132), XSPR_MASK, PPC403, { RS } }, 41215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbr5", XSPR(31,451,133), XSPR_MASK, PPC403, { RS } }, 41225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbr6", XSPR(31,451,134), XSPR_MASK, PPC403, { RS } }, 41235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbr7", XSPR(31,451,135), XSPR_MASK, PPC403, { RS } }, 41245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbear", XSPR(31,451,144), XSPR_MASK, PPC403, { RS } }, 41255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbesr", XSPR(31,451,145), XSPR_MASK, PPC403, { RS } }, 41265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtiocr", XSPR(31,451,160), XSPR_MASK, PPC403, { RS } }, 41275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmacr0", XSPR(31,451,192), XSPR_MASK, PPC403, { RS } }, 41285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmact0", XSPR(31,451,193), XSPR_MASK, PPC403, { RS } }, 41295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmada0", XSPR(31,451,194), XSPR_MASK, PPC403, { RS } }, 41305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmasa0", XSPR(31,451,195), XSPR_MASK, PPC403, { RS } }, 41315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmacc0", XSPR(31,451,196), XSPR_MASK, PPC403, { RS } }, 41325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmacr1", XSPR(31,451,200), XSPR_MASK, PPC403, { RS } }, 41335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmact1", XSPR(31,451,201), XSPR_MASK, PPC403, { RS } }, 41345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmada1", XSPR(31,451,202), XSPR_MASK, PPC403, { RS } }, 41355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmasa1", XSPR(31,451,203), XSPR_MASK, PPC403, { RS } }, 41365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmacc1", XSPR(31,451,204), XSPR_MASK, PPC403, { RS } }, 41375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmacr2", XSPR(31,451,208), XSPR_MASK, PPC403, { RS } }, 41385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmact2", XSPR(31,451,209), XSPR_MASK, PPC403, { RS } }, 41395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmada2", XSPR(31,451,210), XSPR_MASK, PPC403, { RS } }, 41405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmasa2", XSPR(31,451,211), XSPR_MASK, PPC403, { RS } }, 41415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmacc2", XSPR(31,451,212), XSPR_MASK, PPC403, { RS } }, 41425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmacr3", XSPR(31,451,216), XSPR_MASK, PPC403, { RS } }, 41435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmact3", XSPR(31,451,217), XSPR_MASK, PPC403, { RS } }, 41445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmada3", XSPR(31,451,218), XSPR_MASK, PPC403, { RS } }, 41455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmasa3", XSPR(31,451,219), XSPR_MASK, PPC403, { RS } }, 41465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmacc3", XSPR(31,451,220), XSPR_MASK, PPC403, { RS } }, 41475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdmasr", XSPR(31,451,224), XSPR_MASK, PPC403, { RS } }, 41485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdcr", X(31,451), X_MASK, PPC403 | BOOKE, { SPR, RS } }, 41495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 41505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfze64",XO(31,456,0,0), XORB_MASK, BOOKE64, { RT, RA } }, 41515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfze64o",XO(31,456,1,0), XORB_MASK, BOOKE64, { RT, RA } }, 41525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 41535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divdu", XO(31,457,0,0), XO_MASK, PPC64, { RT, RA, RB } }, 41545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divdu.", XO(31,457,0,1), XO_MASK, PPC64, { RT, RA, RB } }, 41555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divduo", XO(31,457,1,0), XO_MASK, PPC64, { RT, RA, RB } }, 41565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divduo.", XO(31,457,1,1), XO_MASK, PPC64, { RT, RA, RB } }, 41575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 41585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addze64", XO(31,458,0,0), XORB_MASK, BOOKE64, { RT, RA } }, 41595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addze64o",XO(31,458,1,0), XORB_MASK, BOOKE64, { RT, RA } }, 41608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 41618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "divwu", XO(31,459,0,0), XO_MASK, PPC, { RT, RA, RB } }, 41628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "divwu.", XO(31,459,0,1), XO_MASK, PPC, { RT, RA, RB } }, 41638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "divwuo", XO(31,459,1,0), XO_MASK, PPC, { RT, RA, RB } }, 41648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "divwuo.", XO(31,459,1,1), XO_MASK, PPC, { RT, RA, RB } }, 41658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 41665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtmq", XSPR(31,467,0), XSPR_MASK, M601, { RS } }, 41675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtxer", XSPR(31,467,1), XSPR_MASK, COM, { RS } }, 41685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtlr", XSPR(31,467,8), XSPR_MASK, COM, { RS } }, 41695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtctr", XSPR(31,467,9), XSPR_MASK, COM, { RS } }, 41705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mttid", XSPR(31,467,17), XSPR_MASK, POWER, { RS } }, 41715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdsisr", XSPR(31,467,18), XSPR_MASK, COM, { RS } }, 41725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdar", XSPR(31,467,19), XSPR_MASK, COM, { RS } }, 41735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtrtcu", XSPR(31,467,20), XSPR_MASK, COM, { RS } }, 41745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtrtcl", XSPR(31,467,21), XSPR_MASK, COM, { RS } }, 41755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdec", XSPR(31,467,22), XSPR_MASK, COM, { RS } }, 41765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsdr0", XSPR(31,467,24), XSPR_MASK, POWER, { RS } }, 41775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsdr1", XSPR(31,467,25), XSPR_MASK, COM, { RS } }, 41785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsrr0", XSPR(31,467,26), XSPR_MASK, COM, { RS } }, 41795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsrr1", XSPR(31,467,27), XSPR_MASK, COM, { RS } }, 41805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcfar", XSPR(31,467,28), XSPR_MASK, POWER6, { RS } }, 41815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpid", XSPR(31,467,48), XSPR_MASK, BOOKE, { RS } }, 41825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpid", XSPR(31,467,945), XSPR_MASK, PPC403, { RS } }, 41835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdecar", XSPR(31,467,54), XSPR_MASK, BOOKE, { RS } }, 41845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcsrr0", XSPR(31,467,58), XSPR_MASK, BOOKE, { RS } }, 41855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcsrr1", XSPR(31,467,59), XSPR_MASK, BOOKE, { RS } }, 41865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdear", XSPR(31,467,61), XSPR_MASK, BOOKE, { RS } }, 41875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdear", XSPR(31,467,981), XSPR_MASK, PPC403, { RS } }, 41885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtesr", XSPR(31,467,62), XSPR_MASK, BOOKE, { RS } }, 41895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtesr", XSPR(31,467,980), XSPR_MASK, PPC403, { RS } }, 41905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivpr", XSPR(31,467,63), XSPR_MASK, BOOKE, { RS } }, 41915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcmpa", XSPR(31,467,144), XSPR_MASK, PPC860, { RS } }, 41925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcmpb", XSPR(31,467,145), XSPR_MASK, PPC860, { RS } }, 41935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcmpc", XSPR(31,467,146), XSPR_MASK, PPC860, { RS } }, 41945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcmpd", XSPR(31,467,147), XSPR_MASK, PPC860, { RS } }, 41955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mticr", XSPR(31,467,148), XSPR_MASK, PPC860, { RS } }, 41965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtder", XSPR(31,467,149), XSPR_MASK, PPC860, { RS } }, 41975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcounta", XSPR(31,467,150), XSPR_MASK, PPC860, { RS } }, 41985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcountb", XSPR(31,467,151), XSPR_MASK, PPC860, { RS } }, 41995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcmpe", XSPR(31,467,152), XSPR_MASK, PPC860, { RS } }, 42005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcmpf", XSPR(31,467,153), XSPR_MASK, PPC860, { RS } }, 42015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcmpg", XSPR(31,467,154), XSPR_MASK, PPC860, { RS } }, 42025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcmph", XSPR(31,467,155), XSPR_MASK, PPC860, { RS } }, 42035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtlctrl1", XSPR(31,467,156), XSPR_MASK, PPC860, { RS } }, 42045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtlctrl2", XSPR(31,467,157), XSPR_MASK, PPC860, { RS } }, 42055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtictrl", XSPR(31,467,158), XSPR_MASK, PPC860, { RS } }, 42065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbar", XSPR(31,467,159), XSPR_MASK, PPC860, { RS } }, 42075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtvrsave", XSPR(31,467,256), XSPR_MASK, PPCVEC, { RS } }, 42085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtusprg0", XSPR(31,467,256), XSPR_MASK, BOOKE, { RS } }, 42095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsprg", XSPR(31,467,256), XSPRG_MASK,PPC, { SPRG, RS } }, 42105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsprg0", XSPR(31,467,272), XSPR_MASK, PPC, { RS } }, 42115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsprg1", XSPR(31,467,273), XSPR_MASK, PPC, { RS } }, 42125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsprg2", XSPR(31,467,274), XSPR_MASK, PPC, { RS } }, 42135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsprg3", XSPR(31,467,275), XSPR_MASK, PPC, { RS } }, 42145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsprg4", XSPR(31,467,276), XSPR_MASK, PPC405 | BOOKE, { RS } }, 42155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsprg5", XSPR(31,467,277), XSPR_MASK, PPC405 | BOOKE, { RS } }, 42165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsprg6", XSPR(31,467,278), XSPR_MASK, PPC405 | BOOKE, { RS } }, 42175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsprg7", XSPR(31,467,279), XSPR_MASK, PPC405 | BOOKE, { RS } }, 42185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtasr", XSPR(31,467,280), XSPR_MASK, PPC64, { RS } }, 42195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtear", XSPR(31,467,282), XSPR_MASK, PPC, { RS } }, 42205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mttbl", XSPR(31,467,284), XSPR_MASK, PPC, { RS } }, 42215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mttbu", XSPR(31,467,285), XSPR_MASK, PPC, { RS } }, 42225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdbsr", XSPR(31,467,304), XSPR_MASK, BOOKE, { RS } }, 42235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdbsr", XSPR(31,467,1008), XSPR_MASK, PPC403, { RS } }, 42245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdbcr0", XSPR(31,467,308), XSPR_MASK, BOOKE, { RS } }, 42255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdbcr0", XSPR(31,467,1010), XSPR_MASK, PPC405, { RS } }, 42265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdbcr1", XSPR(31,467,309), XSPR_MASK, BOOKE, { RS } }, 42275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdbcr1", XSPR(31,467,957), XSPR_MASK, PPC405, { RS } }, 42285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdbcr2", XSPR(31,467,310), XSPR_MASK, BOOKE, { RS } }, 42295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtiac1", XSPR(31,467,312), XSPR_MASK, BOOKE, { RS } }, 42305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtiac1", XSPR(31,467,1012), XSPR_MASK, PPC403, { RS } }, 42315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtiac2", XSPR(31,467,313), XSPR_MASK, BOOKE, { RS } }, 42325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtiac2", XSPR(31,467,1013), XSPR_MASK, PPC403, { RS } }, 42335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtiac3", XSPR(31,467,314), XSPR_MASK, BOOKE, { RS } }, 42345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtiac3", XSPR(31,467,948), XSPR_MASK, PPC405, { RS } }, 42355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtiac4", XSPR(31,467,315), XSPR_MASK, BOOKE, { RS } }, 42365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtiac4", XSPR(31,467,949), XSPR_MASK, PPC405, { RS } }, 42375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdac1", XSPR(31,467,316), XSPR_MASK, BOOKE, { RS } }, 42385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdac1", XSPR(31,467,1014), XSPR_MASK, PPC403, { RS } }, 42395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdac2", XSPR(31,467,317), XSPR_MASK, BOOKE, { RS } }, 42405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdac2", XSPR(31,467,1015), XSPR_MASK, PPC403, { RS } }, 42415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdvc1", XSPR(31,467,318), XSPR_MASK, BOOKE, { RS } }, 42425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdvc1", XSPR(31,467,950), XSPR_MASK, PPC405, { RS } }, 42435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdvc2", XSPR(31,467,319), XSPR_MASK, BOOKE, { RS } }, 42445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdvc2", XSPR(31,467,951), XSPR_MASK, PPC405, { RS } }, 42455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mttsr", XSPR(31,467,336), XSPR_MASK, BOOKE, { RS } }, 42465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mttsr", XSPR(31,467,984), XSPR_MASK, PPC403, { RS } }, 42475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mttcr", XSPR(31,467,340), XSPR_MASK, BOOKE, { RS } }, 42485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mttcr", XSPR(31,467,986), XSPR_MASK, PPC403, { RS } }, 42495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor0", XSPR(31,467,400), XSPR_MASK, BOOKE, { RS } }, 42505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor1", XSPR(31,467,401), XSPR_MASK, BOOKE, { RS } }, 42515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor2", XSPR(31,467,402), XSPR_MASK, BOOKE, { RS } }, 42525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor3", XSPR(31,467,403), XSPR_MASK, BOOKE, { RS } }, 42535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor4", XSPR(31,467,404), XSPR_MASK, BOOKE, { RS } }, 42545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor5", XSPR(31,467,405), XSPR_MASK, BOOKE, { RS } }, 42555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor6", XSPR(31,467,406), XSPR_MASK, BOOKE, { RS } }, 42565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor7", XSPR(31,467,407), XSPR_MASK, BOOKE, { RS } }, 42575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor8", XSPR(31,467,408), XSPR_MASK, BOOKE, { RS } }, 42585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor9", XSPR(31,467,409), XSPR_MASK, BOOKE, { RS } }, 42595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor10", XSPR(31,467,410), XSPR_MASK, BOOKE, { RS } }, 42605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor11", XSPR(31,467,411), XSPR_MASK, BOOKE, { RS } }, 42615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor12", XSPR(31,467,412), XSPR_MASK, BOOKE, { RS } }, 42625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor13", XSPR(31,467,413), XSPR_MASK, BOOKE, { RS } }, 42635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor14", XSPR(31,467,414), XSPR_MASK, BOOKE, { RS } }, 42645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor15", XSPR(31,467,415), XSPR_MASK, BOOKE, { RS } }, 42655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtspefscr", XSPR(31,467,512), XSPR_MASK, PPCSPE, { RS } }, 42665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbbear", XSPR(31,467,513), XSPR_MASK, PPCBRLK, { RS } }, 42675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtbbtar", XSPR(31,467,514), XSPR_MASK, PPCBRLK, { RS } }, 42685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor32", XSPR(31,467,528), XSPR_MASK, PPCSPE, { RS } }, 42695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor33", XSPR(31,467,529), XSPR_MASK, PPCSPE, { RS } }, 42705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor34", XSPR(31,467,530), XSPR_MASK, PPCSPE, { RS } }, 42715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtivor35", XSPR(31,467,531), XSPR_MASK, PPCPMR, { RS } }, 42725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtibatu", XSPR(31,467,528), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, 42735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtibatl", XSPR(31,467,529), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, 42745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdbatu", XSPR(31,467,536), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, 42755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdbatl", XSPR(31,467,537), XSPRBAT_MASK, PPC, { SPRBAT, RS } }, 42765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtmcsrr0", XSPR(31,467,570), XSPR_MASK, PPCRFMCI, { RS } }, 42775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtmcsrr1", XSPR(31,467,571), XSPR_MASK, PPCRFMCI, { RS } }, 42785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtmcsr", XSPR(31,467,572), XSPR_MASK, PPCRFMCI, { RS } }, 42795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtummcr0", XSPR(31,467,936), XSPR_MASK, PPC750, { RS } }, 42805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtupmc1", XSPR(31,467,937), XSPR_MASK, PPC750, { RS } }, 42815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtupmc2", XSPR(31,467,938), XSPR_MASK, PPC750, { RS } }, 42825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtusia", XSPR(31,467,939), XSPR_MASK, PPC750, { RS } }, 42835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtummcr1", XSPR(31,467,940), XSPR_MASK, PPC750, { RS } }, 42845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtupmc3", XSPR(31,467,941), XSPR_MASK, PPC750, { RS } }, 42855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtupmc4", XSPR(31,467,942), XSPR_MASK, PPC750, { RS } }, 42865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtzpr", XSPR(31,467,944), XSPR_MASK, PPC403, { RS } }, 42875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtccr0", XSPR(31,467,947), XSPR_MASK, PPC405, { RS } }, 42885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtmmcr0", XSPR(31,467,952), XSPR_MASK, PPC750, { RS } }, 42895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsgr", XSPR(31,467,953), XSPR_MASK, PPC403, { RS } }, 42905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpmc1", XSPR(31,467,953), XSPR_MASK, PPC750, { RS } }, 42915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdcwr", XSPR(31,467,954), XSPR_MASK, PPC403, { RS } }, 42925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpmc2", XSPR(31,467,954), XSPR_MASK, PPC750, { RS } }, 42935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsler", XSPR(31,467,955), XSPR_MASK, PPC405, { RS } }, 42945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsia", XSPR(31,467,955), XSPR_MASK, PPC750, { RS } }, 42955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsu0r", XSPR(31,467,956), XSPR_MASK, PPC405, { RS } }, 42965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtmmcr1", XSPR(31,467,956), XSPR_MASK, PPC750, { RS } }, 42975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpmc3", XSPR(31,467,957), XSPR_MASK, PPC750, { RS } }, 42985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpmc4", XSPR(31,467,958), XSPR_MASK, PPC750, { RS } }, 42995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mticdbdr", XSPR(31,467,979), XSPR_MASK, PPC403, { RS } }, 43005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtevpr", XSPR(31,467,982), XSPR_MASK, PPC403, { RS } }, 43015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtcdbcr", XSPR(31,467,983), XSPR_MASK, PPC403, { RS } }, 43025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpit", XSPR(31,467,987), XSPR_MASK, PPC403, { RS } }, 43035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mttbhi", XSPR(31,467,988), XSPR_MASK, PPC403, { RS } }, 43045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mttblo", XSPR(31,467,989), XSPR_MASK, PPC403, { RS } }, 43055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsrr2", XSPR(31,467,990), XSPR_MASK, PPC403, { RS } }, 43065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtsrr3", XSPR(31,467,991), XSPR_MASK, PPC403, { RS } }, 43075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtl2cr", XSPR(31,467,1017), XSPR_MASK, PPC750, { RS } }, 43085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtdccr", XSPR(31,467,1018), XSPR_MASK, PPC403, { RS } }, 43095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mticcr", XSPR(31,467,1019), XSPR_MASK, PPC403, { RS } }, 43105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtictc", XSPR(31,467,1019), XSPR_MASK, PPC750, { RS } }, 43115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpbl1", XSPR(31,467,1020), XSPR_MASK, PPC403, { RS } }, 43125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtthrm1", XSPR(31,467,1020), XSPR_MASK, PPC750, { RS } }, 43135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpbu1", XSPR(31,467,1021), XSPR_MASK, PPC403, { RS } }, 43145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtthrm2", XSPR(31,467,1021), XSPR_MASK, PPC750, { RS } }, 43155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpbl2", XSPR(31,467,1022), XSPR_MASK, PPC403, { RS } }, 43165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtthrm3", XSPR(31,467,1022), XSPR_MASK, PPC750, { RS } }, 43175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpbu2", XSPR(31,467,1023), XSPR_MASK, PPC403, { RS } }, 43185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtspr", X(31,467), X_MASK, COM, { SPR, RS } }, 43198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "dcbi", X(31,470), XRT_MASK, PPC, { RA, RB } }, 43218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nand", XRC(31,476,0), X_MASK, COM, { RA, RS, RB } }, 43235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nand.", XRC(31,476,1), X_MASK, COM, { RA, RS, RB } }, 43245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbie", X(31,478), XRT_MASK, BOOKE64, { RA, RB } }, 43265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcread", X(31,486), X_MASK, PPC403|PPC440, { RT, RA, RB }}, 43285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtpmr", X(31,462), X_MASK, PPCPMR, { PMR, RS }}, 43308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "icbtls", X(31,486), X_MASK, PPCCHLK, { CT, RA, RB }}, 43328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nabs", XO(31,488,0,0), XORB_MASK, M601, { RT, RA } }, 43345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfme64",XO(31,488,0,0), XORB_MASK, BOOKE64, { RT, RA } }, 43355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nabs.", XO(31,488,0,1), XORB_MASK, M601, { RT, RA } }, 43365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nabso", XO(31,488,1,0), XORB_MASK, M601, { RT, RA } }, 43375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "subfme64o",XO(31,488,1,0), XORB_MASK, BOOKE64, { RT, RA } }, 43385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "nabso.", XO(31,488,1,1), XORB_MASK, M601, { RT, RA } }, 43395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divd", XO(31,489,0,0), XO_MASK, PPC64, { RT, RA, RB } }, 43415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divd.", XO(31,489,0,1), XO_MASK, PPC64, { RT, RA, RB } }, 43425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divdo", XO(31,489,1,0), XO_MASK, PPC64, { RT, RA, RB } }, 43435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "divdo.", XO(31,489,1,1), XO_MASK, PPC64, { RT, RA, RB } }, 43445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addme64", XO(31,490,0,0), XORB_MASK, BOOKE64, { RT, RA } }, 43465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "addme64o",XO(31,490,1,0), XORB_MASK, BOOKE64, { RT, RA } }, 43478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "divw", XO(31,491,0,0), XO_MASK, PPC, { RT, RA, RB } }, 43498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "divw.", XO(31,491,0,1), XO_MASK, PPC, { RT, RA, RB } }, 43508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "divwo", XO(31,491,1,0), XO_MASK, PPC, { RT, RA, RB } }, 43518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "divwo.", XO(31,491,1,1), XO_MASK, PPC, { RT, RA, RB } }, 43528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "icbtlse", X(31,494), X_MASK, PPCCHLK64, { CT, RA, RB }}, 43545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slbia", X(31,498), 0xffffffff, PPC64, { 0 } }, 43568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "cli", X(31,502), XRB_MASK, POWER, { RT, RA } }, 43588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stdcxe.", XRC(31,511,1), X_MASK, BOOKE64, { RS, RA, RB } }, 43608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mcrxr", X(31,512), XRARB_MASK|(3<<21), COM, { BF } }, 43628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bblels", X(31,518), X_MASK, PPCBRLK, { 0 }}, 43645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mcrxr64", X(31,544), XRARB_MASK|(3<<21), BOOKE64, { BF } }, 43658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clcs", X(31,531), XRB_MASK, M601, { RT, RA } }, 43678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ldbrx", X(31,532), X_MASK, CELL, { RT, RA0, RB } }, 43698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lswx", X(31,533), X_MASK, PPCCOM, { RT, RA0, RB } }, 43715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lsx", X(31,533), X_MASK, PWRCOM, { RT, RA, RB } }, 43728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwbrx", X(31,534), X_MASK, PPCCOM, { RT, RA0, RB } }, 43745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lbrx", X(31,534), X_MASK, PWRCOM, { RT, RA, RB } }, 43758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfsx", X(31,535), X_MASK, COM, { FRT, RA0, RB } }, 43778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srw", XRC(31,536,0), X_MASK, PPCCOM, { RA, RS, RB } }, 43795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sr", XRC(31,536,0), X_MASK, PWRCOM, { RA, RS, RB } }, 43805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srw.", XRC(31,536,1), X_MASK, PPCCOM, { RA, RS, RB } }, 43815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sr.", XRC(31,536,1), X_MASK, PWRCOM, { RA, RS, RB } }, 43825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rrib", XRC(31,537,0), X_MASK, M601, { RA, RS, RB } }, 43845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rrib.", XRC(31,537,1), X_MASK, M601, { RA, RS, RB } }, 43855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srd", XRC(31,539,0), X_MASK, PPC64, { RA, RS, RB } }, 43875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srd.", XRC(31,539,1), X_MASK, PPC64, { RA, RS, RB } }, 43885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maskir", XRC(31,541,0), X_MASK, M601, { RA, RS, RB } }, 43905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "maskir.", XRC(31,541,1), X_MASK, M601, { RA, RS, RB } }, 43915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwbrxe", X(31,542), X_MASK, BOOKE64, { RT, RA0, RB } }, 43935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfsxe", X(31,543), X_MASK, BOOKE64, { FRT, RA0, RB } }, 43955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 43965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "bbelr", X(31,550), X_MASK, PPCBRLK, { 0 }}, 43978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 43988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "tlbsync", X(31,566), 0xffffffff, PPC, { 0 } }, 43998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfsux", X(31,567), X_MASK, COM, { FRT, RAS, RB } }, 44015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfsuxe", X(31,575), X_MASK, BOOKE64, { FRT, RAS, RB } }, 44035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsr", X(31,595), XRB_MASK|(1<<20), COM32, { RT, SR } }, 44055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lswi", X(31,597), X_MASK, PPCCOM, { RT, RA0, NB } }, 44075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lsi", X(31,597), X_MASK, PWRCOM, { RT, RA0, NB } }, 44085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwsync", XSYNC(31,598,1), 0xffffffff, PPC, { 0 } }, 44105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ptesync", XSYNC(31,598,2), 0xffffffff, PPC64, { 0 } }, 44115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "msync", X(31,598), 0xffffffff, BOOKE, { 0 } }, 44125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sync", X(31,598), XSYNC_MASK, PPCCOM, { LS } }, 44135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcs", X(31,598), 0xffffffff, PWRCOM, { 0 } }, 44145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfdx", X(31,599), X_MASK, COM, { FRT, RA0, RB } }, 44165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfdxe", X(31,607), X_MASK, BOOKE64, { FRT, RA0, RB } }, 44185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mffgpr", XRC(31,607,0), XRA_MASK, POWER6, { FRT, RB } }, 44205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsri", X(31,627), X_MASK, PWRCOM, { RT, RA, RB } }, 44228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dclst", X(31,630), XRB_MASK, PWRCOM, { RS, RA } }, 44248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfdux", X(31,631), X_MASK, COM, { FRT, RAS, RB } }, 44268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfduxe", X(31,639), X_MASK, BOOKE64, { FRT, RAS, RB } }, 44288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mfsrin", X(31,659), XRA_MASK, PPC32, { RT, RB } }, 44308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stdbrx", X(31,660), X_MASK, CELL, { RS, RA0, RB } }, 44328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stswx", X(31,661), X_MASK, PPCCOM, { RS, RA0, RB } }, 44345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stsx", X(31,661), X_MASK, PWRCOM, { RS, RA0, RB } }, 44358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwbrx", X(31,662), X_MASK, PPCCOM, { RS, RA0, RB } }, 44375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stbrx", X(31,662), X_MASK, PWRCOM, { RS, RA0, RB } }, 44388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfsx", X(31,663), X_MASK, COM, { FRS, RA0, RB } }, 44408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srq", XRC(31,664,0), X_MASK, M601, { RA, RS, RB } }, 44425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srq.", XRC(31,664,1), X_MASK, M601, { RA, RS, RB } }, 44438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sre", XRC(31,665,0), X_MASK, M601, { RA, RS, RB } }, 44455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sre.", XRC(31,665,1), X_MASK, M601, { RA, RS, RB } }, 44468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwbrxe", X(31,670), X_MASK, BOOKE64, { RS, RA0, RB } }, 44488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfsxe", X(31,671), X_MASK, BOOKE64, { FRS, RA0, RB } }, 44508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfsux", X(31,695), X_MASK, COM, { FRS, RAS, RB } }, 44528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sriq", XRC(31,696,0), X_MASK, M601, { RA, RS, SH } }, 44545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sriq.", XRC(31,696,1), X_MASK, M601, { RA, RS, SH } }, 44558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfsuxe", X(31,703), X_MASK, BOOKE64, { FRS, RAS, RB } }, 44578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stswi", X(31,725), X_MASK, PPCCOM, { RS, RA0, NB } }, 44595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stsi", X(31,725), X_MASK, PWRCOM, { RS, RA0, NB } }, 44608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfdx", X(31,727), X_MASK, COM, { FRS, RA0, RB } }, 44628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srlq", XRC(31,728,0), X_MASK, M601, { RA, RS, RB } }, 44645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srlq.", XRC(31,728,1), X_MASK, M601, { RA, RS, RB } }, 44658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sreq", XRC(31,729,0), X_MASK, M601, { RA, RS, RB } }, 44675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sreq.", XRC(31,729,1), X_MASK, M601, { RA, RS, RB } }, 44688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfdxe", X(31,735), X_MASK, BOOKE64, { FRS, RA0, RB } }, 44708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mftgpr", XRC(31,735,0), XRA_MASK, POWER6, { RT, FRB } }, 44728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcba", X(31,758), XRT_MASK, PPC405 | BOOKE, { RA, RB } }, 44748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfdux", X(31,759), X_MASK, COM, { FRS, RAS, RB } }, 44768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srliq", XRC(31,760,0), X_MASK, M601, { RA, RS, SH } }, 44785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srliq.", XRC(31,760,1), X_MASK, M601, { RA, RS, SH } }, 44798b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbae", X(31,766), XRT_MASK, BOOKE64, { RA, RB } }, 44818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfduxe", X(31,767), X_MASK, BOOKE64, { FRS, RAS, RB } }, 44838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 44845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbivax", X(31,786), XRT_MASK, BOOKE, { RA, RB } }, 44855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbivaxe",X(31,787), XRT_MASK, BOOKE64, { RA, RB } }, 44865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwzcix", X(31,789), X_MASK, POWER6, { RT, RA0, RB } }, 44885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhbrx", X(31,790), X_MASK, COM, { RT, RA0, RB } }, 44905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sraw", XRC(31,792,0), X_MASK, PPCCOM, { RA, RS, RB } }, 44925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sra", XRC(31,792,0), X_MASK, PWRCOM, { RA, RS, RB } }, 44935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sraw.", XRC(31,792,1), X_MASK, PPCCOM, { RA, RS, RB } }, 44945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sra.", XRC(31,792,1), X_MASK, PWRCOM, { RA, RS, RB } }, 44955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srad", XRC(31,794,0), X_MASK, PPC64, { RA, RS, RB } }, 44975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srad.", XRC(31,794,1), X_MASK, PPC64, { RA, RS, RB } }, 44985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 44995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhbrxe", X(31,798), X_MASK, BOOKE64, { RT, RA0, RB } }, 45005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ldxe", X(31,799), X_MASK, BOOKE64, { RT, RA0, RB } }, 45025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lduxe", X(31,831), X_MASK, BOOKE64, { RT, RA0, RB } }, 45035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rac", X(31,818), X_MASK, PWRCOM, { RT, RA, RB } }, 45055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhzcix", X(31,821), X_MASK, POWER6, { RT, RA0, RB } }, 45075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dss", XDSS(31,822,0), XDSS_MASK, PPCVEC, { STRM } }, 45095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dssall", XDSS(31,822,1), XDSS_MASK, PPCVEC, { 0 } }, 45105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srawi", XRC(31,824,0), X_MASK, PPCCOM, { RA, RS, SH } }, 45125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srai", XRC(31,824,0), X_MASK, PWRCOM, { RA, RS, SH } }, 45135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srawi.", XRC(31,824,1), X_MASK, PPCCOM, { RA, RS, SH } }, 45145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srai.", XRC(31,824,1), X_MASK, PWRCOM, { RA, RS, SH } }, 45155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slbmfev", X(31,851), XRA_MASK, PPC64, { RT, RB } }, 45175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lbzcix", X(31,853), X_MASK, POWER6, { RT, RA0, RB } }, 45195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mbar", X(31,854), X_MASK, BOOKE, { MO } }, 45218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "eieio", X(31,854), 0xffffffff, PPC, { 0 } }, 45228b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfiwax", X(31,855), X_MASK, POWER6, { FRT, RA0, RB } }, 45245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ldcix", X(31,885), X_MASK, POWER6, { RT, RA0, RB } }, 45268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbsx", XRC(31,914,0), X_MASK, PPC403|BOOKE, { RTO, RA, RB } }, 45285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbsx.", XRC(31,914,1), X_MASK, PPC403|BOOKE, { RTO, RA, RB } }, 45295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbsxe", XRC(31,915,0), X_MASK, BOOKE64, { RTO, RA, RB } }, 45305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbsxe.", XRC(31,915,1), X_MASK, BOOKE64, { RTO, RA, RB } }, 45318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slbmfee", X(31,915), XRA_MASK, PPC64, { RT, RB } }, 45338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwcix", X(31,917), X_MASK, POWER6, { RS, RA0, RB } }, 45358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sthbrx", X(31,918), X_MASK, COM, { RS, RA0, RB } }, 45375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sraq", XRC(31,920,0), X_MASK, M601, { RA, RS, RB } }, 45395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sraq.", XRC(31,920,1), X_MASK, M601, { RA, RS, RB } }, 45405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srea", XRC(31,921,0), X_MASK, M601, { RA, RS, RB } }, 45425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srea.", XRC(31,921,1), X_MASK, M601, { RA, RS, RB } }, 45435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extsh", XRC(31,922,0), XRB_MASK, PPCCOM, { RA, RS } }, 45455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "exts", XRC(31,922,0), XRB_MASK, PWRCOM, { RA, RS } }, 45465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extsh.", XRC(31,922,1), XRB_MASK, PPCCOM, { RA, RS } }, 45475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "exts.", XRC(31,922,1), XRB_MASK, PWRCOM, { RA, RS } }, 45485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sthbrxe", X(31,926), X_MASK, BOOKE64, { RS, RA0, RB } }, 45505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stdxe", X(31,927), X_MASK, BOOKE64, { RS, RA0, RB } }, 45525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbrehi", XTLB(31,946,0), XTLB_MASK, PPC403, { RT, RA } }, 45545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbrelo", XTLB(31,946,1), XTLB_MASK, PPC403, { RT, RA } }, 45555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbre", X(31,946), X_MASK, PPC403|BOOKE, { RSO, RAOPT, SHO } }, 45565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sthcix", X(31,949), X_MASK, POWER6, { RS, RA0, RB } }, 45585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sraiq", XRC(31,952,0), X_MASK, M601, { RA, RS, SH } }, 45605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sraiq.", XRC(31,952,1), X_MASK, M601, { RA, RS, SH } }, 45618b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "extsb", XRC(31,954,0), XRB_MASK, PPC, { RA, RS} }, 45638b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "extsb.", XRC(31,954,1), XRB_MASK, PPC, { RA, RS} }, 45648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stduxe", X(31,959), X_MASK, BOOKE64, { RS, RAS, RB } }, 45665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "iccci", X(31,966), XRT_MASK, PPC403|PPC440, { RA, RB } }, 45685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbwehi", XTLB(31,978,0), XTLB_MASK, PPC403, { RT, RA } }, 45705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbwelo", XTLB(31,978,1), XTLB_MASK, PPC403, { RT, RA } }, 45715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbwe", X(31,978), X_MASK, PPC403|BOOKE, { RSO, RAOPT, SHO } }, 45725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbld", X(31,978), XRTRA_MASK, PPC, { RB } }, 45735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stbcix", X(31,981), X_MASK, POWER6, { RS, RA0, RB } }, 45758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "icbi", X(31,982), XRT_MASK, PPC, { RA, RB } }, 45778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfiwx", X(31,983), X_MASK, PPC, { FRS, RA0, RB } }, 45795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extsw", XRC(31,986,0), XRB_MASK, PPC64 | BOOKE64,{ RA, RS } }, 45815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extsw.", XRC(31,986,1), XRB_MASK, PPC64, { RA, RS } }, 45825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "icread", X(31,998), XRT_MASK, PPC403|PPC440, { RA, RB } }, 45845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "icbie", X(31,990), XRT_MASK, BOOKE64, { RA, RB } }, 45865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfiwxe", X(31,991), X_MASK, BOOKE64, { FRS, RA0, RB } }, 45878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "tlbli", X(31,1010), XRTRA_MASK, PPC, { RB } }, 45898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stdcix", X(31,1013), X_MASK, POWER6, { RS, RA0, RB } }, 45915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbzl", XOPL(31,1014,1), XRT_MASK,POWER4, { RA, RB } }, 45938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "dcbz", X(31,1014), XRT_MASK, PPC, { RA, RB } }, 45948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "dclz", X(31,1014), XRT_MASK, PPC, { RA, RB } }, 45958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 45965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcbze", X(31,1022), XRT_MASK, BOOKE64, { RA, RB } }, 45975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 45985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvebx", X(31, 7), X_MASK, PPCVEC, { VD, RA, RB } }, 45995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvehx", X(31, 39), X_MASK, PPCVEC, { VD, RA, RB } }, 46005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvewx", X(31, 71), X_MASK, PPCVEC, { VD, RA, RB } }, 46015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvsl", X(31, 6), X_MASK, PPCVEC, { VD, RA, RB } }, 46025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvsr", X(31, 38), X_MASK, PPCVEC, { VD, RA, RB } }, 46035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvx", X(31, 103), X_MASK, PPCVEC, { VD, RA, RB } }, 46045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvxl", X(31, 359), X_MASK, PPCVEC, { VD, RA, RB } }, 46055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stvebx", X(31, 135), X_MASK, PPCVEC, { VS, RA, RB } }, 46065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stvehx", X(31, 167), X_MASK, PPCVEC, { VS, RA, RB } }, 46075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stvewx", X(31, 199), X_MASK, PPCVEC, { VS, RA, RB } }, 46085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stvx", X(31, 231), X_MASK, PPCVEC, { VS, RA, RB } }, 46095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stvxl", X(31, 487), X_MASK, PPCVEC, { VS, RA, RB } }, 46105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 46115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* New load/store left/right index vector instructions that are in the Cell only. */ 46125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvlx", X(31, 519), X_MASK, CELL, { VD, RA0, RB } }, 46135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvlxl", X(31, 775), X_MASK, CELL, { VD, RA0, RB } }, 46145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvrx", X(31, 551), X_MASK, CELL, { VD, RA0, RB } }, 46155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lvrxl", X(31, 807), X_MASK, CELL, { VD, RA0, RB } }, 46165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stvlx", X(31, 647), X_MASK, CELL, { VS, RA0, RB } }, 46175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stvlxl", X(31, 903), X_MASK, CELL, { VS, RA0, RB } }, 46185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stvrx", X(31, 679), X_MASK, CELL, { VS, RA0, RB } }, 46195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stvrxl", X(31, 935), X_MASK, CELL, { VS, RA0, RB } }, 46205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 46215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwz", OP(32), OP_MASK, PPCCOM, { RT, D, RA0 } }, 46225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "l", OP(32), OP_MASK, PWRCOM, { RT, D, RA0 } }, 46235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 46245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwzu", OP(33), OP_MASK, PPCCOM, { RT, D, RAL } }, 46255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lu", OP(33), OP_MASK, PWRCOM, { RT, D, RA0 } }, 46265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 46275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lbz", OP(34), OP_MASK, COM, { RT, D, RA0 } }, 46285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 46295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lbzu", OP(35), OP_MASK, COM, { RT, D, RAL } }, 46308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stw", OP(36), OP_MASK, PPCCOM, { RS, D, RA0 } }, 46325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "st", OP(36), OP_MASK, PWRCOM, { RS, D, RA0 } }, 46338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwu", OP(37), OP_MASK, PPCCOM, { RS, D, RAS } }, 46355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stu", OP(37), OP_MASK, PWRCOM, { RS, D, RA0 } }, 46368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stb", OP(38), OP_MASK, COM, { RS, D, RA0 } }, 46388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stbu", OP(39), OP_MASK, COM, { RS, D, RAS } }, 46408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhz", OP(40), OP_MASK, COM, { RT, D, RA0 } }, 46428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhzu", OP(41), OP_MASK, COM, { RT, D, RAL } }, 46448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lha", OP(42), OP_MASK, COM, { RT, D, RA0 } }, 46468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhau", OP(43), OP_MASK, COM, { RT, D, RAL } }, 46488b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sth", OP(44), OP_MASK, COM, { RS, D, RA0 } }, 46508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sthu", OP(45), OP_MASK, COM, { RS, D, RAS } }, 46528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lmw", OP(46), OP_MASK, PPCCOM, { RT, D, RAM } }, 46545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lm", OP(46), OP_MASK, PWRCOM, { RT, D, RA0 } }, 46558b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stmw", OP(47), OP_MASK, PPCCOM, { RS, D, RA0 } }, 46575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stm", OP(47), OP_MASK, PWRCOM, { RS, D, RA0 } }, 46588b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfs", OP(48), OP_MASK, COM, { FRT, D, RA0 } }, 46608b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfsu", OP(49), OP_MASK, COM, { FRT, D, RAS } }, 46628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfd", OP(50), OP_MASK, COM, { FRT, D, RA0 } }, 46648b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfdu", OP(51), OP_MASK, COM, { FRT, D, RAS } }, 46668b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfs", OP(52), OP_MASK, COM, { FRS, D, RA0 } }, 46688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfsu", OP(53), OP_MASK, COM, { FRS, D, RAS } }, 46708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfd", OP(54), OP_MASK, COM, { FRS, D, RA0 } }, 46728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfdu", OP(55), OP_MASK, COM, { FRS, D, RAS } }, 46748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lq", OP(56), OP_MASK, POWER4, { RTQ, DQ, RAQ } }, 46768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfq", OP(56), OP_MASK, POWER2, { FRT, D, RA0 } }, 46788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfqu", OP(57), OP_MASK, POWER2, { FRT, D, RA0 } }, 46808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfdp", OP(57), OP_MASK, POWER6, { FRT, D, RA0 } }, 46828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lbze", DEO(58,0), DE_MASK, BOOKE64, { RT, DE, RA0 } }, 46845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lbzue", DEO(58,1), DE_MASK, BOOKE64, { RT, DE, RAL } }, 46855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhze", DEO(58,2), DE_MASK, BOOKE64, { RT, DE, RA0 } }, 46865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhzue", DEO(58,3), DE_MASK, BOOKE64, { RT, DE, RAL } }, 46875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhae", DEO(58,4), DE_MASK, BOOKE64, { RT, DE, RA0 } }, 46885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lhaue", DEO(58,5), DE_MASK, BOOKE64, { RT, DE, RAL } }, 46895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwze", DEO(58,6), DE_MASK, BOOKE64, { RT, DE, RA0 } }, 46905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwzue", DEO(58,7), DE_MASK, BOOKE64, { RT, DE, RAL } }, 46915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stbe", DEO(58,8), DE_MASK, BOOKE64, { RS, DE, RA0 } }, 46925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stbue", DEO(58,9), DE_MASK, BOOKE64, { RS, DE, RAS } }, 46935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sthe", DEO(58,10), DE_MASK, BOOKE64, { RS, DE, RA0 } }, 46945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sthue", DEO(58,11), DE_MASK, BOOKE64, { RS, DE, RAS } }, 46955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwe", DEO(58,14), DE_MASK, BOOKE64, { RS, DE, RA0 } }, 46965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stwue", DEO(58,15), DE_MASK, BOOKE64, { RS, DE, RAS } }, 46978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 46985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ld", DSO(58,0), DS_MASK, PPC64, { RT, DS, RA0 } }, 46998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ldu", DSO(58,1), DS_MASK, PPC64, { RT, DS, RAL } }, 47018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lwa", DSO(58,2), DS_MASK, PPC64, { RT, DS, RA0 } }, 47035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dadd", XRC(59,2,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 47055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dadd.", XRC(59,2,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 47065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dqua", ZRC(59,3,0), Z2_MASK, POWER6, { FRT, FRA, FRB, RMC } }, 47085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dqua.", ZRC(59,3,1), Z2_MASK, POWER6, { FRT, FRA, FRB, RMC } }, 47098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fdivs", A(59,18,0), AFRC_MASK, PPC, { FRT, FRA, FRB } }, 47118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fdivs.", A(59,18,1), AFRC_MASK, PPC, { FRT, FRA, FRB } }, 47128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fsubs", A(59,20,0), AFRC_MASK, PPC, { FRT, FRA, FRB } }, 47148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fsubs.", A(59,20,1), AFRC_MASK, PPC, { FRT, FRA, FRB } }, 47158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fadds", A(59,21,0), AFRC_MASK, PPC, { FRT, FRA, FRB } }, 47178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fadds.", A(59,21,1), AFRC_MASK, PPC, { FRT, FRA, FRB } }, 47188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fsqrts", A(59,22,0), AFRAFRC_MASK, PPC, { FRT, FRB } }, 47208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fsqrts.", A(59,22,1), AFRAFRC_MASK, PPC, { FRT, FRB } }, 47218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fres", A(59,24,0), AFRALFRC_MASK, PPC, { FRT, FRB, A_L } }, 47235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fres.", A(59,24,1), AFRALFRC_MASK, PPC, { FRT, FRB, A_L } }, 47248b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fmuls", A(59,25,0), AFRB_MASK, PPC, { FRT, FRA, FRC } }, 47268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fmuls.", A(59,25,1), AFRB_MASK, PPC, { FRT, FRA, FRC } }, 47278b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frsqrtes", A(59,26,0), AFRALFRC_MASK,POWER5, { FRT, FRB, A_L } }, 47295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frsqrtes.",A(59,26,1), AFRALFRC_MASK,POWER5, { FRT, FRB, A_L } }, 47305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fmsubs", A(59,28,0), A_MASK, PPC, { FRT,FRA,FRC,FRB } }, 47328b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fmsubs.", A(59,28,1), A_MASK, PPC, { FRT,FRA,FRC,FRB } }, 47338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47348b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fmadds", A(59,29,0), A_MASK, PPC, { FRT,FRA,FRC,FRB } }, 47358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fmadds.", A(59,29,1), A_MASK, PPC, { FRT,FRA,FRC,FRB } }, 47368b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47378b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fnmsubs", A(59,30,0), A_MASK, PPC, { FRT,FRA,FRC,FRB } }, 47388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fnmsubs.",A(59,30,1), A_MASK, PPC, { FRT,FRA,FRC,FRB } }, 47398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fnmadds", A(59,31,0), A_MASK, PPC, { FRT,FRA,FRC,FRB } }, 47418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fnmadds.",A(59,31,1), A_MASK, PPC, { FRT,FRA,FRC,FRB } }, 47428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 47435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dmul", XRC(59,34,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 47445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dmul.", XRC(59,34,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 47455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drrnd", ZRC(59,35,0), Z2_MASK, POWER6, { FRT, FRA, FRB, RMC } }, 47475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drrnd.", ZRC(59,35,1), Z2_MASK, POWER6, { FRT, FRA, FRB, RMC } }, 47485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dscli", ZRC(59,66,0), Z_MASK, POWER6, { FRT, FRA, SH16 } }, 47505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dscli.", ZRC(59,66,1), Z_MASK, POWER6, { FRT, FRA, SH16 } }, 47515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dquai", ZRC(59,67,0), Z2_MASK, POWER6, { TE, FRT, FRB, RMC } }, 47535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dquai.", ZRC(59,67,1), Z2_MASK, POWER6, { TE, FRT, FRB, RMC } }, 47545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dscri", ZRC(59,98,0), Z_MASK, POWER6, { FRT, FRA, SH16 } }, 47565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dscri.", ZRC(59,98,1), Z_MASK, POWER6, { FRT, FRA, SH16 } }, 47575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drintx", ZRC(59,99,0), Z2_MASK, POWER6, { R, FRT, FRB, RMC } }, 47595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drintx.", ZRC(59,99,1), Z2_MASK, POWER6, { R, FRT, FRB, RMC } }, 47605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcmpo", X(59,130), X_MASK, POWER6, { BF, FRA, FRB } }, 47625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dtstex", X(59,162), X_MASK, POWER6, { BF, FRA, FRB } }, 47645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dtstdc", Z(59,194), Z_MASK, POWER6, { BF, FRA, DCM } }, 47655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dtstdg", Z(59,226), Z_MASK, POWER6, { BF, FRA, DGM } }, 47665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drintn", ZRC(59,227,0), Z2_MASK, POWER6, { R, FRT, FRB, RMC } }, 47685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drintn.", ZRC(59,227,1), Z2_MASK, POWER6, { R, FRT, FRB, RMC } }, 47695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dctdp", XRC(59,258,0), X_MASK, POWER6, { FRT, FRB } }, 47715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dctdp.", XRC(59,258,1), X_MASK, POWER6, { FRT, FRB } }, 47725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dctfix", XRC(59,290,0), X_MASK, POWER6, { FRT, FRB } }, 47745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dctfix.", XRC(59,290,1), X_MASK, POWER6, { FRT, FRB } }, 47755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ddedpd", XRC(59,322,0), X_MASK, POWER6, { SP, FRT, FRB } }, 47775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ddedpd.", XRC(59,322,1), X_MASK, POWER6, { SP, FRT, FRB } }, 47785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dxex", XRC(59,354,0), X_MASK, POWER6, { FRT, FRB } }, 47805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dxex.", XRC(59,354,1), X_MASK, POWER6, { FRT, FRB } }, 47815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dsub", XRC(59,514,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 47835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dsub.", XRC(59,514,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 47845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ddiv", XRC(59,546,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 47865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ddiv.", XRC(59,546,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 47875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcmpu", X(59,642), X_MASK, POWER6, { BF, FRA, FRB } }, 47895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dtstsf", X(59,674), X_MASK, POWER6, { BF, FRA, FRB } }, 47915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drsp", XRC(59,770,0), X_MASK, POWER6, { FRT, FRB } }, 47935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drsp.", XRC(59,770,1), X_MASK, POWER6, { FRT, FRB } }, 47945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcffix", XRC(59,802,0), X_MASK, POWER6, { FRT, FRB } }, 47965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcffix.", XRC(59,802,1), X_MASK, POWER6, { FRT, FRB } }, 47975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 47985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "denbcd", XRC(59,834,0), X_MASK, POWER6, { S, FRT, FRB } }, 47995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "denbcd.", XRC(59,834,1), X_MASK, POWER6, { S, FRT, FRB } }, 48005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "diex", XRC(59,866,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 48025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "diex.", XRC(59,866,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 48035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48048b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "stfq", OP(60), OP_MASK, POWER2, { FRS, D, RA } }, 48058b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48068b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "stfqu", OP(61), OP_MASK, POWER2, { FRS, D, RA } }, 48078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfdp", OP(61), OP_MASK, POWER6, { FRT, D, RA0 } }, 48095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lde", DEO(62,0), DE_MASK, BOOKE64, { RT, DES, RA0 } }, 48115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ldue", DEO(62,1), DE_MASK, BOOKE64, { RT, DES, RA0 } }, 48125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfse", DEO(62,4), DE_MASK, BOOKE64, { FRT, DES, RA0 } }, 48135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfsue", DEO(62,5), DE_MASK, BOOKE64, { FRT, DES, RAS } }, 48145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfde", DEO(62,6), DE_MASK, BOOKE64, { FRT, DES, RA0 } }, 48155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "lfdue", DEO(62,7), DE_MASK, BOOKE64, { FRT, DES, RAS } }, 48165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stde", DEO(62,8), DE_MASK, BOOKE64, { RS, DES, RA0 } }, 48175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stdue", DEO(62,9), DE_MASK, BOOKE64, { RS, DES, RAS } }, 48185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfse", DEO(62,12), DE_MASK, BOOKE64, { FRS, DES, RA0 } }, 48195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfsue", DEO(62,13), DE_MASK, BOOKE64, { FRS, DES, RAS } }, 48205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfde", DEO(62,14), DE_MASK, BOOKE64, { FRS, DES, RA0 } }, 48215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stfdue", DEO(62,15), DE_MASK, BOOKE64, { FRS, DES, RAS } }, 48225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "std", DSO(62,0), DS_MASK, PPC64, { RS, DS, RA0 } }, 48245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stdu", DSO(62,1), DS_MASK, PPC64, { RS, DS, RAS } }, 48268b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "stq", DSO(62,2), DS_MASK, POWER4, { RSQ, DS, RA0 } }, 48288b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fcmpu", X(63,0), X_MASK|(3<<21), COM, { BF, FRA, FRB } }, 48308b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "daddq", XRC(63,2,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 48325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "daddq.", XRC(63,2,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 48338b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dquaq", ZRC(63,3,0), Z2_MASK, POWER6, { FRT, FRA, FRB, RMC } }, 48355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dquaq.", ZRC(63,3,1), Z2_MASK, POWER6, { FRT, FRA, FRB, RMC } }, 48365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fcpsgn", XRC(63,8,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 48385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fcpsgn.", XRC(63,8,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 48395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frsp", XRC(63,12,0), XRA_MASK, COM, { FRT, FRB } }, 48415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frsp.", XRC(63,12,1), XRA_MASK, COM, { FRT, FRB } }, 48425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fctiw", XRC(63,14,0), XRA_MASK, PPCCOM, { FRT, FRB } }, 48448b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fcir", XRC(63,14,0), XRA_MASK, POWER2, { FRT, FRB } }, 48455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fctiw.", XRC(63,14,1), XRA_MASK, PPCCOM, { FRT, FRB } }, 48468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fcir.", XRC(63,14,1), XRA_MASK, POWER2, { FRT, FRB } }, 48478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fctiwz", XRC(63,15,0), XRA_MASK, PPCCOM, { FRT, FRB } }, 48498b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fcirz", XRC(63,15,0), XRA_MASK, POWER2, { FRT, FRB } }, 48505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fctiwz.", XRC(63,15,1), XRA_MASK, PPCCOM, { FRT, FRB } }, 48518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fcirz.", XRC(63,15,1), XRA_MASK, POWER2, { FRT, FRB } }, 48528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fdiv", A(63,18,0), AFRC_MASK, PPCCOM, { FRT, FRA, FRB } }, 48545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fd", A(63,18,0), AFRC_MASK, PWRCOM, { FRT, FRA, FRB } }, 48555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fdiv.", A(63,18,1), AFRC_MASK, PPCCOM, { FRT, FRA, FRB } }, 48565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fd.", A(63,18,1), AFRC_MASK, PWRCOM, { FRT, FRA, FRB } }, 48578b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fsub", A(63,20,0), AFRC_MASK, PPCCOM, { FRT, FRA, FRB } }, 48595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fs", A(63,20,0), AFRC_MASK, PWRCOM, { FRT, FRA, FRB } }, 48605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fsub.", A(63,20,1), AFRC_MASK, PPCCOM, { FRT, FRA, FRB } }, 48615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fs.", A(63,20,1), AFRC_MASK, PWRCOM, { FRT, FRA, FRB } }, 48628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fadd", A(63,21,0), AFRC_MASK, PPCCOM, { FRT, FRA, FRB } }, 48645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fa", A(63,21,0), AFRC_MASK, PWRCOM, { FRT, FRA, FRB } }, 48655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fadd.", A(63,21,1), AFRC_MASK, PPCCOM, { FRT, FRA, FRB } }, 48665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fa.", A(63,21,1), AFRC_MASK, PWRCOM, { FRT, FRA, FRB } }, 48678b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fsqrt", A(63,22,0), AFRAFRC_MASK, PPCPWR2, { FRT, FRB } }, 48695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fsqrt.", A(63,22,1), AFRAFRC_MASK, PPCPWR2, { FRT, FRB } }, 48708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fsel", A(63,23,0), A_MASK, PPC, { FRT,FRA,FRC,FRB } }, 48728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ "fsel.", A(63,23,1), A_MASK, PPC, { FRT,FRA,FRC,FRB } }, 48738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 48745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fre", A(63,24,0), AFRALFRC_MASK, POWER5, { FRT, FRB, A_L } }, 48755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fre.", A(63,24,1), AFRALFRC_MASK, POWER5, { FRT, FRB, A_L } }, 48765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fmul", A(63,25,0), AFRB_MASK, PPCCOM, { FRT, FRA, FRC } }, 48785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fm", A(63,25,0), AFRB_MASK, PWRCOM, { FRT, FRA, FRC } }, 48795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fmul.", A(63,25,1), AFRB_MASK, PPCCOM, { FRT, FRA, FRC } }, 48805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fm.", A(63,25,1), AFRB_MASK, PWRCOM, { FRT, FRA, FRC } }, 48815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frsqrte", A(63,26,0), AFRALFRC_MASK, PPC, { FRT, FRB, A_L } }, 48835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frsqrte.",A(63,26,1), AFRALFRC_MASK, PPC, { FRT, FRB, A_L } }, 48845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fmsub", A(63,28,0), A_MASK, PPCCOM, { FRT,FRA,FRC,FRB } }, 48865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fms", A(63,28,0), A_MASK, PWRCOM, { FRT,FRA,FRC,FRB } }, 48875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fmsub.", A(63,28,1), A_MASK, PPCCOM, { FRT,FRA,FRC,FRB } }, 48885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fms.", A(63,28,1), A_MASK, PWRCOM, { FRT,FRA,FRC,FRB } }, 48895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fmadd", A(63,29,0), A_MASK, PPCCOM, { FRT,FRA,FRC,FRB } }, 48915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fma", A(63,29,0), A_MASK, PWRCOM, { FRT,FRA,FRC,FRB } }, 48925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fmadd.", A(63,29,1), A_MASK, PPCCOM, { FRT,FRA,FRC,FRB } }, 48935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fma.", A(63,29,1), A_MASK, PWRCOM, { FRT,FRA,FRC,FRB } }, 48945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 48955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fnmsub", A(63,30,0), A_MASK, PPCCOM, { FRT,FRA,FRC,FRB } }, 48965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fnms", A(63,30,0), A_MASK, PWRCOM, { FRT,FRA,FRC,FRB } }, 48975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fnmsub.", A(63,30,1), A_MASK, PPCCOM, { FRT,FRA,FRC,FRB } }, 48985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fnms.", A(63,30,1), A_MASK, PWRCOM, { FRT,FRA,FRC,FRB } }, 48995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fnmadd", A(63,31,0), A_MASK, PPCCOM, { FRT,FRA,FRC,FRB } }, 49015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fnma", A(63,31,0), A_MASK, PWRCOM, { FRT,FRA,FRC,FRB } }, 49025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fnmadd.", A(63,31,1), A_MASK, PPCCOM, { FRT,FRA,FRC,FRB } }, 49035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fnma.", A(63,31,1), A_MASK, PWRCOM, { FRT,FRA,FRC,FRB } }, 49045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fcmpo", X(63,32), X_MASK|(3<<21), COM, { BF, FRA, FRB } }, 49065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dmulq", XRC(63,34,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 49085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dmulq.", XRC(63,34,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 49095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drrndq", ZRC(63,35,0), Z2_MASK, POWER6, { FRT, FRA, FRB, RMC } }, 49115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drrndq.", ZRC(63,35,1), Z2_MASK, POWER6, { FRT, FRA, FRB, RMC } }, 49125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtfsb1", XRC(63,38,0), XRARB_MASK, COM, { BT } }, 49145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtfsb1.", XRC(63,38,1), XRARB_MASK, COM, { BT } }, 49155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fneg", XRC(63,40,0), XRA_MASK, COM, { FRT, FRB } }, 49175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fneg.", XRC(63,40,1), XRA_MASK, COM, { FRT, FRB } }, 49185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mcrfs", X(63,64), XRB_MASK|(3<<21)|(3<<16), COM, { BF, BFA } }, 49205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dscliq", ZRC(63,66,0), Z_MASK, POWER6, { FRT, FRA, SH16 } }, 49225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dscliq.", ZRC(63,66,1), Z_MASK, POWER6, { FRT, FRA, SH16 } }, 49235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dquaiq", ZRC(63,67,0), Z2_MASK, POWER6, { TE, FRT, FRB, RMC } }, 49255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dquaiq.", ZRC(63,67,1), Z2_MASK, POWER6, { FRT, FRA, FRB, RMC } }, 49265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtfsb0", XRC(63,70,0), XRARB_MASK, COM, { BT } }, 49285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtfsb0.", XRC(63,70,1), XRARB_MASK, COM, { BT } }, 49295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fmr", XRC(63,72,0), XRA_MASK, COM, { FRT, FRB } }, 49315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fmr.", XRC(63,72,1), XRA_MASK, COM, { FRT, FRB } }, 49325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dscriq", ZRC(63,98,0), Z_MASK, POWER6, { FRT, FRA, SH16 } }, 49345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dscriq.", ZRC(63,98,1), Z_MASK, POWER6, { FRT, FRA, SH16 } }, 49355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 49365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drintxq", ZRC(63,99,0), Z2_MASK, POWER6, { R, FRT, FRB, RMC } }, 49375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drintxq.",ZRC(63,99,1), Z2_MASK, POWER6, { R, FRT, FRB, RMC } }, 49388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcmpoq", X(63,130), X_MASK, POWER6, { BF, FRA, FRB } }, 49408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtfsfi", XRC(63,134,0), XWRA_MASK|(3<<21)|(1<<11), COM, { BFF, U, W } }, 49425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtfsfi.", XRC(63,134,1), XWRA_MASK|(3<<21)|(1<<11), COM, { BFF, U, W } }, 49438b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fnabs", XRC(63,136,0), XRA_MASK, COM, { FRT, FRB } }, 49455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fnabs.", XRC(63,136,1), XRA_MASK, COM, { FRT, FRB } }, 49468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dtstexq", X(63,162), X_MASK, POWER6, { BF, FRA, FRB } }, 49485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dtstdcq", Z(63,194), Z_MASK, POWER6, { BF, FRA, DCM } }, 49495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dtstdgq", Z(63,226), Z_MASK, POWER6, { BF, FRA, DGM } }, 49508b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drintnq", ZRC(63,227,0), Z2_MASK, POWER6, { R, FRT, FRB, RMC } }, 49525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drintnq.",ZRC(63,227,1), Z2_MASK, POWER6, { R, FRT, FRB, RMC } }, 49538b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dctqpq", XRC(63,258,0), X_MASK, POWER6, { FRT, FRB } }, 49555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dctqpq.", XRC(63,258,1), X_MASK, POWER6, { FRT, FRB } }, 49568b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fabs", XRC(63,264,0), XRA_MASK, COM, { FRT, FRB } }, 49585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fabs.", XRC(63,264,1), XRA_MASK, COM, { FRT, FRB } }, 49598b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dctfixq", XRC(63,290,0), X_MASK, POWER6, { FRT, FRB } }, 49615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dctfixq.",XRC(63,290,1), X_MASK, POWER6, { FRT, FRB } }, 49628b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ddedpdq", XRC(63,322,0), X_MASK, POWER6, { SP, FRT, FRB } }, 49645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ddedpdq.",XRC(63,322,1), X_MASK, POWER6, { SP, FRT, FRB } }, 49658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dxexq", XRC(63,354,0), X_MASK, POWER6, { FRT, FRB } }, 49675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dxexq.", XRC(63,354,1), X_MASK, POWER6, { FRT, FRB } }, 49688b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frin", XRC(63,392,0), XRA_MASK, POWER5, { FRT, FRB } }, 49705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frin.", XRC(63,392,1), XRA_MASK, POWER5, { FRT, FRB } }, 49715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "friz", XRC(63,424,0), XRA_MASK, POWER5, { FRT, FRB } }, 49725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "friz.", XRC(63,424,1), XRA_MASK, POWER5, { FRT, FRB } }, 49735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frip", XRC(63,456,0), XRA_MASK, POWER5, { FRT, FRB } }, 49745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frip.", XRC(63,456,1), XRA_MASK, POWER5, { FRT, FRB } }, 49755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frim", XRC(63,488,0), XRA_MASK, POWER5, { FRT, FRB } }, 49765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "frim.", XRC(63,488,1), XRA_MASK, POWER5, { FRT, FRB } }, 49778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dsubq", XRC(63,514,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 49795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dsubq.", XRC(63,514,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 49808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ddivq", XRC(63,546,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 49825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "ddivq.", XRC(63,546,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 49838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mffs", XRC(63,583,0), XRARB_MASK, COM, { FRT } }, 49855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mffs.", XRC(63,583,1), XRARB_MASK, COM, { FRT } }, 49868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcmpuq", X(63,642), X_MASK, POWER6, { BF, FRA, FRB } }, 49888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dtstsfq", X(63,674), X_MASK, POWER6, { BF, FRA, FRB } }, 49908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtfsf", XFL(63,711,0), XFL_MASK, COM, { FLM, FRB, XFL_L, W } }, 49925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "mtfsf.", XFL(63,711,1), XFL_MASK, COM, { FLM, FRB, XFL_L, W } }, 49938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drdpq", XRC(63,770,0), X_MASK, POWER6, { FRT, FRB } }, 49955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "drdpq.", XRC(63,770,1), X_MASK, POWER6, { FRT, FRB } }, 49968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 49975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcffixq", XRC(63,802,0), X_MASK, POWER6, { FRT, FRB } }, 49985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "dcffixq.",XRC(63,802,1), X_MASK, POWER6, { FRT, FRB } }, 49995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fctid", XRC(63,814,0), XRA_MASK, PPC64, { FRT, FRB } }, 50015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fctid.", XRC(63,814,1), XRA_MASK, PPC64, { FRT, FRB } }, 50025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fctidz", XRC(63,815,0), XRA_MASK, PPC64, { FRT, FRB } }, 50045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fctidz.", XRC(63,815,1), XRA_MASK, PPC64, { FRT, FRB } }, 50055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "denbcdq", XRC(63,834,0), X_MASK, POWER6, { S, FRT, FRB } }, 50075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "denbcdq.",XRC(63,834,1), X_MASK, POWER6, { S, FRT, FRB } }, 50085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fcfid", XRC(63,846,0), XRA_MASK, PPC64, { FRT, FRB } }, 50105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "fcfid.", XRC(63,846,1), XRA_MASK, PPC64, { FRT, FRB } }, 50115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "diexq", XRC(63,866,0), X_MASK, POWER6, { FRT, FRA, FRB } }, 50135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "diexq.", XRC(63,866,1), X_MASK, POWER6, { FRT, FRA, FRB } }, 50148b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 50158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 50168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 50178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectconst int powerpc_num_opcodes = 50188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project sizeof (powerpc_opcodes) / sizeof (powerpc_opcodes[0]); 50198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 50208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* The macro table. This is only used by the assembler. */ 50218b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 50225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* The expressions of the form (-x ! 31) & (x | 31) have the value 0 50235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner when x=0; 32-x when x is between 1 and 31; are negative if x is 50245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner negative; and are 32 or more otherwise. This is what you want 50255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner when, for instance, you are emulating a right shift by a 50265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner rotate-left-and-mask, because the underlying instructions support 50275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner shifts of size 0 but not shifts of size 32. By comparison, when 50285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner extracting x bits from some word you want to use just 32-x, because 50295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner the underlying instructions don't support extracting 0 bits but do 50305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner support extracting the whole word (32 bits in this case). */ 50318b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 50325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerconst struct powerpc_macro powerpc_macros[] = { 50335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extldi", 4, PPC64, "rldicr %0,%1,%3,(%2)-1" }, 50345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extldi.", 4, PPC64, "rldicr. %0,%1,%3,(%2)-1" }, 50355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extrdi", 4, PPC64, "rldicl %0,%1,(%2)+(%3),64-(%2)" }, 50365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extrdi.", 4, PPC64, "rldicl. %0,%1,(%2)+(%3),64-(%2)" }, 50375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "insrdi", 4, PPC64, "rldimi %0,%1,64-((%2)+(%3)),%3" }, 50385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "insrdi.", 4, PPC64, "rldimi. %0,%1,64-((%2)+(%3)),%3" }, 50395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotrdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),0" }, 50405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotrdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),0" }, 50415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sldi", 3, PPC64, "rldicr %0,%1,%2,63-(%2)" }, 50425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sldi.", 3, PPC64, "rldicr. %0,%1,%2,63-(%2)" }, 50435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srdi", 3, PPC64, "rldicl %0,%1,(-(%2)!63)&((%2)|63),%2" }, 50445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srdi.", 3, PPC64, "rldicl. %0,%1,(-(%2)!63)&((%2)|63),%2" }, 50455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrrdi", 3, PPC64, "rldicr %0,%1,0,63-(%2)" }, 50465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrrdi.", 3, PPC64, "rldicr. %0,%1,0,63-(%2)" }, 50475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrlsldi",4, PPC64, "rldic %0,%1,%3,(%2)-(%3)" }, 50485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrlsldi.",4, PPC64, "rldic. %0,%1,%3,(%2)-(%3)" }, 50495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extlwi", 4, PPCCOM, "rlwinm %0,%1,%3,0,(%2)-1" }, 50515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extlwi.", 4, PPCCOM, "rlwinm. %0,%1,%3,0,(%2)-1" }, 50525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extrwi", 4, PPCCOM, "rlwinm %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31" }, 50535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "extrwi.", 4, PPCCOM, "rlwinm. %0,%1,((%2)+(%3))&((%2)+(%3)<>32),32-(%2),31" }, 50545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "inslwi", 4, PPCCOM, "rlwimi %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1" }, 50555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "inslwi.", 4, PPCCOM, "rlwimi. %0,%1,(-(%3)!31)&((%3)|31),%3,(%2)+(%3)-1"}, 50565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "insrwi", 4, PPCCOM, "rlwimi %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1" }, 50575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "insrwi.", 4, PPCCOM, "rlwimi. %0,%1,32-((%2)+(%3)),%3,(%2)+(%3)-1"}, 50585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotrwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),0,31" }, 50595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "rotrwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),0,31" }, 50605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slwi", 3, PPCCOM, "rlwinm %0,%1,%2,0,31-(%2)" }, 50615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sli", 3, PWRCOM, "rlinm %0,%1,%2,0,31-(%2)" }, 50625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "slwi.", 3, PPCCOM, "rlwinm. %0,%1,%2,0,31-(%2)" }, 50635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sli.", 3, PWRCOM, "rlinm. %0,%1,%2,0,31-(%2)" }, 50645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srwi", 3, PPCCOM, "rlwinm %0,%1,(-(%2)!31)&((%2)|31),%2,31" }, 50655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sri", 3, PWRCOM, "rlinm %0,%1,(-(%2)!31)&((%2)|31),%2,31" }, 50665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "srwi.", 3, PPCCOM, "rlwinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31" }, 50675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "sri.", 3, PWRCOM, "rlinm. %0,%1,(-(%2)!31)&((%2)|31),%2,31" }, 50685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrrwi", 3, PPCCOM, "rlwinm %0,%1,0,0,31-(%2)" }, 50695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrrwi.", 3, PPCCOM, "rlwinm. %0,%1,0,0,31-(%2)" }, 50705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrlslwi",4, PPCCOM, "rlwinm %0,%1,%3,(%2)-(%3),31-(%3)" }, 50715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ "clrlslwi.",4, PPCCOM, "rlwinm. %0,%1,%3,(%2)-(%3),31-(%3)" }, 50728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project}; 50738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 50748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectconst int powerpc_num_macros = 50758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project sizeof (powerpc_macros) / sizeof (powerpc_macros[0]); 50768b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 50775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* This file provides several disassembler functions, all of which use 50795aaf1290494bf7c8fe521d817fd4a040c88b3750David 'Digit' Turner the disassembler interface defined in dis-asm.h. Several functions 50805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner are provided because this file handles disassembly for the PowerPC 50815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner in both big and little endian mode and also for the POWER (RS/6000) 50825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner chip. */ 50835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic int print_insn_powerpc (bfd_vma, struct disassemble_info *, int, int); 50855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Determine which set of machines to disassemble for. PPC403/601 or 50875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner BookE. For convenience, also disassemble instructions supported 50885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner by the AltiVec vector unit. */ 50895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic int 50915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerpowerpc_dialect (struct disassemble_info *info) 50925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 50935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect = PPC_OPCODE_PPC; 50945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (BFD_DEFAULT_TARGET_SIZE == 64) 50965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_64; 50975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 50985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (info->disassembler_options 50995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && strstr (info->disassembler_options, "booke") != NULL) 51005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_BOOKE | PPC_OPCODE_BOOKE64; 51015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((info->mach == bfd_mach_ppc_e500) 51025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || (info->disassembler_options 51035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && strstr (info->disassembler_options, "e500") != NULL)) 51045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= (PPC_OPCODE_BOOKE 51055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner | PPC_OPCODE_SPE | PPC_OPCODE_ISEL 51065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner | PPC_OPCODE_EFS | PPC_OPCODE_BRLOCK 51075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner | PPC_OPCODE_PMR | PPC_OPCODE_CACHELCK 51085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner | PPC_OPCODE_RFMCI); 51095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if (info->disassembler_options 51105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && strstr (info->disassembler_options, "efs") != NULL) 51115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_EFS; 51125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if (info->disassembler_options 51135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && strstr (info->disassembler_options, "e300") != NULL) 51145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_E300 | PPC_OPCODE_CLASSIC | PPC_OPCODE_COMMON; 51155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if (info->disassembler_options 51165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && strstr (info->disassembler_options, "440") != NULL) 51175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_BOOKE | PPC_OPCODE_32 51185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner | PPC_OPCODE_440 | PPC_OPCODE_ISEL | PPC_OPCODE_RFMCI; 51195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else 51205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= (PPC_OPCODE_403 | PPC_OPCODE_601 | PPC_OPCODE_CLASSIC 51215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner | PPC_OPCODE_COMMON | PPC_OPCODE_ALTIVEC); 51225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (info->disassembler_options 51245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && strstr (info->disassembler_options, "power4") != NULL) 51255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_POWER4; 51265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (info->disassembler_options 51285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && strstr (info->disassembler_options, "power5") != NULL) 51295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5; 51305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (info->disassembler_options 51325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && strstr (info->disassembler_options, "cell") != NULL) 51335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_POWER4 | PPC_OPCODE_CELL | PPC_OPCODE_ALTIVEC; 51345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (info->disassembler_options 51365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && strstr (info->disassembler_options, "power6") != NULL) 51375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_POWER4 | PPC_OPCODE_POWER5 | PPC_OPCODE_POWER6 | PPC_OPCODE_ALTIVEC; 51385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (info->disassembler_options 51405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && strstr (info->disassembler_options, "any") != NULL) 51415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_ANY; 51425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (info->disassembler_options) 51445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 51455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (strstr (info->disassembler_options, "32") != NULL) 51465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect &= ~PPC_OPCODE_64; 51475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if (strstr (info->disassembler_options, "64") != NULL) 51485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect |= PPC_OPCODE_64; 51495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 51505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner info->private_data = (char *) 0 + dialect; 51525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return dialect; 51535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 51545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51555aaf1290494bf7c8fe521d817fd4a040c88b3750David 'Digit' Turner/* QEMU default */ 51565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerint 51575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerprint_insn_ppc (bfd_vma memaddr, struct disassemble_info *info) 51585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 51595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect = (char *) info->private_data - (char *) 0; 51605aaf1290494bf7c8fe521d817fd4a040c88b3750David 'Digit' Turner return print_insn_powerpc (memaddr, info, info->endian == BFD_ENDIAN_BIG, 51615aaf1290494bf7c8fe521d817fd4a040c88b3750David 'Digit' Turner dialect); 51625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 51635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Print a big endian PowerPC instruction. */ 51658b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 51665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerint 51675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerprint_insn_big_powerpc (bfd_vma memaddr, struct disassemble_info *info) 51685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 51695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect = (char *) info->private_data - (char *) 0; 51705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return print_insn_powerpc (memaddr, info, 1, dialect); 51715d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 51725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Print a little endian PowerPC instruction. */ 51745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerint 51765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerprint_insn_little_powerpc (bfd_vma memaddr, struct disassemble_info *info) 51775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 51785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int dialect = (char *) info->private_data - (char *) 0; 51795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return print_insn_powerpc (memaddr, info, 0, dialect); 51805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 51815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51825d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Print a POWER (RS/6000) instruction. */ 51835d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51845d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerint 51855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerprint_insn_rs6000 (bfd_vma memaddr, struct disassemble_info *info) 51865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 51875d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return print_insn_powerpc (memaddr, info, 1, PPC_OPCODE_POWER); 51885d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 51895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51905d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Extract the operand value from the PowerPC or POWER instruction. */ 51915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 51925d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic long 51935d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turneroperand_value_powerpc (const struct powerpc_operand *operand, 51945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long insn, int dialect) 51955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner{ 51965d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value; 51975d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int invalid; 51985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Extract the value from the instruction. */ 51995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (operand->extract) 52005d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner value = (*operand->extract) (insn, dialect, &invalid); 52015d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else 52025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 52035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner value = (insn >> operand->shift) & operand->bitm; 52045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((operand->flags & PPC_OPERAND_SIGNED) != 0) 52055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 52065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* BITM is always some number of zeros followed by some 52075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner number of ones, followed by some numer of zeros. */ 52085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long top = operand->bitm; 52095d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* top & -top gives the rightmost 1 bit, so this 52105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner fills in any trailing zeros. */ 52115d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner top |= (top & -top) - 1; 52125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner top &= ~(top >> 1); 52135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner value = (value ^ top) - top; 52145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 52155d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 52165d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 52175d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return value; 52185d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner} 52198b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 52205d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner/* Determine whether the optional operand(s) should be printed. */ 52215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 52225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerstatic int 52235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerskip_optional_operands (const unsigned char *opindex, 52245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long insn, int dialect) 52258b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 52265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner const struct powerpc_operand *operand; 52275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 52285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner for (; *opindex != 0; opindex++) 52295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 52305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner operand = &powerpc_operands[*opindex]; 52315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((operand->flags & PPC_OPERAND_NEXT) != 0 52325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || ((operand->flags & PPC_OPERAND_OPTIONAL) != 0 52335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner && operand_value_powerpc (operand, insn, dialect) != 0)) 52345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return 0; 52358b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 52365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 52375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return 1; 52388b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 52398b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 52408b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project/* Print a PowerPC or POWER instruction. */ 52418b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 52428b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Projectstatic int 52435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turnerprint_insn_powerpc (bfd_vma memaddr, 52445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner struct disassemble_info *info, 52455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int bigendian, 52468b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int dialect) 52478b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project{ 52485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner bfd_byte buffer[4]; 52495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int status; 52505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long insn; 52518b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project const struct powerpc_opcode *opcode; 52528b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project const struct powerpc_opcode *opcode_end; 52535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long op; 52545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 52555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (dialect == 0) 52565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect = powerpc_dialect (info); 52575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 52585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner status = (*info->read_memory_func) (memaddr, buffer, 4, info); 52595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (status != 0) 52605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 52615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->memory_error_func) (status, memaddr, info); 52625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner return -1; 52635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 52645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 52655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (bigendian) 52665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner insn = bfd_getb32 (buffer); 52675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else 52685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner insn = bfd_getl32 (buffer); 52698b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 52708b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Get the major opcode of the instruction. */ 52718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project op = PPC_OP (insn); 52728b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 52738b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Find the first match in the opcode table. We could speed this up 52748b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project a bit by doing a binary search on the major opcode. */ 52758b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project opcode_end = powerpc_opcodes + powerpc_num_opcodes; 52765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner again: 52778b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project for (opcode = powerpc_opcodes; opcode < opcode_end; opcode++) 52788b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 52795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner unsigned long table_op; 52808b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project const unsigned char *opindex; 52818b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project const struct powerpc_operand *operand; 52828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int invalid; 52838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int need_comma; 52848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project int need_paren; 52855d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int skip_optional; 52868b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 52878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project table_op = PPC_OP (opcode->opcode); 52888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (op < table_op) 52895d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner break; 52908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (op > table_op) 52915d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner continue; 52928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 52938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if ((insn & opcode->mask) != opcode->opcode 52948b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project || (opcode->flags & dialect) == 0) 52955d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner continue; 52968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 52978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Make two passes over the operands. First see if any of them 52985d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner have extraction functions, and, if they do, make sure the 52995d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner instruction is valid. */ 53008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project invalid = 0; 53018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project for (opindex = opcode->operands; *opindex != 0; opindex++) 53025d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 53035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner operand = powerpc_operands + *opindex; 53045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (operand->extract) 53055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*operand->extract) (insn, dialect, &invalid); 53065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 53078b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (invalid) 53085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner continue; 53098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 53108b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* The instruction is valid. */ 53118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (opcode->operands[0] != 0) 53125d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, "%-7s ", opcode->name); 53135d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else 53145d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, "%s", opcode->name); 53158b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 53168b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* Now extract and print the operands. */ 53178b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project need_comma = 0; 53188b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project need_paren = 0; 53195d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner skip_optional = -1; 53208b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project for (opindex = opcode->operands; *opindex != 0; opindex++) 53215d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 53225d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner long value; 53235d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 53245d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner operand = powerpc_operands + *opindex; 53255d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 53265d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Operands that are marked FAKE are simply ignored. We 53275d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner already made sure that the extract function considered 53285d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner the instruction to be valid. */ 53295d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((operand->flags & PPC_OPERAND_FAKE) != 0) 53305d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner continue; 53315d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 53325d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* If all of the optional operands have the value zero, 53335d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner then don't print any of them. */ 53345d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((operand->flags & PPC_OPERAND_OPTIONAL) != 0) 53355d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 53365d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (skip_optional < 0) 53375d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner skip_optional = skip_optional_operands (opindex, insn, 53385d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect); 53395d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (skip_optional) 53405d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner continue; 53415d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 53425d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 53435d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner value = operand_value_powerpc (operand, insn, dialect); 53445d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 53455d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (need_comma) 53465d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 53475d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, ","); 53485d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner need_comma = 0; 53495d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 53505d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 53515d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner /* Print the operand as directed by the flags. */ 53525d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((operand->flags & PPC_OPERAND_GPR) != 0 53535d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || ((operand->flags & PPC_OPERAND_GPR_0) != 0 && value != 0)) 53545d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, "r%ld", value); 53555d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((operand->flags & PPC_OPERAND_FPR) != 0) 53565d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, "f%ld", value); 53575d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((operand->flags & PPC_OPERAND_VR) != 0) 53585d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, "v%ld", value); 53595d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((operand->flags & PPC_OPERAND_RELATIVE) != 0) 53605d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->print_address_func) (memaddr + value, info); 53615d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((operand->flags & PPC_OPERAND_ABSOLUTE) != 0) 53625d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->print_address_func) ((bfd_vma) value & 0xffffffff, info); 53635d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else if ((operand->flags & PPC_OPERAND_CR) == 0 53645d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner || (dialect & PPC_OPCODE_PPC) == 0) 53655d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, "%ld", value); 53665d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else 53675d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 53685d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (operand->bitm == 7) 53695d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, "cr%ld", value); 53705d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner else 53718b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 53725d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner static const char *cbnames[4] = { "lt", "gt", "eq", "so" }; 53735d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int cr; 53745d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner int cc; 53755d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 53765d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner cr = value >> 2; 53775d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if (cr != 0) 53785d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, "4*cr%d+", cr); 53795d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner cc = value & 3; 53805d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, "%s", cbnames[cc]); 53815d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 53828b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 53838b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 53848b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if (need_paren) 53858b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 53865d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, ")"); 53878b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project need_paren = 0; 53888b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 53898b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 53908b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project if ((operand->flags & PPC_OPERAND_PARENS) == 0) 53918b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project need_comma = 1; 53928b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project else 53938b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project { 53945d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, "("); 53958b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project need_paren = 1; 53968b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 53978b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 53988b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 53998b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* We have found and printed an instruction; return. */ 54008b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return 4; 54018b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project } 54028b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 54035d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner if ((dialect & PPC_OPCODE_ANY) != 0) 54045d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner { 54055d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner dialect = ~PPC_OPCODE_ANY; 54065d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner goto again; 54075d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner } 54085d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner 54098b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project /* We could not find a match. */ 54105d8f37ad78fc66901af50c762029a501561f3b23David 'Digit' Turner (*info->fprintf_func) (info->stream, ".long 0x%lx", insn); 54118b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project 54128b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project return 4; 54138b23a6c7e1aee255004dd19098d4c2462b61b849The Android Open Source Project} 5414