/*
 * $Source$
 * $State$
 */

/* Integer registers */

0,     GPR,        0,          "r0",
0,     GPR,        1,          "r1",
0,     GPR,        1,          "sp",
0,     GPR,        2,          "r2",
0,     GPR,        2,          "fp",
0,     GPR,        3,          "r3",
0,     GPR,        4,          "r4",
0,     GPR,        5,          "r5",
0,     GPR,        6,          "r6",
0,     GPR,        7,          "r7",
0,     GPR,        8,          "r8",
0,     GPR,        9,          "r9",
0,     GPR,        10,         "r10",
0,     GPR,        11,         "r11",
0,     GPR,        12,         "r12",
0,     GPR,        13,         "r13",
0,     GPR,        14,         "r14",
0,     GPR,        15,         "r15",
0,     GPR,        16,         "r16",
0,     GPR,        17,         "r17",
0,     GPR,        18,         "r18",
0,     GPR,        19,         "r19",
0,     GPR,        20,         "r20",
0,     GPR,        21,         "r21",
0,     GPR,        22,         "r22",
0,     GPR,        23,         "r23",
0,     GPR,        24,         "r24",
0,     GPR,        25,         "r25",
0,     GPR,        26,         "r26",
0,     GPR,        27,         "r27",
0,     GPR,        28,         "r28",
0,     GPR,        29,         "r29",
0,     GPR,        30,         "r30",
0,     GPR,        31,         "r31",

/* Floating-point registers */

0,     FPR,        0,          "f0",
0,     FPR,        1,          "f1",
0,     FPR,        2,          "f2",
0,     FPR,        3,          "f3",
0,     FPR,        4,          "f4",
0,     FPR,        5,          "f5",
0,     FPR,        6,          "f6",
0,     FPR,        7,          "f7",
0,     FPR,        8,          "f8",
0,     FPR,        9,          "f9",
0,     FPR,        10,         "f10",
0,     FPR,        11,         "f11",
0,     FPR,        12,         "f12",
0,     FPR,        13,         "f13",
0,     FPR,        14,         "f14",
0,     FPR,        15,         "f15",
0,     FPR,        16,         "f16",
0,     FPR,        17,         "f17",
0,     FPR,        18,         "f18",
0,     FPR,        19,         "f19",
0,     FPR,        20,         "f20",
0,     FPR,        21,         "f21",
0,     FPR,        22,         "f22",
0,     FPR,        23,         "f23",
0,     FPR,        24,         "f24",
0,     FPR,        25,         "f25",
0,     FPR,        26,         "f26",
0,     FPR,        27,         "f27",
0,     FPR,        28,         "f28",
0,     FPR,        29,         "f29",
0,     FPR,        30,         "f30",
0,     FPR,        31,         "f31",

/* Special registers */

0,     SPR,        32,         "xer",
0,     SPR,        256,        "lr",
0,     SPR,        288,        "ctr",

/* Condition registers */

0,     CR,         0,          "cr0",
0,     CR,         1,          "cr1",
0,     CR,         2,          "cr2",
0,     CR,         3,          "cr3",
0,     CR,         4,          "cr4",
0,     CR,         5,          "cr5",
0,     CR,         6,          "cr6",
0,     CR,         7,          "cr7",

/* Condition code flag */

0,     C,          0,          ".",

/* Special instructions */

0,     OP_LI32,               0,                                       "li32",
0,     OP_HI,                 0,                                       "hi16",
0,     OP_HA,                0,                                        "ha16",
0,     OP_LO,                 0,                                       "lo16",

/* The next page numbers are from PowerPC User Instruction Set
 * Architecture, Book I, Version 2.01.
 */

/* Branch processor instructions (page 20) */

0,     OP_LIL,                18<<26 | 0<<1 | 0<<0,                    "b",
0,     OP_LIA,                18<<26 | 1<<1 | 0<<0,                    "ba",
0,     OP_LIL,                18<<26 | 0<<1 | 1<<0,                    "bl",
0,     OP_LIA,                18<<26 | 1<<1 | 1<<0,                    "bla",
0,     OP_BO_BI_BDL,          16<<26 | 0<<1 | 0<<0,                    "bc",
0,     OP_BO_BI_BDA,          16<<26 | 1<<1 | 0<<0,                    "bca",
0,     OP_BO_BI_BDL,          16<<26 | 0<<1 | 1<<0,                    "bcl",
0,     OP_BO_BI_BDA,          16<<26 | 1<<1 | 1<<0,                    "bcla",
0,     OP_BO_BI_BH,           19<<26 | 16<<1 | 0<<0,                   "bclr",
0,     OP_BO_BI_BH,           19<<26 | 16<<1 | 1<<0,                   "bclrl",
0,     OP_BO_BI_BH,           19<<26 | 528<<1 | 0<<0,                  "bcctr",
0,     OP_BO_BI_BH,           19<<26 | 528<<1 | 1<<0,                  "bcctrl",
0,     OP_LEV,                17<<26 | 1<<1,                           "sc",
0,     OP_BT_BA_BB,           19<<26 | 257<<1,                         "crand",
0,     OP_BT_BA_BB,           19<<26 | 449<<1,                         "cror",
0,     OP_BT_BA_BB,           19<<26 | 193<<1,                         "crxor",
0,     OP_BT_BA_BB,           19<<26 | 225<<1,                         "crnand",
0,     OP_BT_BA_BB,           19<<26 | 33<<1,                          "crnor",
0,     OP_BT_BA_BB,           19<<26 | 289<<1,                         "creqv",
0,     OP_BT_BA_BB,           19<<26 | 129<<1,                         "crandc",
0,     OP_BT_BA_BB,           19<<26 | 417<<1,                         "crorc",
0,     OP_BF_BFA,             19<<26 | 0<<1,                           "mcrf",

/* extended mnemonics for bc, bcctr, bclr (page 144) */
0,     OP_BH,       19<<26 | 20<<21 | 528<<1 | 0<<0,            "bctr",
0,     OP_BH,       19<<26 | 20<<21 | 528<<1 | 1<<0,            "bctrl",
0,     OP_BDL,      16<<26 | 16<<21 | 0<<1 | 0<<0,              "bdnz",
0,     OP_BDA,      16<<26 | 16<<21 | 1<<1 | 0<<0,              "bdnza",
0,     OP_BH,       19<<26 | 16<<21 | 16<<1 | 0<<0,             "bdnzlr",
0,     OP_BDL,      16<<26 | 16<<21 | 0<<1 | 1<<0,              "bdnzl",
0,     OP_BDA,      16<<26 | 16<<21 | 1<<1 | 1<<0,              "bdnzla",
0,     OP_BH,       19<<26 | 16<<21 | 16<<1 | 1<<0,             "bdnzlrl",
0,     OP_BI_BDL,   16<<26 | 0<<21 | 0<<1 | 0<<0,               "bdnzf",
0,     OP_BI_BDA,   16<<26 | 0<<21 | 1<<1 | 0<<0,               "bdnzfa",
0,     OP_BI_BH,    19<<26 | 0<<21 | 16<<1 | 0<<0,              "bdnzflr",
0,     OP_BI_BDL,   16<<26 | 0<<21 | 0<<1 | 1<<0,               "bdnzfl",
0,     OP_BI_BDA,   16<<26 | 0<<21 | 1<<1 | 1<<0,               "bdnzfla",
0,     OP_BI_BH,    19<<26 | 0<<21 | 16<<1 | 1<<0,              "bdnzflrl",
0,     OP_BI_BDL,   16<<26 | 8<<21 | 0<<1 | 0<<0,               "bdnzt",
0,     OP_BI_BDA,   16<<26 | 8<<21 | 1<<1 | 0<<0,               "bdnzta",
0,     OP_BI_BH,    19<<26 | 8<<21 | 16<<1 | 0<<0,              "bdnztlr",
0,     OP_BI_BDL,   16<<26 | 8<<21 | 0<<1 | 1<<0,               "bdnztl",
0,     OP_BI_BDA,   16<<26 | 8<<21 | 1<<1 | 1<<0,               "bdnztla",
0,     OP_BI_BH,    19<<26 | 8<<21 | 16<<1 | 1<<0,              "bdnztlrl",
0,     OP_BDL,      16<<26 | 18<<21 | 0<<1 | 0<<0,              "bdz",
0,     OP_BDA,      16<<26 | 18<<21 | 1<<1 | 0<<0,              "bdza",
0,     OP_BH,       19<<26 | 18<<21 | 16<<1 | 0<<0,             "bdzlr",
0,     OP_BDL,      16<<26 | 18<<21 | 0<<1 | 1<<0,              "bdzl",
0,     OP_BDA,      16<<26 | 18<<21 | 1<<1 | 1<<0,              "bdzla",
0,     OP_BH,       19<<26 | 18<<21 | 16<<1 | 1<<0,             "bdzlrl",
0,     OP_BI_BDL,   16<<26 | 2<<21 | 0<<1 | 0<<0,               "bdzf",
0,     OP_BI_BDA,   16<<26 | 2<<21 | 1<<1 | 0<<0,               "bdzfa",
0,     OP_BI_BH,    19<<26 | 2<<21 | 16<<1 | 0<<0,              "bdzflr",
0,     OP_BI_BDL,   16<<26 | 2<<21 | 0<<1 | 1<<0,               "bdzfl",
0,     OP_BI_BDA,   16<<26 | 2<<21 | 1<<1 | 1<<0,               "bdzfla",
0,     OP_BI_BH,    19<<26 | 2<<21 | 16<<1 | 1<<0,              "bdzflrl",
0,     OP_BI_BDL,   16<<26 | 10<<21 | 0<<1 | 0<<0,              "bdzt",
0,     OP_BI_BDA,   16<<26 | 10<<21 | 1<<1 | 0<<0,              "bdzta",
0,     OP_BI_BH,    19<<26 | 10<<21 | 16<<1 | 0<<0,             "bdztlr",
0,     OP_BI_BDL,   16<<26 | 10<<21 | 0<<1 | 1<<0,              "bdztl",
0,     OP_BI_BDA,   16<<26 | 10<<21 | 1<<1 | 1<<0,              "bdztla",
0,     OP_BI_BH,    19<<26 | 10<<21 | 16<<1 | 1<<0,             "bdztlrl",
0,     OP_BI_BDL,   16<<26 | 4<<21 | 0<<1 | 0<<0,               "bf",
0,     OP_BI_BDA,   16<<26 | 4<<21 | 1<<1 | 0<<0,               "bfa",
0,     OP_BI_BH,    19<<26 | 4<<21 | 528<<1 | 0<<0,             "bfctr",
0,     OP_BI_BH,    19<<26 | 4<<21 | 528<<1 | 1<<0,             "bfctrl",
0,     OP_BI_BDL,   16<<26 | 4<<21 | 0<<1 | 1<<0,               "bfl",
0,     OP_BI_BDA,   16<<26 | 4<<21 | 0<<1 | 1<<0,               "bfla",
0,     OP_BI_BH,    19<<26 | 4<<21 | 16<<1 | 0<<0,              "bflr",
0,     OP_BI_BH,    19<<26 | 4<<21 | 16<<1 | 1<<0,              "bflrl",
0,     OP_BH,       19<<26 | 20<<21 | 16<<1 | 0<<0,             "blr",
0,     OP_BH,       19<<26 | 20<<21 | 16<<1 | 1<<0,             "blrl",
0,     OP_BI_BDL,   16<<26 | 12<<21 | 0<<1 | 0<<0,              "bt",
0,     OP_BI_BDA,   16<<26 | 12<<21 | 1<<1 | 0<<0,              "bta",
0,     OP_BI_BH,    19<<26 | 12<<21 | 528<<1 | 0<<0,            "btctr",
0,     OP_BI_BH,    19<<26 | 12<<21 | 528<<1 | 1<<0,            "btctrl",
0,     OP_BI_BDL,   16<<26 | 12<<21 | 0<<1 | 1<<0,              "btl",
0,     OP_BI_BDA,   16<<26 | 12<<21 | 0<<1 | 1<<0,              "btla",
0,     OP_BI_BH,    19<<26 | 12<<21 | 16<<1 | 0<<0,             "btlr",
0,     OP_BI_BH,    19<<26 | 12<<21 | 16<<1 | 1<<0,             "btlrl",

/* extended m with condition in BI (page 146) */
0,     OP_BICR_BDL,  16<<26 | 12<<21 | 2<<16 | 0<<1 | 0<<0,     "beq",
0,     OP_BICR_BDA,  16<<26 | 12<<21 | 2<<16 | 1<<1 | 0<<0,     "beqa",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 2<<16 | 528<<1 | 0<<0,   "beqctr",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 2<<16 | 528<<1 | 1<<0,   "beqctrl",
0,     OP_BICR_BDL,  16<<26 | 12<<21 | 2<<16 | 0<<1 | 1<<0,     "beql",
0,     OP_BICR_BDA,  16<<26 | 12<<21 | 2<<16 | 1<<1 | 1<<0,     "beqla",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 2<<16 | 16<<1 | 0<<0,    "beqlr",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 2<<16 | 16<<1 | 1<<0,    "beqlrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 0<<16 | 0<<1 | 0<<0,      "bge",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 0<<16 | 1<<1 | 0<<0,      "bgea",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 0<<16 | 528<<1 | 0<<0,    "bgectr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 0<<16 | 528<<1 | 1<<0,    "bgectrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 0<<16 | 0<<1 | 1<<0,      "bgel",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 0<<16 | 1<<1 | 1<<0,      "bgela",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 0<<16 | 16<<1 | 0<<0,     "bgelr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 0<<16 | 16<<1 | 1<<0,     "bgelrl",
0,     OP_BICR_BDL,  16<<26 | 12<<21 | 1<<16 | 0<<1 | 0<<0,     "bgt",
0,     OP_BICR_BDA,  16<<26 | 12<<21 | 1<<16 | 1<<1 | 0<<0,     "bgta",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 1<<16 | 528<<1 | 0<<0,   "bgtctr",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 1<<16 | 528<<1 | 1<<0,   "bgtctrl",
0,     OP_BICR_BDL,  16<<26 | 12<<21 | 1<<16 | 0<<1 | 1<<0,     "bgtl",
0,     OP_BICR_BDA,  16<<26 | 12<<21 | 1<<16 | 1<<1 | 1<<0,     "bgtla",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 1<<16 | 16<<1 | 0<<0,    "bgtlr",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 1<<16 | 16<<1 | 1<<0,    "bgtlrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 1<<16 | 0<<1 | 0<<0,      "ble",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 1<<16 | 1<<1 | 0<<0,      "blea",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 1<<16 | 528<<1 | 0<<0,    "blectr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 1<<16 | 528<<1 | 1<<0,    "blectrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 1<<16 | 0<<1 | 1<<0,      "blel",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 1<<16 | 1<<1 | 1<<0,      "blela",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 1<<16 | 16<<1 | 0<<0,     "blelr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 1<<16 | 16<<1 | 1<<0,     "blelrl",
0,     OP_BICR_BDL,  16<<26 | 12<<21 | 0<<16 | 0<<1 | 0<<0,     "blt",
0,     OP_BICR_BDA,  16<<26 | 12<<21 | 0<<16 | 1<<1 | 0<<0,     "blta",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 0<<16 | 528<<1 | 0<<0,   "bltctr",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 0<<16 | 528<<1 | 1<<0,   "bltctrl",
0,     OP_BICR_BDL,  16<<26 | 12<<21 | 0<<16 | 0<<1 | 1<<0,     "bltl",
0,     OP_BICR_BDA,  16<<26 | 12<<21 | 0<<16 | 1<<1 | 1<<0,     "bltla",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 0<<16 | 16<<1 | 0<<0,    "bltlr",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 0<<16 | 16<<1 | 1<<0,    "bltlrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 2<<16 | 0<<1 | 0<<0,      "bne",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 2<<16 | 1<<1 | 0<<0,      "bnea",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 2<<16 | 528<<1 | 0<<0,    "bnectr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 2<<16 | 528<<1 | 1<<0,    "bnectrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 2<<16 | 0<<1 | 1<<0,      "bnel",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 2<<16 | 1<<1 | 1<<0,      "bnela",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 2<<16 | 16<<1 | 0<<0,     "bnelr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 2<<16 | 16<<1 | 1<<0,     "bnelrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 1<<16 | 0<<1 | 0<<0,      "bng",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 1<<16 | 1<<1 | 0<<0,      "bnga",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 1<<16 | 528<<1 | 0<<0,    "bngctr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 1<<16 | 528<<1 | 1<<0,    "bngctrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 1<<16 | 0<<1 | 1<<0,      "bngl",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 1<<16 | 1<<1 | 1<<0,      "bngla",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 1<<16 | 16<<1 | 0<<0,     "bnglr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 1<<16 | 16<<1 | 1<<0,     "bnglrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 0<<16 | 0<<1 | 0<<0,      "bnl",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 0<<16 | 1<<1 | 0<<0,      "bnla",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 0<<16 | 528<<1 | 0<<0,    "bnlctr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 0<<16 | 528<<1 | 1<<0,    "bnlctrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 0<<16 | 0<<1 | 1<<0,      "bnll",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 0<<16 | 1<<1 | 1<<0,      "bnlla",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 0<<16 | 16<<1 | 0<<0,     "bnllr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 0<<16 | 16<<1 | 1<<0,     "bnllrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 3<<16 | 0<<1 | 0<<0,      "bns",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 3<<16 | 1<<1 | 0<<0,      "bnsa",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 3<<16 | 528<<1 | 0<<0,    "bnsctr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 3<<16 | 528<<1 | 1<<0,    "bnsctrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 3<<16 | 0<<1 | 1<<0,      "bnsl",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 3<<16 | 1<<1 | 1<<0,      "bnsla",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 3<<16 | 16<<1 | 0<<0,     "bnslr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 3<<16 | 16<<1 | 1<<0,     "bnslrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 3<<16 | 0<<1 | 0<<0,      "bnu",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 3<<16 | 1<<1 | 0<<0,      "bnua",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 3<<16 | 528<<1 | 0<<0,    "bnuctr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 3<<16 | 528<<1 | 1<<0,    "bnuctrl",
0,     OP_BICR_BDL,  16<<26 | 4<<21 | 3<<16 | 0<<1 | 1<<0,      "bnul",
0,     OP_BICR_BDA,  16<<26 | 4<<21 | 3<<16 | 1<<1 | 1<<0,      "bnula",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 3<<16 | 16<<1 | 0<<0,     "bnulr",
0,     OP_BICR_BH,   19<<26 | 4<<21 | 3<<16 | 16<<1 | 1<<0,     "bnulrl",
0,     OP_BICR_BDL,  16<<26 | 12<<21 | 3<<16 | 0<<1 | 0<<0,     "bso",
0,     OP_BICR_BDA,  16<<26 | 12<<21 | 3<<16 | 1<<1 | 0<<0,     "bsoa",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 3<<16 | 528<<1 | 0<<0,   "bsoctr",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 3<<16 | 528<<1 | 1<<0,   "bsoctrl",
0,     OP_BICR_BDL,  16<<26 | 12<<21 | 3<<16 | 0<<1 | 1<<0,     "bsol",
0,     OP_BICR_BDA,  16<<26 | 12<<21 | 3<<16 | 1<<1 | 1<<0,     "bsola",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 3<<16 | 16<<1 | 0<<0,    "bsolr",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 3<<16 | 16<<1 | 1<<0,    "bsolrl",
0,     OP_BICR_BDL,  16<<26 | 12<<21 | 3<<16 | 0<<1 | 0<<0,     "bun",
0,     OP_BICR_BDA,  16<<26 | 12<<21 | 3<<16 | 1<<1 | 0<<0,     "buna",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 3<<16 | 528<<1 | 0<<0,   "bunctr",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 3<<16 | 528<<1 | 1<<0,   "bunctrl",
0,     OP_BICR_BDL,  16<<26 | 12<<21 | 3<<16 | 0<<1 | 1<<0,     "bunl",
0,     OP_BICR_BDA,  16<<26 | 12<<21 | 3<<16 | 1<<1 | 1<<0,     "bunla",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 3<<16 | 16<<1 | 0<<0,    "bunlr",
0,     OP_BICR_BH,   19<<26 | 12<<21 | 3<<16 | 16<<1 | 1<<0,    "bunlrl",

/* extended m for cr logic (page 147) */
0,     OP_BT_BT_BT,  19<<26 | 289<<1,                           "crset",
0,     OP_BT_BT_BT,  19<<26 | 193<<1,                           "crclr",
0,     OP_BT_BA_BA,  19<<26 | 449<<1,                           "crmove",
0,     OP_BT_BA_BA,  19<<26 | 33<<1,                            "crnot",

/* Fixed point instructions (page 29) */

0,     OP_RT_RA_D,            34<<26,                                  "lbz",
0,     OP_RT_RA_RB,           31<<26 | 87<<1,                          "lbzx",
0,     OP_RT_RA_D,            35<<26,                                  "lbzu",
0,     OP_RT_RA_RB,           31<<26 | 119<<1,                         "lbzux",
0,     OP_RT_RA_D,            40<<26,                                  "lhz",
0,     OP_RT_RA_RB,           31<<26 | 279<<1,                         "lhzx",
0,     OP_RT_RA_D,            41<<26,                                  "lhzu",
0,     OP_RT_RA_RB,           31<<26 | 311<<1,                         "lhzux",
0,     OP_RT_RA_D,            42<<26,                                  "lha",
0,     OP_RT_RA_RB,           31<<26 | 343<<1,                         "lhax",
0,     OP_RT_RA_D,            43<<26,                                  "lhau",
0,     OP_RT_RA_RB,           31<<26 | 375<<1,                         "lhaux",
0,     OP_RT_RA_D,            32<<26,                                  "lwz",
0,     OP_RT_RA_RB,           31<<26 | 23<<1,                          "lwzx",
0,     OP_RT_RA_D,            33<<26,                                  "lwzu",
0,     OP_RT_RA_RB,           31<<26 | 55<<1,                          "lwzux",
0,     OP_RT_RA_DS,           58<<26 | 2<<0,                           "lwa",
0,     OP_RT_RA_RB,           31<<26 | 341<<1,                         "lwax",
0,     OP_RT_RA_RB,           31<<26 | 363<<1,                         "lwaux",
0,     OP_RT_RA_DS,           58<<26,                                  "ld",
0,     OP_RT_RA_RB,           31<<26 | 21<<1,                          "ldx",
0,     OP_RT_RA_DS,           58<<26 | 1<<0,                           "ldu",
0,     OP_RT_RA_RB,           31<<26 | 53<<1,                          "ldux",

0,     OP_RS_RA_D,            38<<26,                                  "stb",
0,     OP_RS_RA_RB,           31<<26 | 215<<1,                         "stbx",
0,     OP_RS_RA_D,            39<<26,                                  "stbu",
0,     OP_RS_RA_RB,           31<<26 | 247<<1,                         "stbux",
0,     OP_RS_RA_D,            44<<26,                                  "sth",
0,     OP_RS_RA_RB,           31<<26 | 407<<1,                         "sthx",
0,     OP_RS_RA_D,            45<<26,                                  "sthu",
0,     OP_RS_RA_RB,           31<<26 | 439<<1,                         "sthux",
0,     OP_RS_RA_D,            36<<26,                                  "stw",
0,     OP_RS_RA_RB,           31<<26 | 151<<1,                         "stwx",
0,     OP_RS_RA_D,            37<<26,                                  "stwu",
0,     OP_RS_RA_RB,           31<<26 | 183<<1,                         "stwux",
0,     OP_RS_RA_DS,           62<<26,                                  "std",
0,     OP_RS_RA_RB,           31<<26 | 149<<1,                         "stdx",
0,     OP_RS_RA_DS,           62<<26 | 1<<0,                           "stdu",
0,     OP_RS_RA_RB,           31<<26 | 181<<1,                         "stdux",

/* page 42  */
0,     OP_RT_RA_RB,           31<<26 | 790<<1,                         "lhbrx",
0,     OP_RT_RA_RB,           31<<26 | 534<<1,                         "lwbrx",
0,     OP_RS_RA_RB,           31<<26 | 918<<1,                         "sthbrx",
0,     OP_RS_RA_RB,           31<<26 | 662<<1,                         "stwbrx",

/* page 44 */
0,     OP_RT_RA_D,            46<<26,                                  "lmw",
0,     OP_RS_RA_D,            47<<26,                                  "stmw",

/* page 45 */
0,     OP_RT_RA_NB,           31<<26 | 597<<1,                         "lswi",
0,     OP_RT_RA_RB,           31<<26 | 533<<1,                         "lswx",
0,     OP_RS_RA_NB,           31<<26 | 725<<1,                         "stswi",
0,     OP_RS_RA_RB,           31<<26 | 661<<1,                         "stswx",

/* page 49 */
0,     OP_RT_RA_SI,           14<<26,                                  "addi",
0,     OP_RT_RA_SI,           15<<26,                                  "addis",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 266<<1,                 "add",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 266<<1,                 "addo",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 40<<1,                  "subf",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 40<<1,                  "subfo",
0,     OP_RT_RA_SI_addic,     12<<26,                                  "addic", /* special case C */
0,     OP_RT_RA_SI,           8<<26,                                   "subfic",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 10<<1,                  "addc",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 10<<1,                  "addco",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 8<<1,                   "subfc",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 8<<1,                   "subfco",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 138<<1,                 "adde",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 138<<1,                 "addeo",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 136<<1,                 "subfe",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 136<<1,                 "subfeo",
0,     OP_RT_RA_C,            31<<26 | 0<<10 | 234<<1,                 "addme",
0,     OP_RT_RA_C,            31<<26 | 1<<10 | 234<<1,                 "addmeo",
0,     OP_RT_RA_C,            31<<26 | 0<<10 | 232<<1,                 "subfme",
0,     OP_RT_RA_C,            31<<26 | 1<<10 | 232<<1,                 "subfmeo",
0,     OP_RT_RA_C,            31<<26 | 0<<10 | 202<<1,                 "addze",
0,     OP_RT_RA_C,            31<<26 | 1<<10 | 202<<1,                 "addzeo",
0,     OP_RT_RA_C,            31<<26 | 0<<10 | 200<<1,                 "subfze",
0,     OP_RT_RA_C,            31<<26 | 1<<10 | 200<<1,                 "subfzeo",
0,     OP_RT_RA_C,            31<<26 | 0<<10 | 104<<1,                 "neg",
0,     OP_RT_RA_C,            31<<26 | 1<<10 | 104<<1,                 "nego",

/* extended m for addition (pages 153, 154) */
0,     OP_RT_RA_D,            14<<26,                       "la",
0,     OP_RT_SI,              14<<26 | 0<<16,               "li",
0,     OP_RT_SI,              15<<26 | 0<<16,               "lis",

/* extended m for subtraction (pages 147, 148) */
0,     OP_RT_RB_RA_C,         31<<26 | 0<<10 | 40<<1,       "sub",
0,     OP_RT_RB_RA_C,         31<<26 | 1<<10 | 40<<1,       "subo",
0,     OP_RT_RB_RA_C,         31<<26 | 0<<10 | 8<<1,        "subc",
0,     OP_RT_RB_RA_C,         31<<26 | 0<<10 | 8<<1,        "subco",
0,     OP_RT_RA_SI_subi,      14<<26,                       "subi",
0,     OP_RT_RA_SI_subi,      15<<26,                       "subis",
0,     OP_RT_RA_SI_subic,     12<<26,                       "subic",

/* page 54 */
0,     OP_RT_RA_SI,           7<<26,                                   "mulli",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 233<<1,                 "mulld",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 233<<1,                 "mulldo",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 235<<1,                 "mullw",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 235<<1,                 "mullwo",
0,     OP_RT_RA_RB_C,         31<<26 | 73<<1,                          "mulhd",
0,     OP_RT_RA_RB_C,         31<<26 | 75<<1,                          "mulhw",
0,     OP_RT_RA_RB_C,         31<<26 | 9<<1,                           "mulhdu",
0,     OP_RT_RA_RB_C,         31<<26 | 11<<1,                          "mulhwu",

/* page 56 */
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 489<<1,                 "divd",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 489<<1,                 "divdo",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 491<<1,                 "divw",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 491<<1,                 "divwo",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 457<<1,                 "divdu",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 457<<1,                 "divduo",
0,     OP_RT_RA_RB_C,         31<<26 | 0<<10 | 459<<1,                 "divwu",
0,     OP_RT_RA_RB_C,         31<<26 | 1<<10 | 459<<1,                 "divwuo",

/* page 58 */
0,     OP_BF_L_RA_SI,         11<<26,                                  "cmpi",
0,     OP_BF_L_RA_RB,         31<<26 | 0<<1,                           "cmp",
0,     OP_BF_L_RA_UI,         10<<26,                                  "cmpli",
0,     OP_BF_L_RA_RB,         31<<26 | 32<<1,                          "cmpl",

/* extended m for comparison (page 149) */
0,     OP_BF_RA_SI,           11<<26 | 1<<21,               "cmpdi",
0,     OP_BF_RA_RB,           31<<26 | 1<<21 | 0<<1,        "cmpd",
0,     OP_BF_RA_UI,           10<<26 | 1<<21,               "cmpldi",
0,     OP_BF_RA_RB,           31<<26 | 1<<21 | 32<<1,       "cmpld",
0,     OP_BF_RA_SI,           11<<26 | 0<<21,               "cmpwi",
0,     OP_BF_RA_RB,           31<<26 | 0<<21 | 0<<1,        "cmpw",
0,     OP_BF_RA_UI,           10<<26 | 0<<21,               "cmplwi",
0,     OP_BF_RA_RB,           31<<26 | 0<<21 | 32<<1,       "cmplw",

/* page 60 */
0,     OP_TO_RA_SI,           2<<26,                                   "tdi",
0,     OP_TO_RA_SI,           3<<26,                                   "twi",
0,     OP_TO_RA_RB,           31<<26 | 68<<1,                          "td",
0,     OP_TO_RA_RB,           31<<26 | 4<<1,                           "tw",

/* extended m for traps (page 150) */
0,     OP_TOX_RA_RB,          31<<26 | 4<<21 | 68<<1,       "tdeq",
0,     OP_TOX_RA_SI,          2<<26 | 4<<21,                "tdeqi",
0,     OP_TOX_RA_RB,          31<<26 | 12<<21 | 68<<1,      "tdge",
0,     OP_TOX_RA_SI,          2<<26 | 12<<21,               "tdgei",
0,     OP_TOX_RA_RB,          31<<26 | 8<<21 | 68<<1,       "tdgt",
0,     OP_TOX_RA_SI,          2<<26 | 8<<21,                "tdgti",
0,     OP_TOX_RA_RB,          31<<26 | 20<<21 | 68<<1,      "tdle",
0,     OP_TOX_RA_SI,          2<<26 | 20<<21,               "tdlei",
0,     OP_TOX_RA_RB,          31<<26 | 5<<21 | 68<<1,       "tdlge",
0,     OP_TOX_RA_SI,          2<<26 | 5<<21,                "tdlgei",
0,     OP_TOX_RA_RB,          31<<26 | 1<<21 | 68<<1,       "tdlgt",
0,     OP_TOX_RA_SI,          2<<26 | 1<<21,                "tdlgti",
0,     OP_TOX_RA_RB,          31<<26 | 6<<21 | 68<<1,       "tdlle",
0,     OP_TOX_RA_SI,          2<<26 | 6<<21,                "tdllei",
0,     OP_TOX_RA_RB,          31<<26 | 2<<21 | 68<<1,       "tdllt",
0,     OP_TOX_RA_SI,          2<<26 | 2<<21,                "tdllti",
0,     OP_TOX_RA_RB,          31<<26 | 6<<21 | 68<<1,       "tdlng",
0,     OP_TOX_RA_SI,          2<<26 | 6<<21,                "tdlngi",
0,     OP_TOX_RA_RB,          31<<26 | 5<<21 | 68<<1,       "tdlnl",
0,     OP_TOX_RA_SI,          2<<26 | 5<<21,                "tdlnli",
0,     OP_TOX_RA_RB,          31<<26 | 16<<21 | 68<<1,      "tdlt",
0,     OP_TOX_RA_SI,          2<<26 | 16<<21,               "tdlti",
0,     OP_TOX_RA_RB,          31<<26 | 24<<21 | 68<<1,      "tdne",
0,     OP_TOX_RA_SI,          2<<26 | 24<<21,               "tdnei",
0,     OP_TOX_RA_RB,          31<<26 | 20<<21 | 68<<1,      "tdng",
0,     OP_TOX_RA_SI,          2<<26 | 20<<21,               "tdngi",
0,     OP_TOX_RA_RB,          31<<26 | 12<<21 | 68<<1,      "tdnl",
0,     OP_TOX_RA_SI,          2<<26 | 12<<21,               "tdnli",
0,     OP_TOX_RA_RB,          31<<26 | 31<<21 | 68<<1,      "tdu",
0,     OP_TOX_RA_SI,          2<<26 | 31<<21,               "tdui",
0,     OP,                    31<<26 | 31<<21 | 4<<1,       "trap",
0,     OP_TOX_RA_RB,          31<<26 | 4<<21 | 4<<1,        "tweq",
0,     OP_TOX_RA_SI,          3<<26 | 4<<21,                "tweqi",
0,     OP_TOX_RA_RB,          31<<26 | 12<<21 | 4<<1,       "twge",
0,     OP_TOX_RA_SI,          3<<26 | 12<<21,               "twgei",
0,     OP_TOX_RA_RB,          31<<26 | 8<<21 | 4<<1,        "twgt",
0,     OP_TOX_RA_SI,          3<<26 | 8<<21,                "twgti",
0,     OP_TOX_RA_RB,          31<<26 | 20<<21 | 4<<1,       "twle",
0,     OP_TOX_RA_SI,          3<<26 | 20<<21,               "twlei",
0,     OP_TOX_RA_RB,          31<<26 | 5<<21 | 4<<1,        "twlge",
0,     OP_TOX_RA_SI,          3<<26 | 5<<21,                "twlgei",
0,     OP_TOX_RA_RB,          31<<26 | 1<<21 | 4<<1,        "twlgt",
0,     OP_TOX_RA_SI,          3<<26 | 1<<21,                "twlgti",
0,     OP_TOX_RA_RB,          31<<26 | 6<<21 | 4<<1,        "twlle",
0,     OP_TOX_RA_SI,          3<<26 | 6<<21,                "twllei",
0,     OP_TOX_RA_RB,          31<<26 | 2<<21 | 4<<1,        "twllt",
0,     OP_TOX_RA_SI,          3<<26 | 2<<21,                "twllti",
0,     OP_TOX_RA_RB,          31<<26 | 6<<21 | 4<<1,        "twlng",
0,     OP_TOX_RA_SI,          3<<26 | 6<<21,                "twlngi",
0,     OP_TOX_RA_RB,          31<<26 | 5<<21 | 4<<1,        "twlnl",
0,     OP_TOX_RA_SI,          3<<26 | 5<<21,                "twlnli",
0,     OP_TOX_RA_RB,          31<<26 | 16<<21 | 4<<1,       "twlt",
0,     OP_TOX_RA_SI,          3<<26 | 16<<21,               "twlti",
0,     OP_TOX_RA_RB,          31<<26 | 24<<21 | 4<<1,       "twne",
0,     OP_TOX_RA_SI,          3<<26 | 24<<21,               "twnei",
0,     OP_TOX_RA_RB,          31<<26 | 20<<21 | 4<<1,       "twng",
0,     OP_TOX_RA_SI,          3<<26 | 20<<21,               "twngi",
0,     OP_TOX_RA_RB,          31<<26 | 12<<21 | 4<<1,       "twnl",
0,     OP_TOX_RA_SI,          3<<26 | 12<<21,               "twnli",
0,     OP_TOX_RA_RB,          31<<26 | 31<<21 | 4<<1,       "twu",
0,     OP_TOX_RA_SI,          3<<26 | 31<<21,               "twui",

/* page 62 */
0,     OP_RA_RS_UI_CC,        28<<26,                                  "andi", /* C compulsory */
0,     OP_RA_RS_UI_CC,        29<<26,                                  "andis", /* C compulsory */
0,     OP_RA_RS_UI,           24<<26,                                  "ori",
0,     OP_RA_RS_UI,           25<<26,                                  "oris",
0,     OP_RA_RS_UI,           26<<26,                                  "xori",
0,     OP_RA_RS_UI,           27<<26,                                  "xoris",
0,     OP_RA_RS_RB_C,         31<<26 | 28<<1,                          "and",
0,     OP_RA_RS_RB_C,         31<<26 | 444<<1,                         "or",
0,     OP_RA_RS_RB_C,         31<<26 | 316<<1,                         "xor",
0,     OP_RA_RS_RB_C,         31<<26 | 476<<1,                         "nand",
0,     OP_RA_RS_RB_C,         31<<26 | 124<<1,                         "nor",
0,     OP_RA_RS_RB_C,         31<<26 | 284<<1,                         "eqv",
0,     OP_RA_RS_RB_C,         31<<26 | 60<<1,                          "andc",
0,     OP_RA_RS_RB_C,         31<<26 | 412<<1,                         "orc",
0,     OP_RA_RS_C,            31<<26 | 954<<1,                         "extsb",
0,     OP_RA_RS_C,            31<<26 | 922<<1,                         "extsh",
0,     OP_RA_RS_C,            31<<26 | 986<<1,                         "extsw",
0,     OP_RA_RS_C,            31<<26 | 58<<1,                          "cntlzd",
0,     OP_RA_RS_C,            31<<26 | 26<<1,                          "cntlzw",

/* extended m using logic (pages 153, 154) */
0,     OP_RA_RS_RA_C,         31<<26 | 444<<1,              "mr",
0,     OP,                    24<<26,                       "nop",
0,     OP_RA_RS_RA_C,         31<<26 | 124<<1,              "not",

/* page 69 */
0,     OP_RA_RS_SH6_MB6_C,     30<<26 | 0<<2,               "rldicl",
0,     OP_RA_RS_SH6_MB6_C,     30<<26 | 1<<2,               "rldicr",
0,     OP_RA_RS_SH6_MB6_C,     30<<26 | 2<<2,               "rldic",
0,     OP_RA_RS_SH5_MB5_ME5_C, 21<<26,                      "rlwinm",
0,     OP_RA_RS_RB_MB6_C,      30<<26 | 8<<1,               "rldcl",
0,     OP_RA_RS_RB_MB6_C,      30<<26 | 9<<1,               "rldcr",
0,     OP_RA_RS_RB_MB5_ME5_C,  23<<26,                      "rlwnm",
0,     OP_RA_RS_SH6_MB6_C,     30<<26 | 3<<2,               "rldimi",
0,     OP_RA_RS_SH5_MB5_ME5_C, 20<<26,                      "rlwimi",

/* extended m for doubleword rotation (page 151) */
0,     OP_clrlsldi,           30<<26 | 2<<2,                "clrlsldi",
0,     OP_clrldi,             30<<26 | 0<<2,                "clrldi",
0,     OP_clrrdi,             30<<26 | 1<<2,                "clrrdi",
0,     OP_extldi,             30<<26 | 0<<2,                "extldi",
0,     OP_extrdi,             30<<26 | 1<<2,                "extrdi",
0,     OP_insrdi,             30<<26 | 3<<2,                "insrdi",
0,     OP_RA_RS_RB_C,         30<<26 | MB6(0) | 8<<1,       "rotld",
0,     OP_RA_RS_SH6_C,        30<<26 | MB6(0) | 0<<2,       "rotldi",
0,     OP_rotrdi,             30<<26 | 0<<2,                "rotrdi",
0,     OP_sldi,               30<<26 | 1<<2,                "sldi",
0,     OP_srdi,               30<<26 | 0<<2,                "srdi",

/* extended m for word rotation (page 152) */
0,     OP_clrlslwi,           21<<26,                       "clrlslwi",
0,     OP_clrlwi,             21<<26,                       "clrlwi",
0,     OP_clrrwi,             21<<26,                       "clrrwi",
0,     OP_extlwi,             21<<26,                       "extlwi",
0,     OP_extrwi,             21<<26,                       "extrwi",
0,     OP_inslwi,             20<<26,                       "inslwi",
0,     OP_insrwi,             20<<26,                       "insrwi",
0,     OP_RA_RS_RB_C,         23<<26 | 0<<6 | 31<<1,        "rotlw",
0,     OP_RA_RS_SH5_C,        21<<26 | 0<<6 | 31<<1,        "rotlwi",
0,     OP_rotrwi,             21<<26,                       "rotrwi",
0,     OP_slwi,               21<<26,                       "slwi",
0,     OP_srwi,               21<<26,                       "srwi",

/* page 74 */
0,     OP_RA_RS_RB_C,         31<<26 | 27<<1,               "sld",
0,     OP_RA_RS_RB_C,         31<<26 | 24<<1,               "slw",
0,     OP_RA_RS_RB_C,         31<<26 | 539<<1,              "srd",
0,     OP_RA_RS_RB_C,         31<<26 | 536<<1,              "srw",
0,     OP_RA_RS_SH6_C,        31<<26 | 413<<2,              "sradi",
0,     OP_RA_RS_SH5_C,        31<<26 | 824<<1,              "srawi",
0,     OP_RA_RS_RB_C,         31<<26 | 794<<1,              "srad",
0,     OP_RA_RS_RB_C,         31<<26 | 792<<1,              "sraw",

/* page 78 */
0,     OP_RS_SPR,             31<<26 | 467<<1,              "mtspr",
0,     OP_RT_SPR,             31<<26 | 339<<1,              "mfspr",
0,     OP_RS_FXM,             31<<26 | 0<<20 | 144<<1,      "mtcrf",
0,     OP_RT,                 31<<26 | 0<<20 | 19<<1,       "mfcr",

/* extended m for special purpose registers (page 153) */
0,     OP_RT,       31<<26 | 9<<16 | 0<<11 | 339<<1,        "mfctr",
0,     OP_RT,       31<<26 | 8<<16 | 0<<11 | 339<<1,        "mflr",
0,     OP_RT,       31<<26 | 1<<16 | 0<<11 | 339<<1,        "mfxer",
0,     OP_RS,       31<<26 | 9<<16 | 0<<11 | 467<<1,        "mtctr",
0,     OP_RS,       31<<26 | 8<<16 | 0<<11 | 467<<1,        "mtlr",
0,     OP_RS,       31<<26 | 1<<16 | 0<<11 | 467<<1,        "mtxer",

/* extended m for condition register (page 154) */
0,     OP_RS,       31<<26 | 0<<20 | 255<<12 | 144<<1,      "mtcr",

/* Floating point instructions (page 83) */

/* page 98 */
0,     OP_FRT_RA_D,           48<<26,                                  "lfs",
0,     OP_FRT_RA_RB,          31<<26 | 535<<1,                         "lfsx",
0,     OP_FRT_RA_D,           49<<26,                                  "lfsu",
0,     OP_FRT_RA_RB,          31<<26 | 567<<1,                         "lfsux",
0,     OP_FRT_RA_D,           50<<26,                                  "lfd",
0,     OP_FRT_RA_RB,          31<<26 | 599<<1,                         "lfdx",
0,     OP_FRT_RA_D,           51<<26,                                  "lfdu",
0,     OP_FRT_RA_RB,          31<<26 | 631<<1,                         "lfdux",
0,     OP_FRS_RA_D,           52<<26,                                  "stfs",
0,     OP_FRS_RA_RB,          31<<26 | 663<<1,                         "stfsx",
0,     OP_FRS_RA_D,           53<<26,                                  "stfsu",
0,     OP_FRS_RA_RB,          31<<26 | 695<<1,                         "stfsux",
0,     OP_FRS_RA_D,           54<<26,                                  "stfd",
0,     OP_FRS_RA_RB,          31<<26 | 727<<1,                         "stfdx",
0,     OP_FRS_RA_D,           55<<26,                                  "stfdu",
0,     OP_FRS_RA_RB,          31<<26 | 759<<1,                         "stfdux",
0,     OP_FRS_RA_RB,          31<<26 | 983<<1,                         "stfiwx",

/* page 104 */
0,     OP_FRT_FRB_C,          63<<26 | 72<<1,                          "fmr",
0,     OP_FRT_FRB_C,          63<<26 | 40<<1,                          "fneg",
0,     OP_FRT_FRB_C,          63<<26 | 264<<1,                         "fabs",
0,     OP_FRT_FRB_C,          63<<26 | 136<<1,                         "fnabs",

0,     OP_FRT_FRA_FRB_C,      63<<26 | 21<<1,                          "fadd",
0,     OP_FRT_FRA_FRB_C,      59<<26 | 21<<1,                          "fadds",
0,     OP_FRT_FRA_FRB_C,      63<<26 | 20<<1,                          "fsub",
0,     OP_FRT_FRA_FRB_C,      59<<26 | 20<<1,                          "fsubs",
0,     OP_FRT_FRA_FRC_C,      63<<26 | 25<<1,                          "fmul",
0,     OP_FRT_FRA_FRC_C,      59<<26 | 25<<1,                          "fmuls",
0,     OP_FRT_FRA_FRB_C,      63<<26 | 18<<1,                          "fdiv",
0,     OP_FRT_FRA_FRB_C,      59<<26 | 18<<1,                          "fdivs",

0,     OP_FRT_FRA_FRC_FRB_C,  63<<26 | 29<<1,                          "fmadd",
0,     OP_FRT_FRA_FRC_FRB_C,  59<<26 | 29<<1,                          "fmadds",
0,     OP_FRT_FRA_FRC_FRB_C,  63<<26 | 28<<1,                          "fmsub",
0,     OP_FRT_FRA_FRC_FRB_C,  59<<26 | 28<<1,                          "fmsubs",
0,     OP_FRT_FRA_FRC_FRB_C,  63<<26 | 31<<1,                          "fnmadd",
0,     OP_FRT_FRA_FRC_FRB_C,  59<<26 | 31<<1,                          "fnmadds",
0,     OP_FRT_FRA_FRC_FRB_C,  63<<26 | 30<<1,                          "fnmsub",
0,     OP_FRT_FRA_FRC_FRB_C,  59<<26 | 30<<1,                          "fnmsubs",

/* page 109 */
0,     OP_FRT_FRB_C,          63<<26 | 12<<1,                          "frsp",
0,     OP_FRT_FRB_C,          63<<26 | 814<<1,                         "fctid",
0,     OP_FRT_FRB_C,          63<<26 | 815<<1,                         "fctidz",
0,     OP_FRT_FRB_C,          63<<26 | 14<<1,                          "fctiw",
0,     OP_FRT_FRB_C,          63<<26 | 15<<1,                          "fctiwz",
0,     OP_FRT_FRB_C,          63<<26 | 846<<1,                         "fcfid",

0,     OP_BF_FRA_FRB,         63<<26 | 0<<1,                           "fcmpu",
0,     OP_BF_FRA_FRB,         63<<26 | 32<<1,                          "fcmpo",

0,     OP_FRT_C,              63<<26 | 583<<1,                         "mffs",
0,     OP_BF_BFA,             63<<26 | 64<<1,                          "mcrfs",
0,     OP_BF_U_C,             63<<26 | 134<<1,                         "mtfsfi",
0,     OP_FLM_FRB_C,          63<<26 | 711<<1,                         "mtfsf",
0,     OP_BT_C,               63<<26 | 70<<1,                          "mtfsb0",
0,     OP_BT_C,               63<<26 | 38<<1,                          "mtfsb1",

0,     OP_FRT_FRB_C,          63<<26 | 22<<1,                          "fsqrt",
0,     OP_FRT_FRB_C,          59<<26 | 22<<1,                          "fsqrts",
0,     OP_FRT_FRB_C,          59<<26 | 24<<1,                          "fres",
0,     OP_FRT_FRB_C,          63<<26 | 26<<1,                          "frsqrte",
0,     OP_FRT_FRA_FRC_FRB_C,  63<<26 | 23<<1,                          "fsel",

/* Storage control instructions (Book II, page 15) */

/* Book II, page 17 */
0,     OP_RA_RB,              31<<26 | 982<<1,              "icbi",
0,     OP_RA_RB_TH /* page 35 */,          31<<26 | 278<<1, "dcbt",
0,     OP_RA_RB,              31<<26 | 246<<1,              "dcbtst",
0,     OP_RA_RB,              31<<26 | 1014<<1,             "dcbz",
0,     OP_RA_RB,              31<<26 | 54<<1,               "dcbst",
0,     OP_RA_RB,              31<<26 | 86<<1,               "dcbf",
0,     OP,                    19<<26 | 150<<1,              "isync",
0,     OP_RT_RA_RB,           31<<26 | 20<<1,               "lwarx",
0,     OP_RT_RA_RB,           31<<26 | 84<<1,               "ldarx",
0,     OP_RS_RA_RB_CC,        31<<26 | 150<<1 | 1<<0,       "stwcx",
0,     OP_RS_RA_RB_CC,        31<<26 | 150<<1 | 1<<0,       "stdcx",
0,     OP_L,                  31<<26 | 598<<1,              "sync",
0,     OP,                    31<<26 | 1<<21 | 598<<1,      "lwsync",
0,     OP,                    31<<26 | 2<<21 | 598<<1,      "ptesync",
0,     OP,                    31<<26 | 854<<1,              "eieio",

/* Time base (Book II, page 30) */

0,     OP_RT_TBR,   31<<26 | 371<<1,                        "mftb",
0,     OP_RT,       31<<26 | 8<<11 | 13<<16 | 371<<1,       "mftbu",

/* External control (Book II, page 33) */

0,     OP_RT_RA_RB,           31<<26 | 310<<1,              "eciwx",
0,     OP_RS_RA_RB,           31<<26 | 438<<1,              "ecowx",