mirror of https://git.wuffs.org/MWCC
1347 lines
34 KiB
C
1347 lines
34 KiB
C
#ifndef COMPILER_PCODEINFO_H
|
|
#define COMPILER_PCODEINFO_H
|
|
|
|
#include "compiler/common.h"
|
|
|
|
#ifdef __MWERKS__
|
|
#pragma options align=mac68k
|
|
#endif
|
|
|
|
typedef enum {
|
|
PCOp_REGISTER,
|
|
PCOp_SYSREG,
|
|
PCOp_IMMEDIATE,
|
|
PCOp_MEMORY,
|
|
PCOp_LABEL,
|
|
PCOp_LABELDIFF,
|
|
PCOp_PLACEHOLDEROPERAND
|
|
} PCOpKind;
|
|
|
|
typedef struct _OpcodeInfo {
|
|
const char *name;
|
|
const char *format;
|
|
unsigned char x8;
|
|
unsigned char x9;
|
|
UInt32 flags;
|
|
SInt32 insn;
|
|
} OpcodeInfo;
|
|
|
|
typedef enum Opcode {
|
|
PC_INVALID = -1,
|
|
PC_B = 0x0,
|
|
PC_BL = 0x1,
|
|
PC_BC = 0x2,
|
|
PC_BCLR = 0x3,
|
|
PC_BCCTR = 0x4,
|
|
PC_BT = 0x5,
|
|
PC_BTLR = 0x6,
|
|
PC_BTCTR = 0x7,
|
|
PC_BF = 0x8,
|
|
PC_BFLR = 0x9,
|
|
PC_BFCTR = 0xA,
|
|
PC_BDNZ = 0xB,
|
|
PC_BDNZT = 0xC,
|
|
PC_BDNZF = 0xD,
|
|
PC_BDZ = 0xE,
|
|
PC_BDZT = 0xF,
|
|
PC_BDZF = 0x10,
|
|
PC_BLR = 0x11,
|
|
PC_BCTR = 0x12,
|
|
PC_BCTRL = 0x13,
|
|
PC_BLRL = 0x14,
|
|
PC_LBZ = 0x15,
|
|
PC_LBZU = 0x16,
|
|
PC_LBZX = 0x17,
|
|
PC_LBZUX = 0x18,
|
|
PC_LHZ = 0x19,
|
|
PC_LHZU = 0x1A,
|
|
PC_LHZX = 0x1B,
|
|
PC_LHZUX = 0x1C,
|
|
PC_LHA = 0x1D,
|
|
PC_LHAU = 0x1E,
|
|
PC_LHAX = 0x1F,
|
|
PC_LHAUX = 0x20,
|
|
PC_LHBRX = 0x21,
|
|
PC_LWZ = 0x22,
|
|
PC_LWZU = 0x23,
|
|
PC_LWZX = 0x24,
|
|
PC_LWZUX = 0x25,
|
|
PC_LWBRX = 0x26,
|
|
PC_LMW = 0x27,
|
|
PC_STB = 0x28,
|
|
PC_STBU = 0x29,
|
|
PC_STBX = 0x2A,
|
|
PC_STBUX = 0x2B,
|
|
PC_STH = 0x2C,
|
|
PC_STHU = 0x2D,
|
|
PC_STHX = 0x2E,
|
|
PC_STHUX = 0x2F,
|
|
PC_STHBRX = 0x30,
|
|
PC_STW = 0x31,
|
|
PC_STWU = 0x32,
|
|
PC_STWX = 0x33,
|
|
PC_STWUX = 0x34,
|
|
PC_STWBRX = 0x35,
|
|
PC_STMW = 0x36,
|
|
PC_DCBF = 0x37,
|
|
PC_DCBST = 0x38,
|
|
PC_DCBT = 0x39,
|
|
PC_DCBTST = 0x3A,
|
|
PC_DCBZ = 0x3B,
|
|
PC_ADD = 0x3C,
|
|
PC_ADDC = 0x3D,
|
|
PC_ADDE = 0x3E,
|
|
PC_ADDI = 0x3F,
|
|
PC_ADDIC = 0x40,
|
|
PC_ADDICR = 0x41,
|
|
PC_ADDIS = 0x42,
|
|
PC_ADDME = 0x43,
|
|
PC_ADDZE = 0x44,
|
|
PC_DIVW = 0x45,
|
|
PC_DIVWU = 0x46,
|
|
PC_MULHW = 0x47,
|
|
PC_MULHWU = 0x48,
|
|
PC_MULLI = 0x49,
|
|
PC_MULLW = 0x4A,
|
|
PC_NEG = 0x4B,
|
|
PC_SUBF = 0x4C,
|
|
PC_SUBFC = 0x4D,
|
|
PC_SUBFE = 0x4E,
|
|
PC_SUBFIC = 0x4F,
|
|
PC_SUBFME = 0x50,
|
|
PC_SUBFZE = 0x51,
|
|
PC_CMPI = 0x52,
|
|
PC_CMP = 0x53,
|
|
PC_CMPLI = 0x54,
|
|
PC_CMPL = 0x55,
|
|
PC_ANDI = 0x56,
|
|
PC_ANDIS = 0x57,
|
|
PC_ORI = 0x58,
|
|
PC_ORIS = 0x59,
|
|
PC_XORI = 0x5A,
|
|
PC_XORIS = 0x5B,
|
|
PC_AND = 0x5C,
|
|
PC_OR = 0x5D,
|
|
PC_XOR = 0x5E,
|
|
PC_NAND = 0x5F,
|
|
PC_NOR = 0x60,
|
|
PC_EQV = 0x61,
|
|
PC_ANDC = 0x62,
|
|
PC_ORC = 0x63,
|
|
PC_EXTSB = 0x64,
|
|
PC_EXTSH = 0x65,
|
|
PC_CNTLZW = 0x66,
|
|
PC_RLWINM = 0x67,
|
|
PC_RLWNM = 0x68,
|
|
PC_RLWIMI = 0x69,
|
|
PC_SLW = 0x6A,
|
|
PC_SRW = 0x6B,
|
|
PC_SRAWI = 0x6C,
|
|
PC_SRAW = 0x6D,
|
|
PC_CRAND = 0x6E,
|
|
PC_CRANDC = 0x6F,
|
|
PC_CREQV = 0x70,
|
|
PC_CRNAND = 0x71,
|
|
PC_CRNOR = 0x72,
|
|
PC_CROR = 0x73,
|
|
PC_CRORC = 0x74,
|
|
PC_CRXOR = 0x75,
|
|
PC_MCRF = 0x76,
|
|
PC_MTXER = 0x77,
|
|
PC_MTCTR = 0x78,
|
|
PC_MTLR = 0x79,
|
|
PC_MTCRF = 0x7A,
|
|
PC_MTMSR = 0x7B,
|
|
PC_MTSPR = 0x7C,
|
|
PC_MFMSR = 0x7D,
|
|
PC_MFSPR = 0x7E,
|
|
PC_MFXER = 0x7F,
|
|
PC_MFCTR = 0x80,
|
|
PC_MFLR = 0x81,
|
|
PC_MFCR = 0x82,
|
|
PC_MFFS = 0x83,
|
|
PC_MTFSF = 0x84,
|
|
PC_EIEIO = 0x85,
|
|
PC_ISYNC = 0x86,
|
|
PC_SYNC = 0x87,
|
|
PC_RFI = 0x88,
|
|
PC_LI = 0x89,
|
|
PC_LIS = 0x8A,
|
|
PC_MR = 0x8B,
|
|
PC_NOP = 0x8C,
|
|
PC_NOT = 0x8D,
|
|
PC_LFS = 0x8E,
|
|
PC_LFSU = 0x8F,
|
|
PC_LFSX = 0x90,
|
|
PC_LFSUX = 0x91,
|
|
PC_LFD = 0x92,
|
|
PC_LFDU = 0x93,
|
|
PC_LFDX = 0x94,
|
|
PC_LFDUX = 0x95,
|
|
PC_STFS = 0x96,
|
|
PC_STFSU = 0x97,
|
|
PC_STFSX = 0x98,
|
|
PC_STFSUX = 0x99,
|
|
PC_STFD = 0x9A,
|
|
PC_STFDU = 0x9B,
|
|
PC_STFDX = 0x9C,
|
|
PC_STFDUX = 0x9D,
|
|
PC_FMR = 0x9E,
|
|
PC_FABS = 0x9F,
|
|
PC_FNEG = 0xA0,
|
|
PC_FNABS = 0xA1,
|
|
PC_FADD = 0xA2,
|
|
PC_FADDS = 0xA3,
|
|
PC_FSUB = 0xA4,
|
|
PC_FSUBS = 0xA5,
|
|
PC_FMUL = 0xA6,
|
|
PC_FMULS = 0xA7,
|
|
PC_FDIV = 0xA8,
|
|
PC_FDIVS = 0xA9,
|
|
PC_FMADD = 0xAA,
|
|
PC_FMADDS = 0xAB,
|
|
PC_FMSUB = 0xAC,
|
|
PC_FMSUBS = 0xAD,
|
|
PC_FNMADD = 0xAE,
|
|
PC_FNMADDS = 0xAF,
|
|
PC_FNMSUB = 0xB0,
|
|
PC_FNMSUBS = 0xB1,
|
|
PC_FRES = 0xB2,
|
|
PC_FRSQRTE = 0xB3,
|
|
PC_FSEL = 0xB4,
|
|
PC_FRSP = 0xB5,
|
|
PC_FCTIW = 0xB6,
|
|
PC_FCTIWZ = 0xB7,
|
|
PC_FCMPU = 0xB8,
|
|
PC_FCMPO = 0xB9,
|
|
PC_LWARX = 0xBA,
|
|
PC_LSWI = 0xBB,
|
|
PC_LSWX = 0xBC,
|
|
PC_STFIWX = 0xBD,
|
|
PC_STSWI = 0xBE,
|
|
PC_STSWX = 0xBF,
|
|
PC_STWCX = 0xC0,
|
|
PC_ECIWX = 0xC1,
|
|
PC_ECOWX = 0xC2,
|
|
PC_DCBI = 0xC3,
|
|
PC_ICBI = 0xC4,
|
|
PC_MCRFS = 0xC5,
|
|
PC_MCRXR = 0xC6,
|
|
PC_MFTB = 0xC7,
|
|
PC_MFSR = 0xC8,
|
|
PC_MTSR = 0xC9,
|
|
PC_MFSRIN = 0xCA,
|
|
PC_MTSRIN = 0xCB,
|
|
PC_MTFSB0 = 0xCC,
|
|
PC_MTFSB1 = 0xCD,
|
|
PC_MTFSFI = 0xCE,
|
|
PC_SC = 0xCF,
|
|
PC_FSQRT = 0xD0,
|
|
PC_FSQRTS = 0xD1,
|
|
PC_TLBIA = 0xD2,
|
|
PC_TLBIE = 0xD3,
|
|
PC_TLBLD = 0xD4,
|
|
PC_TLBLI = 0xD5,
|
|
PC_TLBSYNC = 0xD6,
|
|
PC_TW = 0xD7,
|
|
PC_TRAP = 0xD8,
|
|
PC_TWI = 0xD9,
|
|
PC_OPWORD = 0xDA,
|
|
PC_MFROM = 0xDB,
|
|
PC_DSA = 0xDC,
|
|
PC_ESA = 0xDD,
|
|
PC_DCCCI = 0xDE,
|
|
PC_DCREAD = 0xDF,
|
|
PC_ICBT = 0xE0,
|
|
PC_ICCCI = 0xE1,
|
|
PC_ICREAD = 0xE2,
|
|
PC_RFCI = 0xE3,
|
|
PC_TLBRE = 0xE4,
|
|
PC_TLBSX = 0xE5,
|
|
PC_TLBWE = 0xE6,
|
|
PC_WRTEE = 0xE7,
|
|
PC_WRTEEI = 0xE8,
|
|
PC_MFDCR = 0xE9,
|
|
PC_MTDCR = 0xEA,
|
|
PC_DCBA = 0xEB,
|
|
PC_DSS = 0xEC,
|
|
PC_DSSALL = 0xED,
|
|
PC_DST = 0xEE,
|
|
PC_DSTT = 0xEF,
|
|
PC_DSTST = 0xF0,
|
|
PC_DSTSTT = 0xF1,
|
|
PC_LVEBX = 0xF2,
|
|
PC_LVEHX = 0xF3,
|
|
PC_LVEWX = 0xF4,
|
|
PC_LVSL = 0xF5,
|
|
PC_LVSR = 0xF6,
|
|
PC_LVX = 0xF7,
|
|
PC_LVXL = 0xF8,
|
|
PC_STVEBX = 0xF9,
|
|
PC_STVEHX = 0xFA,
|
|
PC_STVEWX = 0xFB,
|
|
PC_STVX = 0xFC,
|
|
PC_STVXL = 0xFD,
|
|
PC_MFVSCR = 0xFE,
|
|
PC_MTVSCR = 0xFF,
|
|
PC_VADDCUW = 0x100,
|
|
PC_VADDFP = 0x101,
|
|
PC_VADDSBS = 0x102,
|
|
PC_VADDSHS = 0x103,
|
|
PC_VADDSWS = 0x104,
|
|
PC_VADDUBM = 0x105,
|
|
PC_VADDUBS = 0x106,
|
|
PC_VADDUHM = 0x107,
|
|
PC_VADDUHS = 0x108,
|
|
PC_VADDUWM = 0x109,
|
|
PC_VADDUWS = 0x10A,
|
|
PC_VAND = 0x10B,
|
|
PC_VANDC = 0x10C,
|
|
PC_VAVGSB = 0x10D,
|
|
PC_VAVGSH = 0x10E,
|
|
PC_VAVGSW = 0x10F,
|
|
PC_VAVGUB = 0x110,
|
|
PC_VAVGUH = 0x111,
|
|
PC_VAVGUW = 0x112,
|
|
PC_VCFSX = 0x113,
|
|
PC_VCFUX = 0x114,
|
|
PC_VCMPBFP = 0x115,
|
|
PC_VCMPEQFP = 0x116,
|
|
PC_VCMPEQUB = 0x117,
|
|
PC_VCMPEQUH = 0x118,
|
|
PC_VCMPEQUW = 0x119,
|
|
PC_VCMPGEFP = 0x11A,
|
|
PC_VCMPGTFP = 0x11B,
|
|
PC_VCMPGTSB = 0x11C,
|
|
PC_VCMPGTSH = 0x11D,
|
|
PC_VCMPGTSW = 0x11E,
|
|
PC_VCMPGTUB = 0x11F,
|
|
PC_VCMPGTUH = 0x120,
|
|
PC_VCMPGTUW = 0x121,
|
|
PC_VCTSXS = 0x122,
|
|
PC_VCTUXS = 0x123,
|
|
PC_VEXPTEFP = 0x124,
|
|
PC_VLOGEFP = 0x125,
|
|
PC_VMAXFP = 0x126,
|
|
PC_VMAXSB = 0x127,
|
|
PC_VMAXSH = 0x128,
|
|
PC_VMAXSW = 0x129,
|
|
PC_VMAXUB = 0x12A,
|
|
PC_VMAXUH = 0x12B,
|
|
PC_VMAXUW = 0x12C,
|
|
PC_VMINFP = 0x12D,
|
|
PC_VMINSB = 0x12E,
|
|
PC_VMINSH = 0x12F,
|
|
PC_VMINSW = 0x130,
|
|
PC_VMINUB = 0x131,
|
|
PC_VMINUH = 0x132,
|
|
PC_VMINUW = 0x133,
|
|
PC_VMRGHB = 0x134,
|
|
PC_VMRGHH = 0x135,
|
|
PC_VMRGHW = 0x136,
|
|
PC_VMRGLB = 0x137,
|
|
PC_VMRGLH = 0x138,
|
|
PC_VMRGLW = 0x139,
|
|
PC_VMULESB = 0x13A,
|
|
PC_VMULESH = 0x13B,
|
|
PC_VMULEUB = 0x13C,
|
|
PC_VMULEUH = 0x13D,
|
|
PC_VMULOSB = 0x13E,
|
|
PC_VMULOSH = 0x13F,
|
|
PC_VMULOUB = 0x140,
|
|
PC_VMULOUH = 0x141,
|
|
PC_VNOR = 0x142,
|
|
PC_VOR = 0x143,
|
|
PC_VPKPX = 0x144,
|
|
PC_VPKSHSS = 0x145,
|
|
PC_VPKSHUS = 0x146,
|
|
PC_VPKSWSS = 0x147,
|
|
PC_VPKSWUS = 0x148,
|
|
PC_VPKUHUM = 0x149,
|
|
PC_VPKUHUS = 0x14A,
|
|
PC_VPKUWUM = 0x14B,
|
|
PC_VPKUWUS = 0x14C,
|
|
PC_VREFP = 0x14D,
|
|
PC_VRFIM = 0x14E,
|
|
PC_VRFIN = 0x14F,
|
|
PC_VRFIP = 0x150,
|
|
PC_VRFIZ = 0x151,
|
|
PC_VRLB = 0x152,
|
|
PC_VRLH = 0x153,
|
|
PC_VRLW = 0x154,
|
|
PC_VRSQRTEFP = 0x155,
|
|
PC_VSL = 0x156,
|
|
PC_VSLB = 0x157,
|
|
PC_VSLH = 0x158,
|
|
PC_VSLO = 0x159,
|
|
PC_VSLW = 0x15A,
|
|
PC_VSPLTB = 0x15B,
|
|
PC_VSPLTH = 0x15C,
|
|
PC_VSPLTW = 0x15D,
|
|
PC_VSPLTISB = 0x15E,
|
|
PC_VSPLTISH = 0x15F,
|
|
PC_VSPLTISW = 0x160,
|
|
PC_VSR = 0x161,
|
|
PC_VSRAB = 0x162,
|
|
PC_VSRAH = 0x163,
|
|
PC_VSRAW = 0x164,
|
|
PC_VSRB = 0x165,
|
|
PC_VSRH = 0x166,
|
|
PC_VSRO = 0x167,
|
|
PC_VSRW = 0x168,
|
|
PC_VSUBCUW = 0x169,
|
|
PC_VSUBFP = 0x16A,
|
|
PC_VSUBSBS = 0x16B,
|
|
PC_VSUBSHS = 0x16C,
|
|
PC_VSUBSWS = 0x16D,
|
|
PC_VSUBUBM = 0x16E,
|
|
PC_VSUBUBS = 0x16F,
|
|
PC_VSUBUHM = 0x170,
|
|
PC_VSUBUHS = 0x171,
|
|
PC_VSUBUWM = 0x172,
|
|
PC_VSUBUWS = 0x173,
|
|
PC_VSUMSWS = 0x174,
|
|
PC_VSUM2SWS = 0x175,
|
|
PC_VSUM4SBS = 0x176,
|
|
PC_VSUM4SHS = 0x177,
|
|
PC_VSUM4UBS = 0x178,
|
|
PC_VUPKHPX = 0x179,
|
|
PC_VUPKHSB = 0x17A,
|
|
PC_VUPKHSH = 0x17B,
|
|
PC_VUPKLPX = 0x17C,
|
|
PC_VUPKLSB = 0x17D,
|
|
PC_VUPKLSH = 0x17E,
|
|
PC_VXOR = 0x17F,
|
|
PC_VMADDFP = 0x180,
|
|
PC_VMHADDSHS = 0x181,
|
|
PC_VMHRADDSHS = 0x182,
|
|
PC_VMLADDUHM = 0x183,
|
|
PC_VMSUMMBM = 0x184,
|
|
PC_VMSUMSHM = 0x185,
|
|
PC_VMSUMSHS = 0x186,
|
|
PC_VMSUMUBM = 0x187,
|
|
PC_VMSUMUHM = 0x188,
|
|
PC_VMSUMUHS = 0x189,
|
|
PC_VNMSUBFP = 0x18A,
|
|
PC_VPERM = 0x18B,
|
|
PC_VSEL = 0x18C,
|
|
PC_VSLDOI = 0x18D,
|
|
PC_VMR = 0x18E,
|
|
PC_VMRP = 0x18F,
|
|
PC_SLE = 0x190,
|
|
PC_SLEQ = 0x191,
|
|
PC_SLIQ = 0x192,
|
|
PC_SLLIQ = 0x193,
|
|
PC_SLLQ = 0x194,
|
|
PC_SLQ = 0x195,
|
|
PC_SRAIQ = 0x196,
|
|
PC_SRAQ = 0x197,
|
|
PC_SRE = 0x198,
|
|
PC_SREA = 0x199,
|
|
PC_SREQ = 0x19A,
|
|
PC_SRIQ = 0x19B,
|
|
PC_SRLIQ = 0x19C,
|
|
PC_SRLQ = 0x19D,
|
|
PC_SRQ = 0x19E,
|
|
PC_MASKG = 0x19F,
|
|
PC_MASKIR = 0x1A0,
|
|
PC_LSCBX = 0x1A1,
|
|
PC_DIV = 0x1A2,
|
|
PC_DIVS = 0x1A3,
|
|
PC_DOZ = 0x1A4,
|
|
PC_MUL = 0x1A5,
|
|
PC_NABS = 0x1A6,
|
|
PC_ABS = 0x1A7,
|
|
PC_CLCS = 0x1A8,
|
|
PC_DOZI = 0x1A9,
|
|
PC_RLMI = 0x1AA,
|
|
PC_RRIB = 0x1AB,
|
|
PC_PENTRY = 0x1AC,
|
|
PC_PEXIT = 0x1AD,
|
|
OPCODE_MAX = 0x1AE
|
|
} Opcode;
|
|
//#define PC_B 0x0
|
|
//#define PC_BL 0x1
|
|
//#define PC_BC 0x2
|
|
//#define PC_BCLR 0x3
|
|
//#define PC_BCCTR 0x4
|
|
//#define PC_BT 0x5
|
|
//#define PC_BTLR 0x6
|
|
//#define PC_BTCTR 0x7
|
|
//#define PC_BF 0x8
|
|
//#define PC_BFLR 0x9
|
|
//#define PC_BFCTR 0xA
|
|
//#define PC_BDNZ 0xB
|
|
//#define PC_BDNZT 0xC
|
|
//#define PC_BDNZF 0xD
|
|
//#define PC_BDZ 0xE
|
|
//#define PC_BDZT 0xF
|
|
//#define PC_BDZF 0x10
|
|
//#define PC_BLR 0x11
|
|
//#define PC_BCTR 0x12
|
|
//#define PC_BCTRL 0x13
|
|
//#define PC_BLRL 0x14
|
|
//#define PC_LBZ 0x15
|
|
//#define PC_LBZU 0x16
|
|
//#define PC_LBZX 0x17
|
|
//#define PC_LBZUX 0x18
|
|
//#define PC_LHZ 0x19
|
|
//#define PC_LHZU 0x1A
|
|
//#define PC_LHZX 0x1B
|
|
//#define PC_LHZUX 0x1C
|
|
//#define PC_LHA 0x1D
|
|
//#define PC_LHAU 0x1E
|
|
//#define PC_LHAX 0x1F
|
|
//#define PC_LHAUX 0x20
|
|
//#define PC_LHBRX 0x21
|
|
//#define PC_LWZ 0x22
|
|
//#define PC_LWZU 0x23
|
|
//#define PC_LWZX 0x24
|
|
//#define PC_LWZUX 0x25
|
|
//#define PC_LWBRX 0x26
|
|
//#define PC_LMW 0x27
|
|
//#define PC_STB 0x28
|
|
//#define PC_STBU 0x29
|
|
//#define PC_STBX 0x2A
|
|
//#define PC_STBUX 0x2B
|
|
//#define PC_STH 0x2C
|
|
//#define PC_STHU 0x2D
|
|
//#define PC_STHX 0x2E
|
|
//#define PC_STHUX 0x2F
|
|
//#define PC_STHBRX 0x30
|
|
//#define PC_STW 0x31
|
|
//#define PC_STWU 0x32
|
|
//#define PC_STWX 0x33
|
|
//#define PC_STWUX 0x34
|
|
//#define PC_STWBRX 0x35
|
|
//#define PC_STMW 0x36
|
|
//#define PC_DCBF 0x37
|
|
//#define PC_DCBST 0x38
|
|
//#define PC_DCBT 0x39
|
|
//#define PC_DCBTST 0x3A
|
|
//#define PC_DCBZ 0x3B
|
|
//#define PC_ADD 0x3C
|
|
//#define PC_ADDC 0x3D
|
|
//#define PC_ADDE 0x3E
|
|
//#define PC_ADDI 0x3F
|
|
//#define PC_ADDIC 0x40
|
|
//#define PC_ADDICR 0x41
|
|
//#define PC_ADDIS 0x42
|
|
//#define PC_ADDME 0x43
|
|
//#define PC_ADDZE 0x44
|
|
//#define PC_DIVW 0x45
|
|
//#define PC_DIVWU 0x46
|
|
//#define PC_MULHW 0x47
|
|
//#define PC_MULHWU 0x48
|
|
//#define PC_MULLI 0x49
|
|
//#define PC_MULLW 0x4A
|
|
//#define PC_NEG 0x4B
|
|
//#define PC_SUBF 0x4C
|
|
//#define PC_SUBFC 0x4D
|
|
//#define PC_SUBFE 0x4E
|
|
//#define PC_SUBFIC 0x4F
|
|
//#define PC_SUBFME 0x50
|
|
//#define PC_SUBFZE 0x51
|
|
//#define PC_CMPI 0x52
|
|
//#define PC_CMP 0x53
|
|
//#define PC_CMPLI 0x54
|
|
//#define PC_CMPL 0x55
|
|
//#define PC_ANDI 0x56
|
|
//#define PC_ANDIS 0x57
|
|
//#define PC_ORI 0x58
|
|
//#define PC_ORIS 0x59
|
|
//#define PC_XORI 0x5A
|
|
//#define PC_XORIS 0x5B
|
|
//#define PC_AND 0x5C
|
|
//#define PC_OR 0x5D
|
|
//#define PC_XOR 0x5E
|
|
//#define PC_NAND 0x5F
|
|
//#define PC_NOR 0x60
|
|
//#define PC_EQV 0x61
|
|
//#define PC_ANDC 0x62
|
|
//#define PC_ORC 0x63
|
|
//#define PC_EXTSB 0x64
|
|
//#define PC_EXTSH 0x65
|
|
//#define PC_CNTLZW 0x66
|
|
//#define PC_RLWINM 0x67
|
|
//#define PC_RLWNM 0x68
|
|
//#define PC_RLWIMI 0x69
|
|
//#define PC_SLW 0x6A
|
|
//#define PC_SRW 0x6B
|
|
//#define PC_SRAWI 0x6C
|
|
//#define PC_SRAW 0x6D
|
|
//#define PC_CRAND 0x6E
|
|
//#define PC_CRANDC 0x6F
|
|
//#define PC_CREQV 0x70
|
|
//#define PC_CRNAND 0x71
|
|
//#define PC_CRNOR 0x72
|
|
//#define PC_CROR 0x73
|
|
//#define PC_CRORC 0x74
|
|
//#define PC_CRXOR 0x75
|
|
//#define PC_MCRF 0x76
|
|
//#define PC_MTXER 0x77
|
|
//#define PC_MTCTR 0x78
|
|
//#define PC_MTLR 0x79
|
|
//#define PC_MTCRF 0x7A
|
|
//#define PC_MTMSR 0x7B
|
|
//#define PC_MTSPR 0x7C
|
|
//#define PC_MFMSR 0x7D
|
|
//#define PC_MFSPR 0x7E
|
|
//#define PC_MFXER 0x7F
|
|
//#define PC_MFCTR 0x80
|
|
//#define PC_MFLR 0x81
|
|
//#define PC_MFCR 0x82
|
|
//#define PC_MFFS 0x83
|
|
//#define PC_MTFSF 0x84
|
|
//#define PC_EIEIO 0x85
|
|
//#define PC_ISYNC 0x86
|
|
//#define PC_SYNC 0x87
|
|
//#define PC_RFI 0x88
|
|
//#define PC_LI 0x89
|
|
//#define PC_LIS 0x8A
|
|
//#define PC_MR 0x8B
|
|
//#define PC_NOP 0x8C
|
|
//#define PC_NOT 0x8D
|
|
//#define PC_LFS 0x8E
|
|
//#define PC_LFSU 0x8F
|
|
//#define PC_LFSX 0x90
|
|
//#define PC_LFSUX 0x91
|
|
//#define PC_LFD 0x92
|
|
//#define PC_LFDU 0x93
|
|
//#define PC_LFDX 0x94
|
|
//#define PC_LFDUX 0x95
|
|
//#define PC_STFS 0x96
|
|
//#define PC_STFSU 0x97
|
|
//#define PC_STFSX 0x98
|
|
//#define PC_STFSUX 0x99
|
|
//#define PC_STFD 0x9A
|
|
//#define PC_STFDU 0x9B
|
|
//#define PC_STFDX 0x9C
|
|
//#define PC_STFDUX 0x9D
|
|
//#define PC_FMR 0x9E
|
|
//#define PC_FABS 0x9F
|
|
//#define PC_FNEG 0xA0
|
|
//#define PC_FNABS 0xA1
|
|
//#define PC_FADD 0xA2
|
|
//#define PC_FADDS 0xA3
|
|
//#define PC_FSUB 0xA4
|
|
//#define PC_FSUBS 0xA5
|
|
//#define PC_FMUL 0xA6
|
|
//#define PC_FMULS 0xA7
|
|
//#define PC_FDIV 0xA8
|
|
//#define PC_FDIVS 0xA9
|
|
//#define PC_FMADD 0xAA
|
|
//#define PC_FMADDS 0xAB
|
|
//#define PC_FMSUB 0xAC
|
|
//#define PC_FMSUBS 0xAD
|
|
//#define PC_FNMADD 0xAE
|
|
//#define PC_FNMADDS 0xAF
|
|
//#define PC_FNMSUB 0xB0
|
|
//#define PC_FNMSUBS 0xB1
|
|
//#define PC_FRES 0xB2
|
|
//#define PC_FRSQRTE 0xB3
|
|
//#define PC_FSEL 0xB4
|
|
//#define PC_FRSP 0xB5
|
|
//#define PC_FCTIW 0xB6
|
|
//#define PC_FCTIWZ 0xB7
|
|
//#define PC_FCMPU 0xB8
|
|
//#define PC_FCMPO 0xB9
|
|
//#define PC_LWARX 0xBA
|
|
//#define PC_LSWI 0xBB
|
|
//#define PC_LSWX 0xBC
|
|
//#define PC_STFIWX 0xBD
|
|
//#define PC_STSWI 0xBE
|
|
//#define PC_STSWX 0xBF
|
|
//#define PC_STWCX 0xC0
|
|
//#define PC_ECIWX 0xC1
|
|
//#define PC_ECOWX 0xC2
|
|
//#define PC_DCBI 0xC3
|
|
//#define PC_ICBI 0xC4
|
|
//#define PC_MCRFS 0xC5
|
|
//#define PC_MCRXR 0xC6
|
|
//#define PC_MFTB 0xC7
|
|
//#define PC_MFSR 0xC8
|
|
//#define PC_MTSR 0xC9
|
|
//#define PC_MFSRIN 0xCA
|
|
//#define PC_MTSRIN 0xCB
|
|
//#define PC_MTFSB0 0xCC
|
|
//#define PC_MTFSB1 0xCD
|
|
//#define PC_MTFSFI 0xCE
|
|
//#define PC_SC 0xCF
|
|
//#define PC_FSQRT 0xD0
|
|
//#define PC_FSQRTS 0xD1
|
|
//#define PC_TLBIA 0xD2
|
|
//#define PC_TLBIE 0xD3
|
|
//#define PC_TLBLD 0xD4
|
|
//#define PC_TLBLI 0xD5
|
|
//#define PC_TLBSYNC 0xD6
|
|
//#define PC_TW 0xD7
|
|
//#define PC_TRAP 0xD8
|
|
//#define PC_TWI 0xD9
|
|
//#define PC_OPWORD 0xDA
|
|
//#define PC_MFROM 0xDB
|
|
//#define PC_DSA 0xDC
|
|
//#define PC_ESA 0xDD
|
|
//#define PC_DCCCI 0xDE
|
|
//#define PC_DCREAD 0xDF
|
|
//#define PC_ICBT 0xE0
|
|
//#define PC_ICCCI 0xE1
|
|
//#define PC_ICREAD 0xE2
|
|
//#define PC_RFCI 0xE3
|
|
//#define PC_TLBRE 0xE4
|
|
//#define PC_TLBSX 0xE5
|
|
//#define PC_TLBWE 0xE6
|
|
//#define PC_WRTEE 0xE7
|
|
//#define PC_WRTEEI 0xE8
|
|
//#define PC_MFDCR 0xE9
|
|
//#define PC_MTDCR 0xEA
|
|
//#define PC_DCBA 0xEB
|
|
//#define PC_DSS 0xEC
|
|
//#define PC_DSSALL 0xED
|
|
//#define PC_DST 0xEE
|
|
//#define PC_DSTT 0xEF
|
|
//#define PC_DSTST 0xF0
|
|
//#define PC_DSTSTT 0xF1
|
|
//#define PC_LVEBX 0xF2
|
|
//#define PC_LVEHX 0xF3
|
|
//#define PC_LVEWX 0xF4
|
|
//#define PC_LVSL 0xF5
|
|
//#define PC_LVSR 0xF6
|
|
//#define PC_LVX 0xF7
|
|
//#define PC_LVXL 0xF8
|
|
//#define PC_STVEBX 0xF9
|
|
//#define PC_STVEHX 0xFA
|
|
//#define PC_STVEWX 0xFB
|
|
//#define PC_STVX 0xFC
|
|
//#define PC_STVXL 0xFD
|
|
//#define PC_MFVSCR 0xFE
|
|
//#define PC_MTVSCR 0xFF
|
|
//#define PC_VADDCUW 0x100
|
|
//#define PC_VADDFP 0x101
|
|
//#define PC_VADDSBS 0x102
|
|
//#define PC_VADDSHS 0x103
|
|
//#define PC_VADDSWS 0x104
|
|
//#define PC_VADDUBM 0x105
|
|
//#define PC_VADDUBS 0x106
|
|
//#define PC_VADDUHM 0x107
|
|
//#define PC_VADDUHS 0x108
|
|
//#define PC_VADDUWM 0x109
|
|
//#define PC_VADDUWS 0x10A
|
|
//#define PC_VAND 0x10B
|
|
//#define PC_VANDC 0x10C
|
|
//#define PC_VAVGSB 0x10D
|
|
//#define PC_VAVGSH 0x10E
|
|
//#define PC_VAVGSW 0x10F
|
|
//#define PC_VAVGUB 0x110
|
|
//#define PC_VAVGUH 0x111
|
|
//#define PC_VAVGUW 0x112
|
|
//#define PC_VCFSX 0x113
|
|
//#define PC_VCFUX 0x114
|
|
//#define PC_VCMPBFP 0x115
|
|
//#define PC_VCMPEQFP 0x116
|
|
//#define PC_VCMPEQUB 0x117
|
|
//#define PC_VCMPEQUH 0x118
|
|
//#define PC_VCMPEQUW 0x119
|
|
//#define PC_VCMPGEFP 0x11A
|
|
//#define PC_VCMPGTFP 0x11B
|
|
//#define PC_VCMPGTSB 0x11C
|
|
//#define PC_VCMPGTSH 0x11D
|
|
//#define PC_VCMPGTSW 0x11E
|
|
//#define PC_VCMPGTUB 0x11F
|
|
//#define PC_VCMPGTUH 0x120
|
|
//#define PC_VCMPGTUW 0x121
|
|
//#define PC_VCTSXS 0x122
|
|
//#define PC_VCTUXS 0x123
|
|
//#define PC_VEXPTEFP 0x124
|
|
//#define PC_VLOGEFP 0x125
|
|
//#define PC_VMAXFP 0x126
|
|
//#define PC_VMAXSB 0x127
|
|
//#define PC_VMAXSH 0x128
|
|
//#define PC_VMAXSW 0x129
|
|
//#define PC_VMAXUB 0x12A
|
|
//#define PC_VMAXUH 0x12B
|
|
//#define PC_VMAXUW 0x12C
|
|
//#define PC_VMINFP 0x12D
|
|
//#define PC_VMINSB 0x12E
|
|
//#define PC_VMINSH 0x12F
|
|
//#define PC_VMINSW 0x130
|
|
//#define PC_VMINUB 0x131
|
|
//#define PC_VMINUH 0x132
|
|
//#define PC_VMINUW 0x133
|
|
//#define PC_VMRGHB 0x134
|
|
//#define PC_VMRGHH 0x135
|
|
//#define PC_VMRGHW 0x136
|
|
//#define PC_VMRGLB 0x137
|
|
//#define PC_VMRGLH 0x138
|
|
//#define PC_VMRGLW 0x139
|
|
//#define PC_VMULESB 0x13A
|
|
//#define PC_VMULESH 0x13B
|
|
//#define PC_VMULEUB 0x13C
|
|
//#define PC_VMULEUH 0x13D
|
|
//#define PC_VMULOSB 0x13E
|
|
//#define PC_VMULOSH 0x13F
|
|
//#define PC_VMULOUB 0x140
|
|
//#define PC_VMULOUH 0x141
|
|
//#define PC_VNOR 0x142
|
|
//#define PC_VOR 0x143
|
|
//#define PC_VPKPX 0x144
|
|
//#define PC_VPKSHSS 0x145
|
|
//#define PC_VPKSHUS 0x146
|
|
//#define PC_VPKSWSS 0x147
|
|
//#define PC_VPKSWUS 0x148
|
|
//#define PC_VPKUHUM 0x149
|
|
//#define PC_VPKUHUS 0x14A
|
|
//#define PC_VPKUWUM 0x14B
|
|
//#define PC_VPKUWUS 0x14C
|
|
//#define PC_VREFP 0x14D
|
|
//#define PC_VRFIM 0x14E
|
|
//#define PC_VRFIN 0x14F
|
|
//#define PC_VRFIP 0x150
|
|
//#define PC_VRFIZ 0x151
|
|
//#define PC_VRLB 0x152
|
|
//#define PC_VRLH 0x153
|
|
//#define PC_VRLW 0x154
|
|
//#define PC_VRSQRTEFP 0x155
|
|
//#define PC_VSL 0x156
|
|
//#define PC_VSLB 0x157
|
|
//#define PC_VSLH 0x158
|
|
//#define PC_VSLO 0x159
|
|
//#define PC_VSLW 0x15A
|
|
//#define PC_VSPLTB 0x15B
|
|
//#define PC_VSPLTH 0x15C
|
|
//#define PC_VSPLTW 0x15D
|
|
//#define PC_VSPLTISB 0x15E
|
|
//#define PC_VSPLTISH 0x15F
|
|
//#define PC_VSPLTISW 0x160
|
|
//#define PC_VSR 0x161
|
|
//#define PC_VSRAB 0x162
|
|
//#define PC_VSRAH 0x163
|
|
//#define PC_VSRAW 0x164
|
|
//#define PC_VSRB 0x165
|
|
//#define PC_VSRH 0x166
|
|
//#define PC_VSRO 0x167
|
|
//#define PC_VSRW 0x168
|
|
//#define PC_VSUBCUW 0x169
|
|
//#define PC_VSUBFP 0x16A
|
|
//#define PC_VSUBSBS 0x16B
|
|
//#define PC_VSUBSHS 0x16C
|
|
//#define PC_VSUBSWS 0x16D
|
|
//#define PC_VSUBUBM 0x16E
|
|
//#define PC_VSUBUBS 0x16F
|
|
//#define PC_VSUBUHM 0x170
|
|
//#define PC_VSUBUHS 0x171
|
|
//#define PC_VSUBUWM 0x172
|
|
//#define PC_VSUBUWS 0x173
|
|
//#define PC_VSUMSWS 0x174
|
|
//#define PC_VSUM2SWS 0x175
|
|
//#define PC_VSUM4SBS 0x176
|
|
//#define PC_VSUM4SHS 0x177
|
|
//#define PC_VSUM4UBS 0x178
|
|
//#define PC_VUPKHPX 0x179
|
|
//#define PC_VUPKHSB 0x17A
|
|
//#define PC_VUPKHSH 0x17B
|
|
//#define PC_VUPKLPX 0x17C
|
|
//#define PC_VUPKLSB 0x17D
|
|
//#define PC_VUPKLSH 0x17E
|
|
//#define PC_VXOR 0x17F
|
|
//#define PC_VMADDFP 0x180
|
|
//#define PC_VMHADDSHS 0x181
|
|
//#define PC_VMHRADDSHS 0x182
|
|
//#define PC_VMLADDUHM 0x183
|
|
//#define PC_VMSUMMBM 0x184
|
|
//#define PC_VMSUMSHM 0x185
|
|
//#define PC_VMSUMSHS 0x186
|
|
//#define PC_VMSUMUBM 0x187
|
|
//#define PC_VMSUMUHM 0x188
|
|
//#define PC_VMSUMUHS 0x189
|
|
//#define PC_VNMSUBFP 0x18A
|
|
//#define PC_VPERM 0x18B
|
|
//#define PC_VSEL 0x18C
|
|
//#define PC_VSLDOI 0x18D
|
|
//#define PC_VMR 0x18E
|
|
//#define PC_VMRP 0x18F
|
|
//#define PC_SLE 0x190
|
|
//#define PC_SLEQ 0x191
|
|
//#define PC_SLIQ 0x192
|
|
//#define PC_SLLIQ 0x193
|
|
//#define PC_SLLQ 0x194
|
|
//#define PC_SLQ 0x195
|
|
//#define PC_SRAIQ 0x196
|
|
//#define PC_SRAQ 0x197
|
|
//#define PC_SRE 0x198
|
|
//#define PC_SREA 0x199
|
|
//#define PC_SREQ 0x19A
|
|
//#define PC_SRIQ 0x19B
|
|
//#define PC_SRLIQ 0x19C
|
|
//#define PC_SRLQ 0x19D
|
|
//#define PC_SRQ 0x19E
|
|
//#define PC_MASKG 0x19F
|
|
//#define PC_MASKIR 0x1A0
|
|
//#define PC_LSCBX 0x1A1
|
|
//#define PC_DIV 0x1A2
|
|
//#define PC_DIVS 0x1A3
|
|
//#define PC_DOZ 0x1A4
|
|
//#define PC_MUL 0x1A5
|
|
//#define PC_NABS 0x1A6
|
|
//#define PC_ABS 0x1A7
|
|
//#define PC_CLCS 0x1A8
|
|
//#define PC_DOZI 0x1A9
|
|
//#define PC_RLMI 0x1AA
|
|
//#define PC_RRIB 0x1AB
|
|
//#define PC_PENTRY 0x1AC
|
|
//#define PC_PEXIT 0x1AD
|
|
//#define OPCODE_MAX 0x1AE
|
|
//const short PC_B = 0x0;
|
|
//const short PC_BL = 0x1;
|
|
//const short PC_BC = 0x2;
|
|
//const short PC_BCLR = 0x3;
|
|
//const short PC_BCCTR = 0x4;
|
|
//const short PC_BT = 0x5;
|
|
//const short PC_BTLR = 0x6;
|
|
//const short PC_BTCTR = 0x7;
|
|
//const short PC_BF = 0x8;
|
|
//const short PC_BFLR = 0x9;
|
|
//const short PC_BFCTR = 0xA;
|
|
//const short PC_BDNZ = 0xB;
|
|
//const short PC_BDNZT = 0xC;
|
|
//const short PC_BDNZF = 0xD;
|
|
//const short PC_BDZ = 0xE;
|
|
//const short PC_BDZT = 0xF;
|
|
//const short PC_BDZF = 0x10;
|
|
//const short PC_BLR = 0x11;
|
|
//const short PC_BCTR = 0x12;
|
|
//const short PC_BCTRL = 0x13;
|
|
//const short PC_BLRL = 0x14;
|
|
//const short PC_LBZ = 0x15;
|
|
//const short PC_LBZU = 0x16;
|
|
//const short PC_LBZX = 0x17;
|
|
//const short PC_LBZUX = 0x18;
|
|
//const short PC_LHZ = 0x19;
|
|
//const short PC_LHZU = 0x1A;
|
|
//const short PC_LHZX = 0x1B;
|
|
//const short PC_LHZUX = 0x1C;
|
|
//const short PC_LHA = 0x1D;
|
|
//const short PC_LHAU = 0x1E;
|
|
//const short PC_LHAX = 0x1F;
|
|
//const short PC_LHAUX = 0x20;
|
|
//const short PC_LHBRX = 0x21;
|
|
//const short PC_LWZ = 0x22;
|
|
//const short PC_LWZU = 0x23;
|
|
//const short PC_LWZX = 0x24;
|
|
//const short PC_LWZUX = 0x25;
|
|
//const short PC_LWBRX = 0x26;
|
|
//const short PC_LMW = 0x27;
|
|
//const short PC_STB = 0x28;
|
|
//const short PC_STBU = 0x29;
|
|
//const short PC_STBX = 0x2A;
|
|
//const short PC_STBUX = 0x2B;
|
|
//const short PC_STH = 0x2C;
|
|
//const short PC_STHU = 0x2D;
|
|
//const short PC_STHX = 0x2E;
|
|
//const short PC_STHUX = 0x2F;
|
|
//const short PC_STHBRX = 0x30;
|
|
//const short PC_STW = 0x31;
|
|
//const short PC_STWU = 0x32;
|
|
//const short PC_STWX = 0x33;
|
|
//const short PC_STWUX = 0x34;
|
|
//const short PC_STWBRX = 0x35;
|
|
//const short PC_STMW = 0x36;
|
|
//const short PC_DCBF = 0x37;
|
|
//const short PC_DCBST = 0x38;
|
|
//const short PC_DCBT = 0x39;
|
|
//const short PC_DCBTST = 0x3A;
|
|
//const short PC_DCBZ = 0x3B;
|
|
//const short PC_ADD = 0x3C;
|
|
//const short PC_ADDC = 0x3D;
|
|
//const short PC_ADDE = 0x3E;
|
|
//const short PC_ADDI = 0x3F;
|
|
//const short PC_ADDIC = 0x40;
|
|
//const short PC_ADDICR = 0x41;
|
|
//const short PC_ADDIS = 0x42;
|
|
//const short PC_ADDME = 0x43;
|
|
//const short PC_ADDZE = 0x44;
|
|
//const short PC_DIVW = 0x45;
|
|
//const short PC_DIVWU = 0x46;
|
|
//const short PC_MULHW = 0x47;
|
|
//const short PC_MULHWU = 0x48;
|
|
//const short PC_MULLI = 0x49;
|
|
//const short PC_MULLW = 0x4A;
|
|
//const short PC_NEG = 0x4B;
|
|
//const short PC_SUBF = 0x4C;
|
|
//const short PC_SUBFC = 0x4D;
|
|
//const short PC_SUBFE = 0x4E;
|
|
//const short PC_SUBFIC = 0x4F;
|
|
//const short PC_SUBFME = 0x50;
|
|
//const short PC_SUBFZE = 0x51;
|
|
//const short PC_CMPI = 0x52;
|
|
//const short PC_CMP = 0x53;
|
|
//const short PC_CMPLI = 0x54;
|
|
//const short PC_CMPL = 0x55;
|
|
//const short PC_ANDI = 0x56;
|
|
//const short PC_ANDIS = 0x57;
|
|
//const short PC_ORI = 0x58;
|
|
//const short PC_ORIS = 0x59;
|
|
//const short PC_XORI = 0x5A;
|
|
//const short PC_XORIS = 0x5B;
|
|
//const short PC_AND = 0x5C;
|
|
//const short PC_OR = 0x5D;
|
|
//const short PC_XOR = 0x5E;
|
|
//const short PC_NAND = 0x5F;
|
|
//const short PC_NOR = 0x60;
|
|
//const short PC_EQV = 0x61;
|
|
//const short PC_ANDC = 0x62;
|
|
//const short PC_ORC = 0x63;
|
|
//const short PC_EXTSB = 0x64;
|
|
//const short PC_EXTSH = 0x65;
|
|
//const short PC_CNTLZW = 0x66;
|
|
//const short PC_RLWINM = 0x67;
|
|
//const short PC_RLWNM = 0x68;
|
|
//const short PC_RLWIMI = 0x69;
|
|
//const short PC_SLW = 0x6A;
|
|
//const short PC_SRW = 0x6B;
|
|
//const short PC_SRAWI = 0x6C;
|
|
//const short PC_SRAW = 0x6D;
|
|
//const short PC_CRAND = 0x6E;
|
|
//const short PC_CRANDC = 0x6F;
|
|
//const short PC_CREQV = 0x70;
|
|
//const short PC_CRNAND = 0x71;
|
|
//const short PC_CRNOR = 0x72;
|
|
//const short PC_CROR = 0x73;
|
|
//const short PC_CRORC = 0x74;
|
|
//const short PC_CRXOR = 0x75;
|
|
//const short PC_MCRF = 0x76;
|
|
//const short PC_MTXER = 0x77;
|
|
//const short PC_MTCTR = 0x78;
|
|
//const short PC_MTLR = 0x79;
|
|
//const short PC_MTCRF = 0x7A;
|
|
//const short PC_MTMSR = 0x7B;
|
|
//const short PC_MTSPR = 0x7C;
|
|
//const short PC_MFMSR = 0x7D;
|
|
//const short PC_MFSPR = 0x7E;
|
|
//const short PC_MFXER = 0x7F;
|
|
//const short PC_MFCTR = 0x80;
|
|
//const short PC_MFLR = 0x81;
|
|
//const short PC_MFCR = 0x82;
|
|
//const short PC_MFFS = 0x83;
|
|
//const short PC_MTFSF = 0x84;
|
|
//const short PC_EIEIO = 0x85;
|
|
//const short PC_ISYNC = 0x86;
|
|
//const short PC_SYNC = 0x87;
|
|
//const short PC_RFI = 0x88;
|
|
//const short PC_LI = 0x89;
|
|
//const short PC_LIS = 0x8A;
|
|
//const short PC_MR = 0x8B;
|
|
//const short PC_NOP = 0x8C;
|
|
//const short PC_NOT = 0x8D;
|
|
//const short PC_LFS = 0x8E;
|
|
//const short PC_LFSU = 0x8F;
|
|
//const short PC_LFSX = 0x90;
|
|
//const short PC_LFSUX = 0x91;
|
|
//const short PC_LFD = 0x92;
|
|
//const short PC_LFDU = 0x93;
|
|
//const short PC_LFDX = 0x94;
|
|
//const short PC_LFDUX = 0x95;
|
|
//const short PC_STFS = 0x96;
|
|
//const short PC_STFSU = 0x97;
|
|
//const short PC_STFSX = 0x98;
|
|
//const short PC_STFSUX = 0x99;
|
|
//const short PC_STFD = 0x9A;
|
|
//const short PC_STFDU = 0x9B;
|
|
//const short PC_STFDX = 0x9C;
|
|
//const short PC_STFDUX = 0x9D;
|
|
//const short PC_FMR = 0x9E;
|
|
//const short PC_FABS = 0x9F;
|
|
//const short PC_FNEG = 0xA0;
|
|
//const short PC_FNABS = 0xA1;
|
|
//const short PC_FADD = 0xA2;
|
|
//const short PC_FADDS = 0xA3;
|
|
//const short PC_FSUB = 0xA4;
|
|
//const short PC_FSUBS = 0xA5;
|
|
//const short PC_FMUL = 0xA6;
|
|
//const short PC_FMULS = 0xA7;
|
|
//const short PC_FDIV = 0xA8;
|
|
//const short PC_FDIVS = 0xA9;
|
|
//const short PC_FMADD = 0xAA;
|
|
//const short PC_FMADDS = 0xAB;
|
|
//const short PC_FMSUB = 0xAC;
|
|
//const short PC_FMSUBS = 0xAD;
|
|
//const short PC_FNMADD = 0xAE;
|
|
//const short PC_FNMADDS = 0xAF;
|
|
//const short PC_FNMSUB = 0xB0;
|
|
//const short PC_FNMSUBS = 0xB1;
|
|
//const short PC_FRES = 0xB2;
|
|
//const short PC_FRSQRTE = 0xB3;
|
|
//const short PC_FSEL = 0xB4;
|
|
//const short PC_FRSP = 0xB5;
|
|
//const short PC_FCTIW = 0xB6;
|
|
//const short PC_FCTIWZ = 0xB7;
|
|
//const short PC_FCMPU = 0xB8;
|
|
//const short PC_FCMPO = 0xB9;
|
|
//const short PC_LWARX = 0xBA;
|
|
//const short PC_LSWI = 0xBB;
|
|
//const short PC_LSWX = 0xBC;
|
|
//const short PC_STFIWX = 0xBD;
|
|
//const short PC_STSWI = 0xBE;
|
|
//const short PC_STSWX = 0xBF;
|
|
//const short PC_STWCX = 0xC0;
|
|
//const short PC_ECIWX = 0xC1;
|
|
//const short PC_ECOWX = 0xC2;
|
|
//const short PC_DCBI = 0xC3;
|
|
//const short PC_ICBI = 0xC4;
|
|
//const short PC_MCRFS = 0xC5;
|
|
//const short PC_MCRXR = 0xC6;
|
|
//const short PC_MFTB = 0xC7;
|
|
//const short PC_MFSR = 0xC8;
|
|
//const short PC_MTSR = 0xC9;
|
|
//const short PC_MFSRIN = 0xCA;
|
|
//const short PC_MTSRIN = 0xCB;
|
|
//const short PC_MTFSB0 = 0xCC;
|
|
//const short PC_MTFSB1 = 0xCD;
|
|
//const short PC_MTFSFI = 0xCE;
|
|
//const short PC_SC = 0xCF;
|
|
//const short PC_FSQRT = 0xD0;
|
|
//const short PC_FSQRTS = 0xD1;
|
|
//const short PC_TLBIA = 0xD2;
|
|
//const short PC_TLBIE = 0xD3;
|
|
//const short PC_TLBLD = 0xD4;
|
|
//const short PC_TLBLI = 0xD5;
|
|
//const short PC_TLBSYNC = 0xD6;
|
|
//const short PC_TW = 0xD7;
|
|
//const short PC_TRAP = 0xD8;
|
|
//const short PC_TWI = 0xD9;
|
|
//const short PC_OPWORD = 0xDA;
|
|
//const short PC_MFROM = 0xDB;
|
|
//const short PC_DSA = 0xDC;
|
|
//const short PC_ESA = 0xDD;
|
|
//const short PC_DCCCI = 0xDE;
|
|
//const short PC_DCREAD = 0xDF;
|
|
//const short PC_ICBT = 0xE0;
|
|
//const short PC_ICCCI = 0xE1;
|
|
//const short PC_ICREAD = 0xE2;
|
|
//const short PC_RFCI = 0xE3;
|
|
//const short PC_TLBRE = 0xE4;
|
|
//const short PC_TLBSX = 0xE5;
|
|
//const short PC_TLBWE = 0xE6;
|
|
//const short PC_WRTEE = 0xE7;
|
|
//const short PC_WRTEEI = 0xE8;
|
|
//const short PC_MFDCR = 0xE9;
|
|
//const short PC_MTDCR = 0xEA;
|
|
//const short PC_DCBA = 0xEB;
|
|
//const short PC_DSS = 0xEC;
|
|
//const short PC_DSSALL = 0xED;
|
|
//const short PC_DST = 0xEE;
|
|
//const short PC_DSTT = 0xEF;
|
|
//const short PC_DSTST = 0xF0;
|
|
//const short PC_DSTSTT = 0xF1;
|
|
//const short PC_LVEBX = 0xF2;
|
|
//const short PC_LVEHX = 0xF3;
|
|
//const short PC_LVEWX = 0xF4;
|
|
//const short PC_LVSL = 0xF5;
|
|
//const short PC_LVSR = 0xF6;
|
|
//const short PC_LVX = 0xF7;
|
|
//const short PC_LVXL = 0xF8;
|
|
//const short PC_STVEBX = 0xF9;
|
|
//const short PC_STVEHX = 0xFA;
|
|
//const short PC_STVEWX = 0xFB;
|
|
//const short PC_STVX = 0xFC;
|
|
//const short PC_STVXL = 0xFD;
|
|
//const short PC_MFVSCR = 0xFE;
|
|
//const short PC_MTVSCR = 0xFF;
|
|
//const short PC_VADDCUW = 0x100;
|
|
//const short PC_VADDFP = 0x101;
|
|
//const short PC_VADDSBS = 0x102;
|
|
//const short PC_VADDSHS = 0x103;
|
|
//const short PC_VADDSWS = 0x104;
|
|
//const short PC_VADDUBM = 0x105;
|
|
//const short PC_VADDUBS = 0x106;
|
|
//const short PC_VADDUHM = 0x107;
|
|
//const short PC_VADDUHS = 0x108;
|
|
//const short PC_VADDUWM = 0x109;
|
|
//const short PC_VADDUWS = 0x10A;
|
|
//const short PC_VAND = 0x10B;
|
|
//const short PC_VANDC = 0x10C;
|
|
//const short PC_VAVGSB = 0x10D;
|
|
//const short PC_VAVGSH = 0x10E;
|
|
//const short PC_VAVGSW = 0x10F;
|
|
//const short PC_VAVGUB = 0x110;
|
|
//const short PC_VAVGUH = 0x111;
|
|
//const short PC_VAVGUW = 0x112;
|
|
//const short PC_VCFSX = 0x113;
|
|
//const short PC_VCFUX = 0x114;
|
|
//const short PC_VCMPBFP = 0x115;
|
|
//const short PC_VCMPEQFP = 0x116;
|
|
//const short PC_VCMPEQUB = 0x117;
|
|
//const short PC_VCMPEQUH = 0x118;
|
|
//const short PC_VCMPEQUW = 0x119;
|
|
//const short PC_VCMPGEFP = 0x11A;
|
|
//const short PC_VCMPGTFP = 0x11B;
|
|
//const short PC_VCMPGTSB = 0x11C;
|
|
//const short PC_VCMPGTSH = 0x11D;
|
|
//const short PC_VCMPGTSW = 0x11E;
|
|
//const short PC_VCMPGTUB = 0x11F;
|
|
//const short PC_VCMPGTUH = 0x120;
|
|
//const short PC_VCMPGTUW = 0x121;
|
|
//const short PC_VCTSXS = 0x122;
|
|
//const short PC_VCTUXS = 0x123;
|
|
//const short PC_VEXPTEFP = 0x124;
|
|
//const short PC_VLOGEFP = 0x125;
|
|
//const short PC_VMAXFP = 0x126;
|
|
//const short PC_VMAXSB = 0x127;
|
|
//const short PC_VMAXSH = 0x128;
|
|
//const short PC_VMAXSW = 0x129;
|
|
//const short PC_VMAXUB = 0x12A;
|
|
//const short PC_VMAXUH = 0x12B;
|
|
//const short PC_VMAXUW = 0x12C;
|
|
//const short PC_VMINFP = 0x12D;
|
|
//const short PC_VMINSB = 0x12E;
|
|
//const short PC_VMINSH = 0x12F;
|
|
//const short PC_VMINSW = 0x130;
|
|
//const short PC_VMINUB = 0x131;
|
|
//const short PC_VMINUH = 0x132;
|
|
//const short PC_VMINUW = 0x133;
|
|
//const short PC_VMRGHB = 0x134;
|
|
//const short PC_VMRGHH = 0x135;
|
|
//const short PC_VMRGHW = 0x136;
|
|
//const short PC_VMRGLB = 0x137;
|
|
//const short PC_VMRGLH = 0x138;
|
|
//const short PC_VMRGLW = 0x139;
|
|
//const short PC_VMULESB = 0x13A;
|
|
//const short PC_VMULESH = 0x13B;
|
|
//const short PC_VMULEUB = 0x13C;
|
|
//const short PC_VMULEUH = 0x13D;
|
|
//const short PC_VMULOSB = 0x13E;
|
|
//const short PC_VMULOSH = 0x13F;
|
|
//const short PC_VMULOUB = 0x140;
|
|
//const short PC_VMULOUH = 0x141;
|
|
//const short PC_VNOR = 0x142;
|
|
//const short PC_VOR = 0x143;
|
|
//const short PC_VPKPX = 0x144;
|
|
//const short PC_VPKSHSS = 0x145;
|
|
//const short PC_VPKSHUS = 0x146;
|
|
//const short PC_VPKSWSS = 0x147;
|
|
//const short PC_VPKSWUS = 0x148;
|
|
//const short PC_VPKUHUM = 0x149;
|
|
//const short PC_VPKUHUS = 0x14A;
|
|
//const short PC_VPKUWUM = 0x14B;
|
|
//const short PC_VPKUWUS = 0x14C;
|
|
//const short PC_VREFP = 0x14D;
|
|
//const short PC_VRFIM = 0x14E;
|
|
//const short PC_VRFIN = 0x14F;
|
|
//const short PC_VRFIP = 0x150;
|
|
//const short PC_VRFIZ = 0x151;
|
|
//const short PC_VRLB = 0x152;
|
|
//const short PC_VRLH = 0x153;
|
|
//const short PC_VRLW = 0x154;
|
|
//const short PC_VRSQRTEFP = 0x155;
|
|
//const short PC_VSL = 0x156;
|
|
//const short PC_VSLB = 0x157;
|
|
//const short PC_VSLH = 0x158;
|
|
//const short PC_VSLO = 0x159;
|
|
//const short PC_VSLW = 0x15A;
|
|
//const short PC_VSPLTB = 0x15B;
|
|
//const short PC_VSPLTH = 0x15C;
|
|
//const short PC_VSPLTW = 0x15D;
|
|
//const short PC_VSPLTISB = 0x15E;
|
|
//const short PC_VSPLTISH = 0x15F;
|
|
//const short PC_VSPLTISW = 0x160;
|
|
//const short PC_VSR = 0x161;
|
|
//const short PC_VSRAB = 0x162;
|
|
//const short PC_VSRAH = 0x163;
|
|
//const short PC_VSRAW = 0x164;
|
|
//const short PC_VSRB = 0x165;
|
|
//const short PC_VSRH = 0x166;
|
|
//const short PC_VSRO = 0x167;
|
|
//const short PC_VSRW = 0x168;
|
|
//const short PC_VSUBCUW = 0x169;
|
|
//const short PC_VSUBFP = 0x16A;
|
|
//const short PC_VSUBSBS = 0x16B;
|
|
//const short PC_VSUBSHS = 0x16C;
|
|
//const short PC_VSUBSWS = 0x16D;
|
|
//const short PC_VSUBUBM = 0x16E;
|
|
//const short PC_VSUBUBS = 0x16F;
|
|
//const short PC_VSUBUHM = 0x170;
|
|
//const short PC_VSUBUHS = 0x171;
|
|
//const short PC_VSUBUWM = 0x172;
|
|
//const short PC_VSUBUWS = 0x173;
|
|
//const short PC_VSUMSWS = 0x174;
|
|
//const short PC_VSUM2SWS = 0x175;
|
|
//const short PC_VSUM4SBS = 0x176;
|
|
//const short PC_VSUM4SHS = 0x177;
|
|
//const short PC_VSUM4UBS = 0x178;
|
|
//const short PC_VUPKHPX = 0x179;
|
|
//const short PC_VUPKHSB = 0x17A;
|
|
//const short PC_VUPKHSH = 0x17B;
|
|
//const short PC_VUPKLPX = 0x17C;
|
|
//const short PC_VUPKLSB = 0x17D;
|
|
//const short PC_VUPKLSH = 0x17E;
|
|
//const short PC_VXOR = 0x17F;
|
|
//const short PC_VMADDFP = 0x180;
|
|
//const short PC_VMHADDSHS = 0x181;
|
|
//const short PC_VMHRADDSHS = 0x182;
|
|
//const short PC_VMLADDUHM = 0x183;
|
|
//const short PC_VMSUMMBM = 0x184;
|
|
//const short PC_VMSUMSHM = 0x185;
|
|
//const short PC_VMSUMSHS = 0x186;
|
|
//const short PC_VMSUMUBM = 0x187;
|
|
//const short PC_VMSUMUHM = 0x188;
|
|
//const short PC_VMSUMUHS = 0x189;
|
|
//const short PC_VNMSUBFP = 0x18A;
|
|
//const short PC_VPERM = 0x18B;
|
|
//const short PC_VSEL = 0x18C;
|
|
//const short PC_VSLDOI = 0x18D;
|
|
//const short PC_VMR = 0x18E;
|
|
//const short PC_VMRP = 0x18F;
|
|
//const short PC_SLE = 0x190;
|
|
//const short PC_SLEQ = 0x191;
|
|
//const short PC_SLIQ = 0x192;
|
|
//const short PC_SLLIQ = 0x193;
|
|
//const short PC_SLLQ = 0x194;
|
|
//const short PC_SLQ = 0x195;
|
|
//const short PC_SRAIQ = 0x196;
|
|
//const short PC_SRAQ = 0x197;
|
|
//const short PC_SRE = 0x198;
|
|
//const short PC_SREA = 0x199;
|
|
//const short PC_SREQ = 0x19A;
|
|
//const short PC_SRIQ = 0x19B;
|
|
//const short PC_SRLIQ = 0x19C;
|
|
//const short PC_SRLQ = 0x19D;
|
|
//const short PC_SRQ = 0x19E;
|
|
//const short PC_MASKG = 0x19F;
|
|
//const short PC_MASKIR = 0x1A0;
|
|
//const short PC_LSCBX = 0x1A1;
|
|
//const short PC_DIV = 0x1A2;
|
|
//const short PC_DIVS = 0x1A3;
|
|
//const short PC_DOZ = 0x1A4;
|
|
//const short PC_MUL = 0x1A5;
|
|
//const short PC_NABS = 0x1A6;
|
|
//const short PC_ABS = 0x1A7;
|
|
//const short PC_CLCS = 0x1A8;
|
|
//const short PC_DOZI = 0x1A9;
|
|
//const short PC_RLMI = 0x1AA;
|
|
//const short PC_RRIB = 0x1AB;
|
|
//const short PC_PENTRY = 0x1AC;
|
|
//const short PC_PEXIT = 0x1AD;
|
|
//const short OPCODE_MAX = 0x1AE;
|
|
|
|
extern OpcodeInfo opcodeinfo[OPCODE_MAX];
|
|
|
|
extern void pcode_get_hi_lo(int bits, char typechar, SInt32 *hi, SInt32 *lo);
|
|
extern int pcode_check_imm_bits(SInt32 value, int bits, char typechar);
|
|
extern int pcode_const_from_format(const char *format, SInt32 *pResult);
|
|
extern PCode *vformatpcode(short opcode, va_list argList);
|
|
extern int expectandformatoperand(PCodeArg *operand, PCOpKind expectedKind, char a3, int bitCount, char *buf);
|
|
extern int formatoperand(PCodeArg *operand, char *buf);
|
|
extern void formatoperands(PCode *pcode, char *buf, int showBasicBlocks);
|
|
extern PCode *makecopyinstruction(PCodeArg *a, PCodeArg *b);
|
|
extern int is_location_independent(PCode *pcode);
|
|
extern int can_reuse_stored_value(PCode *a, PCode *b);
|
|
extern int nbytes_loaded_or_stored_by(PCode *pcode);
|
|
extern void change_num_operands(PCode *pcode, int newNum);
|
|
extern void change_opcode(PCode *pcode, short opcode);
|
|
|
|
#ifdef __MWERKS__
|
|
#pragma options align=reset
|
|
#endif
|
|
|
|
#endif
|