summaryrefslogtreecommitdiff
path: root/arch/powerpc/assembler.cpp
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2024-03-05 19:50:13 -0500
committerRusty Wagner <rusty.wagner@gmail.com>2024-03-05 20:34:34 -0500
commite093c21ed880ac3eb72119be15093ee04f8ce299 (patch)
tree9f720ebdc0ae415734b1199ed341668c69710a94 /arch/powerpc/assembler.cpp
parent0609276712622908254065546102381466033141 (diff)
Move architecture modules into the API repo
Diffstat (limited to 'arch/powerpc/assembler.cpp')
-rw-r--r--arch/powerpc/assembler.cpp3059
1 files changed, 3059 insertions, 0 deletions
diff --git a/arch/powerpc/assembler.cpp b/arch/powerpc/assembler.cpp
new file mode 100644
index 00000000..d0c04ce2
--- /dev/null
+++ b/arch/powerpc/assembler.cpp
@@ -0,0 +1,3059 @@
+/* ppc adaptive assembler
+
+ Do not include any BINJA stuff in here (includes like binaryninjaapi.h,
+ calls like LogDebug(), etc.) so that this can be easily compiled and
+ linked against test_asm.cpp for timing and stressing.
+*/
+
+/* */
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <string.h>
+#include <time.h>
+
+/* c++ stuff */
+#include <map>
+#include <string>
+#include <vector>
+using namespace std;
+
+/* capstone stuff */
+#include "capstone/capstone.h"
+
+//#define MYLOG printf
+#define MYLOG(...) while(0);
+
+#include "assembler.h"
+
+/*****************************************************************************/
+/* precomputed stuff */
+/*****************************************************************************/
+
+struct info {
+ uint32_t seed; /* start parent */
+ uint32_t mask; /* which bits to mutate */
+};
+
+map<string, info> lookup = {
+{ "tdi NUM , GPR , NUM",{0x0800000A,0x03FFFFFF}}, // 000010xxxxxxxxxxxxxxxxxxxxxxxxxx tdi 0, r0, 0xa
+{ "tdlgti GPR , NUM",{0x08200000,0x001FFFFF}}, // 00001000001xxxxxxxxxxxxxxxxxxxxx tdlgti r0, 0
+{ "tdllti GPR , NUM",{0x08400000,0x001FFFFF}}, // 00001000010xxxxxxxxxxxxxxxxxxxxx tdllti r0, 0
+{ "tdeqi GPR , NUM",{0x08800000,0x001FFFFF}}, // 00001000100xxxxxxxxxxxxxxxxxxxxx tdeqi r0, 0
+{ "tdgti GPR , NUM",{0x09000000,0x001FFFFF}}, // 00001001000xxxxxxxxxxxxxxxxxxxxx tdgti r0, 0
+{ "tdlti GPR , NUM",{0x0A000000,0x001FFFFF}}, // 00001010000xxxxxxxxxxxxxxxxxxxxx tdlti r0, 0
+{ "tdnei GPR , NUM",{0x0B000000,0x001FFFFF}}, // 00001011000xxxxxxxxxxxxxxxxxxxxx tdnei r0, 0
+{ "tdui GPR , NUM",{0x0BE00000,0x001FFFFF}}, // 00001011111xxxxxxxxxxxxxxxxxxxxx tdui r0, 0
+{ "twi NUM , GPR , NUM",{0x0C000000,0x03FFFFFF}}, // 000011xxxxxxxxxxxxxxxxxxxxxxxxxx twi 0, r0, 0
+{ "twlgti GPR , NUM",{0x0C200000,0x001FFFFF}}, // 00001100001xxxxxxxxxxxxxxxxxxxxx twlgti r0, 0
+{ "twllti GPR , NUM",{0x0C400000,0x001FFFFF}}, // 00001100010xxxxxxxxxxxxxxxxxxxxx twllti r0, 0
+{ "tweqi GPR , NUM",{0x0C800000,0x001FFFFF}}, // 00001100100xxxxxxxxxxxxxxxxxxxxx tweqi r0, 0
+{ "twgti GPR , NUM",{0x0D000000,0x001FFFFF}}, // 00001101000xxxxxxxxxxxxxxxxxxxxx twgti r0, 0
+{ "twlti GPR , NUM",{0x0E000000,0x001FFFFF}}, // 00001110000xxxxxxxxxxxxxxxxxxxxx twlti r0, 0
+{ "twnei GPR , NUM",{0x0F000000,0x001FFFFF}}, // 00001111000xxxxxxxxxxxxxxxxxxxxx twnei r0, 0
+{ "twui GPR , NUM",{0x0FE00000,0x001FFFFF}}, // 00001111111xxxxxxxxxxxxxxxxxxxxx twui r0, 0
+{ "vaddubm VREG , VREG , VREG",{0x10000000,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00000000000 vaddubm v0, v0, v0
+{ "vmaxub VREG , VREG , VREG",{0x10000002,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00000000010 vmaxub v0, v0, v0
+{ "vrlb VREG , VREG , VREG",{0x10000004,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00000000100 vrlb v0, v0, v0
+{ "vcmpequb VREG , VREG , VREG",{0x10000006,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00000000110 vcmpequb v0, v0, v0
+{ "vmuloub VREG , VREG , VREG",{0x10000008,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00000001000 vmuloub v0, v0, v0
+{ "vaddfp VREG , VREG , VREG",{0x1000000A,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00000001010 vaddfp v0, v0, v0
+{ "vmrghb VREG , VREG , VREG",{0x1000000C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00000001100 vmrghb v0, v0, v0
+{ "vpkuhum VREG , VREG , VREG",{0x1000000E,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00000001110 vpkuhum v0, v0, v0
+{"vmhaddshs VREG , VREG , VREG , VREG",{0x10000020,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx100000 vmhaddshs v0, v0, v0, v0
+{"vmhraddshs VREG , VREG , VREG , VREG",{0x10000021,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx100001 vmhraddshs v0, v0, v0, v0
+{"vmladduhm VREG , VREG , VREG , VREG",{0x10000022,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx100010 vmladduhm v0, v0, v0, v0
+{"vmsumubm VREG , VREG , VREG , VREG",{0x10000024,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx100100 vmsumubm v0, v0, v0, v0
+{"vmsummbm VREG , VREG , VREG , VREG",{0x10000025,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx100101 vmsummbm v0, v0, v0, v0
+{"vmsumuhm VREG , VREG , VREG , VREG",{0x10000026,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx100110 vmsumuhm v0, v0, v0, v0
+{"vmsumuhs VREG , VREG , VREG , VREG",{0x10000027,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx100111 vmsumuhs v0, v0, v0, v0
+{"vmsumshm VREG , VREG , VREG , VREG",{0x10000028,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx101000 vmsumshm v0, v0, v0, v0
+{"vmsumshs VREG , VREG , VREG , VREG",{0x10000029,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx101001 vmsumshs v0, v0, v0, v0
+{ "vsel VREG , VREG , VREG , VREG",{0x1000002A,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx101010 vsel v0, v0, v0, v0
+{ "vperm VREG , VREG , VREG , VREG",{0x1000002B,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx101011 vperm v0, v0, v0, v0
+{ "vsldoi VREG , VREG , VREG , NUM",{0x1000002C,0x03FFFBC0}}, // 000100xxxxxxxxxxxxxxx0xxxx101100 vsldoi v0, v0, v0, 0
+{ "vmaddfp VREG , VREG , VREG , VREG",{0x1000002E,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx101110 vmaddfp v0, v0, v0, v0
+{"vnmsubfp VREG , VREG , VREG , VREG",{0x1000002F,0x03FFFFC0}}, // 000100xxxxxxxxxxxxxxxxxxxx101111 vnmsubfp v0, v0, v0, v0
+{ "vadduhm VREG , VREG , VREG",{0x10000040,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00001000000 vadduhm v0, v0, v0
+{ "vmaxuh VREG , VREG , VREG",{0x10000042,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00001000010 vmaxuh v0, v0, v0
+{ "vrlh VREG , VREG , VREG",{0x10000044,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00001000100 vrlh v0, v0, v0
+{ "vcmpequh VREG , VREG , VREG",{0x10000046,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00001000110 vcmpequh v0, v0, v0
+{ "vmulouh VREG , VREG , VREG",{0x10000048,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00001001000 vmulouh v0, v0, v0
+{ "vsubfp VREG , VREG , VREG",{0x1000004A,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00001001010 vsubfp v0, v0, v0
+{ "vmrghh VREG , VREG , VREG",{0x1000004C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00001001100 vmrghh v0, v0, v0
+{ "vpkuwum VREG , VREG , VREG",{0x1000004E,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00001001110 vpkuwum v0, v0, v0
+{ "vadduwm VREG , VREG , VREG",{0x10000080,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00010000000 vadduwm v0, v0, v0
+{ "vmaxuw VREG , VREG , VREG",{0x10000082,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00010000010 vmaxuw v0, v0, v0
+{ "vrlw VREG , VREG , VREG",{0x10000084,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00010000100 vrlw v0, v0, v0
+{ "vcmpequw VREG , VREG , VREG",{0x10000086,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00010000110 vcmpequw v0, v0, v0
+{ "vmrghw VREG , VREG , VREG",{0x1000008C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00010001100 vmrghw v0, v0, v0
+{ "vpkuhus VREG , VREG , VREG",{0x1000008E,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00010001110 vpkuhus v0, v0, v0
+{ "vcmpeqfp VREG , VREG , VREG",{0x100000C6,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00011000110 vcmpeqfp v0, v0, v0
+{ "vpkuwus VREG , VREG , VREG",{0x100000CE,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00011001110 vpkuwus v0, v0, v0
+{ "vmaxsb VREG , VREG , VREG",{0x10000102,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00100000010 vmaxsb v0, v0, v0
+{ "vslb VREG , VREG , VREG",{0x10000104,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00100000100 vslb v0, v0, v0
+{ "vmulosb VREG , VREG , VREG",{0x10000108,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00100001000 vmulosb v0, v0, v0
+{ "vrefp VREG , VREG",{0x1000010A,0x03E0F800}}, // 000100xxxxx00000xxxxx00100001010 vrefp v0, v0
+{ "vmrglb VREG , VREG , VREG",{0x1000010C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00100001100 vmrglb v0, v0, v0
+{ "vpkshus VREG , VREG , VREG",{0x1000010E,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00100001110 vpkshus v0, v0, v0
+{ "vmaxsh VREG , VREG , VREG",{0x10000142,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00101000010 vmaxsh v0, v0, v0
+{ "vslh VREG , VREG , VREG",{0x10000144,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00101000100 vslh v0, v0, v0
+{ "vmulosh VREG , VREG , VREG",{0x10000148,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00101001000 vmulosh v0, v0, v0
+{ "vrsqrtefp VREG , VREG",{0x1000014A,0x03E0F800}}, // 000100xxxxx00000xxxxx00101001010 vrsqrtefp v0, v0
+{ "vmrglh VREG , VREG , VREG",{0x1000014C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00101001100 vmrglh v0, v0, v0
+{ "vpkswus VREG , VREG , VREG",{0x1000014E,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00101001110 vpkswus v0, v0, v0
+{ "vaddcuw VREG , VREG , VREG",{0x10000180,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00110000000 vaddcuw v0, v0, v0
+{ "vmaxsw VREG , VREG , VREG",{0x10000182,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00110000010 vmaxsw v0, v0, v0
+{ "vslw VREG , VREG , VREG",{0x10000184,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00110000100 vslw v0, v0, v0
+{ "vexptefp VREG , VREG",{0x1000018A,0x03E0F800}}, // 000100xxxxx00000xxxxx00110001010 vexptefp v0, v0
+{ "vmrglw VREG , VREG , VREG",{0x1000018C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00110001100 vmrglw v0, v0, v0
+{ "vpkshss VREG , VREG , VREG",{0x1000018E,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00110001110 vpkshss v0, v0, v0
+{ "vsl VREG , VREG , VREG",{0x100001C4,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00111000100 vsl v0, v0, v0
+{ "vcmpgefp VREG , VREG , VREG",{0x100001C6,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00111000110 vcmpgefp v0, v0, v0
+{ "vlogefp VREG , VREG",{0x100001CA,0x03E0F800}}, // 000100xxxxx00000xxxxx00111001010 vlogefp v0, v0
+{ "vpkswss VREG , VREG , VREG",{0x100001CE,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx00111001110 vpkswss v0, v0, v0
+{ "vaddubs VREG , VREG , VREG",{0x10000200,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01000000000 vaddubs v0, v0, v0
+{ "vminub VREG , VREG , VREG",{0x10000202,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01000000010 vminub v0, v0, v0
+{ "vsrb VREG , VREG , VREG",{0x10000204,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01000000100 vsrb v0, v0, v0
+{ "vcmpgtub VREG , VREG , VREG",{0x10000206,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01000000110 vcmpgtub v0, v0, v0
+{ "vmuleub VREG , VREG , VREG",{0x10000208,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01000001000 vmuleub v0, v0, v0
+{ "vrfin VREG , VREG",{0x1000020A,0x03E0F800}}, // 000100xxxxx00000xxxxx01000001010 vrfin v0, v0
+{ "vspltb VREG , VREG , NUM",{0x1000020C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01000001100 vspltb v0, v0, 0
+{ "vupkhsb VREG , VREG",{0x1000020E,0x03E0F800}}, // 000100xxxxx00000xxxxx01000001110 vupkhsb v0, v0
+{ "vadduhs VREG , VREG , VREG",{0x10000240,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01001000000 vadduhs v0, v0, v0
+{ "vminuh VREG , VREG , VREG",{0x10000242,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01001000010 vminuh v0, v0, v0
+{ "vsrh VREG , VREG , VREG",{0x10000244,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01001000100 vsrh v0, v0, v0
+{ "vcmpgtuh VREG , VREG , VREG",{0x10000246,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01001000110 vcmpgtuh v0, v0, v0
+{ "vmuleuh VREG , VREG , VREG",{0x10000248,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01001001000 vmuleuh v0, v0, v0
+{ "vrfiz VREG , VREG",{0x1000024A,0x03E0F800}}, // 000100xxxxx00000xxxxx01001001010 vrfiz v0, v0
+{ "vsplth VREG , VREG , NUM",{0x1000024C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01001001100 vsplth v0, v0, 0
+{ "vupkhsh VREG , VREG",{0x1000024E,0x03E0F800}}, // 000100xxxxx00000xxxxx01001001110 vupkhsh v0, v0
+{ "vadduws VREG , VREG , VREG",{0x10000280,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01010000000 vadduws v0, v0, v0
+{ "vminuw VREG , VREG , VREG",{0x10000282,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01010000010 vminuw v0, v0, v0
+{ "vsrw VREG , VREG , VREG",{0x10000284,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01010000100 vsrw v0, v0, v0
+{ "vcmpgtuw VREG , VREG , VREG",{0x10000286,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01010000110 vcmpgtuw v0, v0, v0
+{ "vrfip VREG , VREG",{0x1000028A,0x03E0F800}}, // 000100xxxxx00000xxxxx01010001010 vrfip v0, v0
+{ "vspltw VREG , VREG , NUM",{0x1000028C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01010001100 vspltw v0, v0, 0
+{ "vupklsb VREG , VREG",{0x1000028E,0x03E0F800}}, // 000100xxxxx00000xxxxx01010001110 vupklsb v0, v0
+{ "vsr VREG , VREG , VREG",{0x100002C4,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01011000100 vsr v0, v0, v0
+{ "vcmpgtfp VREG , VREG , VREG",{0x100002C6,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01011000110 vcmpgtfp v0, v0, v0
+{ "vrfim VREG , VREG",{0x100002CA,0x03E0F800}}, // 000100xxxxx00000xxxxx01011001010 vrfim v0, v0
+{ "vupklsh VREG , VREG",{0x100002CE,0x03E0F800}}, // 000100xxxxx00000xxxxx01011001110 vupklsh v0, v0
+{ "vaddsbs VREG , VREG , VREG",{0x10000300,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01100000000 vaddsbs v0, v0, v0
+{ "vminsb VREG , VREG , VREG",{0x10000302,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01100000010 vminsb v0, v0, v0
+{ "vsrab VREG , VREG , VREG",{0x10000304,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01100000100 vsrab v0, v0, v0
+{ "vcmpgtsb VREG , VREG , VREG",{0x10000306,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01100000110 vcmpgtsb v0, v0, v0
+{ "vmulesb VREG , VREG , VREG",{0x10000308,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01100001000 vmulesb v0, v0, v0
+{ "vcfux VREG , VREG , NUM",{0x1000030A,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01100001010 vcfux v0, v0, 0
+{ "vspltisb VREG , NUM",{0x1000030C,0x03FF0000}}, // 000100xxxxxxxxxx0000001100001100 vspltisb v0, 0
+{ "vpkpx VREG , VREG , VREG",{0x1000030E,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01100001110 vpkpx v0, v0, v0
+{ "vaddshs VREG , VREG , VREG",{0x10000340,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01101000000 vaddshs v0, v0, v0
+{ "vminsh VREG , VREG , VREG",{0x10000342,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01101000010 vminsh v0, v0, v0
+{ "vsrah VREG , VREG , VREG",{0x10000344,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01101000100 vsrah v0, v0, v0
+{ "vcmpgtsh VREG , VREG , VREG",{0x10000346,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01101000110 vcmpgtsh v0, v0, v0
+{ "vmulesh VREG , VREG , VREG",{0x10000348,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01101001000 vmulesh v0, v0, v0
+{ "vcfsx VREG , VREG , NUM",{0x1000034A,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01101001010 vcfsx v0, v0, 0
+{ "vspltish VREG , NUM",{0x1000034C,0x03FF0000}}, // 000100xxxxxxxxxx0000001101001100 vspltish v0, 0
+{ "vupkhpx VREG , VREG",{0x1000034E,0x03E0F800}}, // 000100xxxxx00000xxxxx01101001110 vupkhpx v0, v0
+{ "vaddsws VREG , VREG , VREG",{0x10000380,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01110000000 vaddsws v0, v0, v0
+{ "vminsw VREG , VREG , VREG",{0x10000382,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01110000010 vminsw v0, v0, v0
+{ "vsraw VREG , VREG , VREG",{0x10000384,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01110000100 vsraw v0, v0, v0
+{ "vcmpgtsw VREG , VREG , VREG",{0x10000386,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01110000110 vcmpgtsw v0, v0, v0
+{ "vctuxs VREG , VREG , NUM",{0x1000038A,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01110001010 vctuxs v0, v0, 0
+{ "vspltisw VREG , NUM",{0x1000038C,0x03FF0000}}, // 000100xxxxxxxxxx0000001110001100 vspltisw v0, 0
+{ "vcmpbfp VREG , VREG , VREG",{0x100003C6,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01111000110 vcmpbfp v0, v0, v0
+{ "vctsxs VREG , VREG , NUM",{0x100003CA,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx01111001010 vctsxs v0, v0, 0
+{ "vupklpx VREG , VREG",{0x100003CE,0x03E0F800}}, // 000100xxxxx00000xxxxx01111001110 vupklpx v0, v0
+{ "vsububm VREG , VREG , VREG",{0x10000400,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10000000000 vsububm v0, v0, v0
+{ "vavgub VREG , VREG , VREG",{0x10000402,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10000000010 vavgub v0, v0, v0
+{ "vand VREG , VREG , VREG",{0x10000404,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10000000100 vand v0, v0, v0
+{ "vcmpequb . VREG , VREG , VREG",{0x10000406,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10000000110 vcmpequb. v0, v0, v0
+{ "vmaxfp VREG , VREG , VREG",{0x1000040A,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10000001010 vmaxfp v0, v0, v0
+{ "vslo VREG , VREG , VREG",{0x1000040C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10000001100 vslo v0, v0, v0
+{ "vsubuhm VREG , VREG , VREG",{0x10000440,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10001000000 vsubuhm v0, v0, v0
+{ "vavguh VREG , VREG , VREG",{0x10000442,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10001000010 vavguh v0, v0, v0
+{ "vandc VREG , VREG , VREG",{0x10000444,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10001000100 vandc v0, v0, v0
+{ "vcmpequh . VREG , VREG , VREG",{0x10000446,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10001000110 vcmpequh. v0, v0, v0
+{ "vminfp VREG , VREG , VREG",{0x1000044A,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10001001010 vminfp v0, v0, v0
+{ "vsro VREG , VREG , VREG",{0x1000044C,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10001001100 vsro v0, v0, v0
+{ "vsubuwm VREG , VREG , VREG",{0x10000480,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10010000000 vsubuwm v0, v0, v0
+{ "vavguw VREG , VREG , VREG",{0x10000482,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10010000010 vavguw v0, v0, v0
+{ "vor VREG , VREG , VREG",{0x10000484,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10010000100 vor v0, v0, v0
+{ "vcmpequw . VREG , VREG , VREG",{0x10000486,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10010000110 vcmpequw. v0, v0, v0
+{ "vxor VREG , VREG , VREG",{0x100004C4,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10011000100 vxor v0, v0, v0
+{ "vcmpeqfp . VREG , VREG , VREG",{0x100004C6,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10011000110 vcmpeqfp. v0, v0, v0
+{ "vavgsb VREG , VREG , VREG",{0x10000502,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10100000010 vavgsb v0, v0, v0
+{ "vnor VREG , VREG , VREG",{0x10000504,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10100000100 vnor v0, v0, v0
+{ "vavgsh VREG , VREG , VREG",{0x10000542,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10101000010 vavgsh v0, v0, v0
+{ "vsubcuw VREG , VREG , VREG",{0x10000580,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10110000000 vsubcuw v0, v0, v0
+{ "vavgsw VREG , VREG , VREG",{0x10000582,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10110000010 vavgsw v0, v0, v0
+{ "vcmpgefp . VREG , VREG , VREG",{0x100005C6,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx10111000110 vcmpgefp. v0, v0, v0
+{ "vsububs VREG , VREG , VREG",{0x10000600,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11000000000 vsububs v0, v0, v0
+{ "mfvscr VREG",{0x10000604,0x03E00000}}, // 000100xxxxx000000000011000000100 mfvscr v0
+{ "vcmpgtub . VREG , VREG , VREG",{0x10000606,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11000000110 vcmpgtub. v0, v0, v0
+{ "vsum4ubs VREG , VREG , VREG",{0x10000608,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11000001000 vsum4ubs v0, v0, v0
+{ "vsubuhs VREG , VREG , VREG",{0x10000640,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11001000000 vsubuhs v0, v0, v0
+{ "mtvscr VREG",{0x10000644,0x0000F800}}, // 0001000000000000xxxxx11001000100 mtvscr v0
+{ "vcmpgtuh . VREG , VREG , VREG",{0x10000646,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11001000110 vcmpgtuh. v0, v0, v0
+{ "vsum4shs VREG , VREG , VREG",{0x10000648,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11001001000 vsum4shs v0, v0, v0
+{ "vsubuws VREG , VREG , VREG",{0x10000680,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11010000000 vsubuws v0, v0, v0
+{ "vcmpgtuw . VREG , VREG , VREG",{0x10000686,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11010000110 vcmpgtuw. v0, v0, v0
+{ "vsum2sws VREG , VREG , VREG",{0x10000688,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11010001000 vsum2sws v0, v0, v0
+{ "vcmpgtfp . VREG , VREG , VREG",{0x100006C6,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11011000110 vcmpgtfp. v0, v0, v0
+{ "vsubsbs VREG , VREG , VREG",{0x10000700,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11100000000 vsubsbs v0, v0, v0
+{ "vcmpgtsb . VREG , VREG , VREG",{0x10000706,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11100000110 vcmpgtsb. v0, v0, v0
+{ "vsum4sbs VREG , VREG , VREG",{0x10000708,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11100001000 vsum4sbs v0, v0, v0
+{ "vsubshs VREG , VREG , VREG",{0x10000740,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11101000000 vsubshs v0, v0, v0
+{ "vcmpgtsh . VREG , VREG , VREG",{0x10000746,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11101000110 vcmpgtsh. v0, v0, v0
+{ "vsubsws VREG , VREG , VREG",{0x10000780,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11110000000 vsubsws v0, v0, v0
+{ "vcmpgtsw . VREG , VREG , VREG",{0x10000786,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11110000110 vcmpgtsw. v0, v0, v0
+{ "vsumsws VREG , VREG , VREG",{0x10000788,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11110001000 vsumsws v0, v0, v0
+{ "vcmpbfp . VREG , VREG , VREG",{0x100007C6,0x03FFF800}}, // 000100xxxxxxxxxxxxxxx11111000110 vcmpbfp. v0, v0, v0
+{ "mulli GPR , GPR , NUM",{0x1C000000,0x03FFFFFF}}, // 000111xxxxxxxxxxxxxxxxxxxxxxxxxx mulli r0, r0, 0
+{ "subfic GPR , GPR , NUM",{0x20000000,0x03FFFFFF}}, // 001000xxxxxxxxxxxxxxxxxxxxxxxxxx subfic r0, r0, 0
+{ "cmplwi GPR , NUM",{0x28000000,0x001FFFFF}}, // 00101000000xxxxxxxxxxxxxxxxxxxxx cmplwi r0, 0
+{ "cmpldi GPR , NUM",{0x28200000,0x001FFFFF}}, // 00101000001xxxxxxxxxxxxxxxxxxxxx cmpldi r0, 0
+{ "cmplwi CREG , GPR , NUM",{0x28800000,0x039FFFFF}}, // 001010xxx00xxxxxxxxxxxxxxxxxxxxx cmplwi cr1, r0, 0
+{ "cmpldi CREG , GPR , NUM",{0x28A00000,0x039FFFFF}}, // 001010xxx01xxxxxxxxxxxxxxxxxxxxx cmpldi cr1, r0, 0
+{ "cmpwi GPR , NUM",{0x2C000000,0x001FFFFF}}, // 00101100000xxxxxxxxxxxxxxxxxxxxx cmpwi r0, 0
+{ "cmpdi GPR , NUM",{0x2C200000,0x001FFFFF}}, // 00101100001xxxxxxxxxxxxxxxxxxxxx cmpdi r0, 0
+{ "cmpwi CREG , GPR , NUM",{0x2C800000,0x039FFFFF}}, // 001011xxx00xxxxxxxxxxxxxxxxxxxxx cmpwi cr1, r0, 0
+{ "cmpdi CREG , GPR , NUM",{0x2CA00000,0x039FFFFF}}, // 001011xxx01xxxxxxxxxxxxxxxxxxxxx cmpdi cr1, r0, 0
+{ "addic GPR , GPR , NUM",{0x30000000,0x03FFFFFF}}, // 001100xxxxxxxxxxxxxxxxxxxxxxxxxx addic r0, r0, 0
+{ "addic . GPR , GPR , NUM",{0x34000000,0x03FFFFFF}}, // 001101xxxxxxxxxxxxxxxxxxxxxxxxxx addic. r0, r0, 0
+{ "li GPR , NUM",{0x38000000,0x03E0FFFF}}, // 001110xxxxx00000xxxxxxxxxxxxxxxx li r0, 0
+{ "addi GPR , GPR , NUM",{0x38010000,0x03FFFFFF}}, // 001110xxxxxxxxxxxxxxxxxxxxxxxxxx addi r0, r1, 0
+{ "lis GPR , NUM",{0x3C000000,0x03E0FFFF}}, // 001111xxxxx00000xxxxxxxxxxxxxxxx lis r0, 0
+{ "addis GPR , GPR , NUM",{0x3C010000,0x03FFFFFF}}, // 001111xxxxxxxxxxxxxxxxxxxxxxxxxx addis r0, r1, 0
+{ "bdnzf FLAG",{0x40000000,0x00230000}}, // 0100000000x000xx0000000000000000 bdnzf lt
+{ "bdnzfl FLAG",{0x40000001,0x00230000}}, // 0100000000x000xx0000000000000001 bdnzfl lt
+{ "bdnzfa FLAG",{0x40000002,0x00230000}}, // 0100000000x000xx0000000000000010 bdnzfa lt
+{ "bdnzfla FLAG",{0x40000003,0x00230000}}, // 0100000000x000xx0000000000000011 bdnzfla lt
+{ "bdnzf FLAG , NUM",{0x40000004,0x0023FFFC}}, // 0100000000x000xxxxxxxxxxxxxxxx00 bdnzf lt, 0x4
+{ "bdnzfl FLAG , NUM",{0x40000005,0x0023FFFC}}, // 0100000000x000xxxxxxxxxxxxxxxx01 bdnzfl lt, 0x4
+{ "bdnzfa FLAG , NUM",{0x40000006,0x0023FFFC}}, // 0100000000x000xxxxxxxxxxxxxxxx10 bdnzfa lt, 0x4
+{ "bdnzfla FLAG , NUM",{0x40000007,0x0023FFFC}}, // 0100000000x000xxxxxxxxxxxxxxxx11 bdnzfla lt, 0x4
+{ "bdnzf NUM * CREG + FLAG",{0x40040000,0x003F0000}}, // 0100000000xxxxxx0000000000000000 bdnzf 4*cr1+lt
+{ "bdnzfl NUM * CREG + FLAG",{0x40040001,0x003F0000}}, // 0100000000xxxxxx0000000000000001 bdnzfl 4*cr1+lt
+{ "bdnzfa NUM * CREG + FLAG",{0x40040002,0x003F0000}}, // 0100000000xxxxxx0000000000000010 bdnzfa 4*cr1+lt
+{ "bdnzfla NUM * CREG + FLAG",{0x40040003,0x003F0000}}, // 0100000000xxxxxx0000000000000011 bdnzfla 4*cr1+lt
+{ "bdnzf NUM * CREG + FLAG , NUM",{0x40040004,0x003FFFFC}}, // 0100000000xxxxxxxxxxxxxxxxxxxx00 bdnzf 4*cr1+lt, 0x4
+{ "bdnzfl NUM * CREG + FLAG , NUM",{0x40040005,0x003FFFFC}}, // 0100000000xxxxxxxxxxxxxxxxxxxx01 bdnzfl 4*cr1+lt, 0x4
+{ "bdnzfa NUM * CREG + FLAG , NUM",{0x40040006,0x003FFFFC}}, // 0100000000xxxxxxxxxxxxxxxxxxxx10 bdnzfa 4*cr1+lt, 0x4
+{ "bdnzfla NUM * CREG + FLAG , NUM",{0x40040007,0x003FFFFC}}, // 0100000000xxxxxxxxxxxxxxxxxxxx11 bdnzfla 4*cr1+lt, 0x4
+{ "bdzf FLAG",{0x40400000,0x00230000}}, // 0100000001x000xx0000000000000000 bdzf lt
+{ "bdzfl FLAG",{0x40400001,0x00230000}}, // 0100000001x000xx0000000000000001 bdzfl lt
+{ "bdzfa FLAG",{0x40400002,0x00230000}}, // 0100000001x000xx0000000000000010 bdzfa lt
+{ "bdzfla FLAG",{0x40400003,0x00230000}}, // 0100000001x000xx0000000000000011 bdzfla lt
+{ "bdzf FLAG , NUM",{0x40400004,0x0023FFFC}}, // 0100000001x000xxxxxxxxxxxxxxxx00 bdzf lt, 0x4
+{ "bdzfl FLAG , NUM",{0x40400005,0x0023FFFC}}, // 0100000001x000xxxxxxxxxxxxxxxx01 bdzfl lt, 0x4
+{ "bdzfa FLAG , NUM",{0x40400006,0x0023FFFC}}, // 0100000001x000xxxxxxxxxxxxxxxx10 bdzfa lt, 0x4
+{ "bdzfla FLAG , NUM",{0x40400007,0x0023FFFC}}, // 0100000001x000xxxxxxxxxxxxxxxx11 bdzfla lt, 0x4
+{ "bdzf NUM * CREG + FLAG",{0x40440000,0x003F0000}}, // 0100000001xxxxxx0000000000000000 bdzf 4*cr1+lt
+{ "bdzfl NUM * CREG + FLAG",{0x40440001,0x003F0000}}, // 0100000001xxxxxx0000000000000001 bdzfl 4*cr1+lt
+{ "bdzfa NUM * CREG + FLAG",{0x40440002,0x003F0000}}, // 0100000001xxxxxx0000000000000010 bdzfa 4*cr1+lt
+{ "bdzfla NUM * CREG + FLAG",{0x40440003,0x003F0000}}, // 0100000001xxxxxx0000000000000011 bdzfla 4*cr1+lt
+{ "bdzf NUM * CREG + FLAG , NUM",{0x40440004,0x003FFFFC}}, // 0100000001xxxxxxxxxxxxxxxxxxxx00 bdzf 4*cr1+lt, 0x4
+{ "bdzfl NUM * CREG + FLAG , NUM",{0x40440005,0x003FFFFC}}, // 0100000001xxxxxxxxxxxxxxxxxxxx01 bdzfl 4*cr1+lt, 0x4
+{ "bdzfa NUM * CREG + FLAG , NUM",{0x40440006,0x003FFFFC}}, // 0100000001xxxxxxxxxxxxxxxxxxxx10 bdzfa 4*cr1+lt, 0x4
+{ "bdzfla NUM * CREG + FLAG , NUM",{0x40440007,0x003FFFFC}}, // 0100000001xxxxxxxxxxxxxxxxxxxx11 bdzfla 4*cr1+lt, 0x4
+{ "bge",{0x40800000,0x00200000}}, // 0100000010x000000000000000000000 bge
+{ "bgel",{0x40800001,0x00200000}}, // 0100000010x000000000000000000001 bgel
+{ "bgea",{0x40800002,0x00200000}}, // 0100000010x000000000000000000010 bgea
+{ "bgela",{0x40800003,0x00200000}}, // 0100000010x000000000000000000011 bgela
+{ "bge NUM",{0x40800004,0x0020FFFC}}, // 0100000010x00000xxxxxxxxxxxxxx00 bge 0x4
+{ "bgel NUM",{0x40800005,0x0020FFFC}}, // 0100000010x00000xxxxxxxxxxxxxx01 bgel 0x4
+{ "bgea NUM",{0x40800006,0x0020FFFC}}, // 0100000010x00000xxxxxxxxxxxxxx10 bgea 0x4
+{ "bgela NUM",{0x40800007,0x0020FFFC}}, // 0100000010x00000xxxxxxxxxxxxxx11 bgela 0x4
+{ "ble",{0x40810000,0x00200000}}, // 0100000010x000010000000000000000 ble
+{ "blel",{0x40810001,0x00200000}}, // 0100000010x000010000000000000001 blel
+{ "blea",{0x40810002,0x00200000}}, // 0100000010x000010000000000000010 blea
+{ "blela",{0x40810003,0x00200000}}, // 0100000010x000010000000000000011 blela
+{ "ble NUM",{0x40810004,0x0020FFFC}}, // 0100000010x00001xxxxxxxxxxxxxx00 ble 0x4
+{ "blel NUM",{0x40810005,0x0020FFFC}}, // 0100000010x00001xxxxxxxxxxxxxx01 blel 0x4
+{ "blea NUM",{0x40810006,0x0020FFFC}}, // 0100000010x00001xxxxxxxxxxxxxx10 blea 0x4
+{ "blela NUM",{0x40810007,0x0020FFFC}}, // 0100000010x00001xxxxxxxxxxxxxx11 blela 0x4
+{ "bne",{0x40820000,0x00200000}}, // 0100000010x000100000000000000000 bne
+{ "bnel",{0x40820001,0x00200000}}, // 0100000010x000100000000000000001 bnel
+{ "bnea",{0x40820002,0x00200000}}, // 0100000010x000100000000000000010 bnea
+{ "bnela",{0x40820003,0x00200000}}, // 0100000010x000100000000000000011 bnela
+{ "bne NUM",{0x40820004,0x0020FFFC}}, // 0100000010x00010xxxxxxxxxxxxxx00 bne 0x4
+{ "bnel NUM",{0x40820005,0x0020FFFC}}, // 0100000010x00010xxxxxxxxxxxxxx01 bnel 0x4
+{ "bnea NUM",{0x40820006,0x0020FFFC}}, // 0100000010x00010xxxxxxxxxxxxxx10 bnea 0x4
+{ "bnela NUM",{0x40820007,0x0020FFFC}}, // 0100000010x00010xxxxxxxxxxxxxx11 bnela 0x4
+{ "bns",{0x40830000,0x00200000}}, // 0100000010x000110000000000000000 bns
+{ "bnsl",{0x40830001,0x00200000}}, // 0100000010x000110000000000000001 bnsl
+{ "bnsa",{0x40830002,0x00200000}}, // 0100000010x000110000000000000010 bnsa
+{ "bnsla",{0x40830003,0x00200000}}, // 0100000010x000110000000000000011 bnsla
+{ "bns NUM",{0x40830004,0x0020FFFC}}, // 0100000010x00011xxxxxxxxxxxxxx00 bns 0x4
+{ "bnsl NUM",{0x40830005,0x0020FFFC}}, // 0100000010x00011xxxxxxxxxxxxxx01 bnsl 0x4
+{ "bnsa NUM",{0x40830006,0x0020FFFC}}, // 0100000010x00011xxxxxxxxxxxxxx10 bnsa 0x4
+{ "bnsla NUM",{0x40830007,0x0020FFFC}}, // 0100000010x00011xxxxxxxxxxxxxx11 bnsla 0x4
+{ "bge CREG",{0x40840000,0x003C0000}}, // 0100000010xxxx000000000000000000 bge cr1
+{ "bgel CREG",{0x40840001,0x003C0000}}, // 0100000010xxxx000000000000000001 bgel cr1
+{ "bgea CREG",{0x40840002,0x003C0000}}, // 0100000010xxxx000000000000000010 bgea cr1
+{ "bgela CREG",{0x40840003,0x003C0000}}, // 0100000010xxxx000000000000000011 bgela cr1
+{ "bge CREG , NUM",{0x40840004,0x003CFFFC}}, // 0100000010xxxx00xxxxxxxxxxxxxx00 bge cr1, 0x4
+{ "bgel CREG , NUM",{0x40840005,0x003CFFFC}}, // 0100000010xxxx00xxxxxxxxxxxxxx01 bgel cr1, 0x4
+{ "bgea CREG , NUM",{0x40840006,0x003CFFFC}}, // 0100000010xxxx00xxxxxxxxxxxxxx10 bgea cr1, 0x4
+{ "bgela CREG , NUM",{0x40840007,0x003CFFFC}}, // 0100000010xxxx00xxxxxxxxxxxxxx11 bgela cr1, 0x4
+{ "ble CREG",{0x40850000,0x003C0000}}, // 0100000010xxxx010000000000000000 ble cr1
+{ "blel CREG",{0x40850001,0x003C0000}}, // 0100000010xxxx010000000000000001 blel cr1
+{ "blea CREG",{0x40850002,0x003C0000}}, // 0100000010xxxx010000000000000010 blea cr1
+{ "blela CREG",{0x40850003,0x003C0000}}, // 0100000010xxxx010000000000000011 blela cr1
+{ "ble CREG , NUM",{0x40850004,0x003CFFFC}}, // 0100000010xxxx01xxxxxxxxxxxxxx00 ble cr1, 0x4
+{ "blel CREG , NUM",{0x40850005,0x003CFFFC}}, // 0100000010xxxx01xxxxxxxxxxxxxx01 blel cr1, 0x4
+{ "blea CREG , NUM",{0x40850006,0x003CFFFC}}, // 0100000010xxxx01xxxxxxxxxxxxxx10 blea cr1, 0x4
+{ "blela CREG , NUM",{0x40850007,0x003CFFFC}}, // 0100000010xxxx01xxxxxxxxxxxxxx11 blela cr1, 0x4
+{ "bne CREG",{0x40860000,0x003C0000}}, // 0100000010xxxx100000000000000000 bne cr1
+{ "bnel CREG",{0x40860001,0x003C0000}}, // 0100000010xxxx100000000000000001 bnel cr1
+{ "bnea CREG",{0x40860002,0x003C0000}}, // 0100000010xxxx100000000000000010 bnea cr1
+{ "bnela CREG",{0x40860003,0x003C0000}}, // 0100000010xxxx100000000000000011 bnela cr1
+{ "bne CREG , NUM",{0x40860004,0x003CFFFC}}, // 0100000010xxxx10xxxxxxxxxxxxxx00 bne cr1, 0x4
+{ "bnel CREG , NUM",{0x40860005,0x003CFFFC}}, // 0100000010xxxx10xxxxxxxxxxxxxx01 bnel cr1, 0x4
+{ "bnea CREG , NUM",{0x40860006,0x003CFFFC}}, // 0100000010xxxx10xxxxxxxxxxxxxx10 bnea cr1, 0x4
+{ "bnela CREG , NUM",{0x40860007,0x003CFFFC}}, // 0100000010xxxx10xxxxxxxxxxxxxx11 bnela cr1, 0x4
+{ "bns CREG",{0x40870000,0x003C0000}}, // 0100000010xxxx110000000000000000 bns cr1
+{ "bnsl CREG",{0x40870001,0x003C0000}}, // 0100000010xxxx110000000000000001 bnsl cr1
+{ "bnsa CREG",{0x40870002,0x003C0000}}, // 0100000010xxxx110000000000000010 bnsa cr1
+{ "bnsla CREG",{0x40870003,0x003C0000}}, // 0100000010xxxx110000000000000011 bnsla cr1
+{ "bns CREG , NUM",{0x40870004,0x003CFFFC}}, // 0100000010xxxx11xxxxxxxxxxxxxx00 bns cr1, 0x4
+{ "bnsl CREG , NUM",{0x40870005,0x003CFFFC}}, // 0100000010xxxx11xxxxxxxxxxxxxx01 bnsl cr1, 0x4
+{ "bnsa CREG , NUM",{0x40870006,0x003CFFFC}}, // 0100000010xxxx11xxxxxxxxxxxxxx10 bnsa cr1, 0x4
+{ "bnsla CREG , NUM",{0x40870007,0x003CFFFC}}, // 0100000010xxxx11xxxxxxxxxxxxxx11 bnsla cr1, 0x4
+{ "bge -",{0x40C00000,0x00000000}}, // 01000000110000000000000000000000 bge-
+{ "bgel -",{0x40C00001,0x00000000}}, // 01000000110000000000000000000001 bgel-
+{ "bgea -",{0x40C00002,0x00000000}}, // 01000000110000000000000000000010 bgea-
+{ "bgela -",{0x40C00003,0x00000000}}, // 01000000110000000000000000000011 bgela-
+{ "bge - NUM",{0x40C00004,0x0000FFFC}}, // 0100000011000000xxxxxxxxxxxxxx00 bge- 0x4
+{ "bgel - NUM",{0x40C00005,0x0000FFFC}}, // 0100000011000000xxxxxxxxxxxxxx01 bgel- 0x4
+{ "bgea - NUM",{0x40C00006,0x0000FFFC}}, // 0100000011000000xxxxxxxxxxxxxx10 bgea- 0x4
+{ "bgela - NUM",{0x40C00007,0x0000FFFC}}, // 0100000011000000xxxxxxxxxxxxxx11 bgela- 0x4
+{ "ble -",{0x40C10000,0x00000000}}, // 01000000110000010000000000000000 ble-
+{ "blel -",{0x40C10001,0x00000000}}, // 01000000110000010000000000000001 blel-
+{ "blea -",{0x40C10002,0x00000000}}, // 01000000110000010000000000000010 blea-
+{ "blela -",{0x40C10003,0x00000000}}, // 01000000110000010000000000000011 blela-
+{ "ble - NUM",{0x40C10004,0x0000FFFC}}, // 0100000011000001xxxxxxxxxxxxxx00 ble- 0x4
+{ "blel - NUM",{0x40C10005,0x0000FFFC}}, // 0100000011000001xxxxxxxxxxxxxx01 blel- 0x4
+{ "blea - NUM",{0x40C10006,0x0000FFFC}}, // 0100000011000001xxxxxxxxxxxxxx10 blea- 0x4
+{ "blela - NUM",{0x40C10007,0x0000FFFC}}, // 0100000011000001xxxxxxxxxxxxxx11 blela- 0x4
+{ "bne -",{0x40C20000,0x00000000}}, // 01000000110000100000000000000000 bne-
+{ "bnel -",{0x40C20001,0x00000000}}, // 01000000110000100000000000000001 bnel-
+{ "bnea -",{0x40C20002,0x00000000}}, // 01000000110000100000000000000010 bnea-
+{ "bnela -",{0x40C20003,0x00000000}}, // 01000000110000100000000000000011 bnela-
+{ "bne - NUM",{0x40C20004,0x0000FFFC}}, // 0100000011000010xxxxxxxxxxxxxx00 bne- 0x4
+{ "bnel - NUM",{0x40C20005,0x0000FFFC}}, // 0100000011000010xxxxxxxxxxxxxx01 bnel- 0x4
+{ "bnea - NUM",{0x40C20006,0x0000FFFC}}, // 0100000011000010xxxxxxxxxxxxxx10 bnea- 0x4
+{ "bnela - NUM",{0x40C20007,0x0000FFFC}}, // 0100000011000010xxxxxxxxxxxxxx11 bnela- 0x4
+{ "bns -",{0x40C30000,0x00000000}}, // 01000000110000110000000000000000 bns-
+{ "bnsl -",{0x40C30001,0x00000000}}, // 01000000110000110000000000000001 bnsl-
+{ "bnsa -",{0x40C30002,0x00000000}}, // 01000000110000110000000000000010 bnsa-
+{ "bnsla -",{0x40C30003,0x00000000}}, // 01000000110000110000000000000011 bnsla-
+{ "bns - NUM",{0x40C30004,0x0000FFFC}}, // 0100000011000011xxxxxxxxxxxxxx00 bns- 0x4
+{ "bnsl - NUM",{0x40C30005,0x0000FFFC}}, // 0100000011000011xxxxxxxxxxxxxx01 bnsl- 0x4
+{ "bnsa - NUM",{0x40C30006,0x0000FFFC}}, // 0100000011000011xxxxxxxxxxxxxx10 bnsa- 0x4
+{ "bnsla - NUM",{0x40C30007,0x0000FFFC}}, // 0100000011000011xxxxxxxxxxxxxx11 bnsla- 0x4
+{ "bge - CREG",{0x40C40000,0x001C0000}}, // 01000000110xxx000000000000000000 bge- cr1
+{ "bgel - CREG",{0x40C40001,0x001C0000}}, // 01000000110xxx000000000000000001 bgel- cr1
+{ "bgea - CREG",{0x40C40002,0x001C0000}}, // 01000000110xxx000000000000000010 bgea- cr1
+{ "bgela - CREG",{0x40C40003,0x001C0000}}, // 01000000110xxx000000000000000011 bgela- cr1
+{ "bge - CREG , NUM",{0x40C40004,0x001CFFFC}}, // 01000000110xxx00xxxxxxxxxxxxxx00 bge- cr1, 0x4
+{ "bgel - CREG , NUM",{0x40C40005,0x001CFFFC}}, // 01000000110xxx00xxxxxxxxxxxxxx01 bgel- cr1, 0x4
+{ "bgea - CREG , NUM",{0x40C40006,0x001CFFFC}}, // 01000000110xxx00xxxxxxxxxxxxxx10 bgea- cr1, 0x4
+{ "bgela - CREG , NUM",{0x40C40007,0x001CFFFC}}, // 01000000110xxx00xxxxxxxxxxxxxx11 bgela- cr1, 0x4
+{ "ble - CREG",{0x40C50000,0x001C0000}}, // 01000000110xxx010000000000000000 ble- cr1
+{ "blel - CREG",{0x40C50001,0x001C0000}}, // 01000000110xxx010000000000000001 blel- cr1
+{ "blea - CREG",{0x40C50002,0x001C0000}}, // 01000000110xxx010000000000000010 blea- cr1
+{ "blela - CREG",{0x40C50003,0x001C0000}}, // 01000000110xxx010000000000000011 blela- cr1
+{ "ble - CREG , NUM",{0x40C50004,0x001CFFFC}}, // 01000000110xxx01xxxxxxxxxxxxxx00 ble- cr1, 0x4
+{ "blel - CREG , NUM",{0x40C50005,0x001CFFFC}}, // 01000000110xxx01xxxxxxxxxxxxxx01 blel- cr1, 0x4
+{ "blea - CREG , NUM",{0x40C50006,0x001CFFFC}}, // 01000000110xxx01xxxxxxxxxxxxxx10 blea- cr1, 0x4
+{ "blela - CREG , NUM",{0x40C50007,0x001CFFFC}}, // 01000000110xxx01xxxxxxxxxxxxxx11 blela- cr1, 0x4
+{ "bne - CREG",{0x40C60000,0x001C0000}}, // 01000000110xxx100000000000000000 bne- cr1
+{ "bnel - CREG",{0x40C60001,0x001C0000}}, // 01000000110xxx100000000000000001 bnel- cr1
+{ "bnea - CREG",{0x40C60002,0x001C0000}}, // 01000000110xxx100000000000000010 bnea- cr1
+{ "bnela - CREG",{0x40C60003,0x001C0000}}, // 01000000110xxx100000000000000011 bnela- cr1
+{ "bne - CREG , NUM",{0x40C60004,0x001CFFFC}}, // 01000000110xxx10xxxxxxxxxxxxxx00 bne- cr1, 0x4
+{ "bnel - CREG , NUM",{0x40C60005,0x001CFFFC}}, // 01000000110xxx10xxxxxxxxxxxxxx01 bnel- cr1, 0x4
+{ "bnea - CREG , NUM",{0x40C60006,0x001CFFFC}}, // 01000000110xxx10xxxxxxxxxxxxxx10 bnea- cr1, 0x4
+{ "bnela - CREG , NUM",{0x40C60007,0x001CFFFC}}, // 01000000110xxx10xxxxxxxxxxxxxx11 bnela- cr1, 0x4
+{ "bns - CREG",{0x40C70000,0x001C0000}}, // 01000000110xxx110000000000000000 bns- cr1
+{ "bnsl - CREG",{0x40C70001,0x001C0000}}, // 01000000110xxx110000000000000001 bnsl- cr1
+{ "bnsa - CREG",{0x40C70002,0x001C0000}}, // 01000000110xxx110000000000000010 bnsa- cr1
+{ "bnsla - CREG",{0x40C70003,0x001C0000}}, // 01000000110xxx110000000000000011 bnsla- cr1
+{ "bns - CREG , NUM",{0x40C70004,0x001CFFFC}}, // 01000000110xxx11xxxxxxxxxxxxxx00 bns- cr1, 0x4
+{ "bnsl - CREG , NUM",{0x40C70005,0x001CFFFC}}, // 01000000110xxx11xxxxxxxxxxxxxx01 bnsl- cr1, 0x4
+{ "bnsa - CREG , NUM",{0x40C70006,0x001CFFFC}}, // 01000000110xxx11xxxxxxxxxxxxxx10 bnsa- cr1, 0x4
+{ "bnsla - CREG , NUM",{0x40C70007,0x001CFFFC}}, // 01000000110xxx11xxxxxxxxxxxxxx11 bnsla- cr1, 0x4
+{ "bge +",{0x40E00000,0x00000000}}, // 01000000111000000000000000000000 bge+
+{ "bgel +",{0x40E00001,0x00000000}}, // 01000000111000000000000000000001 bgel+
+{ "bgea +",{0x40E00002,0x00000000}}, // 01000000111000000000000000000010 bgea+
+{ "bgela +",{0x40E00003,0x00000000}}, // 01000000111000000000000000000011 bgela+
+{ "bge + NUM",{0x40E00004,0x0000FFFC}}, // 0100000011100000xxxxxxxxxxxxxx00 bge+ 0x4
+{ "bgel + NUM",{0x40E00005,0x0000FFFC}}, // 0100000011100000xxxxxxxxxxxxxx01 bgel+ 0x4
+{ "bgea + NUM",{0x40E00006,0x0000FFFC}}, // 0100000011100000xxxxxxxxxxxxxx10 bgea+ 0x4
+{ "bgela + NUM",{0x40E00007,0x0000FFFC}}, // 0100000011100000xxxxxxxxxxxxxx11 bgela+ 0x4
+{ "ble +",{0x40E10000,0x00000000}}, // 01000000111000010000000000000000 ble+
+{ "blel +",{0x40E10001,0x00000000}}, // 01000000111000010000000000000001 blel+
+{ "blea +",{0x40E10002,0x00000000}}, // 01000000111000010000000000000010 blea+
+{ "blela +",{0x40E10003,0x00000000}}, // 01000000111000010000000000000011 blela+
+{ "ble + NUM",{0x40E10004,0x0000FFFC}}, // 0100000011100001xxxxxxxxxxxxxx00 ble+ 0x4
+{ "blel + NUM",{0x40E10005,0x0000FFFC}}, // 0100000011100001xxxxxxxxxxxxxx01 blel+ 0x4
+{ "blea + NUM",{0x40E10006,0x0000FFFC}}, // 0100000011100001xxxxxxxxxxxxxx10 blea+ 0x4
+{ "blela + NUM",{0x40E10007,0x0000FFFC}}, // 0100000011100001xxxxxxxxxxxxxx11 blela+ 0x4
+{ "bne +",{0x40E20000,0x00000000}}, // 01000000111000100000000000000000 bne+
+{ "bnel +",{0x40E20001,0x00000000}}, // 01000000111000100000000000000001 bnel+
+{ "bnea +",{0x40E20002,0x00000000}}, // 01000000111000100000000000000010 bnea+
+{ "bnela +",{0x40E20003,0x00000000}}, // 01000000111000100000000000000011 bnela+
+{ "bne + NUM",{0x40E20004,0x0000FFFC}}, // 0100000011100010xxxxxxxxxxxxxx00 bne+ 0x4
+{ "bnel + NUM",{0x40E20005,0x0000FFFC}}, // 0100000011100010xxxxxxxxxxxxxx01 bnel+ 0x4
+{ "bnea + NUM",{0x40E20006,0x0000FFFC}}, // 0100000011100010xxxxxxxxxxxxxx10 bnea+ 0x4
+{ "bnela + NUM",{0x40E20007,0x0000FFFC}}, // 0100000011100010xxxxxxxxxxxxxx11 bnela+ 0x4
+{ "bns +",{0x40E30000,0x00000000}}, // 01000000111000110000000000000000 bns+
+{ "bnsl +",{0x40E30001,0x00000000}}, // 01000000111000110000000000000001 bnsl+
+{ "bnsa +",{0x40E30002,0x00000000}}, // 01000000111000110000000000000010 bnsa+
+{ "bnsla +",{0x40E30003,0x00000000}}, // 01000000111000110000000000000011 bnsla+
+{ "bns + NUM",{0x40E30004,0x0000FFFC}}, // 0100000011100011xxxxxxxxxxxxxx00 bns+ 0x4
+{ "bnsl + NUM",{0x40E30005,0x0000FFFC}}, // 0100000011100011xxxxxxxxxxxxxx01 bnsl+ 0x4
+{ "bnsa + NUM",{0x40E30006,0x0000FFFC}}, // 0100000011100011xxxxxxxxxxxxxx10 bnsa+ 0x4
+{ "bnsla + NUM",{0x40E30007,0x0000FFFC}}, // 0100000011100011xxxxxxxxxxxxxx11 bnsla+ 0x4
+{ "bge + CREG",{0x40E40000,0x001C0000}}, // 01000000111xxx000000000000000000 bge+ cr1
+{ "bgel + CREG",{0x40E40001,0x001C0000}}, // 01000000111xxx000000000000000001 bgel+ cr1
+{ "bgea + CREG",{0x40E40002,0x001C0000}}, // 01000000111xxx000000000000000010 bgea+ cr1
+{ "bgela + CREG",{0x40E40003,0x001C0000}}, // 01000000111xxx000000000000000011 bgela+ cr1
+{ "bge + CREG , NUM",{0x40E40004,0x001CFFFC}}, // 01000000111xxx00xxxxxxxxxxxxxx00 bge+ cr1, 0x4
+{ "bgel + CREG , NUM",{0x40E40005,0x001CFFFC}}, // 01000000111xxx00xxxxxxxxxxxxxx01 bgel+ cr1, 0x4
+{ "bgea + CREG , NUM",{0x40E40006,0x001CFFFC}}, // 01000000111xxx00xxxxxxxxxxxxxx10 bgea+ cr1, 0x4
+{ "bgela + CREG , NUM",{0x40E40007,0x001CFFFC}}, // 01000000111xxx00xxxxxxxxxxxxxx11 bgela+ cr1, 0x4
+{ "ble + CREG",{0x40E50000,0x001C0000}}, // 01000000111xxx010000000000000000 ble+ cr1
+{ "blel + CREG",{0x40E50001,0x001C0000}}, // 01000000111xxx010000000000000001 blel+ cr1
+{ "blea + CREG",{0x40E50002,0x001C0000}}, // 01000000111xxx010000000000000010 blea+ cr1
+{ "blela + CREG",{0x40E50003,0x001C0000}}, // 01000000111xxx010000000000000011 blela+ cr1
+{ "ble + CREG , NUM",{0x40E50004,0x001CFFFC}}, // 01000000111xxx01xxxxxxxxxxxxxx00 ble+ cr1, 0x4
+{ "blel + CREG , NUM",{0x40E50005,0x001CFFFC}}, // 01000000111xxx01xxxxxxxxxxxxxx01 blel+ cr1, 0x4
+{ "blea + CREG , NUM",{0x40E50006,0x001CFFFC}}, // 01000000111xxx01xxxxxxxxxxxxxx10 blea+ cr1, 0x4
+{ "blela + CREG , NUM",{0x40E50007,0x001CFFFC}}, // 01000000111xxx01xxxxxxxxxxxxxx11 blela+ cr1, 0x4
+{ "bne + CREG",{0x40E60000,0x001C0000}}, // 01000000111xxx100000000000000000 bne+ cr1
+{ "bnel + CREG",{0x40E60001,0x001C0000}}, // 01000000111xxx100000000000000001 bnel+ cr1
+{ "bnea + CREG",{0x40E60002,0x001C0000}}, // 01000000111xxx100000000000000010 bnea+ cr1
+{ "bnela + CREG",{0x40E60003,0x001C0000}}, // 01000000111xxx100000000000000011 bnela+ cr1
+{ "bne + CREG , NUM",{0x40E60004,0x001CFFFC}}, // 01000000111xxx10xxxxxxxxxxxxxx00 bne+ cr1, 0x4
+{ "bnel + CREG , NUM",{0x40E60005,0x001CFFFC}}, // 01000000111xxx10xxxxxxxxxxxxxx01 bnel+ cr1, 0x4
+{ "bnea + CREG , NUM",{0x40E60006,0x001CFFFC}}, // 01000000111xxx10xxxxxxxxxxxxxx10 bnea+ cr1, 0x4
+{ "bnela + CREG , NUM",{0x40E60007,0x001CFFFC}}, // 01000000111xxx10xxxxxxxxxxxxxx11 bnela+ cr1, 0x4
+{ "bns + CREG",{0x40E70000,0x001C0000}}, // 01000000111xxx110000000000000000 bns+ cr1
+{ "bnsl + CREG",{0x40E70001,0x001C0000}}, // 01000000111xxx110000000000000001 bnsl+ cr1
+{ "bnsa + CREG",{0x40E70002,0x001C0000}}, // 01000000111xxx110000000000000010 bnsa+ cr1
+{ "bnsla + CREG",{0x40E70003,0x001C0000}}, // 01000000111xxx110000000000000011 bnsla+ cr1
+{ "bns + CREG , NUM",{0x40E70004,0x001CFFFC}}, // 01000000111xxx11xxxxxxxxxxxxxx00 bns+ cr1, 0x4
+{ "bnsl + CREG , NUM",{0x40E70005,0x001CFFFC}}, // 01000000111xxx11xxxxxxxxxxxxxx01 bnsl+ cr1, 0x4
+{ "bnsa + CREG , NUM",{0x40E70006,0x001CFFFC}}, // 01000000111xxx11xxxxxxxxxxxxxx10 bnsa+ cr1, 0x4
+{ "bnsla + CREG , NUM",{0x40E70007,0x001CFFFC}}, // 01000000111xxx11xxxxxxxxxxxxxx11 bnsla+ cr1, 0x4
+{ "bdnzt FLAG",{0x41000000,0x00230000}}, // 0100000100x000xx0000000000000000 bdnzt lt
+{ "bdnztl FLAG",{0x41000001,0x00230000}}, // 0100000100x000xx0000000000000001 bdnztl lt
+{ "bdnzta FLAG",{0x41000002,0x00230000}}, // 0100000100x000xx0000000000000010 bdnzta lt
+{ "bdnztla FLAG",{0x41000003,0x00230000}}, // 0100000100x000xx0000000000000011 bdnztla lt
+{ "bdnzt FLAG , NUM",{0x41000004,0x0023FFFC}}, // 0100000100x000xxxxxxxxxxxxxxxx00 bdnzt lt, 0x4
+{ "bdnztl FLAG , NUM",{0x41000005,0x0023FFFC}}, // 0100000100x000xxxxxxxxxxxxxxxx01 bdnztl lt, 0x4
+{ "bdnzta FLAG , NUM",{0x41000006,0x0023FFFC}}, // 0100000100x000xxxxxxxxxxxxxxxx10 bdnzta lt, 0x4
+{ "bdnztla FLAG , NUM",{0x41000007,0x0023FFFC}}, // 0100000100x000xxxxxxxxxxxxxxxx11 bdnztla lt, 0x4
+{ "bdnzt NUM * CREG + FLAG",{0x41040000,0x003F0000}}, // 0100000100xxxxxx0000000000000000 bdnzt 4*cr1+lt
+{ "bdnztl NUM * CREG + FLAG",{0x41040001,0x003F0000}}, // 0100000100xxxxxx0000000000000001 bdnztl 4*cr1+lt
+{ "bdnzta NUM * CREG + FLAG",{0x41040002,0x003F0000}}, // 0100000100xxxxxx0000000000000010 bdnzta 4*cr1+lt
+{ "bdnztla NUM * CREG + FLAG",{0x41040003,0x003F0000}}, // 0100000100xxxxxx0000000000000011 bdnztla 4*cr1+lt
+{ "bdnzt NUM * CREG + FLAG , NUM",{0x41040004,0x003FFFFC}}, // 0100000100xxxxxxxxxxxxxxxxxxxx00 bdnzt 4*cr1+lt, 0x4
+{ "bdnztl NUM * CREG + FLAG , NUM",{0x41040005,0x003FFFFC}}, // 0100000100xxxxxxxxxxxxxxxxxxxx01 bdnztl 4*cr1+lt, 0x4
+{ "bdnzta NUM * CREG + FLAG , NUM",{0x41040006,0x003FFFFC}}, // 0100000100xxxxxxxxxxxxxxxxxxxx10 bdnzta 4*cr1+lt, 0x4
+{ "bdnztla NUM * CREG + FLAG , NUM",{0x41040007,0x003FFFFC}}, // 0100000100xxxxxxxxxxxxxxxxxxxx11 bdnztla 4*cr1+lt, 0x4
+{ "bdzt FLAG",{0x41400000,0x00230000}}, // 0100000101x000xx0000000000000000 bdzt lt
+{ "bdztl FLAG",{0x41400001,0x00230000}}, // 0100000101x000xx0000000000000001 bdztl lt
+{ "bdzta FLAG",{0x41400002,0x00230000}}, // 0100000101x000xx0000000000000010 bdzta lt
+{ "bdztla FLAG",{0x41400003,0x00230000}}, // 0100000101x000xx0000000000000011 bdztla lt
+{ "bdzt FLAG , NUM",{0x41400004,0x0023FFFC}}, // 0100000101x000xxxxxxxxxxxxxxxx00 bdzt lt, 0x4
+{ "bdztl FLAG , NUM",{0x41400005,0x0023FFFC}}, // 0100000101x000xxxxxxxxxxxxxxxx01 bdztl lt, 0x4
+{ "bdzta FLAG , NUM",{0x41400006,0x0023FFFC}}, // 0100000101x000xxxxxxxxxxxxxxxx10 bdzta lt, 0x4
+{ "bdztla FLAG , NUM",{0x41400007,0x0023FFFC}}, // 0100000101x000xxxxxxxxxxxxxxxx11 bdztla lt, 0x4
+{ "bdzt NUM * CREG + FLAG",{0x41440000,0x003F0000}}, // 0100000101xxxxxx0000000000000000 bdzt 4*cr1+lt
+{ "bdztl NUM * CREG + FLAG",{0x41440001,0x003F0000}}, // 0100000101xxxxxx0000000000000001 bdztl 4*cr1+lt
+{ "bdzta NUM * CREG + FLAG",{0x41440002,0x003F0000}}, // 0100000101xxxxxx0000000000000010 bdzta 4*cr1+lt
+{ "bdztla NUM * CREG + FLAG",{0x41440003,0x003F0000}}, // 0100000101xxxxxx0000000000000011 bdztla 4*cr1+lt
+{ "bdzt NUM * CREG + FLAG , NUM",{0x41440004,0x003FFFFC}}, // 0100000101xxxxxxxxxxxxxxxxxxxx00 bdzt 4*cr1+lt, 0x4
+{ "bdztl NUM * CREG + FLAG , NUM",{0x41440005,0x003FFFFC}}, // 0100000101xxxxxxxxxxxxxxxxxxxx01 bdztl 4*cr1+lt, 0x4
+{ "bdzta NUM * CREG + FLAG , NUM",{0x41440006,0x003FFFFC}}, // 0100000101xxxxxxxxxxxxxxxxxxxx10 bdzta 4*cr1+lt, 0x4
+{ "bdztla NUM * CREG + FLAG , NUM",{0x41440007,0x003FFFFC}}, // 0100000101xxxxxxxxxxxxxxxxxxxx11 bdztla 4*cr1+lt, 0x4
+{ "blt",{0x41800000,0x00200000}}, // 0100000110x000000000000000000000 blt
+{ "bltl",{0x41800001,0x00200000}}, // 0100000110x000000000000000000001 bltl
+{ "blta",{0x41800002,0x00200000}}, // 0100000110x000000000000000000010 blta
+{ "bltla",{0x41800003,0x00200000}}, // 0100000110x000000000000000000011 bltla
+{ "blt NUM",{0x41800004,0x0020FFFC}}, // 0100000110x00000xxxxxxxxxxxxxx00 blt 0x4
+{ "bltl NUM",{0x41800005,0x0020FFFC}}, // 0100000110x00000xxxxxxxxxxxxxx01 bltl 0x4
+{ "blta NUM",{0x41800006,0x0020FFFC}}, // 0100000110x00000xxxxxxxxxxxxxx10 blta 0x4
+{ "bltla NUM",{0x41800007,0x0020FFFC}}, // 0100000110x00000xxxxxxxxxxxxxx11 bltla 0x4
+{ "bgt",{0x41810000,0x00200000}}, // 0100000110x000010000000000000000 bgt
+{ "bgtl",{0x41810001,0x00200000}}, // 0100000110x000010000000000000001 bgtl
+{ "bgta",{0x41810002,0x00200000}}, // 0100000110x000010000000000000010 bgta
+{ "bgtla",{0x41810003,0x00200000}}, // 0100000110x000010000000000000011 bgtla
+{ "bgt NUM",{0x41810004,0x0020FFFC}}, // 0100000110x00001xxxxxxxxxxxxxx00 bgt 0x4
+{ "bgtl NUM",{0x41810005,0x0020FFFC}}, // 0100000110x00001xxxxxxxxxxxxxx01 bgtl 0x4
+{ "bgta NUM",{0x41810006,0x0020FFFC}}, // 0100000110x00001xxxxxxxxxxxxxx10 bgta 0x4
+{ "bgtla NUM",{0x41810007,0x0020FFFC}}, // 0100000110x00001xxxxxxxxxxxxxx11 bgtla 0x4
+{ "beq",{0x41820000,0x00200000}}, // 0100000110x000100000000000000000 beq
+{ "beql",{0x41820001,0x00200000}}, // 0100000110x000100000000000000001 beql
+{ "beqa",{0x41820002,0x00200000}}, // 0100000110x000100000000000000010 beqa
+{ "beqla",{0x41820003,0x00200000}}, // 0100000110x000100000000000000011 beqla
+{ "beq NUM",{0x41820004,0x0020FFFC}}, // 0100000110x00010xxxxxxxxxxxxxx00 beq 0x4
+{ "beql NUM",{0x41820005,0x0020FFFC}}, // 0100000110x00010xxxxxxxxxxxxxx01 beql 0x4
+{ "beqa NUM",{0x41820006,0x0020FFFC}}, // 0100000110x00010xxxxxxxxxxxxxx10 beqa 0x4
+{ "beqla NUM",{0x41820007,0x0020FFFC}}, // 0100000110x00010xxxxxxxxxxxxxx11 beqla 0x4
+{ "bso",{0x41830000,0x00200000}}, // 0100000110x000110000000000000000 bso
+{ "bsol",{0x41830001,0x00200000}}, // 0100000110x000110000000000000001 bsol
+{ "bsoa",{0x41830002,0x00200000}}, // 0100000110x000110000000000000010 bsoa
+{ "bsola",{0x41830003,0x00200000}}, // 0100000110x000110000000000000011 bsola
+{ "bso NUM",{0x41830004,0x0020FFFC}}, // 0100000110x00011xxxxxxxxxxxxxx00 bso 0x4
+{ "bsol NUM",{0x41830005,0x0020FFFC}}, // 0100000110x00011xxxxxxxxxxxxxx01 bsol 0x4
+{ "bsoa NUM",{0x41830006,0x0020FFFC}}, // 0100000110x00011xxxxxxxxxxxxxx10 bsoa 0x4
+{ "bsola NUM",{0x41830007,0x0020FFFC}}, // 0100000110x00011xxxxxxxxxxxxxx11 bsola 0x4
+{ "blt CREG",{0x41840000,0x003C0000}}, // 0100000110xxxx000000000000000000 blt cr1
+{ "bltl CREG",{0x41840001,0x003C0000}}, // 0100000110xxxx000000000000000001 bltl cr1
+{ "blta CREG",{0x41840002,0x003C0000}}, // 0100000110xxxx000000000000000010 blta cr1
+{ "bltla CREG",{0x41840003,0x003C0000}}, // 0100000110xxxx000000000000000011 bltla cr1
+{ "blt CREG , NUM",{0x41840004,0x003CFFFC}}, // 0100000110xxxx00xxxxxxxxxxxxxx00 blt cr1, 0x4
+{ "bltl CREG , NUM",{0x41840005,0x003CFFFC}}, // 0100000110xxxx00xxxxxxxxxxxxxx01 bltl cr1, 0x4
+{ "blta CREG , NUM",{0x41840006,0x003CFFFC}}, // 0100000110xxxx00xxxxxxxxxxxxxx10 blta cr1, 0x4
+{ "bltla CREG , NUM",{0x41840007,0x003CFFFC}}, // 0100000110xxxx00xxxxxxxxxxxxxx11 bltla cr1, 0x4
+{ "bgt CREG",{0x41850000,0x003C0000}}, // 0100000110xxxx010000000000000000 bgt cr1
+{ "bgtl CREG",{0x41850001,0x003C0000}}, // 0100000110xxxx010000000000000001 bgtl cr1
+{ "bgta CREG",{0x41850002,0x003C0000}}, // 0100000110xxxx010000000000000010 bgta cr1
+{ "bgtla CREG",{0x41850003,0x003C0000}}, // 0100000110xxxx010000000000000011 bgtla cr1
+{ "bgt CREG , NUM",{0x41850004,0x003CFFFC}}, // 0100000110xxxx01xxxxxxxxxxxxxx00 bgt cr1, 0x4
+{ "bgtl CREG , NUM",{0x41850005,0x003CFFFC}}, // 0100000110xxxx01xxxxxxxxxxxxxx01 bgtl cr1, 0x4
+{ "bgta CREG , NUM",{0x41850006,0x003CFFFC}}, // 0100000110xxxx01xxxxxxxxxxxxxx10 bgta cr1, 0x4
+{ "bgtla CREG , NUM",{0x41850007,0x003CFFFC}}, // 0100000110xxxx01xxxxxxxxxxxxxx11 bgtla cr1, 0x4
+{ "beq CREG",{0x41860000,0x003C0000}}, // 0100000110xxxx100000000000000000 beq cr1
+{ "beql CREG",{0x41860001,0x003C0000}}, // 0100000110xxxx100000000000000001 beql cr1
+{ "beqa CREG",{0x41860002,0x003C0000}}, // 0100000110xxxx100000000000000010 beqa cr1
+{ "beqla CREG",{0x41860003,0x003C0000}}, // 0100000110xxxx100000000000000011 beqla cr1
+{ "beq CREG , NUM",{0x41860004,0x003CFFFC}}, // 0100000110xxxx10xxxxxxxxxxxxxx00 beq cr1, 0x4
+{ "beql CREG , NUM",{0x41860005,0x003CFFFC}}, // 0100000110xxxx10xxxxxxxxxxxxxx01 beql cr1, 0x4
+{ "beqa CREG , NUM",{0x41860006,0x003CFFFC}}, // 0100000110xxxx10xxxxxxxxxxxxxx10 beqa cr1, 0x4
+{ "beqla CREG , NUM",{0x41860007,0x003CFFFC}}, // 0100000110xxxx10xxxxxxxxxxxxxx11 beqla cr1, 0x4
+{ "bso CREG",{0x41870000,0x003C0000}}, // 0100000110xxxx110000000000000000 bso cr1
+{ "bsol CREG",{0x41870001,0x003C0000}}, // 0100000110xxxx110000000000000001 bsol cr1
+{ "bsoa CREG",{0x41870002,0x003C0000}}, // 0100000110xxxx110000000000000010 bsoa cr1
+{ "bsola CREG",{0x41870003,0x003C0000}}, // 0100000110xxxx110000000000000011 bsola cr1
+{ "bso CREG , NUM",{0x41870004,0x003CFFFC}}, // 0100000110xxxx11xxxxxxxxxxxxxx00 bso cr1, 0x4
+{ "bsol CREG , NUM",{0x41870005,0x003CFFFC}}, // 0100000110xxxx11xxxxxxxxxxxxxx01 bsol cr1, 0x4
+{ "bsoa CREG , NUM",{0x41870006,0x003CFFFC}}, // 0100000110xxxx11xxxxxxxxxxxxxx10 bsoa cr1, 0x4
+{ "bsola CREG , NUM",{0x41870007,0x003CFFFC}}, // 0100000110xxxx11xxxxxxxxxxxxxx11 bsola cr1, 0x4
+{ "blt -",{0x41C00000,0x00000000}}, // 01000001110000000000000000000000 blt-
+{ "bltl -",{0x41C00001,0x00000000}}, // 01000001110000000000000000000001 bltl-
+{ "blta -",{0x41C00002,0x00000000}}, // 01000001110000000000000000000010 blta-
+{ "bltla -",{0x41C00003,0x00000000}}, // 01000001110000000000000000000011 bltla-
+{ "blt - NUM",{0x41C00004,0x0000FFFC}}, // 0100000111000000xxxxxxxxxxxxxx00 blt- 0x4
+{ "bltl - NUM",{0x41C00005,0x0000FFFC}}, // 0100000111000000xxxxxxxxxxxxxx01 bltl- 0x4
+{ "blta - NUM",{0x41C00006,0x0000FFFC}}, // 0100000111000000xxxxxxxxxxxxxx10 blta- 0x4
+{ "bltla - NUM",{0x41C00007,0x0000FFFC}}, // 0100000111000000xxxxxxxxxxxxxx11 bltla- 0x4
+{ "bgt -",{0x41C10000,0x00000000}}, // 01000001110000010000000000000000 bgt-
+{ "bgtl -",{0x41C10001,0x00000000}}, // 01000001110000010000000000000001 bgtl-
+{ "bgta -",{0x41C10002,0x00000000}}, // 01000001110000010000000000000010 bgta-
+{ "bgtla -",{0x41C10003,0x00000000}}, // 01000001110000010000000000000011 bgtla-
+{ "bgt - NUM",{0x41C10004,0x0000FFFC}}, // 0100000111000001xxxxxxxxxxxxxx00 bgt- 0x4
+{ "bgtl - NUM",{0x41C10005,0x0000FFFC}}, // 0100000111000001xxxxxxxxxxxxxx01 bgtl- 0x4
+{ "bgta - NUM",{0x41C10006,0x0000FFFC}}, // 0100000111000001xxxxxxxxxxxxxx10 bgta- 0x4
+{ "bgtla - NUM",{0x41C10007,0x0000FFFC}}, // 0100000111000001xxxxxxxxxxxxxx11 bgtla- 0x4
+{ "beq -",{0x41C20000,0x00000000}}, // 01000001110000100000000000000000 beq-
+{ "beql -",{0x41C20001,0x00000000}}, // 01000001110000100000000000000001 beql-
+{ "beqa -",{0x41C20002,0x00000000}}, // 01000001110000100000000000000010 beqa-
+{ "beqla -",{0x41C20003,0x00000000}}, // 01000001110000100000000000000011 beqla-
+{ "beq - NUM",{0x41C20004,0x0000FFFC}}, // 0100000111000010xxxxxxxxxxxxxx00 beq- 0x4
+{ "beql - NUM",{0x41C20005,0x0000FFFC}}, // 0100000111000010xxxxxxxxxxxxxx01 beql- 0x4
+{ "beqa - NUM",{0x41C20006,0x0000FFFC}}, // 0100000111000010xxxxxxxxxxxxxx10 beqa- 0x4
+{ "beqla - NUM",{0x41C20007,0x0000FFFC}}, // 0100000111000010xxxxxxxxxxxxxx11 beqla- 0x4
+{ "bso -",{0x41C30000,0x00000000}}, // 01000001110000110000000000000000 bso-
+{ "bsol -",{0x41C30001,0x00000000}}, // 01000001110000110000000000000001 bsol-
+{ "bsoa -",{0x41C30002,0x00000000}}, // 01000001110000110000000000000010 bsoa-
+{ "bsola -",{0x41C30003,0x00000000}}, // 01000001110000110000000000000011 bsola-
+{ "bso - NUM",{0x41C30004,0x0000FFFC}}, // 0100000111000011xxxxxxxxxxxxxx00 bso- 0x4
+{ "bsol - NUM",{0x41C30005,0x0000FFFC}}, // 0100000111000011xxxxxxxxxxxxxx01 bsol- 0x4
+{ "bsoa - NUM",{0x41C30006,0x0000FFFC}}, // 0100000111000011xxxxxxxxxxxxxx10 bsoa- 0x4
+{ "bsola - NUM",{0x41C30007,0x0000FFFC}}, // 0100000111000011xxxxxxxxxxxxxx11 bsola- 0x4
+{ "blt - CREG",{0x41C40000,0x001C0000}}, // 01000001110xxx000000000000000000 blt- cr1
+{ "bltl - CREG",{0x41C40001,0x001C0000}}, // 01000001110xxx000000000000000001 bltl- cr1
+{ "blta - CREG",{0x41C40002,0x001C0000}}, // 01000001110xxx000000000000000010 blta- cr1
+{ "bltla - CREG",{0x41C40003,0x001C0000}}, // 01000001110xxx000000000000000011 bltla- cr1
+{ "blt - CREG , NUM",{0x41C40004,0x001CFFFC}}, // 01000001110xxx00xxxxxxxxxxxxxx00 blt- cr1, 0x4
+{ "bltl - CREG , NUM",{0x41C40005,0x001CFFFC}}, // 01000001110xxx00xxxxxxxxxxxxxx01 bltl- cr1, 0x4
+{ "blta - CREG , NUM",{0x41C40006,0x001CFFFC}}, // 01000001110xxx00xxxxxxxxxxxxxx10 blta- cr1, 0x4
+{ "bltla - CREG , NUM",{0x41C40007,0x001CFFFC}}, // 01000001110xxx00xxxxxxxxxxxxxx11 bltla- cr1, 0x4
+{ "bgt - CREG",{0x41C50000,0x001C0000}}, // 01000001110xxx010000000000000000 bgt- cr1
+{ "bgtl - CREG",{0x41C50001,0x001C0000}}, // 01000001110xxx010000000000000001 bgtl- cr1
+{ "bgta - CREG",{0x41C50002,0x001C0000}}, // 01000001110xxx010000000000000010 bgta- cr1
+{ "bgtla - CREG",{0x41C50003,0x001C0000}}, // 01000001110xxx010000000000000011 bgtla- cr1
+{ "bgt - CREG , NUM",{0x41C50004,0x001CFFFC}}, // 01000001110xxx01xxxxxxxxxxxxxx00 bgt- cr1, 0x4
+{ "bgtl - CREG , NUM",{0x41C50005,0x001CFFFC}}, // 01000001110xxx01xxxxxxxxxxxxxx01 bgtl- cr1, 0x4
+{ "bgta - CREG , NUM",{0x41C50006,0x001CFFFC}}, // 01000001110xxx01xxxxxxxxxxxxxx10 bgta- cr1, 0x4
+{ "bgtla - CREG , NUM",{0x41C50007,0x001CFFFC}}, // 01000001110xxx01xxxxxxxxxxxxxx11 bgtla- cr1, 0x4
+{ "beq - CREG",{0x41C60000,0x001C0000}}, // 01000001110xxx100000000000000000 beq- cr1
+{ "beql - CREG",{0x41C60001,0x001C0000}}, // 01000001110xxx100000000000000001 beql- cr1
+{ "beqa - CREG",{0x41C60002,0x001C0000}}, // 01000001110xxx100000000000000010 beqa- cr1
+{ "beqla - CREG",{0x41C60003,0x001C0000}}, // 01000001110xxx100000000000000011 beqla- cr1
+{ "beq - CREG , NUM",{0x41C60004,0x001CFFFC}}, // 01000001110xxx10xxxxxxxxxxxxxx00 beq- cr1, 0x4
+{ "beql - CREG , NUM",{0x41C60005,0x001CFFFC}}, // 01000001110xxx10xxxxxxxxxxxxxx01 beql- cr1, 0x4
+{ "beqa - CREG , NUM",{0x41C60006,0x001CFFFC}}, // 01000001110xxx10xxxxxxxxxxxxxx10 beqa- cr1, 0x4
+{ "beqla - CREG , NUM",{0x41C60007,0x001CFFFC}}, // 01000001110xxx10xxxxxxxxxxxxxx11 beqla- cr1, 0x4
+{ "bso - CREG",{0x41C70000,0x001C0000}}, // 01000001110xxx110000000000000000 bso- cr1
+{ "bsol - CREG",{0x41C70001,0x001C0000}}, // 01000001110xxx110000000000000001 bsol- cr1
+{ "bsoa - CREG",{0x41C70002,0x001C0000}}, // 01000001110xxx110000000000000010 bsoa- cr1
+{ "bsola - CREG",{0x41C70003,0x001C0000}}, // 01000001110xxx110000000000000011 bsola- cr1
+{ "bso - CREG , NUM",{0x41C70004,0x001CFFFC}}, // 01000001110xxx11xxxxxxxxxxxxxx00 bso- cr1, 0x4
+{ "bsol - CREG , NUM",{0x41C70005,0x001CFFFC}}, // 01000001110xxx11xxxxxxxxxxxxxx01 bsol- cr1, 0x4
+{ "bsoa - CREG , NUM",{0x41C70006,0x001CFFFC}}, // 01000001110xxx11xxxxxxxxxxxxxx10 bsoa- cr1, 0x4
+{ "bsola - CREG , NUM",{0x41C70007,0x001CFFFC}}, // 01000001110xxx11xxxxxxxxxxxxxx11 bsola- cr1, 0x4
+{ "blt +",{0x41E00000,0x00000000}}, // 01000001111000000000000000000000 blt+
+{ "bltl +",{0x41E00001,0x00000000}}, // 01000001111000000000000000000001 bltl+
+{ "blta +",{0x41E00002,0x00000000}}, // 01000001111000000000000000000010 blta+
+{ "bltla +",{0x41E00003,0x00000000}}, // 01000001111000000000000000000011 bltla+
+{ "blt + NUM",{0x41E00004,0x0000FFFC}}, // 0100000111100000xxxxxxxxxxxxxx00 blt+ 0x4
+{ "bltl + NUM",{0x41E00005,0x0000FFFC}}, // 0100000111100000xxxxxxxxxxxxxx01 bltl+ 0x4
+{ "blta + NUM",{0x41E00006,0x0000FFFC}}, // 0100000111100000xxxxxxxxxxxxxx10 blta+ 0x4
+{ "bltla + NUM",{0x41E00007,0x0000FFFC}}, // 0100000111100000xxxxxxxxxxxxxx11 bltla+ 0x4
+{ "bgt +",{0x41E10000,0x00000000}}, // 01000001111000010000000000000000 bgt+
+{ "bgtl +",{0x41E10001,0x00000000}}, // 01000001111000010000000000000001 bgtl+
+{ "bgta +",{0x41E10002,0x00000000}}, // 01000001111000010000000000000010 bgta+
+{ "bgtla +",{0x41E10003,0x00000000}}, // 01000001111000010000000000000011 bgtla+
+{ "bgt + NUM",{0x41E10004,0x0000FFFC}}, // 0100000111100001xxxxxxxxxxxxxx00 bgt+ 0x4
+{ "bgtl + NUM",{0x41E10005,0x0000FFFC}}, // 0100000111100001xxxxxxxxxxxxxx01 bgtl+ 0x4
+{ "bgta + NUM",{0x41E10006,0x0000FFFC}}, // 0100000111100001xxxxxxxxxxxxxx10 bgta+ 0x4
+{ "bgtla + NUM",{0x41E10007,0x0000FFFC}}, // 0100000111100001xxxxxxxxxxxxxx11 bgtla+ 0x4
+{ "beq +",{0x41E20000,0x00000000}}, // 01000001111000100000000000000000 beq+
+{ "beql +",{0x41E20001,0x00000000}}, // 01000001111000100000000000000001 beql+
+{ "beqa +",{0x41E20002,0x00000000}}, // 01000001111000100000000000000010 beqa+
+{ "beqla +",{0x41E20003,0x00000000}}, // 01000001111000100000000000000011 beqla+
+{ "beq + NUM",{0x41E20004,0x0000FFFC}}, // 0100000111100010xxxxxxxxxxxxxx00 beq+ 0x4
+{ "beql + NUM",{0x41E20005,0x0000FFFC}}, // 0100000111100010xxxxxxxxxxxxxx01 beql+ 0x4
+{ "beqa + NUM",{0x41E20006,0x0000FFFC}}, // 0100000111100010xxxxxxxxxxxxxx10 beqa+ 0x4
+{ "beqla + NUM",{0x41E20007,0x0000FFFC}}, // 0100000111100010xxxxxxxxxxxxxx11 beqla+ 0x4
+{ "bso +",{0x41E30000,0x00000000}}, // 01000001111000110000000000000000 bso+
+{ "bsol +",{0x41E30001,0x00000000}}, // 01000001111000110000000000000001 bsol+
+{ "bsoa +",{0x41E30002,0x00000000}}, // 01000001111000110000000000000010 bsoa+
+{ "bsola +",{0x41E30003,0x00000000}}, // 01000001111000110000000000000011 bsola+
+{ "bso + NUM",{0x41E30004,0x0000FFFC}}, // 0100000111100011xxxxxxxxxxxxxx00 bso+ 0x4
+{ "bsol + NUM",{0x41E30005,0x0000FFFC}}, // 0100000111100011xxxxxxxxxxxxxx01 bsol+ 0x4
+{ "bsoa + NUM",{0x41E30006,0x0000FFFC}}, // 0100000111100011xxxxxxxxxxxxxx10 bsoa+ 0x4
+{ "bsola + NUM",{0x41E30007,0x0000FFFC}}, // 0100000111100011xxxxxxxxxxxxxx11 bsola+ 0x4
+{ "blt + CREG",{0x41E40000,0x001C0000}}, // 01000001111xxx000000000000000000 blt+ cr1
+{ "bltl + CREG",{0x41E40001,0x001C0000}}, // 01000001111xxx000000000000000001 bltl+ cr1
+{ "blta + CREG",{0x41E40002,0x001C0000}}, // 01000001111xxx000000000000000010 blta+ cr1
+{ "bltla + CREG",{0x41E40003,0x001C0000}}, // 01000001111xxx000000000000000011 bltla+ cr1
+{ "blt + CREG , NUM",{0x41E40004,0x001CFFFC}}, // 01000001111xxx00xxxxxxxxxxxxxx00 blt+ cr1, 0x4
+{ "bltl + CREG , NUM",{0x41E40005,0x001CFFFC}}, // 01000001111xxx00xxxxxxxxxxxxxx01 bltl+ cr1, 0x4
+{ "blta + CREG , NUM",{0x41E40006,0x001CFFFC}}, // 01000001111xxx00xxxxxxxxxxxxxx10 blta+ cr1, 0x4
+{ "bltla + CREG , NUM",{0x41E40007,0x001CFFFC}}, // 01000001111xxx00xxxxxxxxxxxxxx11 bltla+ cr1, 0x4
+{ "bgt + CREG",{0x41E50000,0x001C0000}}, // 01000001111xxx010000000000000000 bgt+ cr1
+{ "bgtl + CREG",{0x41E50001,0x001C0000}}, // 01000001111xxx010000000000000001 bgtl+ cr1
+{ "bgta + CREG",{0x41E50002,0x001C0000}}, // 01000001111xxx010000000000000010 bgta+ cr1
+{ "bgtla + CREG",{0x41E50003,0x001C0000}}, // 01000001111xxx010000000000000011 bgtla+ cr1
+{ "bgt + CREG , NUM",{0x41E50004,0x001CFFFC}}, // 01000001111xxx01xxxxxxxxxxxxxx00 bgt+ cr1, 0x4
+{ "bgtl + CREG , NUM",{0x41E50005,0x001CFFFC}}, // 01000001111xxx01xxxxxxxxxxxxxx01 bgtl+ cr1, 0x4
+{ "bgta + CREG , NUM",{0x41E50006,0x001CFFFC}}, // 01000001111xxx01xxxxxxxxxxxxxx10 bgta+ cr1, 0x4
+{ "bgtla + CREG , NUM",{0x41E50007,0x001CFFFC}}, // 01000001111xxx01xxxxxxxxxxxxxx11 bgtla+ cr1, 0x4
+{ "beq + CREG",{0x41E60000,0x001C0000}}, // 01000001111xxx100000000000000000 beq+ cr1
+{ "beql + CREG",{0x41E60001,0x001C0000}}, // 01000001111xxx100000000000000001 beql+ cr1
+{ "beqa + CREG",{0x41E60002,0x001C0000}}, // 01000001111xxx100000000000000010 beqa+ cr1
+{ "beqla + CREG",{0x41E60003,0x001C0000}}, // 01000001111xxx100000000000000011 beqla+ cr1
+{ "beq + CREG , NUM",{0x41E60004,0x001CFFFC}}, // 01000001111xxx10xxxxxxxxxxxxxx00 beq+ cr1, 0x4
+{ "beql + CREG , NUM",{0x41E60005,0x001CFFFC}}, // 01000001111xxx10xxxxxxxxxxxxxx01 beql+ cr1, 0x4
+{ "beqa + CREG , NUM",{0x41E60006,0x001CFFFC}}, // 01000001111xxx10xxxxxxxxxxxxxx10 beqa+ cr1, 0x4
+{ "beqla + CREG , NUM",{0x41E60007,0x001CFFFC}}, // 01000001111xxx10xxxxxxxxxxxxxx11 beqla+ cr1, 0x4
+{ "bso + CREG",{0x41E70000,0x001C0000}}, // 01000001111xxx110000000000000000 bso+ cr1
+{ "bsol + CREG",{0x41E70001,0x001C0000}}, // 01000001111xxx110000000000000001 bsol+ cr1
+{ "bsoa + CREG",{0x41E70002,0x001C0000}}, // 01000001111xxx110000000000000010 bsoa+ cr1
+{ "bsola + CREG",{0x41E70003,0x001C0000}}, // 01000001111xxx110000000000000011 bsola+ cr1
+{ "bso + CREG , NUM",{0x41E70004,0x001CFFFC}}, // 01000001111xxx11xxxxxxxxxxxxxx00 bso+ cr1, 0x4
+{ "bsol + CREG , NUM",{0x41E70005,0x001CFFFC}}, // 01000001111xxx11xxxxxxxxxxxxxx01 bsol+ cr1, 0x4
+{ "bsoa + CREG , NUM",{0x41E70006,0x001CFFFC}}, // 01000001111xxx11xxxxxxxxxxxxxx10 bsoa+ cr1, 0x4
+{ "bsola + CREG , NUM",{0x41E70007,0x001CFFFC}}, // 01000001111xxx11xxxxxxxxxxxxxx11 bsola+ cr1, 0x4
+{ "bdnz NUM",{0x42000000,0x01BFFFFC}}, // 0100001xx0xxxxxxxxxxxxxxxxxxxx00 bdnz 0x0
+{ "bdnzl NUM",{0x42000001,0x01BFFFFC}}, // 0100001xx0xxxxxxxxxxxxxxxxxxxx01 bdnzl 0x0
+{ "bdnza NUM",{0x42000002,0x01BFFFFC}}, // 0100001xx0xxxxxxxxxxxxxxxxxxxx10 bdnza 0x0
+{ "bdnzla NUM",{0x42000003,0x01BFFFFC}}, // 0100001xx0xxxxxxxxxxxxxxxxxxxx11 bdnzla 0x0
+{ "bdnz",{0x42010000,0x01BF0000}}, // 0100001xx0xxxxxx0000000000000000 bdnz
+{ "bdnzl",{0x42010001,0x01BF0000}}, // 0100001xx0xxxxxx0000000000000001 bdnzl
+{ "bdnza",{0x42010002,0x01BF0000}}, // 0100001xx0xxxxxx0000000000000010 bdnza
+{ "bdnzla",{0x42010003,0x01BF0000}}, // 0100001xx0xxxxxx0000000000000011 bdnzla
+{ "bdz NUM",{0x42400000,0x01BFFFFC}}, // 0100001xx1xxxxxxxxxxxxxxxxxxxx00 bdz 0x0
+{ "bdzl NUM",{0x42400001,0x01BFFFFC}}, // 0100001xx1xxxxxxxxxxxxxxxxxxxx01 bdzl 0x0
+{ "bdza NUM",{0x42400002,0x01BFFFFC}}, // 0100001xx1xxxxxxxxxxxxxxxxxxxx10 bdza 0x0
+{ "bdzla NUM",{0x42400003,0x01BFFFFC}}, // 0100001xx1xxxxxxxxxxxxxxxxxxxx11 bdzla 0x0
+{ "bdz",{0x42410000,0x01BF0000}}, // 0100001xx1xxxxxx0000000000000000 bdz
+{ "bdzl",{0x42410001,0x01BF0000}}, // 0100001xx1xxxxxx0000000000000001 bdzl
+{ "bdza",{0x42410002,0x01BF0000}}, // 0100001xx1xxxxxx0000000000000010 bdza
+{ "bdzla",{0x42410003,0x01BF0000}}, // 0100001xx1xxxxxx0000000000000011 bdzla
+{ "bdnz - NUM",{0x43000000,0x001FFFFC}}, // 01000011000xxxxxxxxxxxxxxxxxxx00 bdnz- 0x0
+{ "bdnzl - NUM",{0x43000001,0x001FFFFC}}, // 01000011000xxxxxxxxxxxxxxxxxxx01 bdnzl- 0x0
+{ "bdnza - NUM",{0x43000002,0x001FFFFC}}, // 01000011000xxxxxxxxxxxxxxxxxxx10 bdnza- 0x0
+{ "bdnzla - NUM",{0x43000003,0x001FFFFC}}, // 01000011000xxxxxxxxxxxxxxxxxxx11 bdnzla- 0x0
+{ "bdnz -",{0x43010000,0x001F0000}}, // 01000011000xxxxx0000000000000000 bdnz-
+{ "bdnzl -",{0x43010001,0x001F0000}}, // 01000011000xxxxx0000000000000001 bdnzl-
+{ "bdnza -",{0x43010002,0x001F0000}}, // 01000011000xxxxx0000000000000010 bdnza-
+{ "bdnzla -",{0x43010003,0x001F0000}}, // 01000011000xxxxx0000000000000011 bdnzla-
+{ "bdnz + NUM",{0x43200000,0x001FFFFC}}, // 01000011001xxxxxxxxxxxxxxxxxxx00 bdnz+ 0x0
+{ "bdnzl + NUM",{0x43200001,0x001FFFFC}}, // 01000011001xxxxxxxxxxxxxxxxxxx01 bdnzl+ 0x0
+{ "bdnza + NUM",{0x43200002,0x001FFFFC}}, // 01000011001xxxxxxxxxxxxxxxxxxx10 bdnza+ 0x0
+{ "bdnzla + NUM",{0x43200003,0x001FFFFC}}, // 01000011001xxxxxxxxxxxxxxxxxxx11 bdnzla+ 0x0
+{ "bdnz +",{0x43210000,0x001F0000}}, // 01000011001xxxxx0000000000000000 bdnz+
+{ "bdnzl +",{0x43210001,0x001F0000}}, // 01000011001xxxxx0000000000000001 bdnzl+
+{ "bdnza +",{0x43210002,0x001F0000}}, // 01000011001xxxxx0000000000000010 bdnza+
+{ "bdnzla +",{0x43210003,0x001F0000}}, // 01000011001xxxxx0000000000000011 bdnzla+
+{ "bdz - NUM",{0x43400000,0x001FFFFC}}, // 01000011010xxxxxxxxxxxxxxxxxxx00 bdz- 0x0
+{ "bdzl - NUM",{0x43400001,0x001FFFFC}}, // 01000011010xxxxxxxxxxxxxxxxxxx01 bdzl- 0x0
+{ "bdza - NUM",{0x43400002,0x001FFFFC}}, // 01000011010xxxxxxxxxxxxxxxxxxx10 bdza- 0x0
+{ "bdzla - NUM",{0x43400003,0x001FFFFC}}, // 01000011010xxxxxxxxxxxxxxxxxxx11 bdzla- 0x0
+{ "bdz -",{0x43410000,0x001F0000}}, // 01000011010xxxxx0000000000000000 bdz-
+{ "bdzl -",{0x43410001,0x001F0000}}, // 01000011010xxxxx0000000000000001 bdzl-
+{ "bdza -",{0x43410002,0x001F0000}}, // 01000011010xxxxx0000000000000010 bdza-
+{ "bdzla -",{0x43410003,0x001F0000}}, // 01000011010xxxxx0000000000000011 bdzla-
+{ "bdz + NUM",{0x43600000,0x001FFFFC}}, // 01000011011xxxxxxxxxxxxxxxxxxx00 bdz+ 0x0
+{ "bdzl + NUM",{0x43600001,0x001FFFFC}}, // 01000011011xxxxxxxxxxxxxxxxxxx01 bdzl+ 0x0
+{ "bdza + NUM",{0x43600002,0x001FFFFC}}, // 01000011011xxxxxxxxxxxxxxxxxxx10 bdza+ 0x0
+{ "bdzla + NUM",{0x43600003,0x001FFFFC}}, // 01000011011xxxxxxxxxxxxxxxxxxx11 bdzla+ 0x0
+{ "bdz +",{0x43610000,0x001F0000}}, // 01000011011xxxxx0000000000000000 bdz+
+{ "bdzl +",{0x43610001,0x001F0000}}, // 01000011011xxxxx0000000000000001 bdzl+
+{ "bdza +",{0x43610002,0x001F0000}}, // 01000011011xxxxx0000000000000010 bdza+
+{ "bdzla +",{0x43610003,0x001F0000}}, // 01000011011xxxxx0000000000000011 bdzla+
+{ "sc",{0x44000002,0x03FFF01D}}, // 010001xxxxxxxxxxxxxx0000000xxx1x sc
+{ "sc NUM",{0x44000022,0x03FFFFFD}}, // 010001xxxxxxxxxxxxxxxxxxxxxxxx1x sc 1
+{ "b NUM",{0x48000000,0x03FFFFFC}}, // 010010xxxxxxxxxxxxxxxxxxxxxxxx00 b 0x0
+{ "bl NUM",{0x48000001,0x03FFFFFC}}, // 010010xxxxxxxxxxxxxxxxxxxxxxxx01 bl 0x0
+{ "ba NUM",{0x48000002,0x03FFFFFC}}, // 010010xxxxxxxxxxxxxxxxxxxxxxxx10 ba 0x0
+{ "bla NUM",{0x48000003,0x03FFFFFC}}, // 010010xxxxxxxxxxxxxxxxxxxxxxxx11 bla 0x0
+{ "mcrf CREG , CREG",{0x4C000000,0x039C0000}}, // 010011xxx00xxx000000000000000000 mcrf cr0, cr0
+{ "bdnzflr FLAG",{0x4C000020,0x00230000}}, // 0100110000x000xx0000000000100000 bdnzflr lt
+{ "bdnzflrl FLAG",{0x4C000021,0x00230000}}, // 0100110000x000xx0000000000100001 bdnzflrl lt
+{ "rfid",{0x4C000024,0x00000000}}, // 01001100000000000000000000100100 rfid
+{ "crnot NUM , NUM",{0x4C000042,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx00001000010 crnot 0, 0
+{ "rfmci",{0x4C00004C,0x00000000}}, // 01001100000000000000000001001100 rfmci
+{ "rfdi",{0x4C00004E,0x00000000}}, // 01001100000000000000000001001110 rfdi
+{ "rfi",{0x4C000064,0x00000000}}, // 01001100000000000000000001100100 rfi
+{ "rfci",{0x4C000066,0x00000000}}, // 01001100000000000000000001100110 rfci
+{ "crandc NUM , NUM , NUM",{0x4C000102,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx00100000010 crandc 0, 0, 0
+{ "isync",{0x4C00012C,0x00000000}}, // 01001100000000000000000100101100 isync
+{ "crclr NUM",{0x4C000182,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx00110000010 crclr 0
+{ "crnand NUM , NUM , NUM",{0x4C0001C2,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx00111000010 crnand 0, 0, 0
+{ "crand NUM , NUM , NUM",{0x4C000202,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx01000000010 crand 0, 0, 0
+{ "crset NUM",{0x4C000242,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx01001000010 crset 0
+{ "crorc NUM , NUM , NUM",{0x4C000342,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx01101000010 crorc 0, 0, 0
+{ "crmove NUM , NUM",{0x4C000382,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx01110000010 crmove 0, 0
+{ "bdnzfctr FLAG",{0x4C000420,0x00230000}}, // 0100110000x000xx0000010000100000 bdnzfctr lt
+{ "bdnzfctrl FLAG",{0x4C000421,0x00230000}}, // 0100110000x000xx0000010000100001 bdnzfctrl lt
+{ "bdnzflr FLAG , NUM",{0x4C000820,0x00231800}}, // 0100110000x000xx000xx00000100000 bdnzflr lt, 0x4
+{ "bdnzflrl FLAG , NUM",{0x4C000821,0x00231800}}, // 0100110000x000xx000xx00000100001 bdnzflrl lt, 0x4
+{ "crnor NUM , NUM , NUM",{0x4C000842,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx00001000010 crnor 0, 0, 1
+{ "crxor NUM , NUM , NUM",{0x4C000982,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx00110000010 crxor 0, 0, 1
+{ "creqv NUM , NUM , NUM",{0x4C000A42,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx01001000010 creqv 0, 0, 1
+{ "cror NUM , NUM , NUM",{0x4C000B82,0x03FFF800}}, // 010011xxxxxxxxxxxxxxx01110000010 cror 0, 0, 1
+{ "bdnzfctr FLAG , NUM",{0x4C000C20,0x00231800}}, // 0100110000x000xx000xx10000100000 bdnzfctr lt, 0x4
+{ "bdnzfctrl FLAG , NUM",{0x4C000C21,0x00231800}}, // 0100110000x000xx000xx10000100001 bdnzfctrl lt, 0x4
+{ "bdnzflr NUM * CREG + FLAG",{0x4C040020,0x003F0000}}, // 0100110000xxxxxx0000000000100000 bdnzflr 4*cr1+lt
+{ "bdnzflrl NUM * CREG + FLAG",{0x4C040021,0x003F0000}}, // 0100110000xxxxxx0000000000100001 bdnzflrl 4*cr1+lt
+{ "bdnzfctr NUM * CREG + FLAG",{0x4C040420,0x003F0000}}, // 0100110000xxxxxx0000010000100000 bdnzfctr 4*cr1+lt
+{ "bdnzfctrl NUM * CREG + FLAG",{0x4C040421,0x003F0000}}, // 0100110000xxxxxx0000010000100001 bdnzfctrl 4*cr1+lt
+{ "bdnzflr NUM * CREG + FLAG , NUM",{0x4C040820,0x003F1800}}, // 0100110000xxxxxx000xx00000100000 bdnzflr 4*cr1+lt, 0x4
+{ "bdnzflrl NUM * CREG + FLAG , NUM",{0x4C040821,0x003F1800}}, // 0100110000xxxxxx000xx00000100001 bdnzflrl 4*cr1+lt, 0x4
+{ "bdnzfctr NUM * CREG + FLAG , NUM",{0x4C040C20,0x003F1800}}, // 0100110000xxxxxx000xx10000100000 bdnzfctr 4*cr1+lt, 0x4
+{ "bdnzfctrl NUM * CREG + FLAG , NUM",{0x4C040C21,0x003F1800}}, // 0100110000xxxxxx000xx10000100001 bdnzfctrl 4*cr1+lt, 0x4
+{ "bdzflr FLAG",{0x4C400020,0x00230000}}, // 0100110001x000xx0000000000100000 bdzflr lt
+{ "bdzflrl FLAG",{0x4C400021,0x00230000}}, // 0100110001x000xx0000000000100001 bdzflrl lt
+{ "bdzfctr FLAG",{0x4C400420,0x00230000}}, // 0100110001x000xx0000010000100000 bdzfctr lt
+{ "bdzfctrl FLAG",{0x4C400421,0x00230000}}, // 0100110001x000xx0000010000100001 bdzfctrl lt
+{ "bdzflr FLAG , NUM",{0x4C400820,0x00231800}}, // 0100110001x000xx000xx00000100000 bdzflr lt, 0x4
+{ "bdzflrl FLAG , NUM",{0x4C400821,0x00231800}}, // 0100110001x000xx000xx00000100001 bdzflrl lt, 0x4
+{ "bdzfctr FLAG , NUM",{0x4C400C20,0x00231800}}, // 0100110001x000xx000xx10000100000 bdzfctr lt, 0x4
+{ "bdzfctrl FLAG , NUM",{0x4C400C21,0x00231800}}, // 0100110001x000xx000xx10000100001 bdzfctrl lt, 0x4
+{ "bdzflr NUM * CREG + FLAG",{0x4C440020,0x003F0000}}, // 0100110001xxxxxx0000000000100000 bdzflr 4*cr1+lt
+{ "bdzflrl NUM * CREG + FLAG",{0x4C440021,0x003F0000}}, // 0100110001xxxxxx0000000000100001 bdzflrl 4*cr1+lt
+{ "bdzfctr NUM * CREG + FLAG",{0x4C440420,0x003F0000}}, // 0100110001xxxxxx0000010000100000 bdzfctr 4*cr1+lt
+{ "bdzfctrl NUM * CREG + FLAG",{0x4C440421,0x003F0000}}, // 0100110001xxxxxx0000010000100001 bdzfctrl 4*cr1+lt
+{ "bdzflr NUM * CREG + FLAG , NUM",{0x4C440820,0x003F1800}}, // 0100110001xxxxxx000xx00000100000 bdzflr 4*cr1+lt, 0x4
+{ "bdzflrl NUM * CREG + FLAG , NUM",{0x4C440821,0x003F1800}}, // 0100110001xxxxxx000xx00000100001 bdzflrl 4*cr1+lt, 0x4
+{ "bdzfctr NUM * CREG + FLAG , NUM",{0x4C440C20,0x003F1800}}, // 0100110001xxxxxx000xx10000100000 bdzfctr 4*cr1+lt, 0x4
+{ "bdzfctrl NUM * CREG + FLAG , NUM",{0x4C440C21,0x003F1800}}, // 0100110001xxxxxx000xx10000100001 bdzfctrl 4*cr1+lt, 0x4
+{ "bgelr",{0x4C800020,0x00200000}}, // 0100110010x000000000000000100000 bgelr
+{ "bgelrl",{0x4C800021,0x00200000}}, // 0100110010x000000000000000100001 bgelrl
+{ "bgectr",{0x4C800420,0x00200000}}, // 0100110010x000000000010000100000 bgectr
+{ "bgectrl",{0x4C800421,0x00200000}}, // 0100110010x000000000010000100001 bgectrl
+{ "bgelr NUM",{0x4C800820,0x00201800}}, // 0100110010x00000000xx00000100000 bgelr 0x4
+{ "bgelrl NUM",{0x4C800821,0x00201800}}, // 0100110010x00000000xx00000100001 bgelrl 0x4
+{ "bgectr NUM",{0x4C800C20,0x00201800}}, // 0100110010x00000000xx10000100000 bgectr 0x4
+{ "bgectrl NUM",{0x4C800C21,0x00201800}}, // 0100110010x00000000xx10000100001 bgectrl 0x4
+{ "blelr",{0x4C810020,0x00200000}}, // 0100110010x000010000000000100000 blelr
+{ "blelrl",{0x4C810021,0x00200000}}, // 0100110010x000010000000000100001 blelrl
+{ "blectr",{0x4C810420,0x00200000}}, // 0100110010x000010000010000100000 blectr
+{ "blectrl",{0x4C810421,0x00200000}}, // 0100110010x000010000010000100001 blectrl
+{ "blelr NUM",{0x4C810820,0x00201800}}, // 0100110010x00001000xx00000100000 blelr 0x4
+{ "blelrl NUM",{0x4C810821,0x00201800}}, // 0100110010x00001000xx00000100001 blelrl 0x4
+{ "blectr NUM",{0x4C810C20,0x00201800}}, // 0100110010x00001000xx10000100000 blectr 0x4
+{ "blectrl NUM",{0x4C810C21,0x00201800}}, // 0100110010x00001000xx10000100001 blectrl 0x4
+{ "bnelr",{0x4C820020,0x00200000}}, // 0100110010x000100000000000100000 bnelr
+{ "bnelrl",{0x4C820021,0x00200000}}, // 0100110010x000100000000000100001 bnelrl
+{ "bnectr",{0x4C820420,0x00200000}}, // 0100110010x000100000010000100000 bnectr
+{ "bnectrl",{0x4C820421,0x00200000}}, // 0100110010x000100000010000100001 bnectrl
+{ "bnelr NUM",{0x4C820820,0x00201800}}, // 0100110010x00010000xx00000100000 bnelr 0x4
+{ "bnelrl NUM",{0x4C820821,0x00201800}}, // 0100110010x00010000xx00000100001 bnelrl 0x4
+{ "bnectr NUM",{0x4C820C20,0x00201800}}, // 0100110010x00010000xx10000100000 bnectr 0x4
+{ "bnectrl NUM",{0x4C820C21,0x00201800}}, // 0100110010x00010000xx10000100001 bnectrl 0x4
+{ "bnslr",{0x4C830020,0x00200000}}, // 0100110010x000110000000000100000 bnslr
+{ "bnslrl",{0x4C830021,0x00200000}}, // 0100110010x000110000000000100001 bnslrl
+{ "bnsctr",{0x4C830420,0x00200000}}, // 0100110010x000110000010000100000 bnsctr
+{ "bnsctrl",{0x4C830421,0x00200000}}, // 0100110010x000110000010000100001 bnsctrl
+{ "bnslr NUM",{0x4C830820,0x00201800}}, // 0100110010x00011000xx00000100000 bnslr 0x4
+{ "bnslrl NUM",{0x4C830821,0x00201800}}, // 0100110010x00011000xx00000100001 bnslrl 0x4
+{ "bnsctr NUM",{0x4C830C20,0x00201800}}, // 0100110010x00011000xx10000100000 bnsctr 0x4
+{ "bnsctrl NUM",{0x4C830C21,0x00201800}}, // 0100110010x00011000xx10000100001 bnsctrl 0x4
+{ "bgelr CREG",{0x4C840020,0x003C0000}}, // 0100110010xxxx000000000000100000 bgelr cr1
+{ "bgelrl CREG",{0x4C840021,0x003C0000}}, // 0100110010xxxx000000000000100001 bgelrl cr1
+{ "bgectr CREG",{0x4C840420,0x003C0000}}, // 0100110010xxxx000000010000100000 bgectr cr1
+{ "bgectrl CREG",{0x4C840421,0x003C0000}}, // 0100110010xxxx000000010000100001 bgectrl cr1
+{ "bgelr CREG , NUM",{0x4C840820,0x003C1800}}, // 0100110010xxxx00000xx00000100000 bgelr cr1, 0x4
+{ "bgelrl CREG , NUM",{0x4C840821,0x003C1800}}, // 0100110010xxxx00000xx00000100001 bgelrl cr1, 0x4
+{ "bgectr CREG , NUM",{0x4C840C20,0x003C1800}}, // 0100110010xxxx00000xx10000100000 bgectr cr1, 0x4
+{ "bgectrl CREG , NUM",{0x4C840C21,0x003C1800}}, // 0100110010xxxx00000xx10000100001 bgectrl cr1, 0x4
+{ "blelr CREG",{0x4C850020,0x003C0000}}, // 0100110010xxxx010000000000100000 blelr cr1
+{ "blelrl CREG",{0x4C850021,0x003C0000}}, // 0100110010xxxx010000000000100001 blelrl cr1
+{ "blectr CREG",{0x4C850420,0x003C0000}}, // 0100110010xxxx010000010000100000 blectr cr1
+{ "blectrl CREG",{0x4C850421,0x003C0000}}, // 0100110010xxxx010000010000100001 blectrl cr1
+{ "blelr CREG , NUM",{0x4C850820,0x003C1800}}, // 0100110010xxxx01000xx00000100000 blelr cr1, 0x4
+{ "blelrl CREG , NUM",{0x4C850821,0x003C1800}}, // 0100110010xxxx01000xx00000100001 blelrl cr1, 0x4
+{ "blectr CREG , NUM",{0x4C850C20,0x003C1800}}, // 0100110010xxxx01000xx10000100000 blectr cr1, 0x4
+{ "blectrl CREG , NUM",{0x4C850C21,0x003C1800}}, // 0100110010xxxx01000xx10000100001 blectrl cr1, 0x4
+{ "bnelr CREG",{0x4C860020,0x003C0000}}, // 0100110010xxxx100000000000100000 bnelr cr1
+{ "bnelrl CREG",{0x4C860021,0x003C0000}}, // 0100110010xxxx100000000000100001 bnelrl cr1
+{ "bnectr CREG",{0x4C860420,0x003C0000}}, // 0100110010xxxx100000010000100000 bnectr cr1
+{ "bnectrl CREG",{0x4C860421,0x003C0000}}, // 0100110010xxxx100000010000100001 bnectrl cr1
+{ "bnelr CREG , NUM",{0x4C860820,0x003C1800}}, // 0100110010xxxx10000xx00000100000 bnelr cr1, 0x4
+{ "bnelrl CREG , NUM",{0x4C860821,0x003C1800}}, // 0100110010xxxx10000xx00000100001 bnelrl cr1, 0x4
+{ "bnectr CREG , NUM",{0x4C860C20,0x003C1800}}, // 0100110010xxxx10000xx10000100000 bnectr cr1, 0x4
+{ "bnectrl CREG , NUM",{0x4C860C21,0x003C1800}}, // 0100110010xxxx10000xx10000100001 bnectrl cr1, 0x4
+{ "bnslr CREG",{0x4C870020,0x003C0000}}, // 0100110010xxxx110000000000100000 bnslr cr1
+{ "bnslrl CREG",{0x4C870021,0x003C0000}}, // 0100110010xxxx110000000000100001 bnslrl cr1
+{ "bnsctr CREG",{0x4C870420,0x003C0000}}, // 0100110010xxxx110000010000100000 bnsctr cr1
+{ "bnsctrl CREG",{0x4C870421,0x003C0000}}, // 0100110010xxxx110000010000100001 bnsctrl cr1
+{ "bnslr CREG , NUM",{0x4C870820,0x003C1800}}, // 0100110010xxxx11000xx00000100000 bnslr cr1, 0x4
+{ "bnslrl CREG , NUM",{0x4C870821,0x003C1800}}, // 0100110010xxxx11000xx00000100001 bnslrl cr1, 0x4
+{ "bnsctr CREG , NUM",{0x4C870C20,0x003C1800}}, // 0100110010xxxx11000xx10000100000 bnsctr cr1, 0x4
+{ "bnsctrl CREG , NUM",{0x4C870C21,0x003C1800}}, // 0100110010xxxx11000xx10000100001 bnsctrl cr1, 0x4
+{ "bgelr -",{0x4CC00020,0x00000000}}, // 01001100110000000000000000100000 bgelr-
+{ "bgelrl -",{0x4CC00021,0x00000000}}, // 01001100110000000000000000100001 bgelrl-
+{ "bgectr -",{0x4CC00420,0x00000000}}, // 01001100110000000000010000100000 bgectr-
+{ "bgectrl -",{0x4CC00421,0x00000000}}, // 01001100110000000000010000100001 bgectrl-
+{ "bgelr - NUM",{0x4CC00820,0x00001800}}, // 0100110011000000000xx00000100000 bgelr- 0x4
+{ "bgelrl - NUM",{0x4CC00821,0x00001800}}, // 0100110011000000000xx00000100001 bgelrl- 0x4
+{ "bgectr - NUM",{0x4CC00C20,0x00001800}}, // 0100110011000000000xx10000100000 bgectr- 0x4
+{ "bgectrl - NUM",{0x4CC00C21,0x00001800}}, // 0100110011000000000xx10000100001 bgectrl- 0x4
+{ "blelr -",{0x4CC10020,0x00000000}}, // 01001100110000010000000000100000 blelr-
+{ "blelrl -",{0x4CC10021,0x00000000}}, // 01001100110000010000000000100001 blelrl-
+{ "blectr -",{0x4CC10420,0x00000000}}, // 01001100110000010000010000100000 blectr-
+{ "blectrl -",{0x4CC10421,0x00000000}}, // 01001100110000010000010000100001 blectrl-
+{ "blelr - NUM",{0x4CC10820,0x00001800}}, // 0100110011000001000xx00000100000 blelr- 0x4
+{ "blelrl - NUM",{0x4CC10821,0x00001800}}, // 0100110011000001000xx00000100001 blelrl- 0x4
+{ "blectr - NUM",{0x4CC10C20,0x00001800}}, // 0100110011000001000xx10000100000 blectr- 0x4
+{ "blectrl - NUM",{0x4CC10C21,0x00001800}}, // 0100110011000001000xx10000100001 blectrl- 0x4
+{ "bnelr -",{0x4CC20020,0x00000000}}, // 01001100110000100000000000100000 bnelr-
+{ "bnelrl -",{0x4CC20021,0x00000000}}, // 01001100110000100000000000100001 bnelrl-
+{ "bnectr -",{0x4CC20420,0x00000000}}, // 01001100110000100000010000100000 bnectr-
+{ "bnectrl -",{0x4CC20421,0x00000000}}, // 01001100110000100000010000100001 bnectrl-
+{ "bnelr - NUM",{0x4CC20820,0x00001800}}, // 0100110011000010000xx00000100000 bnelr- 0x4
+{ "bnelrl - NUM",{0x4CC20821,0x00001800}}, // 0100110011000010000xx00000100001 bnelrl- 0x4
+{ "bnectr - NUM",{0x4CC20C20,0x00001800}}, // 0100110011000010000xx10000100000 bnectr- 0x4
+{ "bnectrl - NUM",{0x4CC20C21,0x00001800}}, // 0100110011000010000xx10000100001 bnectrl- 0x4
+{ "bnslr -",{0x4CC30020,0x00000000}}, // 01001100110000110000000000100000 bnslr-
+{ "bnslrl -",{0x4CC30021,0x00000000}}, // 01001100110000110000000000100001 bnslrl-
+{ "bnsctr -",{0x4CC30420,0x00000000}}, // 01001100110000110000010000100000 bnsctr-
+{ "bnsctrl -",{0x4CC30421,0x00000000}}, // 01001100110000110000010000100001 bnsctrl-
+{ "bnslr - NUM",{0x4CC30820,0x00001800}}, // 0100110011000011000xx00000100000 bnslr- 0x4
+{ "bnslrl - NUM",{0x4CC30821,0x00001800}}, // 0100110011000011000xx00000100001 bnslrl- 0x4
+{ "bnsctr - NUM",{0x4CC30C20,0x00001800}}, // 0100110011000011000xx10000100000 bnsctr- 0x4
+{ "bnsctrl - NUM",{0x4CC30C21,0x00001800}}, // 0100110011000011000xx10000100001 bnsctrl- 0x4
+{ "bgelr - CREG",{0x4CC40020,0x001C0000}}, // 01001100110xxx000000000000100000 bgelr- cr1
+{ "bgelrl - CREG",{0x4CC40021,0x001C0000}}, // 01001100110xxx000000000000100001 bgelrl- cr1
+{ "bgectr - CREG",{0x4CC40420,0x001C0000}}, // 01001100110xxx000000010000100000 bgectr- cr1
+{ "bgectrl - CREG",{0x4CC40421,0x001C0000}}, // 01001100110xxx000000010000100001 bgectrl- cr1
+{ "bgelr - CREG , NUM",{0x4CC40820,0x001C1800}}, // 01001100110xxx00000xx00000100000 bgelr- cr1, 0x4
+{ "bgelrl - CREG , NUM",{0x4CC40821,0x001C1800}}, // 01001100110xxx00000xx00000100001 bgelrl- cr1, 0x4
+{ "bgectr - CREG , NUM",{0x4CC40C20,0x001C1800}}, // 01001100110xxx00000xx10000100000 bgectr- cr1, 0x4
+{ "bgectrl - CREG , NUM",{0x4CC40C21,0x001C1800}}, // 01001100110xxx00000xx10000100001 bgectrl- cr1, 0x4
+{ "blelr - CREG",{0x4CC50020,0x001C0000}}, // 01001100110xxx010000000000100000 blelr- cr1
+{ "blelrl - CREG",{0x4CC50021,0x001C0000}}, // 01001100110xxx010000000000100001 blelrl- cr1
+{ "blectr - CREG",{0x4CC50420,0x001C0000}}, // 01001100110xxx010000010000100000 blectr- cr1
+{ "blectrl - CREG",{0x4CC50421,0x001C0000}}, // 01001100110xxx010000010000100001 blectrl- cr1
+{ "blelr - CREG , NUM",{0x4CC50820,0x001C1800}}, // 01001100110xxx01000xx00000100000 blelr- cr1, 0x4
+{ "blelrl - CREG , NUM",{0x4CC50821,0x001C1800}}, // 01001100110xxx01000xx00000100001 blelrl- cr1, 0x4
+{ "blectr - CREG , NUM",{0x4CC50C20,0x001C1800}}, // 01001100110xxx01000xx10000100000 blectr- cr1, 0x4
+{ "blectrl - CREG , NUM",{0x4CC50C21,0x001C1800}}, // 01001100110xxx01000xx10000100001 blectrl- cr1, 0x4
+{ "bnelr - CREG",{0x4CC60020,0x001C0000}}, // 01001100110xxx100000000000100000 bnelr- cr1
+{ "bnelrl - CREG",{0x4CC60021,0x001C0000}}, // 01001100110xxx100000000000100001 bnelrl- cr1
+{ "bnectr - CREG",{0x4CC60420,0x001C0000}}, // 01001100110xxx100000010000100000 bnectr- cr1
+{ "bnectrl - CREG",{0x4CC60421,0x001C0000}}, // 01001100110xxx100000010000100001 bnectrl- cr1
+{ "bnelr - CREG , NUM",{0x4CC60820,0x001C1800}}, // 01001100110xxx10000xx00000100000 bnelr- cr1, 0x4
+{ "bnelrl - CREG , NUM",{0x4CC60821,0x001C1800}}, // 01001100110xxx10000xx00000100001 bnelrl- cr1, 0x4
+{ "bnectr - CREG , NUM",{0x4CC60C20,0x001C1800}}, // 01001100110xxx10000xx10000100000 bnectr- cr1, 0x4
+{ "bnectrl - CREG , NUM",{0x4CC60C21,0x001C1800}}, // 01001100110xxx10000xx10000100001 bnectrl- cr1, 0x4
+{ "bnslr - CREG",{0x4CC70020,0x001C0000}}, // 01001100110xxx110000000000100000 bnslr- cr1
+{ "bnslrl - CREG",{0x4CC70021,0x001C0000}}, // 01001100110xxx110000000000100001 bnslrl- cr1
+{ "bnsctr - CREG",{0x4CC70420,0x001C0000}}, // 01001100110xxx110000010000100000 bnsctr- cr1
+{ "bnsctrl - CREG",{0x4CC70421,0x001C0000}}, // 01001100110xxx110000010000100001 bnsctrl- cr1
+{ "bnslr - CREG , NUM",{0x4CC70820,0x001C1800}}, // 01001100110xxx11000xx00000100000 bnslr- cr1, 0x4
+{ "bnslrl - CREG , NUM",{0x4CC70821,0x001C1800}}, // 01001100110xxx11000xx00000100001 bnslrl- cr1, 0x4
+{ "bnsctr - CREG , NUM",{0x4CC70C20,0x001C1800}}, // 01001100110xxx11000xx10000100000 bnsctr- cr1, 0x4
+{ "bnsctrl - CREG , NUM",{0x4CC70C21,0x001C1800}}, // 01001100110xxx11000xx10000100001 bnsctrl- cr1, 0x4
+{ "bgelr +",{0x4CE00020,0x00000000}}, // 01001100111000000000000000100000 bgelr+
+{ "bgelrl +",{0x4CE00021,0x00000000}}, // 01001100111000000000000000100001 bgelrl+
+{ "bgectr +",{0x4CE00420,0x00000000}}, // 01001100111000000000010000100000 bgectr+
+{ "bgectrl +",{0x4CE00421,0x00000000}}, // 01001100111000000000010000100001 bgectrl+
+{ "bgelr + NUM",{0x4CE00820,0x00001800}}, // 0100110011100000000xx00000100000 bgelr+ 0x4
+{ "bgelrl + NUM",{0x4CE00821,0x00001800}}, // 0100110011100000000xx00000100001 bgelrl+ 0x4
+{ "bgectr + NUM",{0x4CE00C20,0x00001800}}, // 0100110011100000000xx10000100000 bgectr+ 0x4
+{ "bgectrl + NUM",{0x4CE00C21,0x00001800}}, // 0100110011100000000xx10000100001 bgectrl+ 0x4
+{ "blelr +",{0x4CE10020,0x00000000}}, // 01001100111000010000000000100000 blelr+
+{ "blelrl +",{0x4CE10021,0x00000000}}, // 01001100111000010000000000100001 blelrl+
+{ "blectr +",{0x4CE10420,0x00000000}}, // 01001100111000010000010000100000 blectr+
+{ "blectrl +",{0x4CE10421,0x00000000}}, // 01001100111000010000010000100001 blectrl+
+{ "blelr + NUM",{0x4CE10820,0x00001800}}, // 0100110011100001000xx00000100000 blelr+ 0x4
+{ "blelrl + NUM",{0x4CE10821,0x00001800}}, // 0100110011100001000xx00000100001 blelrl+ 0x4
+{ "blectr + NUM",{0x4CE10C20,0x00001800}}, // 0100110011100001000xx10000100000 blectr+ 0x4
+{ "blectrl + NUM",{0x4CE10C21,0x00001800}}, // 0100110011100001000xx10000100001 blectrl+ 0x4
+{ "bnelr +",{0x4CE20020,0x00000000}}, // 01001100111000100000000000100000 bnelr+
+{ "bnelrl +",{0x4CE20021,0x00000000}}, // 01001100111000100000000000100001 bnelrl+
+{ "bnectr +",{0x4CE20420,0x00000000}}, // 01001100111000100000010000100000 bnectr+
+{ "bnectrl +",{0x4CE20421,0x00000000}}, // 01001100111000100000010000100001 bnectrl+
+{ "bnelr + NUM",{0x4CE20820,0x00001800}}, // 0100110011100010000xx00000100000 bnelr+ 0x4
+{ "bnelrl + NUM",{0x4CE20821,0x00001800}}, // 0100110011100010000xx00000100001 bnelrl+ 0x4
+{ "bnectr + NUM",{0x4CE20C20,0x00001800}}, // 0100110011100010000xx10000100000 bnectr+ 0x4
+{ "bnectrl + NUM",{0x4CE20C21,0x00001800}}, // 0100110011100010000xx10000100001 bnectrl+ 0x4
+{ "bnslr +",{0x4CE30020,0x00000000}}, // 01001100111000110000000000100000 bnslr+
+{ "bnslrl +",{0x4CE30021,0x00000000}}, // 01001100111000110000000000100001 bnslrl+
+{ "bnsctr +",{0x4CE30420,0x00000000}}, // 01001100111000110000010000100000 bnsctr+
+{ "bnsctrl +",{0x4CE30421,0x00000000}}, // 01001100111000110000010000100001 bnsctrl+
+{ "bnslr + NUM",{0x4CE30820,0x00001800}}, // 0100110011100011000xx00000100000 bnslr+ 0x4
+{ "bnslrl + NUM",{0x4CE30821,0x00001800}}, // 0100110011100011000xx00000100001 bnslrl+ 0x4
+{ "bnsctr + NUM",{0x4CE30C20,0x00001800}}, // 0100110011100011000xx10000100000 bnsctr+ 0x4
+{ "bnsctrl + NUM",{0x4CE30C21,0x00001800}}, // 0100110011100011000xx10000100001 bnsctrl+ 0x4
+{ "bgelr + CREG",{0x4CE40020,0x001C0000}}, // 01001100111xxx000000000000100000 bgelr+ cr1
+{ "bgelrl + CREG",{0x4CE40021,0x001C0000}}, // 01001100111xxx000000000000100001 bgelrl+ cr1
+{ "bgectr + CREG",{0x4CE40420,0x001C0000}}, // 01001100111xxx000000010000100000 bgectr+ cr1
+{ "bgectrl + CREG",{0x4CE40421,0x001C0000}}, // 01001100111xxx000000010000100001 bgectrl+ cr1
+{ "bgelr + CREG , NUM",{0x4CE40820,0x001C1800}}, // 01001100111xxx00000xx00000100000 bgelr+ cr1, 0x4
+{ "bgelrl + CREG , NUM",{0x4CE40821,0x001C1800}}, // 01001100111xxx00000xx00000100001 bgelrl+ cr1, 0x4
+{ "bgectr + CREG , NUM",{0x4CE40C20,0x001C1800}}, // 01001100111xxx00000xx10000100000 bgectr+ cr1, 0x4
+{ "bgectrl + CREG , NUM",{0x4CE40C21,0x001C1800}}, // 01001100111xxx00000xx10000100001 bgectrl+ cr1, 0x4
+{ "blelr + CREG",{0x4CE50020,0x001C0000}}, // 01001100111xxx010000000000100000 blelr+ cr1
+{ "blelrl + CREG",{0x4CE50021,0x001C0000}}, // 01001100111xxx010000000000100001 blelrl+ cr1
+{ "blectr + CREG",{0x4CE50420,0x001C0000}}, // 01001100111xxx010000010000100000 blectr+ cr1
+{ "blectrl + CREG",{0x4CE50421,0x001C0000}}, // 01001100111xxx010000010000100001 blectrl+ cr1
+{ "blelr + CREG , NUM",{0x4CE50820,0x001C1800}}, // 01001100111xxx01000xx00000100000 blelr+ cr1, 0x4
+{ "blelrl + CREG , NUM",{0x4CE50821,0x001C1800}}, // 01001100111xxx01000xx00000100001 blelrl+ cr1, 0x4
+{ "blectr + CREG , NUM",{0x4CE50C20,0x001C1800}}, // 01001100111xxx01000xx10000100000 blectr+ cr1, 0x4
+{ "blectrl + CREG , NUM",{0x4CE50C21,0x001C1800}}, // 01001100111xxx01000xx10000100001 blectrl+ cr1, 0x4
+{ "bnelr + CREG",{0x4CE60020,0x001C0000}}, // 01001100111xxx100000000000100000 bnelr+ cr1
+{ "bnelrl + CREG",{0x4CE60021,0x001C0000}}, // 01001100111xxx100000000000100001 bnelrl+ cr1
+{ "bnectr + CREG",{0x4CE60420,0x001C0000}}, // 01001100111xxx100000010000100000 bnectr+ cr1
+{ "bnectrl + CREG",{0x4CE60421,0x001C0000}}, // 01001100111xxx100000010000100001 bnectrl+ cr1
+{ "bnelr + CREG , NUM",{0x4CE60820,0x001C1800}}, // 01001100111xxx10000xx00000100000 bnelr+ cr1, 0x4
+{ "bnelrl + CREG , NUM",{0x4CE60821,0x001C1800}}, // 01001100111xxx10000xx00000100001 bnelrl+ cr1, 0x4
+{ "bnectr + CREG , NUM",{0x4CE60C20,0x001C1800}}, // 01001100111xxx10000xx10000100000 bnectr+ cr1, 0x4
+{ "bnectrl + CREG , NUM",{0x4CE60C21,0x001C1800}}, // 01001100111xxx10000xx10000100001 bnectrl+ cr1, 0x4
+{ "bnslr + CREG",{0x4CE70020,0x001C0000}}, // 01001100111xxx110000000000100000 bnslr+ cr1
+{ "bnslrl + CREG",{0x4CE70021,0x001C0000}}, // 01001100111xxx110000000000100001 bnslrl+ cr1
+{ "bnsctr + CREG",{0x4CE70420,0x001C0000}}, // 01001100111xxx110000010000100000 bnsctr+ cr1
+{ "bnsctrl + CREG",{0x4CE70421,0x001C0000}}, // 01001100111xxx110000010000100001 bnsctrl+ cr1
+{ "bnslr + CREG , NUM",{0x4CE70820,0x001C1800}}, // 01001100111xxx11000xx00000100000 bnslr+ cr1, 0x4
+{ "bnslrl + CREG , NUM",{0x4CE70821,0x001C1800}}, // 01001100111xxx11000xx00000100001 bnslrl+ cr1, 0x4
+{ "bnsctr + CREG , NUM",{0x4CE70C20,0x001C1800}}, // 01001100111xxx11000xx10000100000 bnsctr+ cr1, 0x4
+{ "bnsctrl + CREG , NUM",{0x4CE70C21,0x001C1800}}, // 01001100111xxx11000xx10000100001 bnsctrl+ cr1, 0x4
+{ "bdnztlr FLAG",{0x4D000020,0x00230000}}, // 0100110100x000xx0000000000100000 bdnztlr lt
+{ "bdnztlrl FLAG",{0x4D000021,0x00230000}}, // 0100110100x000xx0000000000100001 bdnztlrl lt
+{ "bdnztctr FLAG",{0x4D000420,0x00230000}}, // 0100110100x000xx0000010000100000 bdnztctr lt
+{ "bdnztctrl FLAG",{0x4D000421,0x00230000}}, // 0100110100x000xx0000010000100001 bdnztctrl lt
+{ "bdnztlr FLAG , NUM",{0x4D000820,0x00231800}}, // 0100110100x000xx000xx00000100000 bdnztlr lt, 0x4
+{ "bdnztlrl FLAG , NUM",{0x4D000821,0x00231800}}, // 0100110100x000xx000xx00000100001 bdnztlrl lt, 0x4
+{ "bdnztctr FLAG , NUM",{0x4D000C20,0x00231800}}, // 0100110100x000xx000xx10000100000 bdnztctr lt, 0x4
+{ "bdnztctrl FLAG , NUM",{0x4D000C21,0x00231800}}, // 0100110100x000xx000xx10000100001 bdnztctrl lt, 0x4
+{ "bdnztlr NUM * CREG + FLAG",{0x4D040020,0x003F0000}}, // 0100110100xxxxxx0000000000100000 bdnztlr 4*cr1+lt
+{ "bdnztlrl NUM * CREG + FLAG",{0x4D040021,0x003F0000}}, // 0100110100xxxxxx0000000000100001 bdnztlrl 4*cr1+lt
+{ "bdnztctr NUM * CREG + FLAG",{0x4D040420,0x003F0000}}, // 0100110100xxxxxx0000010000100000 bdnztctr 4*cr1+lt
+{ "bdnztctrl NUM * CREG + FLAG",{0x4D040421,0x003F0000}}, // 0100110100xxxxxx0000010000100001 bdnztctrl 4*cr1+lt
+{ "bdnztlr NUM * CREG + FLAG , NUM",{0x4D040820,0x003F1800}}, // 0100110100xxxxxx000xx00000100000 bdnztlr 4*cr1+lt, 0x4
+{ "bdnztlrl NUM * CREG + FLAG , NUM",{0x4D040821,0x003F1800}}, // 0100110100xxxxxx000xx00000100001 bdnztlrl 4*cr1+lt, 0x4
+{ "bdnztctr NUM * CREG + FLAG , NUM",{0x4D040C20,0x003F1800}}, // 0100110100xxxxxx000xx10000100000 bdnztctr 4*cr1+lt, 0x4
+{ "bdnztctrl NUM * CREG + FLAG , NUM",{0x4D040C21,0x003F1800}}, // 0100110100xxxxxx000xx10000100001 bdnztctrl 4*cr1+lt, 0x4
+{ "bdztlr FLAG",{0x4D400020,0x00230000}}, // 0100110101x000xx0000000000100000 bdztlr lt
+{ "bdztlrl FLAG",{0x4D400021,0x00230000}}, // 0100110101x000xx0000000000100001 bdztlrl lt
+{ "bdztctr FLAG",{0x4D400420,0x00230000}}, // 0100110101x000xx0000010000100000 bdztctr lt
+{ "bdztctrl FLAG",{0x4D400421,0x00230000}}, // 0100110101x000xx0000010000100001 bdztctrl lt
+{ "bdztlr FLAG , NUM",{0x4D400820,0x00231800}}, // 0100110101x000xx000xx00000100000 bdztlr lt, 0x4
+{ "bdztlrl FLAG , NUM",{0x4D400821,0x00231800}}, // 0100110101x000xx000xx00000100001 bdztlrl lt, 0x4
+{ "bdztctr FLAG , NUM",{0x4D400C20,0x00231800}}, // 0100110101x000xx000xx10000100000 bdztctr lt, 0x4
+{ "bdztctrl FLAG , NUM",{0x4D400C21,0x00231800}}, // 0100110101x000xx000xx10000100001 bdztctrl lt, 0x4
+{ "bdztlr NUM * CREG + FLAG",{0x4D440020,0x003F0000}}, // 0100110101xxxxxx0000000000100000 bdztlr 4*cr1+lt
+{ "bdztlrl NUM * CREG + FLAG",{0x4D440021,0x003F0000}}, // 0100110101xxxxxx0000000000100001 bdztlrl 4*cr1+lt
+{ "bdztctr NUM * CREG + FLAG",{0x4D440420,0x003F0000}}, // 0100110101xxxxxx0000010000100000 bdztctr 4*cr1+lt
+{ "bdztctrl NUM * CREG + FLAG",{0x4D440421,0x003F0000}}, // 0100110101xxxxxx0000010000100001 bdztctrl 4*cr1+lt
+{ "bdztlr NUM * CREG + FLAG , NUM",{0x4D440820,0x003F1800}}, // 0100110101xxxxxx000xx00000100000 bdztlr 4*cr1+lt, 0x4
+{ "bdztlrl NUM * CREG + FLAG , NUM",{0x4D440821,0x003F1800}}, // 0100110101xxxxxx000xx00000100001 bdztlrl 4*cr1+lt, 0x4
+{ "bdztctr NUM * CREG + FLAG , NUM",{0x4D440C20,0x003F1800}}, // 0100110101xxxxxx000xx10000100000 bdztctr 4*cr1+lt, 0x4
+{ "bdztctrl NUM * CREG + FLAG , NUM",{0x4D440C21,0x003F1800}}, // 0100110101xxxxxx000xx10000100001 bdztctrl 4*cr1+lt, 0x4
+{ "bltlr",{0x4D800020,0x00200000}}, // 0100110110x000000000000000100000 bltlr
+{ "bltlrl",{0x4D800021,0x00200000}}, // 0100110110x000000000000000100001 bltlrl
+{ "bltctr",{0x4D800420,0x00200000}}, // 0100110110x000000000010000100000 bltctr
+{ "bltctrl",{0x4D800421,0x00200000}}, // 0100110110x000000000010000100001 bltctrl
+{ "bltlr NUM",{0x4D800820,0x00201800}}, // 0100110110x00000000xx00000100000 bltlr 0x4
+{ "bltlrl NUM",{0x4D800821,0x00201800}}, // 0100110110x00000000xx00000100001 bltlrl 0x4
+{ "bltctr NUM",{0x4D800C20,0x00201800}}, // 0100110110x00000000xx10000100000 bltctr 0x4
+{ "bltctrl NUM",{0x4D800C21,0x00201800}}, // 0100110110x00000000xx10000100001 bltctrl 0x4
+{ "bgtlr",{0x4D810020,0x00200000}}, // 0100110110x000010000000000100000 bgtlr
+{ "bgtlrl",{0x4D810021,0x00200000}}, // 0100110110x000010000000000100001 bgtlrl
+{ "bgtctr",{0x4D810420,0x00200000}}, // 0100110110x000010000010000100000 bgtctr
+{ "bgtctrl",{0x4D810421,0x00200000}}, // 0100110110x000010000010000100001 bgtctrl
+{ "bgtlr NUM",{0x4D810820,0x00201800}}, // 0100110110x00001000xx00000100000 bgtlr 0x4
+{ "bgtlrl NUM",{0x4D810821,0x00201800}}, // 0100110110x00001000xx00000100001 bgtlrl 0x4
+{ "bgtctr NUM",{0x4D810C20,0x00201800}}, // 0100110110x00001000xx10000100000 bgtctr 0x4
+{ "bgtctrl NUM",{0x4D810C21,0x00201800}}, // 0100110110x00001000xx10000100001 bgtctrl 0x4
+{ "beqlr",{0x4D820020,0x00200000}}, // 0100110110x000100000000000100000 beqlr
+{ "beqlrl",{0x4D820021,0x00200000}}, // 0100110110x000100000000000100001 beqlrl
+{ "beqctr",{0x4D820420,0x00200000}}, // 0100110110x000100000010000100000 beqctr
+{ "beqctrl",{0x4D820421,0x00200000}}, // 0100110110x000100000010000100001 beqctrl
+{ "beqlr NUM",{0x4D820820,0x00201800}}, // 0100110110x00010000xx00000100000 beqlr 0x4
+{ "beqlrl NUM",{0x4D820821,0x00201800}}, // 0100110110x00010000xx00000100001 beqlrl 0x4
+{ "beqctr NUM",{0x4D820C20,0x00201800}}, // 0100110110x00010000xx10000100000 beqctr 0x4
+{ "beqctrl NUM",{0x4D820C21,0x00201800}}, // 0100110110x00010000xx10000100001 beqctrl 0x4
+{ "bsolr",{0x4D830020,0x00200000}}, // 0100110110x000110000000000100000 bsolr
+{ "bsolrl",{0x4D830021,0x00200000}}, // 0100110110x000110000000000100001 bsolrl
+{ "bsoctr",{0x4D830420,0x00200000}}, // 0100110110x000110000010000100000 bsoctr
+{ "bsoctrl",{0x4D830421,0x00200000}}, // 0100110110x000110000010000100001 bsoctrl
+{ "bsolr NUM",{0x4D830820,0x00201800}}, // 0100110110x00011000xx00000100000 bsolr 0x4
+{ "bsolrl NUM",{0x4D830821,0x00201800}}, // 0100110110x00011000xx00000100001 bsolrl 0x4
+{ "bsoctr NUM",{0x4D830C20,0x00201800}}, // 0100110110x00011000xx10000100000 bsoctr 0x4
+{ "bsoctrl NUM",{0x4D830C21,0x00201800}}, // 0100110110x00011000xx10000100001 bsoctrl 0x4
+{ "bltlr CREG",{0x4D840020,0x003C0000}}, // 0100110110xxxx000000000000100000 bltlr cr1
+{ "bltlrl CREG",{0x4D840021,0x003C0000}}, // 0100110110xxxx000000000000100001 bltlrl cr1
+{ "bltctr CREG",{0x4D840420,0x003C0000}}, // 0100110110xxxx000000010000100000 bltctr cr1
+{ "bltctrl CREG",{0x4D840421,0x003C0000}}, // 0100110110xxxx000000010000100001 bltctrl cr1
+{ "bltlr CREG , NUM",{0x4D840820,0x003C1800}}, // 0100110110xxxx00000xx00000100000 bltlr cr1, 0x4
+{ "bltlrl CREG , NUM",{0x4D840821,0x003C1800}}, // 0100110110xxxx00000xx00000100001 bltlrl cr1, 0x4
+{ "bltctr CREG , NUM",{0x4D840C20,0x003C1800}}, // 0100110110xxxx00000xx10000100000 bltctr cr1, 0x4
+{ "bltctrl CREG , NUM",{0x4D840C21,0x003C1800}}, // 0100110110xxxx00000xx10000100001 bltctrl cr1, 0x4
+{ "bgtlr CREG",{0x4D850020,0x003C0000}}, // 0100110110xxxx010000000000100000 bgtlr cr1
+{ "bgtlrl CREG",{0x4D850021,0x003C0000}}, // 0100110110xxxx010000000000100001 bgtlrl cr1
+{ "bgtctr CREG",{0x4D850420,0x003C0000}}, // 0100110110xxxx010000010000100000 bgtctr cr1
+{ "bgtctrl CREG",{0x4D850421,0x003C0000}}, // 0100110110xxxx010000010000100001 bgtctrl cr1
+{ "bgtlr CREG , NUM",{0x4D850820,0x003C1800}}, // 0100110110xxxx01000xx00000100000 bgtlr cr1, 0x4
+{ "bgtlrl CREG , NUM",{0x4D850821,0x003C1800}}, // 0100110110xxxx01000xx00000100001 bgtlrl cr1, 0x4
+{ "bgtctr CREG , NUM",{0x4D850C20,0x003C1800}}, // 0100110110xxxx01000xx10000100000 bgtctr cr1, 0x4
+{ "bgtctrl CREG , NUM",{0x4D850C21,0x003C1800}}, // 0100110110xxxx01000xx10000100001 bgtctrl cr1, 0x4
+{ "beqlr CREG",{0x4D860020,0x003C0000}}, // 0100110110xxxx100000000000100000 beqlr cr1
+{ "beqlrl CREG",{0x4D860021,0x003C0000}}, // 0100110110xxxx100000000000100001 beqlrl cr1
+{ "beqctr CREG",{0x4D860420,0x003C0000}}, // 0100110110xxxx100000010000100000 beqctr cr1
+{ "beqctrl CREG",{0x4D860421,0x003C0000}}, // 0100110110xxxx100000010000100001 beqctrl cr1
+{ "beqlr CREG , NUM",{0x4D860820,0x003C1800}}, // 0100110110xxxx10000xx00000100000 beqlr cr1, 0x4
+{ "beqlrl CREG , NUM",{0x4D860821,0x003C1800}}, // 0100110110xxxx10000xx00000100001 beqlrl cr1, 0x4
+{ "beqctr CREG , NUM",{0x4D860C20,0x003C1800}}, // 0100110110xxxx10000xx10000100000 beqctr cr1, 0x4
+{ "beqctrl CREG , NUM",{0x4D860C21,0x003C1800}}, // 0100110110xxxx10000xx10000100001 beqctrl cr1, 0x4
+{ "bsolr CREG",{0x4D870020,0x003C0000}}, // 0100110110xxxx110000000000100000 bsolr cr1
+{ "bsolrl CREG",{0x4D870021,0x003C0000}}, // 0100110110xxxx110000000000100001 bsolrl cr1
+{ "bsoctr CREG",{0x4D870420,0x003C0000}}, // 0100110110xxxx110000010000100000 bsoctr cr1
+{ "bsoctrl CREG",{0x4D870421,0x003C0000}}, // 0100110110xxxx110000010000100001 bsoctrl cr1
+{ "bsolr CREG , NUM",{0x4D870820,0x003C1800}}, // 0100110110xxxx11000xx00000100000 bsolr cr1, 0x4
+{ "bsolrl CREG , NUM",{0x4D870821,0x003C1800}}, // 0100110110xxxx11000xx00000100001 bsolrl cr1, 0x4
+{ "bsoctr CREG , NUM",{0x4D870C20,0x003C1800}}, // 0100110110xxxx11000xx10000100000 bsoctr cr1, 0x4
+{ "bsoctrl CREG , NUM",{0x4D870C21,0x003C1800}}, // 0100110110xxxx11000xx10000100001 bsoctrl cr1, 0x4
+{ "bltlr -",{0x4DC00020,0x00000000}}, // 01001101110000000000000000100000 bltlr-
+{ "bltlrl -",{0x4DC00021,0x00000000}}, // 01001101110000000000000000100001 bltlrl-
+{ "bltctr -",{0x4DC00420,0x00000000}}, // 01001101110000000000010000100000 bltctr-
+{ "bltctrl -",{0x4DC00421,0x00000000}}, // 01001101110000000000010000100001 bltctrl-
+{ "bltlr - NUM",{0x4DC00820,0x00001800}}, // 0100110111000000000xx00000100000 bltlr- 0x4
+{ "bltlrl - NUM",{0x4DC00821,0x00001800}}, // 0100110111000000000xx00000100001 bltlrl- 0x4
+{ "bltctr - NUM",{0x4DC00C20,0x00001800}}, // 0100110111000000000xx10000100000 bltctr- 0x4
+{ "bltctrl - NUM",{0x4DC00C21,0x00001800}}, // 0100110111000000000xx10000100001 bltctrl- 0x4
+{ "bgtlr -",{0x4DC10020,0x00000000}}, // 01001101110000010000000000100000 bgtlr-
+{ "bgtlrl -",{0x4DC10021,0x00000000}}, // 01001101110000010000000000100001 bgtlrl-
+{ "bgtctr -",{0x4DC10420,0x00000000}}, // 01001101110000010000010000100000 bgtctr-
+{ "bgtctrl -",{0x4DC10421,0x00000000}}, // 01001101110000010000010000100001 bgtctrl-
+{ "bgtlr - NUM",{0x4DC10820,0x00001800}}, // 0100110111000001000xx00000100000 bgtlr- 0x4
+{ "bgtlrl - NUM",{0x4DC10821,0x00001800}}, // 0100110111000001000xx00000100001 bgtlrl- 0x4
+{ "bgtctr - NUM",{0x4DC10C20,0x00001800}}, // 0100110111000001000xx10000100000 bgtctr- 0x4
+{ "bgtctrl - NUM",{0x4DC10C21,0x00001800}}, // 0100110111000001000xx10000100001 bgtctrl- 0x4
+{ "beqlr -",{0x4DC20020,0x00000000}}, // 01001101110000100000000000100000 beqlr-
+{ "beqlrl -",{0x4DC20021,0x00000000}}, // 01001101110000100000000000100001 beqlrl-
+{ "beqctr -",{0x4DC20420,0x00000000}}, // 01001101110000100000010000100000 beqctr-
+{ "beqctrl -",{0x4DC20421,0x00000000}}, // 01001101110000100000010000100001 beqctrl-
+{ "beqlr - NUM",{0x4DC20820,0x00001800}}, // 0100110111000010000xx00000100000 beqlr- 0x4
+{ "beqlrl - NUM",{0x4DC20821,0x00001800}}, // 0100110111000010000xx00000100001 beqlrl- 0x4
+{ "beqctr - NUM",{0x4DC20C20,0x00001800}}, // 0100110111000010000xx10000100000 beqctr- 0x4
+{ "beqctrl - NUM",{0x4DC20C21,0x00001800}}, // 0100110111000010000xx10000100001 beqctrl- 0x4
+{ "bsolr -",{0x4DC30020,0x00000000}}, // 01001101110000110000000000100000 bsolr-
+{ "bsolrl -",{0x4DC30021,0x00000000}}, // 01001101110000110000000000100001 bsolrl-
+{ "bsoctr -",{0x4DC30420,0x00000000}}, // 01001101110000110000010000100000 bsoctr-
+{ "bsoctrl -",{0x4DC30421,0x00000000}}, // 01001101110000110000010000100001 bsoctrl-
+{ "bsolr - NUM",{0x4DC30820,0x00001800}}, // 0100110111000011000xx00000100000 bsolr- 0x4
+{ "bsolrl - NUM",{0x4DC30821,0x00001800}}, // 0100110111000011000xx00000100001 bsolrl- 0x4
+{ "bsoctr - NUM",{0x4DC30C20,0x00001800}}, // 0100110111000011000xx10000100000 bsoctr- 0x4
+{ "bsoctrl - NUM",{0x4DC30C21,0x00001800}}, // 0100110111000011000xx10000100001 bsoctrl- 0x4
+{ "bltlr - CREG",{0x4DC40020,0x001C0000}}, // 01001101110xxx000000000000100000 bltlr- cr1
+{ "bltlrl - CREG",{0x4DC40021,0x001C0000}}, // 01001101110xxx000000000000100001 bltlrl- cr1
+{ "bltctr - CREG",{0x4DC40420,0x001C0000}}, // 01001101110xxx000000010000100000 bltctr- cr1
+{ "bltctrl - CREG",{0x4DC40421,0x001C0000}}, // 01001101110xxx000000010000100001 bltctrl- cr1
+{ "bltlr - CREG , NUM",{0x4DC40820,0x001C1800}}, // 01001101110xxx00000xx00000100000 bltlr- cr1, 0x4
+{ "bltlrl - CREG , NUM",{0x4DC40821,0x001C1800}}, // 01001101110xxx00000xx00000100001 bltlrl- cr1, 0x4
+{ "bltctr - CREG , NUM",{0x4DC40C20,0x001C1800}}, // 01001101110xxx00000xx10000100000 bltctr- cr1, 0x4
+{ "bltctrl - CREG , NUM",{0x4DC40C21,0x001C1800}}, // 01001101110xxx00000xx10000100001 bltctrl- cr1, 0x4
+{ "bgtlr - CREG",{0x4DC50020,0x001C0000}}, // 01001101110xxx010000000000100000 bgtlr- cr1
+{ "bgtlrl - CREG",{0x4DC50021,0x001C0000}}, // 01001101110xxx010000000000100001 bgtlrl- cr1
+{ "bgtctr - CREG",{0x4DC50420,0x001C0000}}, // 01001101110xxx010000010000100000 bgtctr- cr1
+{ "bgtctrl - CREG",{0x4DC50421,0x001C0000}}, // 01001101110xxx010000010000100001 bgtctrl- cr1
+{ "bgtlr - CREG , NUM",{0x4DC50820,0x001C1800}}, // 01001101110xxx01000xx00000100000 bgtlr- cr1, 0x4
+{ "bgtlrl - CREG , NUM",{0x4DC50821,0x001C1800}}, // 01001101110xxx01000xx00000100001 bgtlrl- cr1, 0x4
+{ "bgtctr - CREG , NUM",{0x4DC50C20,0x001C1800}}, // 01001101110xxx01000xx10000100000 bgtctr- cr1, 0x4
+{ "bgtctrl - CREG , NUM",{0x4DC50C21,0x001C1800}}, // 01001101110xxx01000xx10000100001 bgtctrl- cr1, 0x4
+{ "beqlr - CREG",{0x4DC60020,0x001C0000}}, // 01001101110xxx100000000000100000 beqlr- cr1
+{ "beqlrl - CREG",{0x4DC60021,0x001C0000}}, // 01001101110xxx100000000000100001 beqlrl- cr1
+{ "beqctr - CREG",{0x4DC60420,0x001C0000}}, // 01001101110xxx100000010000100000 beqctr- cr1
+{ "beqctrl - CREG",{0x4DC60421,0x001C0000}}, // 01001101110xxx100000010000100001 beqctrl- cr1
+{ "beqlr - CREG , NUM",{0x4DC60820,0x001C1800}}, // 01001101110xxx10000xx00000100000 beqlr- cr1, 0x4
+{ "beqlrl - CREG , NUM",{0x4DC60821,0x001C1800}}, // 01001101110xxx10000xx00000100001 beqlrl- cr1, 0x4
+{ "beqctr - CREG , NUM",{0x4DC60C20,0x001C1800}}, // 01001101110xxx10000xx10000100000 beqctr- cr1, 0x4
+{ "beqctrl - CREG , NUM",{0x4DC60C21,0x001C1800}}, // 01001101110xxx10000xx10000100001 beqctrl- cr1, 0x4
+{ "bsolr - CREG",{0x4DC70020,0x001C0000}}, // 01001101110xxx110000000000100000 bsolr- cr1
+{ "bsolrl - CREG",{0x4DC70021,0x001C0000}}, // 01001101110xxx110000000000100001 bsolrl- cr1
+{ "bsoctr - CREG",{0x4DC70420,0x001C0000}}, // 01001101110xxx110000010000100000 bsoctr- cr1
+{ "bsoctrl - CREG",{0x4DC70421,0x001C0000}}, // 01001101110xxx110000010000100001 bsoctrl- cr1
+{ "bsolr - CREG , NUM",{0x4DC70820,0x001C1800}}, // 01001101110xxx11000xx00000100000 bsolr- cr1, 0x4
+{ "bsolrl - CREG , NUM",{0x4DC70821,0x001C1800}}, // 01001101110xxx11000xx00000100001 bsolrl- cr1, 0x4
+{ "bsoctr - CREG , NUM",{0x4DC70C20,0x001C1800}}, // 01001101110xxx11000xx10000100000 bsoctr- cr1, 0x4
+{ "bsoctrl - CREG , NUM",{0x4DC70C21,0x001C1800}}, // 01001101110xxx11000xx10000100001 bsoctrl- cr1, 0x4
+{ "bltlr +",{0x4DE00020,0x00000000}}, // 01001101111000000000000000100000 bltlr+
+{ "bltlrl +",{0x4DE00021,0x00000000}}, // 01001101111000000000000000100001 bltlrl+
+{ "bltctr +",{0x4DE00420,0x00000000}}, // 01001101111000000000010000100000 bltctr+
+{ "bltctrl +",{0x4DE00421,0x00000000}}, // 01001101111000000000010000100001 bltctrl+
+{ "bltlr + NUM",{0x4DE00820,0x00001800}}, // 0100110111100000000xx00000100000 bltlr+ 0x4
+{ "bltlrl + NUM",{0x4DE00821,0x00001800}}, // 0100110111100000000xx00000100001 bltlrl+ 0x4
+{ "bltctr + NUM",{0x4DE00C20,0x00001800}}, // 0100110111100000000xx10000100000 bltctr+ 0x4
+{ "bltctrl + NUM",{0x4DE00C21,0x00001800}}, // 0100110111100000000xx10000100001 bltctrl+ 0x4
+{ "bgtlr +",{0x4DE10020,0x00000000}}, // 01001101111000010000000000100000 bgtlr+
+{ "bgtlrl +",{0x4DE10021,0x00000000}}, // 01001101111000010000000000100001 bgtlrl+
+{ "bgtctr +",{0x4DE10420,0x00000000}}, // 01001101111000010000010000100000 bgtctr+
+{ "bgtctrl +",{0x4DE10421,0x00000000}}, // 01001101111000010000010000100001 bgtctrl+
+{ "bgtlr + NUM",{0x4DE10820,0x00001800}}, // 0100110111100001000xx00000100000 bgtlr+ 0x4
+{ "bgtlrl + NUM",{0x4DE10821,0x00001800}}, // 0100110111100001000xx00000100001 bgtlrl+ 0x4
+{ "bgtctr + NUM",{0x4DE10C20,0x00001800}}, // 0100110111100001000xx10000100000 bgtctr+ 0x4
+{ "bgtctrl + NUM",{0x4DE10C21,0x00001800}}, // 0100110111100001000xx10000100001 bgtctrl+ 0x4
+{ "beqlr +",{0x4DE20020,0x00000000}}, // 01001101111000100000000000100000 beqlr+
+{ "beqlrl +",{0x4DE20021,0x00000000}}, // 01001101111000100000000000100001 beqlrl+
+{ "beqctr +",{0x4DE20420,0x00000000}}, // 01001101111000100000010000100000 beqctr+
+{ "beqctrl +",{0x4DE20421,0x00000000}}, // 01001101111000100000010000100001 beqctrl+
+{ "beqlr + NUM",{0x4DE20820,0x00001800}}, // 0100110111100010000xx00000100000 beqlr+ 0x4
+{ "beqlrl + NUM",{0x4DE20821,0x00001800}}, // 0100110111100010000xx00000100001 beqlrl+ 0x4
+{ "beqctr + NUM",{0x4DE20C20,0x00001800}}, // 0100110111100010000xx10000100000 beqctr+ 0x4
+{ "beqctrl + NUM",{0x4DE20C21,0x00001800}}, // 0100110111100010000xx10000100001 beqctrl+ 0x4
+{ "bsolr +",{0x4DE30020,0x00000000}}, // 01001101111000110000000000100000 bsolr+
+{ "bsolrl +",{0x4DE30021,0x00000000}}, // 01001101111000110000000000100001 bsolrl+
+{ "bsoctr +",{0x4DE30420,0x00000000}}, // 01001101111000110000010000100000 bsoctr+
+{ "bsoctrl +",{0x4DE30421,0x00000000}}, // 01001101111000110000010000100001 bsoctrl+
+{ "bsolr + NUM",{0x4DE30820,0x00001800}}, // 0100110111100011000xx00000100000 bsolr+ 0x4
+{ "bsolrl + NUM",{0x4DE30821,0x00001800}}, // 0100110111100011000xx00000100001 bsolrl+ 0x4
+{ "bsoctr + NUM",{0x4DE30C20,0x00001800}}, // 0100110111100011000xx10000100000 bsoctr+ 0x4
+{ "bsoctrl + NUM",{0x4DE30C21,0x00001800}}, // 0100110111100011000xx10000100001 bsoctrl+ 0x4
+{ "bltlr + CREG",{0x4DE40020,0x001C0000}}, // 01001101111xxx000000000000100000 bltlr+ cr1
+{ "bltlrl + CREG",{0x4DE40021,0x001C0000}}, // 01001101111xxx000000000000100001 bltlrl+ cr1
+{ "bltctr + CREG",{0x4DE40420,0x001C0000}}, // 01001101111xxx000000010000100000 bltctr+ cr1
+{ "bltctrl + CREG",{0x4DE40421,0x001C0000}}, // 01001101111xxx000000010000100001 bltctrl+ cr1
+{ "bltlr + CREG , NUM",{0x4DE40820,0x001C1800}}, // 01001101111xxx00000xx00000100000 bltlr+ cr1, 0x4
+{ "bltlrl + CREG , NUM",{0x4DE40821,0x001C1800}}, // 01001101111xxx00000xx00000100001 bltlrl+ cr1, 0x4
+{ "bltctr + CREG , NUM",{0x4DE40C20,0x001C1800}}, // 01001101111xxx00000xx10000100000 bltctr+ cr1, 0x4
+{ "bltctrl + CREG , NUM",{0x4DE40C21,0x001C1800}}, // 01001101111xxx00000xx10000100001 bltctrl+ cr1, 0x4
+{ "bgtlr + CREG",{0x4DE50020,0x001C0000}}, // 01001101111xxx010000000000100000 bgtlr+ cr1
+{ "bgtlrl + CREG",{0x4DE50021,0x001C0000}}, // 01001101111xxx010000000000100001 bgtlrl+ cr1
+{ "bgtctr + CREG",{0x4DE50420,0x001C0000}}, // 01001101111xxx010000010000100000 bgtctr+ cr1
+{ "bgtctrl + CREG",{0x4DE50421,0x001C0000}}, // 01001101111xxx010000010000100001 bgtctrl+ cr1
+{ "bgtlr + CREG , NUM",{0x4DE50820,0x001C1800}}, // 01001101111xxx01000xx00000100000 bgtlr+ cr1, 0x4
+{ "bgtlrl + CREG , NUM",{0x4DE50821,0x001C1800}}, // 01001101111xxx01000xx00000100001 bgtlrl+ cr1, 0x4
+{ "bgtctr + CREG , NUM",{0x4DE50C20,0x001C1800}}, // 01001101111xxx01000xx10000100000 bgtctr+ cr1, 0x4
+{ "bgtctrl + CREG , NUM",{0x4DE50C21,0x001C1800}}, // 01001101111xxx01000xx10000100001 bgtctrl+ cr1, 0x4
+{ "beqlr + CREG",{0x4DE60020,0x001C0000}}, // 01001101111xxx100000000000100000 beqlr+ cr1
+{ "beqlrl + CREG",{0x4DE60021,0x001C0000}}, // 01001101111xxx100000000000100001 beqlrl+ cr1
+{ "beqctr + CREG",{0x4DE60420,0x001C0000}}, // 01001101111xxx100000010000100000 beqctr+ cr1
+{ "beqctrl + CREG",{0x4DE60421,0x001C0000}}, // 01001101111xxx100000010000100001 beqctrl+ cr1
+{ "beqlr + CREG , NUM",{0x4DE60820,0x001C1800}}, // 01001101111xxx10000xx00000100000 beqlr+ cr1, 0x4
+{ "beqlrl + CREG , NUM",{0x4DE60821,0x001C1800}}, // 01001101111xxx10000xx00000100001 beqlrl+ cr1, 0x4
+{ "beqctr + CREG , NUM",{0x4DE60C20,0x001C1800}}, // 01001101111xxx10000xx10000100000 beqctr+ cr1, 0x4
+{ "beqctrl + CREG , NUM",{0x4DE60C21,0x001C1800}}, // 01001101111xxx10000xx10000100001 beqctrl+ cr1, 0x4
+{ "bsolr + CREG",{0x4DE70020,0x001C0000}}, // 01001101111xxx110000000000100000 bsolr+ cr1
+{ "bsolrl + CREG",{0x4DE70021,0x001C0000}}, // 01001101111xxx110000000000100001 bsolrl+ cr1
+{ "bsoctr + CREG",{0x4DE70420,0x001C0000}}, // 01001101111xxx110000010000100000 bsoctr+ cr1
+{ "bsoctrl + CREG",{0x4DE70421,0x001C0000}}, // 01001101111xxx110000010000100001 bsoctrl+ cr1
+{ "bsolr + CREG , NUM",{0x4DE70820,0x001C1800}}, // 01001101111xxx11000xx00000100000 bsolr+ cr1, 0x4
+{ "bsolrl + CREG , NUM",{0x4DE70821,0x001C1800}}, // 01001101111xxx11000xx00000100001 bsolrl+ cr1, 0x4
+{ "bsoctr + CREG , NUM",{0x4DE70C20,0x001C1800}}, // 01001101111xxx11000xx10000100000 bsoctr+ cr1, 0x4
+{ "bsoctrl + CREG , NUM",{0x4DE70C21,0x001C1800}}, // 01001101111xxx11000xx10000100001 bsoctrl+ cr1, 0x4
+{ "bdnzlr",{0x4E000020,0x01BF0000}}, // 0100111xx0xxxxxx0000000000100000 bdnzlr
+{ "bdnzlrl",{0x4E000021,0x01BF0000}}, // 0100111xx0xxxxxx0000000000100001 bdnzlrl
+{ "bdnzctr",{0x4E000420,0x01BF0000}}, // 0100111xx0xxxxxx0000010000100000 bdnzctr
+{ "bdnzctrl",{0x4E000421,0x01BF0000}}, // 0100111xx0xxxxxx0000010000100001 bdnzctrl
+{ "bdnzlr NUM",{0x4E000820,0x01BF1800}}, // 0100111xx0xxxxxx000xx00000100000 bdnzlr 0x4
+{ "bdnzlrl NUM",{0x4E000821,0x01BF1800}}, // 0100111xx0xxxxxx000xx00000100001 bdnzlrl 0x4
+{ "bdnzctr NUM",{0x4E000C20,0x01BF1800}}, // 0100111xx0xxxxxx000xx10000100000 bdnzctr 0x4
+{ "bdnzctrl NUM",{0x4E000C21,0x01BF1800}}, // 0100111xx0xxxxxx000xx10000100001 bdnzctrl 0x4
+{ "bdzlr",{0x4E400020,0x01BF0000}}, // 0100111xx1xxxxxx0000000000100000 bdzlr
+{ "bdzlrl",{0x4E400021,0x01BF0000}}, // 0100111xx1xxxxxx0000000000100001 bdzlrl
+{ "bdzctr",{0x4E400420,0x01BF0000}}, // 0100111xx1xxxxxx0000010000100000 bdzctr
+{ "bdzctrl",{0x4E400421,0x01BF0000}}, // 0100111xx1xxxxxx0000010000100001 bdzctrl
+{ "bdzlr NUM",{0x4E400820,0x01BF1800}}, // 0100111xx1xxxxxx000xx00000100000 bdzlr 0x4
+{ "bdzlrl NUM",{0x4E400821,0x01BF1800}}, // 0100111xx1xxxxxx000xx00000100001 bdzlrl 0x4
+{ "bdzctr NUM",{0x4E400C20,0x01BF1800}}, // 0100111xx1xxxxxx000xx10000100000 bdzctr 0x4
+{ "bdzctrl NUM",{0x4E400C21,0x01BF1800}}, // 0100111xx1xxxxxx000xx10000100001 bdzctrl 0x4
+{ "blr",{0x4E800020,0x00000000}}, // 01001110100000000000000000100000 blr
+{ "blrl",{0x4E800021,0x00000000}}, // 01001110100000000000000000100001 blrl
+{ "bctr",{0x4E800420,0x00000000}}, // 01001110100000000000010000100000 bctr
+{ "bctrl",{0x4E800421,0x00000000}}, // 01001110100000000000010000100001 bctrl
+{ "bdnzlr -",{0x4F000020,0x001F0000}}, // 01001111000xxxxx0000000000100000 bdnzlr-
+{ "bdnzlrl -",{0x4F000021,0x001F0000}}, // 01001111000xxxxx0000000000100001 bdnzlrl-
+{ "bdnzctr -",{0x4F000420,0x001F0000}}, // 01001111000xxxxx0000010000100000 bdnzctr-
+{ "bdnzctrl -",{0x4F000421,0x001F0000}}, // 01001111000xxxxx0000010000100001 bdnzctrl-
+{ "bdnzlr - NUM",{0x4F000820,0x001F1800}}, // 01001111000xxxxx000xx00000100000 bdnzlr- 0x4
+{ "bdnzlrl - NUM",{0x4F000821,0x001F1800}}, // 01001111000xxxxx000xx00000100001 bdnzlrl- 0x4
+{ "bdnzctr - NUM",{0x4F000C20,0x001F1800}}, // 01001111000xxxxx000xx10000100000 bdnzctr- 0x4
+{ "bdnzctrl - NUM",{0x4F000C21,0x001F1800}}, // 01001111000xxxxx000xx10000100001 bdnzctrl- 0x4
+{ "bdnzlr +",{0x4F200020,0x001F0000}}, // 01001111001xxxxx0000000000100000 bdnzlr+
+{ "bdnzlrl +",{0x4F200021,0x001F0000}}, // 01001111001xxxxx0000000000100001 bdnzlrl+
+{ "bdnzctr +",{0x4F200420,0x001F0000}}, // 01001111001xxxxx0000010000100000 bdnzctr+
+{ "bdnzctrl +",{0x4F200421,0x001F0000}}, // 01001111001xxxxx0000010000100001 bdnzctrl+
+{ "bdnzlr + NUM",{0x4F200820,0x001F1800}}, // 01001111001xxxxx000xx00000100000 bdnzlr+ 0x4
+{ "bdnzlrl + NUM",{0x4F200821,0x001F1800}}, // 01001111001xxxxx000xx00000100001 bdnzlrl+ 0x4
+{ "bdnzctr + NUM",{0x4F200C20,0x001F1800}}, // 01001111001xxxxx000xx10000100000 bdnzctr+ 0x4
+{ "bdnzctrl + NUM",{0x4F200C21,0x001F1800}}, // 01001111001xxxxx000xx10000100001 bdnzctrl+ 0x4
+{ "bdzlr -",{0x4F400020,0x001F0000}}, // 01001111010xxxxx0000000000100000 bdzlr-
+{ "bdzlrl -",{0x4F400021,0x001F0000}}, // 01001111010xxxxx0000000000100001 bdzlrl-
+{ "bdzctr -",{0x4F400420,0x001F0000}}, // 01001111010xxxxx0000010000100000 bdzctr-
+{ "bdzctrl -",{0x4F400421,0x001F0000}}, // 01001111010xxxxx0000010000100001 bdzctrl-
+{ "bdzlr - NUM",{0x4F400820,0x001F1800}}, // 01001111010xxxxx000xx00000100000 bdzlr- 0x4
+{ "bdzlrl - NUM",{0x4F400821,0x001F1800}}, // 01001111010xxxxx000xx00000100001 bdzlrl- 0x4
+{ "bdzctr - NUM",{0x4F400C20,0x001F1800}}, // 01001111010xxxxx000xx10000100000 bdzctr- 0x4
+{ "bdzctrl - NUM",{0x4F400C21,0x001F1800}}, // 01001111010xxxxx000xx10000100001 bdzctrl- 0x4
+{ "bdzlr +",{0x4F600020,0x001F0000}}, // 01001111011xxxxx0000000000100000 bdzlr+
+{ "bdzlrl +",{0x4F600021,0x001F0000}}, // 01001111011xxxxx0000000000100001 bdzlrl+
+{ "bdzctr +",{0x4F600420,0x001F0000}}, // 01001111011xxxxx0000010000100000 bdzctr+
+{ "bdzctrl +",{0x4F600421,0x001F0000}}, // 01001111011xxxxx0000010000100001 bdzctrl+
+{ "bdzlr + NUM",{0x4F600820,0x001F1800}}, // 01001111011xxxxx000xx00000100000 bdzlr+ 0x4
+{ "bdzlrl + NUM",{0x4F600821,0x001F1800}}, // 01001111011xxxxx000xx00000100001 bdzlrl+ 0x4
+{ "bdzctr + NUM",{0x4F600C20,0x001F1800}}, // 01001111011xxxxx000xx10000100000 bdzctr+ 0x4
+{ "bdzctrl + NUM",{0x4F600C21,0x001F1800}}, // 01001111011xxxxx000xx10000100001 bdzctrl+ 0x4
+{"rlwimi GPR , GPR , NUM , NUM , NUM",{0x50000000,0x03FFFFFE}}, // 010100xxxxxxxxxxxxxxxxxxxxxxxxx0 rlwimi r0, r0, 0, 0, 0
+{"rlwimi . GPR , GPR , NUM , NUM , NUM",{0x50000001,0x03FFFFFE}}, // 010100xxxxxxxxxxxxxxxxxxxxxxxxx1 rlwimi. r0, r0, 0, 0, 0
+{"rlwinm GPR , GPR , NUM , NUM , NUM",{0x54000000,0x03FFFFFE}}, // 010101xxxxxxxxxxxxxxxxxxxxxxxxx0 rlwinm r0, r0, 0, 0, 0
+{"rlwinm . GPR , GPR , NUM , NUM , NUM",{0x54000001,0x03FFFFFE}}, // 010101xxxxxxxxxxxxxxxxxxxxxxxxx1 rlwinm. r0, r0, 0, 0, 0
+{ "slwi GPR , GPR , NUM",{0x5400003E,0x03FFF83E}}, // 010101xxxxxxxxxxxxxxx00000xxxxx0 slwi r0, r0, 0
+{ "rotlwi . GPR , GPR , NUM",{0x5400003F,0x03FFF800}}, // 010101xxxxxxxxxxxxxxx00000111111 rotlwi. r0, r0, 0
+{ "clrlwi GPR , GPR , NUM",{0x5400007E,0x03FF07C0}}, // 010101xxxxxxxxxx00000xxxxx111110 clrlwi r0, r0, 1
+{ "clrlwi . GPR , GPR , NUM",{0x5400007F,0x03FF07C0}}, // 010101xxxxxxxxxx00000xxxxx111111 clrlwi. r0, r0, 1
+{ "rotlwi GPR , GPR , NUM",{0x5400083E,0x03FFF800}}, // 010101xxxxxxxxxxxxxxx00000111110 rotlwi r0, r0, 1
+{ "srwi GPR , GPR , NUM",{0x54000FFE,0x03FFFFC0}}, // 010101xxxxxxxxxxxxxxxxxxxx111110 srwi r0, r0, 0x1f
+{ "rlwnm GPR , GPR , GPR , NUM , NUM",{0x5C000000,0x03FFFFFE}}, // 010111xxxxxxxxxxxxxxxxxxxxxxxxx0 rlwnm r0, r0, r0, 0, 0
+{"rlwnm . GPR , GPR , GPR , NUM , NUM",{0x5C000001,0x03FFFFFE}}, // 010111xxxxxxxxxxxxxxxxxxxxxxxxx1 rlwnm. r0, r0, r0, 0, 0
+{ "rotlw GPR , GPR , GPR",{0x5C00003E,0x03FFF800}}, // 010111xxxxxxxxxxxxxxx00000111110 rotlw r0, r0, r0
+{ "rotlw . GPR , GPR , GPR",{0x5C00003F,0x03FFF800}}, // 010111xxxxxxxxxxxxxxx00000111111 rotlw. r0, r0, r0
+{ "nop",{0x60000000,0x00000000}}, // 01100000000000000000000000000000 nop
+{ "ori GPR , GPR , NUM",{0x60000001,0x03FFFFFF}}, // 011000xxxxxxxxxxxxxxxxxxxxxxxxxx ori r0, r0, 1
+{ "oris GPR , GPR , NUM",{0x64000000,0x03FFFFFF}}, // 011001xxxxxxxxxxxxxxxxxxxxxxxxxx oris r0, r0, 0
+{ "xnop",{0x68000000,0x00000000}}, // 01101000000000000000000000000000 xnop
+{ "xori GPR , GPR , NUM",{0x68000001,0x03FFFFFF}}, // 011010xxxxxxxxxxxxxxxxxxxxxxxxxx xori r0, r0, 1
+{ "xoris GPR , GPR , NUM",{0x6C000000,0x03FFFFFF}}, // 011011xxxxxxxxxxxxxxxxxxxxxxxxxx xoris r0, r0, 0
+{ "andi . GPR , GPR , NUM",{0x70000000,0x03FFFFFF}}, // 011100xxxxxxxxxxxxxxxxxxxxxxxxxx andi. r0, r0, 0
+{ "andis . GPR , GPR , NUM",{0x74000000,0x03FFFFFF}}, // 011101xxxxxxxxxxxxxxxxxxxxxxxxxx andis. r0, r0, 0
+{ "rotldi GPR , GPR , NUM",{0x78000000,0x03FFF802}}, // 011110xxxxxxxxxxxxxxx000000000x0 rotldi r0, r0, 0
+{ "rotldi . GPR , GPR , NUM",{0x78000001,0x03FFF802}}, // 011110xxxxxxxxxxxxxxx000000000x1 rotldi. r0, r0, 0
+{ "rldicr GPR , GPR , NUM , NUM",{0x78000004,0x03FFFFE2}}, // 011110xxxxxxxxxxxxxxxxxxxxx001x0 rldicr r0, r0, 0, 0
+{ "rldicr . GPR , GPR , NUM , NUM",{0x78000005,0x03FFFFE2}}, // 011110xxxxxxxxxxxxxxxxxxxxx001x1 rldicr. r0, r0, 0, 0
+{ "rldic GPR , GPR , NUM , NUM",{0x78000008,0x03FFFFE2}}, // 011110xxxxxxxxxxxxxxxxxxxxx010x0 rldic r0, r0, 0, 0
+{ "rldic . GPR , GPR , NUM , NUM",{0x78000009,0x03FFFFE2}}, // 011110xxxxxxxxxxxxxxxxxxxxx010x1 rldic. r0, r0, 0, 0
+{ "rldimi GPR , GPR , NUM , NUM",{0x7800000C,0x03FFFFE2}}, // 011110xxxxxxxxxxxxxxxxxxxxx011x0 rldimi r0, r0, 0, 0
+{ "rldimi . GPR , GPR , NUM , NUM",{0x7800000D,0x03FFFFE2}}, // 011110xxxxxxxxxxxxxxxxxxxxx011x1 rldimi. r0, r0, 0, 0
+{ "rotld GPR , GPR , GPR",{0x78000010,0x03FFF800}}, // 011110xxxxxxxxxxxxxxx00000010000 rotld r0, r0, r0
+{ "rotld . GPR , GPR , GPR",{0x78000011,0x03FFF800}}, // 011110xxxxxxxxxxxxxxx00000010001 rotld. r0, r0, r0
+{ "rldcr GPR , GPR , GPR , NUM",{0x78000012,0x03FFFFE0}}, // 011110xxxxxxxxxxxxxxxxxxxxx10010 rldcr r0, r0, r0, 0
+{ "rldcr . GPR , GPR , GPR , NUM",{0x78000013,0x03FFFFE0}}, // 011110xxxxxxxxxxxxxxxxxxxxx10011 rldcr. r0, r0, r0, 0
+{ "clrldi GPR , GPR , NUM",{0x78000020,0x03FF07E0}}, // 011110xxxxxxxxxx00000xxxxxx00000 clrldi r0, r0, 0x20
+{ "clrldi . GPR , GPR , NUM",{0x78000021,0x03FF07E0}}, // 011110xxxxxxxxxx00000xxxxxx00001 clrldi. r0, r0, 0x20
+{ "rldicl GPR , GPR , NUM , NUM",{0x78000022,0x03FFFFE2}}, // 011110xxxxxxxxxxxxxxxxxxxxx000x0 rldicl r0, r0, 0x20, 0x20
+{ "rldicl . GPR , GPR , NUM , NUM",{0x78000023,0x03FFFFE2}}, // 011110xxxxxxxxxxxxxxxxxxxxx000x1 rldicl. r0, r0, 0x20, 0x20
+{ "rldcl GPR , GPR , GPR , NUM",{0x78000030,0x03FFFFE0}}, // 011110xxxxxxxxxxxxxxxxxxxxx10000 rldcl r0, r0, r0, 0x20
+{ "rldcl . GPR , GPR , GPR , NUM",{0x78000031,0x03FFFFE0}}, // 011110xxxxxxxxxxxxxxxxxxxxx10001 rldcl. r0, r0, r0, 0x20
+{ "sldi GPR , GPR , NUM",{0x780007C6,0x03FFFFE2}}, // 011110xxxxxxxxxxxxxxxxxxxxx001x0 sldi r0, r0, 0x20
+{ "cmpw GPR , GPR",{0x7C000000,0x001FF800}}, // 01111100000xxxxxxxxxx00000000000 cmpw r0, r0
+{ "tw NUM , GPR , GPR",{0x7C000008,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000001000 tw 0, r0, r0
+{ "lvsl VREG , NUM , GPR",{0x7C00000C,0x03E0F800}}, // 011111xxxxx00000xxxxx00000001100 lvsl v0, 0, r0
+{ "lvebx VREG , NUM , GPR",{0x7C00000E,0x03E0F800}}, // 011111xxxxx00000xxxxx00000001110 lvebx v0, 0, r0
+{ "subfc GPR , GPR , GPR",{0x7C000010,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000010000 subfc r0, r0, r0
+{ "subfc . GPR , GPR , GPR",{0x7C000011,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000010001 subfc. r0, r0, r0
+{ "mulhdu GPR , GPR , GPR",{0x7C000012,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000010010 mulhdu r0, r0, r0
+{ "mulhdu . GPR , GPR , GPR",{0x7C000013,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000010011 mulhdu. r0, r0, r0
+{ "addc GPR , GPR , GPR",{0x7C000014,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000010100 addc r0, r0, r0
+{ "addc . GPR , GPR , GPR",{0x7C000015,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000010101 addc. r0, r0, r0
+{ "mulhwu GPR , GPR , GPR",{0x7C000016,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000010110 mulhwu r0, r0, r0
+{ "mulhwu . GPR , GPR , GPR",{0x7C000017,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000010111 mulhwu. r0, r0, r0
+{ "isel GPR , NUM , GPR , NUM",{0x7C00001E,0x03E0FFC0}}, // 011111xxxxx00000xxxxxxxxxx011110 isel r0, 0, r0, 0
+{ "mfcr GPR",{0x7C000026,0x03E00000}}, // 011111xxxxx000000000000000100110 mfcr r0
+{ "lwarx GPR , NUM , GPR",{0x7C000028,0x03E0F800}}, // 011111xxxxx00000xxxxx00000101000 lwarx r0, 0, r0
+{ "ldx GPR , NUM , GPR",{0x7C00002A,0x03E0F800}}, // 011111xxxxx00000xxxxx00000101010 ldx r0, 0, r0
+{ "lwzx GPR , NUM , GPR",{0x7C00002E,0x03E0F800}}, // 011111xxxxx00000xxxxx00000101110 lwzx r0, 0, r0
+{ "slw GPR , GPR , GPR",{0x7C000030,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000110000 slw r0, r0, r0
+{ "slw . GPR , GPR , GPR",{0x7C000031,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000110001 slw. r0, r0, r0
+{ "cntlzw GPR , GPR",{0x7C000034,0x03FF0000}}, // 011111xxxxxxxxxx0000000000110100 cntlzw r0, r0
+{ "cntlzw . GPR , GPR",{0x7C000035,0x03FF0000}}, // 011111xxxxxxxxxx0000000000110101 cntlzw. r0, r0
+{ "sld GPR , GPR , GPR",{0x7C000036,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000110110 sld r0, r0, r0
+{ "sld . GPR , GPR , GPR",{0x7C000037,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000110111 sld. r0, r0, r0
+{ "and GPR , GPR , GPR",{0x7C000038,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000111000 and r0, r0, r0
+{ "and . GPR , GPR , GPR",{0x7C000039,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000111001 and. r0, r0, r0
+{ "cmplw GPR , GPR",{0x7C000040,0x001FF800}}, // 01111100000xxxxxxxxxx00001000000 cmplw r0, r0
+{ "lvsr VREG , NUM , GPR",{0x7C00004C,0x03E0F800}}, // 011111xxxxx00000xxxxx00001001100 lvsr v0, 0, r0
+{ "lvehx VREG , NUM , GPR",{0x7C00004E,0x03E0F800}}, // 011111xxxxx00000xxxxx00001001110 lvehx v0, 0, r0
+{ "subf GPR , GPR , GPR",{0x7C000050,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00001010000 subf r0, r0, r0
+{ "subf . GPR , GPR , GPR",{0x7C000051,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00001010001 subf. r0, r0, r0
+{ "ldux GPR , NUM , GPR",{0x7C00006A,0x03E0F800}}, // 011111xxxxx00000xxxxx00001101010 ldux r0, 0, r0
+{ "dcbst NUM , GPR",{0x7C00006C,0x0000F800}}, // 0111110000000000xxxxx00001101100 dcbst 0, r0
+{ "lwzux GPR , NUM , GPR",{0x7C00006E,0x03E0F800}}, // 011111xxxxx00000xxxxx00001101110 lwzux r0, 0, r0
+{ "cntlzd GPR , GPR",{0x7C000074,0x03FF0000}}, // 011111xxxxxxxxxx0000000001110100 cntlzd r0, r0
+{ "cntlzd . GPR , GPR",{0x7C000075,0x03FF0000}}, // 011111xxxxxxxxxx0000000001110101 cntlzd. r0, r0
+{ "andc GPR , GPR , GPR",{0x7C000078,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00001111000 andc r0, r0, r0
+{ "andc . GPR , GPR , GPR",{0x7C000079,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00001111001 andc. r0, r0, r0
+{ "wait",{0x7C00007C,0x00000000}}, // 01111100000000000000000001111100 wait
+{ "td NUM , GPR , GPR",{0x7C000088,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00010001000 td 0, r0, r0
+{ "lvewx VREG , NUM , GPR",{0x7C00008E,0x03E0F800}}, // 011111xxxxx00000xxxxx00010001110 lvewx v0, 0, r0
+{ "mulhd GPR , GPR , GPR",{0x7C000092,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00010010010 mulhd r0, r0, r0
+{ "mulhd . GPR , GPR , GPR",{0x7C000093,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00010010011 mulhd. r0, r0, r0
+{ "mulhw GPR , GPR , GPR",{0x7C000096,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00010010110 mulhw r0, r0, r0
+{ "mulhw . GPR , GPR , GPR",{0x7C000097,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00010010111 mulhw. r0, r0, r0
+{ "mfmsr GPR",{0x7C0000A6,0x03E00000}}, // 011111xxxxx000000000000010100110 mfmsr r0
+{ "ldarx GPR , NUM , GPR",{0x7C0000A8,0x03E0F800}}, // 011111xxxxx00000xxxxx00010101000 ldarx r0, 0, r0
+{ "dcbf NUM , GPR",{0x7C0000AC,0x0000F800}}, // 0111110000000000xxxxx00010101100 dcbf 0, r0
+{ "lbzx GPR , NUM , GPR",{0x7C0000AE,0x03E0F800}}, // 011111xxxxx00000xxxxx00010101110 lbzx r0, 0, r0
+{ "lvx VREG , NUM , GPR",{0x7C0000CE,0x03E0F800}}, // 011111xxxxx00000xxxxx00011001110 lvx v0, 0, r0
+{ "neg GPR , GPR",{0x7C0000D0,0x03FF0000}}, // 011111xxxxxxxxxx0000000011010000 neg r0, r0
+{ "neg . GPR , GPR",{0x7C0000D1,0x03FF0000}}, // 011111xxxxxxxxxx0000000011010001 neg. r0, r0
+{ "lbzux GPR , NUM , GPR",{0x7C0000EE,0x03E0F800}}, // 011111xxxxx00000xxxxx00011101110 lbzux r0, 0, r0
+{ "nor GPR , GPR , GPR",{0x7C0000F8,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00011111000 nor r0, r0, r0
+{ "nor . GPR , GPR , GPR",{0x7C0000F9,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00011111001 nor. r0, r0, r0
+{ "wrtee GPR",{0x7C000106,0x03FEF801}}, // 011111xxxxxxxxx0xxxxx0010000011x wrtee r0
+{ "stvebx VREG , NUM , GPR",{0x7C00010E,0x03E0F800}}, // 011111xxxxx00000xxxxx00100001110 stvebx v0, 0, r0
+{ "subfe GPR , GPR , GPR",{0x7C000110,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00100010000 subfe r0, r0, r0
+{ "subfe . GPR , GPR , GPR",{0x7C000111,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00100010001 subfe. r0, r0, r0
+{ "adde GPR , GPR , GPR",{0x7C000114,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00100010100 adde r0, r0, r0
+{ "adde . GPR , GPR , GPR",{0x7C000115,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00100010101 adde. r0, r0, r0
+{ "mtcrf NUM , GPR",{0x7C000120,0x03EFF000}}, // 011111xxxxx0xxxxxxxx000100100000 mtcrf 0, r0
+{ "mtmsr GPR",{0x7C000124,0x03FEF801}}, // 011111xxxxxxxxx0xxxxx0010010010x mtmsr r0
+{ "stdx GPR , NUM , GPR",{0x7C00012A,0x03E0F800}}, // 011111xxxxx00000xxxxx00100101010 stdx r0, 0, r0
+{ "stwcx . GPR , NUM , GPR",{0x7C00012D,0x03E0F800}}, // 011111xxxxx00000xxxxx00100101101 stwcx. r0, 0, r0
+{ "stwx GPR , NUM , GPR",{0x7C00012E,0x03E0F800}}, // 011111xxxxx00000xxxxx00100101110 stwx r0, 0, r0
+{ "wrteei NUM",{0x7C000146,0x03FFF801}}, // 011111xxxxxxxxxxxxxxx0010100011x wrteei 0
+{ "stvehx VREG , NUM , GPR",{0x7C00014E,0x03E0F800}}, // 011111xxxxx00000xxxxx00101001110 stvehx v0, 0, r0
+{ "mtmsrd GPR",{0x7C000164,0x03FEF801}}, // 011111xxxxxxxxx0xxxxx0010110010x mtmsrd r0
+{ "stdux GPR , NUM , GPR",{0x7C00016A,0x03E0F800}}, // 011111xxxxx00000xxxxx00101101010 stdux r0, 0, r0
+{ "stwux GPR , NUM , GPR",{0x7C00016E,0x03E0F800}}, // 011111xxxxx00000xxxxx00101101110 stwux r0, 0, r0
+{ "stvewx VREG , NUM , GPR",{0x7C00018E,0x03E0F800}}, // 011111xxxxx00000xxxxx00110001110 stvewx v0, 0, r0
+{ "subfze GPR , GPR",{0x7C000190,0x03FF0000}}, // 011111xxxxxxxxxx0000000110010000 subfze r0, r0
+{ "subfze . GPR , GPR",{0x7C000191,0x03FF0000}}, // 011111xxxxxxxxxx0000000110010001 subfze. r0, r0
+{ "addze GPR , GPR",{0x7C000194,0x03FF0000}}, // 011111xxxxxxxxxx0000000110010100 addze r0, r0
+{ "addze . GPR , GPR",{0x7C000195,0x03FF0000}}, // 011111xxxxxxxxxx0000000110010101 addze. r0, r0
+{ "mtsr NUM , GPR",{0x7C0001A4,0x03FFF801}}, // 011111xxxxxxxxxxxxxxx0011010010x mtsr 0, r0
+{ "stdcx . GPR , NUM , GPR",{0x7C0001AD,0x03E0F800}}, // 011111xxxxx00000xxxxx00110101101 stdcx. r0, 0, r0
+{ "stbx GPR , NUM , GPR",{0x7C0001AE,0x03E0F800}}, // 011111xxxxx00000xxxxx00110101110 stbx r0, 0, r0
+{ "stvx VREG , NUM , GPR",{0x7C0001CE,0x03E0F800}}, // 011111xxxxx00000xxxxx00111001110 stvx v0, 0, r0
+{ "subfme GPR , GPR",{0x7C0001D0,0x03FF0000}}, // 011111xxxxxxxxxx0000000111010000 subfme r0, r0
+{ "subfme . GPR , GPR",{0x7C0001D1,0x03FF0000}}, // 011111xxxxxxxxxx0000000111010001 subfme. r0, r0
+{ "mulld GPR , GPR , GPR",{0x7C0001D2,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00111010010 mulld r0, r0, r0
+{ "mulld . GPR , GPR , GPR",{0x7C0001D3,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00111010011 mulld. r0, r0, r0
+{ "addme GPR , GPR",{0x7C0001D4,0x03FF0000}}, // 011111xxxxxxxxxx0000000111010100 addme r0, r0
+{ "addme . GPR , GPR",{0x7C0001D5,0x03FF0000}}, // 011111xxxxxxxxxx0000000111010101 addme. r0, r0
+{ "mullw GPR , GPR , GPR",{0x7C0001D6,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00111010110 mullw r0, r0, r0
+{ "mullw . GPR , GPR , GPR",{0x7C0001D7,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00111010111 mullw. r0, r0, r0
+{ "mtsrin GPR , GPR",{0x7C0001E4,0x03FFF801}}, // 011111xxxxxxxxxxxxxxx0011110010x mtsrin r0, r0
+{ "dcbtst NUM , GPR",{0x7C0001EC,0x0000F800}}, // 0111110000000000xxxxx00111101100 dcbtst 0, r0
+{ "stbux GPR , NUM , GPR",{0x7C0001EE,0x03E0F800}}, // 011111xxxxx00000xxxxx00111101110 stbux r0, 0, r0
+{ "add GPR , GPR , GPR",{0x7C000214,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01000010100 add r0, r0, r0
+{ "add . GPR , GPR , GPR",{0x7C000215,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01000010101 add. r0, r0, r0
+{ "tlbiel GPR",{0x7C000224,0x0000F800}}, // 0111110000000000xxxxx01000100100 tlbiel r0
+{ "dcbt NUM , GPR",{0x7C00022C,0x0000F800}}, // 0111110000000000xxxxx01000101100 dcbt 0, r0
+{ "lhzx GPR , NUM , GPR",{0x7C00022E,0x03E0F800}}, // 011111xxxxx00000xxxxx01000101110 lhzx r0, 0, r0
+{ "eqv GPR , GPR , GPR",{0x7C000238,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01000111000 eqv r0, r0, r0
+{ "eqv . GPR , GPR , GPR",{0x7C000239,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01000111001 eqv. r0, r0, r0
+{ "tlbie GPR",{0x7C000264,0x0000F800}}, // 0111110000000000xxxxx01001100100 tlbie r0
+{ "lhzux GPR , NUM , GPR",{0x7C00026E,0x03E0F800}}, // 011111xxxxx00000xxxxx01001101110 lhzux r0, 0, r0
+{ "xor GPR , GPR , GPR",{0x7C000278,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01001111000 xor r0, r0, r0
+{ "xor . GPR , GPR , GPR",{0x7C000279,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01001111001 xor. r0, r0, r0
+{ "mfdcr GPR , NUM",{0x7C000286,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01010000110 mfdcr r0, 0
+{ "lxvdsx VSREG , NUM , GPR",{0x7C000298,0x03E0F800}}, // 011111xxxxx00000xxxxx01010011000 lxvdsx vs0, 0, r0
+{ "mfspr GPR , NUM",{0x7C0002A6,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01010100110 mfspr r0, 0
+{ "lwax GPR , NUM , GPR",{0x7C0002AA,0x03E0F800}}, // 011111xxxxx00000xxxxx01010101010 lwax r0, 0, r0
+{ "dst GPR , GPR , NUM",{0x7C0002AC,0x007FF800}}, // 011111000xxxxxxxxxxxx01010101100 dst r0, r0, 0
+{ "lhax GPR , NUM , GPR",{0x7C0002AE,0x03E0F800}}, // 011111xxxxx00000xxxxx01010101110 lhax r0, 0, r0
+{ "lvxl VREG , NUM , GPR",{0x7C0002CE,0x03E0F800}}, // 011111xxxxx00000xxxxx01011001110 lvxl v0, 0, r0
+{ "tlbia",{0x7C0002E4,0x00000000}}, // 01111100000000000000001011100100 tlbia
+{ "mftb GPR , NUM",{0x7C0002E6,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01011100110 mftb r0, 0
+{ "lwaux GPR , NUM , GPR",{0x7C0002EA,0x03E0F800}}, // 011111xxxxx00000xxxxx01011101010 lwaux r0, 0, r0
+{ "dstst GPR , GPR , NUM",{0x7C0002EC,0x007FF800}}, // 011111000xxxxxxxxxxxx01011101100 dstst r0, r0, 0
+{ "lhaux GPR , NUM , GPR",{0x7C0002EE,0x03E0F800}}, // 011111xxxxx00000xxxxx01011101110 lhaux r0, 0, r0
+{ "popcntw GPR , GPR",{0x7C0002F4,0x03FF0000}}, // 011111xxxxxxxxxx0000001011110100 popcntw r0, r0
+{ "slbmte GPR , GPR",{0x7C000324,0x03E0F800}}, // 011111xxxxx00000xxxxx01100100100 slbmte r0, r0
+{ "sthx GPR , NUM , GPR",{0x7C00032E,0x03E0F800}}, // 011111xxxxx00000xxxxx01100101110 sthx r0, 0, r0
+{ "orc GPR , GPR , GPR",{0x7C000338,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01100111000 orc r0, r0, r0
+{ "orc . GPR , GPR , GPR",{0x7C000339,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01100111001 orc. r0, r0, r0
+{ "slbie GPR",{0x7C000364,0x0000F800}}, // 0111110000000000xxxxx01101100100 slbie r0
+{ "sthux GPR , NUM , GPR",{0x7C00036E,0x03E0F800}}, // 011111xxxxx00000xxxxx01101101110 sthux r0, 0, r0
+{ "mr GPR , GPR",{0x7C000378,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01101111000 mr r0, r0
+{ "or . GPR , GPR , GPR",{0x7C000379,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01101111001 or. r0, r0, r0
+{ "mtdcr NUM , GPR",{0x7C000386,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01110000110 mtdcr 0, r0
+{ "dccci GPR , GPR",{0x7C00038C,0x001FF800}}, // 01111100000xxxxxxxxxx01110001100 dccci r0, r0
+{ "divdu GPR , GPR , GPR",{0x7C000392,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01110010010 divdu r0, r0, r0
+{ "divdu . GPR , GPR , GPR",{0x7C000393,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01110010011 divdu. r0, r0, r0
+{ "divwu GPR , GPR , GPR",{0x7C000396,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01110010110 divwu r0, r0, r0
+{ "divwu . GPR , GPR , GPR",{0x7C000397,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01110010111 divwu. r0, r0, r0
+{ "mtspr NUM , GPR",{0x7C0003A6,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01110100110 mtspr 0, r0
+{ "dcbi NUM , GPR",{0x7C0003AC,0x0000F800}}, // 0111110000000000xxxxx01110101100 dcbi 0, r0
+{ "nand GPR , GPR , GPR",{0x7C0003B8,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01110111000 nand r0, r0, r0
+{ "nand . GPR , GPR , GPR",{0x7C0003B9,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01110111001 nand. r0, r0, r0
+{ "stvxl VREG , NUM , GPR",{0x7C0003CE,0x03E0F800}}, // 011111xxxxx00000xxxxx01111001110 stvxl v0, 0, r0
+{ "divd GPR , GPR , GPR",{0x7C0003D2,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01111010010 divd r0, r0, r0
+{ "divd . GPR , GPR , GPR",{0x7C0003D3,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01111010011 divd. r0, r0, r0
+{ "divw GPR , GPR , GPR",{0x7C0003D6,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01111010110 divw r0, r0, r0
+{ "divw . GPR , GPR , GPR",{0x7C0003D7,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01111010111 divw. r0, r0, r0
+{ "slbia",{0x7C0003E4,0x00000000}}, // 01111100000000000000001111100100 slbia
+{ "popcntd GPR , GPR",{0x7C0003F4,0x03FF0000}}, // 011111xxxxxxxxxx0000001111110100 popcntd r0, r0
+{ "ldbrx GPR , NUM , GPR",{0x7C000428,0x03E0F800}}, // 011111xxxxx00000xxxxx10000101000 ldbrx r0, 0, r0
+{ "lwbrx GPR , NUM , GPR",{0x7C00042C,0x03E0F800}}, // 011111xxxxx00000xxxxx10000101100 lwbrx r0, 0, r0
+{ "lfsx FREG , NUM , GPR",{0x7C00042E,0x03E0F800}}, // 011111xxxxx00000xxxxx10000101110 lfsx f0, 0, r0
+{ "srw GPR , GPR , GPR",{0x7C000430,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10000110000 srw r0, r0, r0
+{ "srw . GPR , GPR , GPR",{0x7C000431,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10000110001 srw. r0, r0, r0
+{ "srd GPR , GPR , GPR",{0x7C000436,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10000110110 srd r0, r0, r0
+{ "srd . GPR , GPR , GPR",{0x7C000437,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10000110111 srd. r0, r0, r0
+{ "tlbsync",{0x7C00046C,0x00000000}}, // 01111100000000000000010001101100 tlbsync
+{ "lfsux FREG , NUM , GPR",{0x7C00046E,0x03E0F800}}, // 011111xxxxx00000xxxxx10001101110 lfsux f0, 0, r0
+{ "lxsdx FREG , NUM , GPR",{0x7C000498,0x03E0F800}}, // 011111xxxxx00000xxxxx10010011000 lxsdx f0, 0, r0
+{ "mfsr GPR , NUM",{0x7C0004A6,0x03FFF801}}, // 011111xxxxxxxxxxxxxxx1001010011x mfsr r0, 0
+{ "lswi GPR , GPR , NUM",{0x7C0004AA,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10010101010 lswi r0, r0, 0
+{ "sync NUM",{0x7C0004AC,0x00600000}}, // 011111000xx000000000010010101100 sync 0
+{ "lfdx FREG , NUM , GPR",{0x7C0004AE,0x03E0F800}}, // 011111xxxxx00000xxxxx10010101110 lfdx f0, 0, r0
+{ "lfdux FREG , NUM , GPR",{0x7C0004EE,0x03E0F800}}, // 011111xxxxx00000xxxxx10011101110 lfdux f0, 0, r0
+{ "mfsrin GPR , GPR",{0x7C000526,0x03FFF801}}, // 011111xxxxxxxxxxxxxxx1010010011x mfsrin r0, r0
+{ "stdbrx GPR , NUM , GPR",{0x7C000528,0x03E0F800}}, // 011111xxxxx00000xxxxx10100101000 stdbrx r0, 0, r0
+{ "stwbrx GPR , NUM , GPR",{0x7C00052C,0x03E0F800}}, // 011111xxxxx00000xxxxx10100101100 stwbrx r0, 0, r0
+{ "stfsx FREG , NUM , GPR",{0x7C00052E,0x03E0F800}}, // 011111xxxxx00000xxxxx10100101110 stfsx f0, 0, r0
+{ "stfsux FREG , NUM , GPR",{0x7C00056E,0x03E0F800}}, // 011111xxxxx00000xxxxx10101101110 stfsux f0, 0, r0
+{ "stxsdx FREG , NUM , GPR",{0x7C000598,0x03E0F800}}, // 011111xxxxx00000xxxxx10110011000 stxsdx f0, 0, r0
+{ "stxsdx VSREG , NUM , GPR",{0x7C000599,0x03E0F800}}, // 011111xxxxx00000xxxxx10110011001 stxsdx vs32, 0, r0
+{ "stswi GPR , GPR , NUM",{0x7C0005AA,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10110101010 stswi r0, r0, 0
+{ "stfdx FREG , NUM , GPR",{0x7C0005AE,0x03E0F800}}, // 011111xxxxx00000xxxxx10110101110 stfdx f0, 0, r0
+{ "dcba NUM , GPR",{0x7C0005EC,0x0000F800}}, // 0111110000000000xxxxx10111101100 dcba 0, r0
+{ "stfdux FREG , NUM , GPR",{0x7C0005EE,0x03E0F800}}, // 011111xxxxx00000xxxxx10111101110 stfdux f0, 0, r0
+{ "lxvw4x VSREG , NUM , GPR",{0x7C000618,0x03E0F800}}, // 011111xxxxx00000xxxxx11000011000 lxvw4x vs0, 0, r0
+{ "tlbivax GPR , GPR",{0x7C000624,0x001FF800}}, // 01111100000xxxxxxxxxx11000100100 tlbivax r0, r0
+{ "lhbrx GPR , NUM , GPR",{0x7C00062C,0x03E0F800}}, // 011111xxxxx00000xxxxx11000101100 lhbrx r0, 0, r0
+{ "sraw GPR , GPR , GPR",{0x7C000630,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11000110000 sraw r0, r0, r0
+{ "sraw . GPR , GPR , GPR",{0x7C000631,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11000110001 sraw. r0, r0, r0
+{ "srad GPR , GPR , GPR",{0x7C000634,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11000110100 srad r0, r0, r0
+{ "srad . GPR , GPR , GPR",{0x7C000635,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11000110101 srad. r0, r0, r0
+{ "dss NUM",{0x7C00066C,0x00600000}}, // 011111000xx000000000011001101100 dss 0
+{ "srawi GPR , GPR , NUM",{0x7C000670,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11001110000 srawi r0, r0, 0
+{ "srawi . GPR , GPR , NUM",{0x7C000671,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11001110001 srawi. r0, r0, 0
+{ "sradi GPR , GPR , NUM",{0x7C000674,0x03FFF802}}, // 011111xxxxxxxxxxxxxxx110011101x0 sradi r0, r0, 0
+{ "sradi . GPR , GPR , NUM",{0x7C000675,0x03FFF802}}, // 011111xxxxxxxxxxxxxxx110011101x1 sradi. r0, r0, 0
+{ "lxvd2x VSREG , NUM , GPR",{0x7C000698,0x03E0F800}}, // 011111xxxxx00000xxxxx11010011000 lxvd2x vs0, 0, r0
+{ "eieio",{0x7C0006AC,0x00000000}}, // 01111100000000000000011010101100 eieio
+{ "mbar",{0x7C0006AD,0x001FF801}}, // 01111100000xxxxxxxxxx1101010110x mbar
+{ "lfiwax FREG , NUM , GPR",{0x7C0006AE,0x03E0F800}}, // 011111xxxxx00000xxxxx11010101110 lfiwax f0, 0, r0
+{ "lfiwzx FREG , NUM , GPR",{0x7C0006EE,0x03E0F800}}, // 011111xxxxx00000xxxxx11011101110 lfiwzx f0, 0, r0
+{ "stxvw4x VSREG , NUM , GPR",{0x7C000718,0x03E0F801}}, // 011111xxxxx00000xxxxx1110001100x stxvw4x vs0, 0, r0
+{ "tlbsx GPR , GPR",{0x7C000724,0x001FF800}}, // 01111100000xxxxxxxxxx11100100100 tlbsx r0, r0
+{ "tlbsx . GPR , GPR , GPR",{0x7C000725,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11100100101 tlbsx. r0, r0, r0
+{ "slbmfee GPR , GPR",{0x7C000726,0x03E0F800}}, // 011111xxxxx00000xxxxx11100100110 slbmfee r0, r0
+{ "sthbrx GPR , NUM , GPR",{0x7C00072C,0x03E0F800}}, // 011111xxxxx00000xxxxx11100101100 sthbrx r0, 0, r0
+{ "extsh GPR , GPR",{0x7C000734,0x03FF0000}}, // 011111xxxxxxxxxx0000011100110100 extsh r0, r0
+{ "extsh . GPR , GPR",{0x7C000735,0x03FF0000}}, // 011111xxxxxxxxxx0000011100110101 extsh. r0, r0
+{ "tlbre",{0x7C000764,0x00000000}}, // 01111100000000000000011101100100 tlbre
+{ "extsb GPR , GPR",{0x7C000774,0x03FF0000}}, // 011111xxxxxxxxxx0000011101110100 extsb r0, r0
+{ "extsb . GPR , GPR",{0x7C000775,0x03FF0000}}, // 011111xxxxxxxxxx0000011101110101 extsb. r0, r0
+{ "iccci GPR , GPR",{0x7C00078C,0x001FF800}}, // 01111100000xxxxxxxxxx11110001100 iccci r0, r0
+{ "stxvd2x VSREG , NUM , GPR",{0x7C000798,0x03E0F801}}, // 011111xxxxx00000xxxxx1111001100x stxvd2x vs0, 0, r0
+{ "tlbwe",{0x7C0007A4,0x00000000}}, // 01111100000000000000011110100100 tlbwe
+{ "icbi NUM , GPR",{0x7C0007AC,0x0000F800}}, // 0111110000000000xxxxx11110101100 icbi 0, r0
+{ "stfiwx FREG , NUM , GPR",{0x7C0007AE,0x03E0F800}}, // 011111xxxxx00000xxxxx11110101110 stfiwx f0, 0, r0
+{ "extsw GPR , GPR",{0x7C0007B4,0x03FF0000}}, // 011111xxxxxxxxxx0000011110110100 extsw r0, r0
+{ "extsw . GPR , GPR",{0x7C0007B5,0x03FF0000}}, // 011111xxxxxxxxxx0000011110110101 extsw. r0, r0
+{ "tlbli GPR",{0x7C0007E4,0x0000F800}}, // 0111110000000000xxxxx11111100100 tlbli r0
+{ "dcbz NUM , GPR",{0x7C0007EC,0x0000F800}}, // 0111110000000000xxxxx11111101100 dcbz 0, r0
+{ "or GPR , GPR , GPR",{0x7C000B78,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01101111000 or r0, r0, r1
+{ "tlbrelo GPR , GPR",{0x7C000F64,0x03FFF000}}, // 011111xxxxxxxxxxxxxx111101100100 tlbrelo r0, r0
+{ "tlbld GPR",{0x7C000FA4,0x0000F800}}, // 0111110000000000xxxxx11110100100 tlbld r1
+{ "tlbrehi GPR , GPR",{0x7C001764,0x03FFF000}}, // 011111xxxxxxxxxxxxxx011101100100 tlbrehi r0, r0
+{ "mfbr0 GPR",{0x7C002286,0x03E00000}}, // 011111xxxxx000000010001010000110 mfbr0 r0
+{ "mtbr0 GPR",{0x7C002386,0x03E00000}}, // 011111xxxxx000000010001110000110 mtbr0 r0
+{ "mfspefscr GPR",{0x7C0082A6,0x03E00000}}, // 011111xxxxx000001000001010100110 mfspefscr r0
+{ "mtspefscr GPR",{0x7C0083A6,0x03E00000}}, // 011111xxxxx000001000001110100110 mtspefscr r0
+{ "lvsl VREG , GPR , GPR",{0x7C01000C,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000001100 lvsl v0, r1, r0
+{ "lvebx VREG , GPR , GPR",{0x7C01000E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000001110 lvebx v0, r1, r0
+{ "isel GPR , GPR , GPR , NUM",{0x7C01001E,0x03FFFFC0}}, // 011111xxxxxxxxxxxxxxxxxxxx011110 isel r0, r1, r0, 0
+{ "lwarx GPR , GPR , GPR",{0x7C010028,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000101000 lwarx r0, r1, r0
+{ "ldx GPR , GPR , GPR",{0x7C01002A,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000101010 ldx r0, r1, r0
+{ "lwzx GPR , GPR , GPR",{0x7C01002E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00000101110 lwzx r0, r1, r0
+{ "lvsr VREG , GPR , GPR",{0x7C01004C,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00001001100 lvsr v0, r1, r0
+{ "lvehx VREG , GPR , GPR",{0x7C01004E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00001001110 lvehx v0, r1, r0
+{ "ldux GPR , GPR , GPR",{0x7C01006A,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00001101010 ldux r0, r1, r0
+{ "dcbst GPR , GPR",{0x7C01006C,0x001FF800}}, // 01111100000xxxxxxxxxx00001101100 dcbst r1, r0
+{ "lwzux GPR , GPR , GPR",{0x7C01006E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00001101110 lwzux r0, r1, r0
+{ "lvewx VREG , GPR , GPR",{0x7C01008E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00010001110 lvewx v0, r1, r0
+{ "ldarx GPR , GPR , GPR",{0x7C0100A8,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00010101000 ldarx r0, r1, r0
+{ "dcbf GPR , GPR",{0x7C0100AC,0x001FF800}}, // 01111100000xxxxxxxxxx00010101100 dcbf r1, r0
+{ "lbzx GPR , GPR , GPR",{0x7C0100AE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00010101110 lbzx r0, r1, r0
+{ "lvx VREG , GPR , GPR",{0x7C0100CE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00011001110 lvx v0, r1, r0
+{ "lbzux GPR , GPR , GPR",{0x7C0100EE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00011101110 lbzux r0, r1, r0
+{ "stvebx VREG , GPR , GPR",{0x7C01010E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00100001110 stvebx v0, r1, r0
+{ "mtmsr GPR , NUM",{0x7C010124,0x03FEF801}}, // 011111xxxxxxxxx1xxxxx0010010010x mtmsr r0, 1
+{ "stdx GPR , GPR , GPR",{0x7C01012A,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00100101010 stdx r0, r1, r0
+{ "stwcx . GPR , GPR , GPR",{0x7C01012D,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00100101101 stwcx. r0, r1, r0
+{ "stwx GPR , GPR , GPR",{0x7C01012E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00100101110 stwx r0, r1, r0
+{ "stvehx VREG , GPR , GPR",{0x7C01014E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00101001110 stvehx v0, r1, r0
+{ "mtmsrd GPR , NUM",{0x7C010164,0x03FEF801}}, // 011111xxxxxxxxx1xxxxx0010110010x mtmsrd r0, 1
+{ "stdux GPR , GPR , GPR",{0x7C01016A,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00101101010 stdux r0, r1, r0
+{ "stwux GPR , GPR , GPR",{0x7C01016E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00101101110 stwux r0, r1, r0
+{ "stvewx VREG , GPR , GPR",{0x7C01018E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00110001110 stvewx v0, r1, r0
+{ "stdcx . GPR , GPR , GPR",{0x7C0101AD,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00110101101 stdcx. r0, r1, r0
+{ "stbx GPR , GPR , GPR",{0x7C0101AE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00110101110 stbx r0, r1, r0
+{ "stvx VREG , GPR , GPR",{0x7C0101CE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00111001110 stvx v0, r1, r0
+{ "dcbtst GPR , GPR",{0x7C0101EC,0x001FF800}}, // 01111100000xxxxxxxxxx00111101100 dcbtst r1, r0
+{ "stbux GPR , GPR , GPR",{0x7C0101EE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx00111101110 stbux r0, r1, r0
+{ "dcbt GPR , GPR",{0x7C01022C,0x001FF800}}, // 01111100000xxxxxxxxxx01000101100 dcbt r1, r0
+{ "lhzx GPR , GPR , GPR",{0x7C01022E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01000101110 lhzx r0, r1, r0
+{ "lhzux GPR , GPR , GPR",{0x7C01026E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01001101110 lhzux r0, r1, r0
+{ "lxvdsx VSREG , GPR , GPR",{0x7C010298,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01010011000 lxvdsx vs0, r1, r0
+{ "mfxer GPR",{0x7C0102A6,0x03E00000}}, // 011111xxxxx000010000001010100110 mfxer r0
+{ "lwax GPR , GPR , GPR",{0x7C0102AA,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01010101010 lwax r0, r1, r0
+{ "lhax GPR , GPR , GPR",{0x7C0102AE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01010101110 lhax r0, r1, r0
+{ "lvxl VREG , GPR , GPR",{0x7C0102CE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01011001110 lvxl v0, r1, r0
+{ "lwaux GPR , GPR , GPR",{0x7C0102EA,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01011101010 lwaux r0, r1, r0
+{ "lhaux GPR , GPR , GPR",{0x7C0102EE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01011101110 lhaux r0, r1, r0
+{ "sthx GPR , GPR , GPR",{0x7C01032E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01100101110 sthx r0, r1, r0
+{ "sthux GPR , GPR , GPR",{0x7C01036E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01101101110 sthux r0, r1, r0
+{ "mtxer GPR",{0x7C0103A6,0x03E00000}}, // 011111xxxxx000010000001110100110 mtxer r0
+{ "dcbi GPR , GPR",{0x7C0103AC,0x001FF800}}, // 01111100000xxxxxxxxxx01110101100 dcbi r1, r0
+{ "stvxl VREG , GPR , GPR",{0x7C0103CE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx01111001110 stvxl v0, r1, r0
+{ "ldbrx GPR , GPR , GPR",{0x7C010428,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10000101000 ldbrx r0, r1, r0
+{ "lwbrx GPR , GPR , GPR",{0x7C01042C,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10000101100 lwbrx r0, r1, r0
+{ "lfsx FREG , GPR , GPR",{0x7C01042E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10000101110 lfsx f0, r1, r0
+{ "lfsux FREG , GPR , GPR",{0x7C01046E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10001101110 lfsux f0, r1, r0
+{ "lxsdx FREG , GPR , GPR",{0x7C010498,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10010011000 lxsdx f0, r1, r0
+{ "lfdx FREG , GPR , GPR",{0x7C0104AE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10010101110 lfdx f0, r1, r0
+{ "lfdux FREG , GPR , GPR",{0x7C0104EE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10011101110 lfdux f0, r1, r0
+{ "stdbrx GPR , GPR , GPR",{0x7C010528,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10100101000 stdbrx r0, r1, r0
+{ "stwbrx GPR , GPR , GPR",{0x7C01052C,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10100101100 stwbrx r0, r1, r0
+{ "stfsx FREG , GPR , GPR",{0x7C01052E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10100101110 stfsx f0, r1, r0
+{ "stfsux FREG , GPR , GPR",{0x7C01056E,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10101101110 stfsux f0, r1, r0
+{ "stxsdx FREG , GPR , GPR",{0x7C010598,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10110011000 stxsdx f0, r1, r0
+{ "stxsdx VSREG , GPR , GPR",{0x7C010599,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10110011001 stxsdx vs32, r1, r0
+{ "stfdx FREG , GPR , GPR",{0x7C0105AE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10110101110 stfdx f0, r1, r0
+{ "dcba GPR , GPR",{0x7C0105EC,0x001FF800}}, // 01111100000xxxxxxxxxx10111101100 dcba r1, r0
+{ "stfdux FREG , GPR , GPR",{0x7C0105EE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx10111101110 stfdux f0, r1, r0
+{ "lxvw4x VSREG , GPR , GPR",{0x7C010618,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11000011000 lxvw4x vs0, r1, r0
+{ "lhbrx GPR , GPR , GPR",{0x7C01062C,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11000101100 lhbrx r0, r1, r0
+{ "lxvd2x VSREG , GPR , GPR",{0x7C010698,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11010011000 lxvd2x vs0, r1, r0
+{ "lfiwax FREG , GPR , GPR",{0x7C0106AE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11010101110 lfiwax f0, r1, r0
+{ "lfiwzx FREG , GPR , GPR",{0x7C0106EE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11011101110 lfiwzx f0, r1, r0
+{ "stxvw4x VSREG , GPR , GPR",{0x7C010718,0x03FFF801}}, // 011111xxxxxxxxxxxxxxx1110001100x stxvw4x vs0, r1, r0
+{ "sthbrx GPR , GPR , GPR",{0x7C01072C,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11100101100 sthbrx r0, r1, r0
+{ "stxvd2x VSREG , GPR , GPR",{0x7C010798,0x03FFF801}}, // 011111xxxxxxxxxxxxxxx1111001100x stxvd2x vs0, r1, r0
+{ "tlbwehi GPR , GPR",{0x7C0107A4,0x03FFF000}}, // 011111xxxxxxxxxxxxxx011110100100 tlbwehi r0, r1
+{ "icbi GPR , GPR",{0x7C0107AC,0x001FF800}}, // 01111100000xxxxxxxxxx11110101100 icbi r1, r0
+{ "stfiwx FREG , GPR , GPR",{0x7C0107AE,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11110101110 stfiwx f0, r1, r0
+{ "dcbz GPR , GPR",{0x7C0107EC,0x001FF800}}, // 01111100000xxxxxxxxxx11111101100 dcbz r1, r0
+{ "tlbwelo GPR , GPR",{0x7C010FA4,0x03FFF000}}, // 011111xxxxxxxxxxxxxx111110100100 tlbwelo r0, r1
+{ "mfbr1 GPR",{0x7C012286,0x03E00000}}, // 011111xxxxx000010010001010000110 mfbr1 r0
+{ "mtbr1 GPR",{0x7C012386,0x03E00000}}, // 011111xxxxx000010010001110000110 mtbr1 r0
+{ "mfbr2 GPR",{0x7C022286,0x03E00000}}, // 011111xxxxx000100010001010000110 mfbr2 r0
+{ "mtbr2 GPR",{0x7C022386,0x03E00000}}, // 011111xxxxx000100010001110000110 mtbr2 r0
+{ "mfbr3 GPR",{0x7C032286,0x03E00000}}, // 011111xxxxx000110010001010000110 mfbr3 r0
+{ "mtbr3 GPR",{0x7C032386,0x03E00000}}, // 011111xxxxx000110010001110000110 mtbr3 r0
+{ "mfrtcu GPR",{0x7C0402A6,0x03E00000}}, // 011111xxxxx001000000001010100110 mfrtcu r0
+{ "mfbr4 GPR",{0x7C042286,0x03E00000}}, // 011111xxxxx001000010001010000110 mfbr4 r0
+{ "mtbr4 GPR",{0x7C042386,0x03E00000}}, // 011111xxxxx001000010001110000110 mtbr4 r0
+{ "mfrtcl GPR",{0x7C0502A6,0x03E00000}}, // 011111xxxxx001010000001010100110 mfrtcl r0
+{ "mfbr5 GPR",{0x7C052286,0x03E00000}}, // 011111xxxxx001010010001010000110 mfbr5 r0
+{ "mtbr5 GPR",{0x7C052386,0x03E00000}}, // 011111xxxxx001010010001110000110 mtbr5 r0
+{ "mfbr6 GPR",{0x7C062286,0x03E00000}}, // 011111xxxxx001100010001010000110 mfbr6 r0
+{ "mtbr6 GPR",{0x7C062386,0x03E00000}}, // 011111xxxxx001100010001110000110 mtbr6 r0
+{ "mfbr7 GPR",{0x7C072286,0x03E00000}}, // 011111xxxxx001110010001010000110 mfbr7 r0
+{ "mtbr7 GPR",{0x7C072386,0x03E00000}}, // 011111xxxxx001110010001110000110 mtbr7 r0
+{ "mflr GPR",{0x7C0802A6,0x03E00000}}, // 011111xxxxx010000000001010100110 mflr r0
+{ "mtlr GPR",{0x7C0803A6,0x03E00000}}, // 011111xxxxx010000000001110100110 mtlr r0
+{ "mfctr GPR",{0x7C0902A6,0x03E00000}}, // 011111xxxxx010010000001010100110 mfctr r0
+{ "mtctr GPR",{0x7C0903A6,0x03E00000}}, // 011111xxxxx010010000001110100110 mtctr r0
+{ "mftbu GPR",{0x7C0D42E6,0x03E00000}}, // 011111xxxxx011010100001011100110 mftbu r0
+{ "mfpid GPR",{0x7C100AA6,0x03E00000}}, // 011111xxxxx100000000101010100110 mfpid r0
+{ "mtpid GPR",{0x7C100BA6,0x03E00000}}, // 011111xxxxx100000000101110100110 mtpid r0
+{ "mfocrf GPR , NUM",{0x7C101026,0x03EFF000}}, // 011111xxxxx1xxxxxxxx000000100110 mfocrf r0, 1
+{ "mtocrf NUM , GPR",{0x7C101120,0x03EFF000}}, // 011111xxxxx1xxxxxxxx000100100000 mtocrf 1, r0
+{ "mfibatu GPR , NUM",{0x7C1082A6,0x03E60000}}, // 011111xxxxx10xx01000001010100110 mfibatu r0, 0
+{ "mtibatu NUM , GPR",{0x7C1083A6,0x03E60000}}, // 011111xxxxx10xx01000001110100110 mtibatu 0, r0
+{ "mfdscr GPR",{0x7C1102A6,0x03E00000}}, // 011111xxxxx100010000001010100110 mfdscr r0
+{ "mtdscr GPR",{0x7C1103A6,0x03E00000}}, // 011111xxxxx100010000001110100110 mtdscr r0
+{ "mfibatl GPR , NUM",{0x7C1182A6,0x03E60000}}, // 011111xxxxx10xx11000001010100110 mfibatl r0, 0
+{ "mtibatl NUM , GPR",{0x7C1183A6,0x03E60000}}, // 011111xxxxx10xx11000001110100110 mtibatl 0, r0
+{ "mfdsisr GPR",{0x7C1202A6,0x03E00000}}, // 011111xxxxx100100000001010100110 mfdsisr r0
+{ "mtdsisr GPR",{0x7C1203A6,0x03E00000}}, // 011111xxxxx100100000001110100110 mtdsisr r0
+{ "mfdar GPR",{0x7C1302A6,0x03E00000}}, // 011111xxxxx100110000001010100110 mfdar r0
+{ "mtdar GPR",{0x7C1303A6,0x03E00000}}, // 011111xxxxx100110000001110100110 mtdar r0
+{ "mfesr GPR",{0x7C14F2A6,0x03E00000}}, // 011111xxxxx101001111001010100110 mfesr r0
+{ "mtesr GPR",{0x7C14F3A6,0x03E00000}}, // 011111xxxxx101001111001110100110 mtesr r0
+{ "mfdear GPR",{0x7C15F2A6,0x03E00000}}, // 011111xxxxx101011111001010100110 mfdear r0
+{ "mtdear GPR",{0x7C15F3A6,0x03E00000}}, // 011111xxxxx101011111001110100110 mtdear r0
+{ "mfasr GPR",{0x7C1842A6,0x03E00000}}, // 011111xxxxx110000100001010100110 mfasr r0
+{ "mfdbatu GPR , NUM",{0x7C1882A6,0x03E60000}}, // 011111xxxxx11xx01000001010100110 mfdbatu r0, 0
+{ "mtdbatu NUM , GPR",{0x7C1883A6,0x03E60000}}, // 011111xxxxx11xx01000001110100110 mtdbatu 0, r0
+{ "mfdbatl GPR , NUM",{0x7C1982A6,0x03E60000}}, // 011111xxxxx11xx11000001010100110 mfdbatl r0, 0
+{ "mtdbatl NUM , GPR",{0x7C1983A6,0x03E60000}}, // 011111xxxxx11xx11000001110100110 mtdbatl 0, r0
+{ "mftcr GPR",{0x7C1AF2A6,0x03E00000}}, // 011111xxxxx110101111001010100110 mftcr r0
+{ "mttcr GPR",{0x7C1AF3A6,0x03E00000}}, // 011111xxxxx110101111001110100110 mttcr r0
+{ "mfdccr GPR",{0x7C1AFAA6,0x03E00000}}, // 011111xxxxx110101111101010100110 mfdccr r0
+{ "mtdccr GPR",{0x7C1AFBA6,0x03E00000}}, // 011111xxxxx110101111101110100110 mtdccr r0
+{ "mficcr GPR",{0x7C1BFAA6,0x03E00000}}, // 011111xxxxx110111111101010100110 mficcr r0
+{ "mticcr GPR",{0x7C1BFBA6,0x03E00000}}, // 011111xxxxx110111111101110100110 mticcr r0
+{ "mfcfar GPR",{0x7C1C02A6,0x03E00000}}, // 011111xxxxx111000000001010100110 mfcfar r0
+{ "mtcfar GPR",{0x7C1C03A6,0x03E00000}}, // 011111xxxxx111000000001110100110 mtcfar r0
+{ "mttbl GPR",{0x7C1C43A6,0x03E00000}}, // 011111xxxxx111000100001110100110 mttbl r0
+{ "mftbhi GPR",{0x7C1CF2A6,0x03E00000}}, // 011111xxxxx111001111001010100110 mftbhi r0
+{ "mttbhi GPR",{0x7C1CF3A6,0x03E00000}}, // 011111xxxxx111001111001110100110 mttbhi r0
+{ "mfamr GPR",{0x7C1D02A6,0x03E00000}}, // 011111xxxxx111010000001010100110 mfamr r0
+{ "mtamr GPR",{0x7C1D03A6,0x03E00000}}, // 011111xxxxx111010000001110100110 mtamr r0
+{ "mttbu GPR",{0x7C1D43A6,0x03E00000}}, // 011111xxxxx111010100001110100110 mttbu r0
+{ "mftblo GPR",{0x7C1DF2A6,0x03E00000}}, // 011111xxxxx111011111001010100110 mftblo r0
+{ "mttblo GPR",{0x7C1DF3A6,0x03E00000}}, // 011111xxxxx111011111001110100110 mttblo r0
+{ "mfsrr2 GPR",{0x7C1EF2A6,0x03E00000}}, // 011111xxxxx111101111001010100110 mfsrr2 r0
+{ "mtsrr2 GPR",{0x7C1EF3A6,0x03E00000}}, // 011111xxxxx111101111001110100110 mtsrr2 r0
+{ "mfpvr GPR",{0x7C1F42A6,0x03E00000}}, // 011111xxxxx111110100001010100110 mfpvr r0
+{ "mfsrr3 GPR",{0x7C1FF2A6,0x03E00000}}, // 011111xxxxx111111111001010100110 mfsrr3 r0
+{ "mtsrr3 GPR",{0x7C1FF3A6,0x03E00000}}, // 011111xxxxx111111111001110100110 mtsrr3 r0
+{ "cmpd GPR , GPR",{0x7C200000,0x001FF800}}, // 01111100001xxxxxxxxxx00000000000 cmpd r0, r0
+{ "twlgt GPR , GPR",{0x7C200008,0x001FF800}}, // 01111100001xxxxxxxxxx00000001000 twlgt r0, r0
+{ "cmpld GPR , GPR",{0x7C200040,0x001FF800}}, // 01111100001xxxxxxxxxx00001000000 cmpld r0, r0
+{ "waitrsv",{0x7C20007C,0x00000000}}, // 01111100001000000000000001111100 waitrsv
+{ "tdlgt GPR , GPR",{0x7C200088,0x001FF800}}, // 01111100001xxxxxxxxxx00010001000 tdlgt r0, r0
+{ "tlbie GPR , GPR",{0x7C200264,0x03E0F800}}, // 011111xxxxx00000xxxxx01001100100 tlbie r0,r1
+{ "lwsync",{0x7C2004AC,0x00000000}}, // 01111100001000000000010010101100 lwsync
+{ "mbar NUM",{0x7C2006AC,0x03FFF801}}, // 011111xxxxxxxxxxxxxxx1101010110x mbar 1
+{ "tlbsx GPR , GPR , GPR",{0x7C200724,0x03FFF800}}, // 011111xxxxxxxxxxxxxxx11100100100 tlbsx r1, r0, r0
+{ "dcbzl NUM , GPR",{0x7C2007EC,0x0000F800}}, // 0111110000100000xxxxx11111101100 dcbzl 0, r0
+{ "dcbzl GPR , GPR",{0x7C2107EC,0x001FF800}}, // 01111100001xxxxxxxxxx11111101100 dcbzl r1, r0
+{ "twllt GPR , GPR",{0x7C400008,0x001FF800}}, // 01111100010xxxxxxxxxx00000001000 twllt r0, r0
+{ "waitimpl",{0x7C40007C,0x00000000}}, // 01111100010000000000000001111100 waitimpl
+{ "tdllt GPR , GPR",{0x7C400088,0x001FF800}}, // 01111100010xxxxxxxxxx00010001000 tdllt r0, r0
+{ "ptesync",{0x7C4004AC,0x00000000}}, // 01111100010000000000010010101100 ptesync
+{ "wait NUM",{0x7C60007C,0x00000000}}, // 01111100011000000000000001111100 wait 3
+{ "cmpw CREG , GPR , GPR",{0x7C800000,0x039FF800}}, // 011111xxx00xxxxxxxxxx00000000000 cmpw cr1, r0, r0
+{ "tweq GPR , GPR",{0x7C800008,0x001FF800}}, // 01111100100xxxxxxxxxx00000001000 tweq r0, r0
+{ "cmplw CREG , GPR , GPR",{0x7C800040,0x039FF800}}, // 011111xxx00xxxxxxxxxx00001000000 cmplw cr1, r0, r0
+{ "tdeq GPR , GPR",{0x7C800088,0x001FF800}}, // 01111100100xxxxxxxxxx00010001000 tdeq r0, r0
+{ "cmpd CREG , GPR , GPR",{0x7CA00000,0x039FF800}}, // 011111xxx01xxxxxxxxxx00000000000 cmpd cr1, r0, r0
+{ "cmpld CREG , GPR , GPR",{0x7CA00040,0x039FF800}}, // 011111xxx01xxxxxxxxxx00001000000 cmpld cr1, r0, r0
+{ "twgt GPR , GPR",{0x7D000008,0x001FF800}}, // 01111101000xxxxxxxxxx00000001000 twgt r0, r0
+{ "tdgt GPR , GPR",{0x7D000088,0x001FF800}}, // 01111101000xxxxxxxxxx00010001000 tdgt r0, r0
+{ "twlt GPR , GPR",{0x7E000008,0x001FF800}}, // 01111110000xxxxxxxxxx00000001000 twlt r0, r0
+{ "tdlt GPR , GPR",{0x7E000088,0x001FF800}}, // 01111110000xxxxxxxxxx00010001000 tdlt r0, r0
+{ "dstt GPR , GPR , NUM",{0x7E0002AC,0x007FF800}}, // 011111100xxxxxxxxxxxx01010101100 dstt r0, r0, 0
+{ "dststt GPR , GPR , NUM",{0x7E0002EC,0x007FF800}}, // 011111100xxxxxxxxxxxx01011101100 dststt r0, r0, 0
+{ "dssall",{0x7E00066C,0x00000000}}, // 01111110000000000000011001101100 dssall
+{ "twne GPR , GPR",{0x7F000008,0x001FF800}}, // 01111111000xxxxxxxxxx00000001000 twne r0, r0
+{ "tdne GPR , GPR",{0x7F000088,0x001FF800}}, // 01111111000xxxxxxxxxx00010001000 tdne r0, r0
+{ "trap",{0x7FE00008,0x00000000}}, // 01111111111000000000000000001000 trap
+{ "tdu GPR , GPR",{0x7FE00088,0x001FF800}}, // 01111111111xxxxxxxxxx00010001000 tdu r0, r0
+{ "twu GPR , GPR",{0x7FE00808,0x001FF800}}, // 01111111111xxxxxxxxxx00000001000 twu r0, r1
+{ "lwz GPR , NUM ( NUM )",{0x80000000,0x03E0FFFF}}, // 100000xxxxx00000xxxxxxxxxxxxxxxx lwz r0, 0(0)
+{ "lwz GPR , NUM ( GPR )",{0x80010000,0x03FFFFFF}}, // 100000xxxxxxxxxxxxxxxxxxxxxxxxxx lwz r0, 0(r1)
+{ "lwzu GPR , NUM ( NUM )",{0x84000000,0x03E0FFFF}}, // 100001xxxxx00000xxxxxxxxxxxxxxxx lwzu r0, 0(0)
+{ "lwzu GPR , NUM ( GPR )",{0x84010000,0x03FFFFFF}}, // 100001xxxxxxxxxxxxxxxxxxxxxxxxxx lwzu r0, 0(r1)
+{ "lbz GPR , NUM ( NUM )",{0x88000000,0x03E0FFFF}}, // 100010xxxxx00000xxxxxxxxxxxxxxxx lbz r0, 0(0)
+{ "lbz GPR , NUM ( GPR )",{0x88010000,0x03FFFFFF}}, // 100010xxxxxxxxxxxxxxxxxxxxxxxxxx lbz r0, 0(r1)
+{ "lbzu GPR , NUM ( NUM )",{0x8C000000,0x03E0FFFF}}, // 100011xxxxx00000xxxxxxxxxxxxxxxx lbzu r0, 0(0)
+{ "lbzu GPR , NUM ( GPR )",{0x8C010000,0x03FFFFFF}}, // 100011xxxxxxxxxxxxxxxxxxxxxxxxxx lbzu r0, 0(r1)
+{ "stw GPR , NUM ( NUM )",{0x90000000,0x03E0FFFF}}, // 100100xxxxx00000xxxxxxxxxxxxxxxx stw r0, 0(0)
+{ "stw GPR , NUM ( GPR )",{0x90010000,0x03FFFFFF}}, // 100100xxxxxxxxxxxxxxxxxxxxxxxxxx stw r0, 0(r1)
+{ "stwu GPR , NUM ( NUM )",{0x94000000,0x03E0FFFF}}, // 100101xxxxx00000xxxxxxxxxxxxxxxx stwu r0, 0(0)
+{ "stwu GPR , NUM ( GPR )",{0x94010000,0x03FFFFFF}}, // 100101xxxxxxxxxxxxxxxxxxxxxxxxxx stwu r0, 0(r1)
+{ "stb GPR , NUM ( NUM )",{0x98000000,0x03E0FFFF}}, // 100110xxxxx00000xxxxxxxxxxxxxxxx stb r0, 0(0)
+{ "stb GPR , NUM ( GPR )",{0x98010000,0x03FFFFFF}}, // 100110xxxxxxxxxxxxxxxxxxxxxxxxxx stb r0, 0(r1)
+{ "stbu GPR , NUM ( NUM )",{0x9C000000,0x03E0FFFF}}, // 100111xxxxx00000xxxxxxxxxxxxxxxx stbu r0, 0(0)
+{ "stbu GPR , NUM ( GPR )",{0x9C010000,0x03FFFFFF}}, // 100111xxxxxxxxxxxxxxxxxxxxxxxxxx stbu r0, 0(r1)
+{ "lhz GPR , NUM ( NUM )",{0xA0000000,0x03E0FFFF}}, // 101000xxxxx00000xxxxxxxxxxxxxxxx lhz r0, 0(0)
+{ "lhz GPR , NUM ( GPR )",{0xA0010000,0x03FFFFFF}}, // 101000xxxxxxxxxxxxxxxxxxxxxxxxxx lhz r0, 0(r1)
+{ "lhzu GPR , NUM ( NUM )",{0xA4000000,0x03E0FFFF}}, // 101001xxxxx00000xxxxxxxxxxxxxxxx lhzu r0, 0(0)
+{ "lhzu GPR , NUM ( GPR )",{0xA4010000,0x03FFFFFF}}, // 101001xxxxxxxxxxxxxxxxxxxxxxxxxx lhzu r0, 0(r1)
+{ "lha GPR , NUM ( NUM )",{0xA8000000,0x03E0FFFF}}, // 101010xxxxx00000xxxxxxxxxxxxxxxx lha r0, 0(0)
+{ "lha GPR , NUM ( GPR )",{0xA8010000,0x03FFFFFF}}, // 101010xxxxxxxxxxxxxxxxxxxxxxxxxx lha r0, 0(r1)
+{ "lhau GPR , NUM ( NUM )",{0xAC000000,0x03E0FFFF}}, // 101011xxxxx00000xxxxxxxxxxxxxxxx lhau r0, 0(0)
+{ "lhau GPR , NUM ( GPR )",{0xAC010000,0x03FFFFFF}}, // 101011xxxxxxxxxxxxxxxxxxxxxxxxxx lhau r0, 0(r1)
+{ "sth GPR , NUM ( NUM )",{0xB0000000,0x03E0FFFF}}, // 101100xxxxx00000xxxxxxxxxxxxxxxx sth r0, 0(0)
+{ "sth GPR , NUM ( GPR )",{0xB0010000,0x03FFFFFF}}, // 101100xxxxxxxxxxxxxxxxxxxxxxxxxx sth r0, 0(r1)
+{ "sthu GPR , NUM ( NUM )",{0xB4000000,0x03E0FFFF}}, // 101101xxxxx00000xxxxxxxxxxxxxxxx sthu r0, 0(0)
+{ "sthu GPR , NUM ( GPR )",{0xB4010000,0x03FFFFFF}}, // 101101xxxxxxxxxxxxxxxxxxxxxxxxxx sthu r0, 0(r1)
+{ "lmw GPR , NUM ( NUM )",{0xB8000000,0x03E0FFFF}}, // 101110xxxxx00000xxxxxxxxxxxxxxxx lmw r0, 0(0)
+{ "lmw GPR , NUM ( GPR )",{0xB8010000,0x03FFFFFF}}, // 101110xxxxxxxxxxxxxxxxxxxxxxxxxx lmw r0, 0(r1)
+{ "stmw GPR , NUM ( NUM )",{0xBC000000,0x03E0FFFF}}, // 101111xxxxx00000xxxxxxxxxxxxxxxx stmw r0, 0(0)
+{ "stmw GPR , NUM ( GPR )",{0xBC010000,0x03FFFFFF}}, // 101111xxxxxxxxxxxxxxxxxxxxxxxxxx stmw r0, 0(r1)
+{ "lfs FREG , NUM ( NUM )",{0xC0000000,0x03E0FFFF}}, // 110000xxxxx00000xxxxxxxxxxxxxxxx lfs f0, 0(0)
+{ "lfs FREG , NUM ( GPR )",{0xC0010000,0x03FFFFFF}}, // 110000xxxxxxxxxxxxxxxxxxxxxxxxxx lfs f0, 0(r1)
+{ "lfsu FREG , NUM ( NUM )",{0xC4000000,0x03E0FFFF}}, // 110001xxxxx00000xxxxxxxxxxxxxxxx lfsu f0, 0(0)
+{ "lfsu FREG , NUM ( GPR )",{0xC4010000,0x03FFFFFF}}, // 110001xxxxxxxxxxxxxxxxxxxxxxxxxx lfsu f0, 0(r1)
+{ "lfd FREG , NUM ( NUM )",{0xC8000000,0x03E0FFFF}}, // 110010xxxxx00000xxxxxxxxxxxxxxxx lfd f0, 0(0)
+{ "lfd FREG , NUM ( GPR )",{0xC8010000,0x03FFFFFF}}, // 110010xxxxxxxxxxxxxxxxxxxxxxxxxx lfd f0, 0(r1)
+{ "lfdu FREG , NUM ( NUM )",{0xCC000000,0x03E0FFFF}}, // 110011xxxxx00000xxxxxxxxxxxxxxxx lfdu f0, 0(0)
+{ "lfdu FREG , NUM ( GPR )",{0xCC010000,0x03FFFFFF}}, // 110011xxxxxxxxxxxxxxxxxxxxxxxxxx lfdu f0, 0(r1)
+{ "stfs FREG , NUM ( NUM )",{0xD0000000,0x03E0FFFF}}, // 110100xxxxx00000xxxxxxxxxxxxxxxx stfs f0, 0(0)
+{ "stfs FREG , NUM ( GPR )",{0xD0010000,0x03FFFFFF}}, // 110100xxxxxxxxxxxxxxxxxxxxxxxxxx stfs f0, 0(r1)
+{ "stfsu FREG , NUM ( NUM )",{0xD4000000,0x03E0FFFF}}, // 110101xxxxx00000xxxxxxxxxxxxxxxx stfsu f0, 0(0)
+{ "stfsu FREG , NUM ( GPR )",{0xD4010000,0x03FFFFFF}}, // 110101xxxxxxxxxxxxxxxxxxxxxxxxxx stfsu f0, 0(r1)
+{ "stfd FREG , NUM ( NUM )",{0xD8000000,0x03E0FFFF}}, // 110110xxxxx00000xxxxxxxxxxxxxxxx stfd f0, 0(0)
+{ "stfd FREG , NUM ( GPR )",{0xD8010000,0x03FFFFFF}}, // 110110xxxxxxxxxxxxxxxxxxxxxxxxxx stfd f0, 0(r1)
+{ "stfdu FREG , NUM ( NUM )",{0xDC000000,0x03E0FFFF}}, // 110111xxxxx00000xxxxxxxxxxxxxxxx stfdu f0, 0(0)
+{ "stfdu FREG , NUM ( GPR )",{0xDC010000,0x03FFFFFF}}, // 110111xxxxxxxxxxxxxxxxxxxxxxxxxx stfdu f0, 0(r1)
+{ "ld GPR , NUM ( NUM )",{0xE8000000,0x03E0FFFC}}, // 111010xxxxx00000xxxxxxxxxxxxxx00 ld r0, 0(0)
+{ "ldu GPR , NUM ( NUM )",{0xE8000001,0x03E0FFFC}}, // 111010xxxxx00000xxxxxxxxxxxxxx01 ldu r0, 0(0)
+{ "lwa GPR , NUM ( NUM )",{0xE8000002,0x03E0FFFC}}, // 111010xxxxx00000xxxxxxxxxxxxxx10 lwa r0, 0(0)
+{ "ld GPR , NUM ( GPR )",{0xE8010000,0x03FFFFFC}}, // 111010xxxxxxxxxxxxxxxxxxxxxxxx00 ld r0, 0(r1)
+{ "ldu GPR , NUM ( GPR )",{0xE8010001,0x03FFFFFC}}, // 111010xxxxxxxxxxxxxxxxxxxxxxxx01 ldu r0, 0(r1)
+{ "lwa GPR , NUM ( GPR )",{0xE8010002,0x03FFFFFC}}, // 111010xxxxxxxxxxxxxxxxxxxxxxxx10 lwa r0, 0(r1)
+{ "fdivs FREG , FREG , FREG",{0xEC000024,0x03FFF800}}, // 111011xxxxxxxxxxxxxxx00000100100 fdivs f0, f0, f0
+{ "fdivs . FREG , FREG , FREG",{0xEC000025,0x03FFF800}}, // 111011xxxxxxxxxxxxxxx00000100101 fdivs. f0, f0, f0
+{ "fsubs FREG , FREG , FREG",{0xEC000028,0x03FFF800}}, // 111011xxxxxxxxxxxxxxx00000101000 fsubs f0, f0, f0
+{ "fsubs . FREG , FREG , FREG",{0xEC000029,0x03FFF800}}, // 111011xxxxxxxxxxxxxxx00000101001 fsubs. f0, f0, f0
+{ "fadds FREG , FREG , FREG",{0xEC00002A,0x03FFF800}}, // 111011xxxxxxxxxxxxxxx00000101010 fadds f0, f0, f0
+{ "fadds . FREG , FREG , FREG",{0xEC00002B,0x03FFF800}}, // 111011xxxxxxxxxxxxxxx00000101011 fadds. f0, f0, f0
+{ "fsqrts FREG , FREG",{0xEC00002C,0x03E0F800}}, // 111011xxxxx00000xxxxx00000101100 fsqrts f0, f0
+{ "fsqrts . FREG , FREG",{0xEC00002D,0x03E0F800}}, // 111011xxxxx00000xxxxx00000101101 fsqrts. f0, f0
+{ "fres FREG , FREG",{0xEC000030,0x03E0F800}}, // 111011xxxxx00000xxxxx00000110000 fres f0, f0
+{ "fres . FREG , FREG",{0xEC000031,0x03E0F800}}, // 111011xxxxx00000xxxxx00000110001 fres. f0, f0
+{ "fmuls FREG , FREG , FREG",{0xEC000032,0x03FF07C0}}, // 111011xxxxxxxxxx00000xxxxx110010 fmuls f0, f0, f0
+{ "fmuls . FREG , FREG , FREG",{0xEC000033,0x03FF07C0}}, // 111011xxxxxxxxxx00000xxxxx110011 fmuls. f0, f0, f0
+{ "frsqrtes FREG , FREG",{0xEC000034,0x03E0F800}}, // 111011xxxxx00000xxxxx00000110100 frsqrtes f0, f0
+{ "frsqrtes . FREG , FREG",{0xEC000035,0x03E0F800}}, // 111011xxxxx00000xxxxx00000110101 frsqrtes. f0, f0
+{ "fmsubs FREG , FREG , FREG , FREG",{0xEC000038,0x03FFFFC0}}, // 111011xxxxxxxxxxxxxxxxxxxx111000 fmsubs f0, f0, f0, f0
+{"fmsubs . FREG , FREG , FREG , FREG",{0xEC000039,0x03FFFFC0}}, // 111011xxxxxxxxxxxxxxxxxxxx111001 fmsubs. f0, f0, f0, f0
+{ "fmadds FREG , FREG , FREG , FREG",{0xEC00003A,0x03FFFFC0}}, // 111011xxxxxxxxxxxxxxxxxxxx111010 fmadds f0, f0, f0, f0
+{"fmadds . FREG , FREG , FREG , FREG",{0xEC00003B,0x03FFFFC0}}, // 111011xxxxxxxxxxxxxxxxxxxx111011 fmadds. f0, f0, f0, f0
+{ "fnmsubs FREG , FREG , FREG , FREG",{0xEC00003C,0x03FFFFC0}}, // 111011xxxxxxxxxxxxxxxxxxxx111100 fnmsubs f0, f0, f0, f0
+{"fnmsubs . FREG , FREG , FREG , FREG",{0xEC00003D,0x03FFFFC0}}, // 111011xxxxxxxxxxxxxxxxxxxx111101 fnmsubs. f0, f0, f0, f0
+{ "fnmadds FREG , FREG , FREG , FREG",{0xEC00003E,0x03FFFFC0}}, // 111011xxxxxxxxxxxxxxxxxxxx111110 fnmadds f0, f0, f0, f0
+{"fnmadds . FREG , FREG , FREG , FREG",{0xEC00003F,0x03FFFFC0}}, // 111011xxxxxxxxxxxxxxxxxxxx111111 fnmadds. f0, f0, f0, f0
+{ "fcfids FREG , FREG",{0xEC00069C,0x03E0F800}}, // 111011xxxxx00000xxxxx11010011100 fcfids f0, f0
+{ "fcfids . FREG , FREG",{0xEC00069D,0x03E0F800}}, // 111011xxxxx00000xxxxx11010011101 fcfids. f0, f0
+{ "fcfidus FREG , FREG",{0xEC00079C,0x03E0F800}}, // 111011xxxxx00000xxxxx11110011100 fcfidus f0, f0
+{ "fcfidus . FREG , FREG",{0xEC00079D,0x03E0F800}}, // 111011xxxxx00000xxxxx11110011101 fcfidus. f0, f0
+{"xxsldwi VSREG , VSREG , VSREG , NUM",{0xF0000010,0x03FFFB07}}, // 111100xxxxxxxxxxxxxxx0xx00010xxx xxsldwi vs0, vs0, vs0, 0
+{"xxsel VSREG , VSREG , VSREG , VSREG",{0xF0000030,0x03FFFFCF}}, // 111100xxxxxxxxxxxxxxxxxxxx11xxxx xxsel vs0, vs0, vs0, vs0
+{ "xxspltd VSREG , VSREG , NUM",{0xF0000050,0x03FFFB07}}, // 111100xxxxxxxxxxxxxxx0xx01010xxx xxspltd vs0, vs0, 0
+{ "xxmrghd VSREG , VSREG , VSREG",{0xF0000052,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx00001010xxx xxmrghd vs0, vs0, vs32
+{ "xxmrghw VSREG , VSREG , VSREG",{0xF0000090,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx00010010xxx xxmrghw vs0, vs0, vs0
+{ "xsadddp FREG , FREG , FREG",{0xF0000100,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100000000 xsadddp f0, f0, f0
+{ "xsadddp VSREG , FREG , FREG",{0xF0000101,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100000001 xsadddp vs32, f0, f0
+{ "xsadddp FREG , FREG , VSREG",{0xF0000102,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100000010 xsadddp f0, f0, vs32
+{ "xsadddp VSREG , FREG , VSREG",{0xF0000103,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100000011 xsadddp vs32, f0, vs32
+{ "xsadddp FREG , VSREG , FREG",{0xF0000104,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100000100 xsadddp f0, vs32, f0
+{ "xsadddp VSREG , VSREG , FREG",{0xF0000105,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100000101 xsadddp vs32, vs32, f0
+{ "xsadddp FREG , VSREG , VSREG",{0xF0000106,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100000110 xsadddp f0, vs32, vs32
+{ "xsadddp VSREG , VSREG , VSREG",{0xF0000107,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100000111 xsadddp vs32, vs32, vs32
+{ "xsmaddadp FREG , FREG , FREG",{0xF0000108,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100001000 xsmaddadp f0, f0, f0
+{ "xsmaddadp VSREG , FREG , FREG",{0xF0000109,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100001001 xsmaddadp vs32, f0, f0
+{ "xsmaddadp FREG , FREG , VSREG",{0xF000010A,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100001010 xsmaddadp f0, f0, vs32
+{ "xsmaddadp VSREG , FREG , VSREG",{0xF000010B,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100001011 xsmaddadp vs32, f0, vs32
+{ "xsmaddadp FREG , VSREG , FREG",{0xF000010C,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100001100 xsmaddadp f0, vs32, f0
+{ "xsmaddadp VSREG , VSREG , FREG",{0xF000010D,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100001101 xsmaddadp vs32, vs32, f0
+{ "xsmaddadp FREG , VSREG , VSREG",{0xF000010E,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100001110 xsmaddadp f0, vs32, vs32
+{ "xsmaddadp VSREG , VSREG , VSREG",{0xF000010F,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00100001111 xsmaddadp vs32, vs32, vs32
+{ "xscmpudp CREG , FREG , FREG",{0xF0000118,0x039FF800}}, // 111100xxx00xxxxxxxxxx00100011000 xscmpudp cr0, f0, f0
+{ "xscmpudp CREG , FREG , VSREG",{0xF000011A,0x039FF800}}, // 111100xxx00xxxxxxxxxx00100011010 xscmpudp cr0, f0, vs32
+{ "xscmpudp CREG , VSREG , FREG",{0xF000011C,0x039FF800}}, // 111100xxx00xxxxxxxxxx00100011100 xscmpudp cr0, vs32, f0
+{ "xscmpudp CREG , VSREG , VSREG",{0xF000011E,0x039FF800}}, // 111100xxx00xxxxxxxxxx00100011110 xscmpudp cr0, vs32, vs32
+{ "xscvdpuxws FREG , FREG",{0xF0000120,0x03E0F800}}, // 111100xxxxx00000xxxxx00100100000 xscvdpuxws f0, f0
+{ "xscvdpuxws VSREG , FREG",{0xF0000121,0x03E0F800}}, // 111100xxxxx00000xxxxx00100100001 xscvdpuxws vs32, f0
+{ "xscvdpuxws FREG , VSREG",{0xF0000122,0x03E0F800}}, // 111100xxxxx00000xxxxx00100100010 xscvdpuxws f0, vs32
+{ "xscvdpuxws VSREG , VSREG",{0xF0000123,0x03E0F800}}, // 111100xxxxx00000xxxxx00100100011 xscvdpuxws vs32, vs32
+{ "xsrdpi FREG , FREG",{0xF0000124,0x03E0F800}}, // 111100xxxxx00000xxxxx00100100100 xsrdpi f0, f0
+{ "xsrdpi VSREG , FREG",{0xF0000125,0x03E0F800}}, // 111100xxxxx00000xxxxx00100100101 xsrdpi vs32, f0
+{ "xsrdpi FREG , VSREG",{0xF0000126,0x03E0F800}}, // 111100xxxxx00000xxxxx00100100110 xsrdpi f0, vs32
+{ "xsrdpi VSREG , VSREG",{0xF0000127,0x03E0F800}}, // 111100xxxxx00000xxxxx00100100111 xsrdpi vs32, vs32
+{ "xsrsqrtedp FREG , FREG",{0xF0000128,0x03E0F800}}, // 111100xxxxx00000xxxxx00100101000 xsrsqrtedp f0, f0
+{ "xsrsqrtedp VSREG , FREG",{0xF0000129,0x03E0F800}}, // 111100xxxxx00000xxxxx00100101001 xsrsqrtedp vs32, f0
+{ "xsrsqrtedp FREG , VSREG",{0xF000012A,0x03E0F800}}, // 111100xxxxx00000xxxxx00100101010 xsrsqrtedp f0, vs32
+{ "xsrsqrtedp VSREG , VSREG",{0xF000012B,0x03E0F800}}, // 111100xxxxx00000xxxxx00100101011 xsrsqrtedp vs32, vs32
+{ "xssqrtdp FREG , FREG",{0xF000012C,0x03E0F800}}, // 111100xxxxx00000xxxxx00100101100 xssqrtdp f0, f0
+{ "xssqrtdp VSREG , FREG",{0xF000012D,0x03E0F800}}, // 111100xxxxx00000xxxxx00100101101 xssqrtdp vs32, f0
+{ "xssqrtdp FREG , VSREG",{0xF000012E,0x03E0F800}}, // 111100xxxxx00000xxxxx00100101110 xssqrtdp f0, vs32
+{ "xssqrtdp VSREG , VSREG",{0xF000012F,0x03E0F800}}, // 111100xxxxx00000xxxxx00100101111 xssqrtdp vs32, vs32
+{ "xssubdp FREG , FREG , FREG",{0xF0000140,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101000000 xssubdp f0, f0, f0
+{ "xssubdp VSREG , FREG , FREG",{0xF0000141,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101000001 xssubdp vs32, f0, f0
+{ "xssubdp FREG , FREG , VSREG",{0xF0000142,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101000010 xssubdp f0, f0, vs32
+{ "xssubdp VSREG , FREG , VSREG",{0xF0000143,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101000011 xssubdp vs32, f0, vs32
+{ "xssubdp FREG , VSREG , FREG",{0xF0000144,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101000100 xssubdp f0, vs32, f0
+{ "xssubdp VSREG , VSREG , FREG",{0xF0000145,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101000101 xssubdp vs32, vs32, f0
+{ "xssubdp FREG , VSREG , VSREG",{0xF0000146,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101000110 xssubdp f0, vs32, vs32
+{ "xssubdp VSREG , VSREG , VSREG",{0xF0000147,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101000111 xssubdp vs32, vs32, vs32
+{ "xsmaddmdp FREG , FREG , FREG",{0xF0000148,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101001000 xsmaddmdp f0, f0, f0
+{ "xsmaddmdp VSREG , FREG , FREG",{0xF0000149,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101001001 xsmaddmdp vs32, f0, f0
+{ "xsmaddmdp FREG , FREG , VSREG",{0xF000014A,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101001010 xsmaddmdp f0, f0, vs32
+{ "xsmaddmdp VSREG , FREG , VSREG",{0xF000014B,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101001011 xsmaddmdp vs32, f0, vs32
+{ "xsmaddmdp FREG , VSREG , FREG",{0xF000014C,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101001100 xsmaddmdp f0, vs32, f0
+{ "xsmaddmdp VSREG , VSREG , FREG",{0xF000014D,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101001101 xsmaddmdp vs32, vs32, f0
+{ "xsmaddmdp FREG , VSREG , VSREG",{0xF000014E,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101001110 xsmaddmdp f0, vs32, vs32
+{ "xsmaddmdp VSREG , VSREG , VSREG",{0xF000014F,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00101001111 xsmaddmdp vs32, vs32, vs32
+{"xxpermdi VSREG , VSREG , VSREG , NUM",{0xF0000150,0x03FFFB07}}, // 111100xxxxxxxxxxxxxxx0xx01010xxx xxpermdi vs0, vs0, vs0, 1
+{ "xscmpodp CREG , FREG , FREG",{0xF0000158,0x039FF800}}, // 111100xxx00xxxxxxxxxx00101011000 xscmpodp cr0, f0, f0
+{ "xscmpodp CREG , FREG , VSREG",{0xF000015A,0x039FF800}}, // 111100xxx00xxxxxxxxxx00101011010 xscmpodp cr0, f0, vs32
+{ "xscmpodp CREG , VSREG , FREG",{0xF000015C,0x039FF800}}, // 111100xxx00xxxxxxxxxx00101011100 xscmpodp cr0, vs32, f0
+{ "xscmpodp CREG , VSREG , VSREG",{0xF000015E,0x039FF800}}, // 111100xxx00xxxxxxxxxx00101011110 xscmpodp cr0, vs32, vs32
+{ "xscvdpsxws FREG , FREG",{0xF0000160,0x03E0F800}}, // 111100xxxxx00000xxxxx00101100000 xscvdpsxws f0, f0
+{ "xscvdpsxws VSREG , FREG",{0xF0000161,0x03E0F800}}, // 111100xxxxx00000xxxxx00101100001 xscvdpsxws vs32, f0
+{ "xscvdpsxws FREG , VSREG",{0xF0000162,0x03E0F800}}, // 111100xxxxx00000xxxxx00101100010 xscvdpsxws f0, vs32
+{ "xscvdpsxws VSREG , VSREG",{0xF0000163,0x03E0F800}}, // 111100xxxxx00000xxxxx00101100011 xscvdpsxws vs32, vs32
+{ "xsrdpiz FREG , FREG",{0xF0000164,0x03E0F800}}, // 111100xxxxx00000xxxxx00101100100 xsrdpiz f0, f0
+{ "xsrdpiz VSREG , FREG",{0xF0000165,0x03E0F800}}, // 111100xxxxx00000xxxxx00101100101 xsrdpiz vs32, f0
+{ "xsrdpiz FREG , VSREG",{0xF0000166,0x03E0F800}}, // 111100xxxxx00000xxxxx00101100110 xsrdpiz f0, vs32
+{ "xsrdpiz VSREG , VSREG",{0xF0000167,0x03E0F800}}, // 111100xxxxx00000xxxxx00101100111 xsrdpiz vs32, vs32
+{ "xsredp FREG , FREG",{0xF0000168,0x03E0F800}}, // 111100xxxxx00000xxxxx00101101000 xsredp f0, f0
+{ "xsredp VSREG , FREG",{0xF0000169,0x03E0F800}}, // 111100xxxxx00000xxxxx00101101001 xsredp vs32, f0
+{ "xsredp FREG , VSREG",{0xF000016A,0x03E0F800}}, // 111100xxxxx00000xxxxx00101101010 xsredp f0, vs32
+{ "xsredp VSREG , VSREG",{0xF000016B,0x03E0F800}}, // 111100xxxxx00000xxxxx00101101011 xsredp vs32, vs32
+{ "xsmuldp FREG , FREG , FREG",{0xF0000180,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110000000 xsmuldp f0, f0, f0
+{ "xsmuldp VSREG , FREG , FREG",{0xF0000181,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110000001 xsmuldp vs32, f0, f0
+{ "xsmuldp FREG , FREG , VSREG",{0xF0000182,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110000010 xsmuldp f0, f0, vs32
+{ "xsmuldp VSREG , FREG , VSREG",{0xF0000183,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110000011 xsmuldp vs32, f0, vs32
+{ "xsmuldp FREG , VSREG , FREG",{0xF0000184,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110000100 xsmuldp f0, vs32, f0
+{ "xsmuldp VSREG , VSREG , FREG",{0xF0000185,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110000101 xsmuldp vs32, vs32, f0
+{ "xsmuldp FREG , VSREG , VSREG",{0xF0000186,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110000110 xsmuldp f0, vs32, vs32
+{ "xsmuldp VSREG , VSREG , VSREG",{0xF0000187,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110000111 xsmuldp vs32, vs32, vs32
+{ "xsmsubadp FREG , FREG , FREG",{0xF0000188,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110001000 xsmsubadp f0, f0, f0
+{ "xsmsubadp VSREG , FREG , FREG",{0xF0000189,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110001001 xsmsubadp vs32, f0, f0
+{ "xsmsubadp FREG , FREG , VSREG",{0xF000018A,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110001010 xsmsubadp f0, f0, vs32
+{ "xsmsubadp VSREG , FREG , VSREG",{0xF000018B,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110001011 xsmsubadp vs32, f0, vs32
+{ "xsmsubadp FREG , VSREG , FREG",{0xF000018C,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110001100 xsmsubadp f0, vs32, f0
+{ "xsmsubadp VSREG , VSREG , FREG",{0xF000018D,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110001101 xsmsubadp vs32, vs32, f0
+{ "xsmsubadp FREG , VSREG , VSREG",{0xF000018E,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110001110 xsmsubadp f0, vs32, vs32
+{ "xsmsubadp VSREG , VSREG , VSREG",{0xF000018F,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00110001111 xsmsubadp vs32, vs32, vs32
+{ "xxmrglw VSREG , VSREG , VSREG",{0xF0000190,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx00110010xxx xxmrglw vs0, vs0, vs0
+{ "xsrdpip FREG , FREG",{0xF00001A4,0x03E0F800}}, // 111100xxxxx00000xxxxx00110100100 xsrdpip f0, f0
+{ "xsrdpip VSREG , FREG",{0xF00001A5,0x03E0F800}}, // 111100xxxxx00000xxxxx00110100101 xsrdpip vs32, f0
+{ "xsrdpip FREG , VSREG",{0xF00001A6,0x03E0F800}}, // 111100xxxxx00000xxxxx00110100110 xsrdpip f0, vs32
+{ "xsrdpip VSREG , VSREG",{0xF00001A7,0x03E0F800}}, // 111100xxxxx00000xxxxx00110100111 xsrdpip vs32, vs32
+{ "xstsqrtdp CREG , FREG",{0xF00001A8,0x0380F800}}, // 111100xxx0000000xxxxx00110101000 xstsqrtdp cr0, f0
+{ "xstsqrtdp CREG , VSREG",{0xF00001AA,0x0380F800}}, // 111100xxx0000000xxxxx00110101010 xstsqrtdp cr0, vs32
+{ "xsrdpic FREG , FREG",{0xF00001AC,0x03E0F800}}, // 111100xxxxx00000xxxxx00110101100 xsrdpic f0, f0
+{ "xsrdpic VSREG , FREG",{0xF00001AD,0x03E0F800}}, // 111100xxxxx00000xxxxx00110101101 xsrdpic vs32, f0
+{ "xsrdpic FREG , VSREG",{0xF00001AE,0x03E0F800}}, // 111100xxxxx00000xxxxx00110101110 xsrdpic f0, vs32
+{ "xsrdpic VSREG , VSREG",{0xF00001AF,0x03E0F800}}, // 111100xxxxx00000xxxxx00110101111 xsrdpic vs32, vs32
+{ "xsdivdp FREG , FREG , FREG",{0xF00001C0,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111000000 xsdivdp f0, f0, f0
+{ "xsdivdp VSREG , FREG , FREG",{0xF00001C1,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111000001 xsdivdp vs32, f0, f0
+{ "xsdivdp FREG , FREG , VSREG",{0xF00001C2,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111000010 xsdivdp f0, f0, vs32
+{ "xsdivdp VSREG , FREG , VSREG",{0xF00001C3,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111000011 xsdivdp vs32, f0, vs32
+{ "xsdivdp FREG , VSREG , FREG",{0xF00001C4,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111000100 xsdivdp f0, vs32, f0
+{ "xsdivdp VSREG , VSREG , FREG",{0xF00001C5,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111000101 xsdivdp vs32, vs32, f0
+{ "xsdivdp FREG , VSREG , VSREG",{0xF00001C6,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111000110 xsdivdp f0, vs32, vs32
+{ "xsdivdp VSREG , VSREG , VSREG",{0xF00001C7,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111000111 xsdivdp vs32, vs32, vs32
+{ "xsmsubmdp FREG , FREG , FREG",{0xF00001C8,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111001000 xsmsubmdp f0, f0, f0
+{ "xsmsubmdp VSREG , FREG , FREG",{0xF00001C9,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111001001 xsmsubmdp vs32, f0, f0
+{ "xsmsubmdp FREG , FREG , VSREG",{0xF00001CA,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111001010 xsmsubmdp f0, f0, vs32
+{ "xsmsubmdp VSREG , FREG , VSREG",{0xF00001CB,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111001011 xsmsubmdp vs32, f0, vs32
+{ "xsmsubmdp FREG , VSREG , FREG",{0xF00001CC,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111001100 xsmsubmdp f0, vs32, f0
+{ "xsmsubmdp VSREG , VSREG , FREG",{0xF00001CD,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111001101 xsmsubmdp vs32, vs32, f0
+{ "xsmsubmdp FREG , VSREG , VSREG",{0xF00001CE,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111001110 xsmsubmdp f0, vs32, vs32
+{ "xsmsubmdp VSREG , VSREG , VSREG",{0xF00001CF,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx00111001111 xsmsubmdp vs32, vs32, vs32
+{ "xsrdpim FREG , FREG",{0xF00001E4,0x03E0F800}}, // 111100xxxxx00000xxxxx00111100100 xsrdpim f0, f0
+{ "xsrdpim VSREG , FREG",{0xF00001E5,0x03E0F800}}, // 111100xxxxx00000xxxxx00111100101 xsrdpim vs32, f0
+{ "xsrdpim FREG , VSREG",{0xF00001E6,0x03E0F800}}, // 111100xxxxx00000xxxxx00111100110 xsrdpim f0, vs32
+{ "xsrdpim VSREG , VSREG",{0xF00001E7,0x03E0F800}}, // 111100xxxxx00000xxxxx00111100111 xsrdpim vs32, vs32
+{ "xstdivdp CREG , FREG , FREG",{0xF00001E8,0x039FF800}}, // 111100xxx00xxxxxxxxxx00111101000 xstdivdp cr0, f0, f0
+{ "xstdivdp CREG , FREG , VSREG",{0xF00001EA,0x039FF800}}, // 111100xxx00xxxxxxxxxx00111101010 xstdivdp cr0, f0, vs32
+{ "xstdivdp CREG , VSREG , FREG",{0xF00001EC,0x039FF800}}, // 111100xxx00xxxxxxxxxx00111101100 xstdivdp cr0, vs32, f0
+{ "xstdivdp CREG , VSREG , VSREG",{0xF00001EE,0x039FF800}}, // 111100xxx00xxxxxxxxxx00111101110 xstdivdp cr0, vs32, vs32
+{ "xvaddsp VSREG , VSREG , VSREG",{0xF0000200,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01000000xxx xvaddsp vs0, vs0, vs0
+{ "xvmaddasp VSREG , VSREG , VSREG",{0xF0000208,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01000001xxx xvmaddasp vs0, vs0, vs0
+{ "xvcmpeqsp VSREG , VSREG , VSREG",{0xF0000218,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01000011xxx xvcmpeqsp vs0, vs0, vs0
+{ "xvcvspuxws VSREG , VSREG",{0xF0000220,0x03E0F803}}, // 111100xxxxx00000xxxxx010001000xx xvcvspuxws vs0, vs0
+{ "xvrspi VSREG , VSREG",{0xF0000224,0x03E0F803}}, // 111100xxxxx00000xxxxx010001001xx xvrspi vs0, vs0
+{ "xvrsqrtesp VSREG , VSREG",{0xF0000228,0x03E0F803}}, // 111100xxxxx00000xxxxx010001010xx xvrsqrtesp vs0, vs0
+{ "xvsqrtsp VSREG , VSREG",{0xF000022C,0x03E0F803}}, // 111100xxxxx00000xxxxx010001011xx xvsqrtsp vs0, vs0
+{ "xvsubsp VSREG , VSREG , VSREG",{0xF0000240,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01001000xxx xvsubsp vs0, vs0, vs0
+{ "xvmaddmsp VSREG , VSREG , VSREG",{0xF0000248,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01001001xxx xvmaddmsp vs0, vs0, vs0
+{ "xxswapd VSREG , VSREG",{0xF0000250,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01001010xxx xxswapd vs0, vs0
+{ "xvcmpgtsp VSREG , VSREG , VSREG",{0xF0000258,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01001011xxx xvcmpgtsp vs0, vs0, vs0
+{ "xvcvspsxws VSREG , VSREG",{0xF0000260,0x03E0F803}}, // 111100xxxxx00000xxxxx010011000xx xvcvspsxws vs0, vs0
+{ "xvrspiz VSREG , VSREG",{0xF0000264,0x03E0F803}}, // 111100xxxxx00000xxxxx010011001xx xvrspiz vs0, vs0
+{ "xvresp VSREG , VSREG",{0xF0000268,0x03E0F803}}, // 111100xxxxx00000xxxxx010011010xx xvresp vs0, vs0
+{ "xvmulsp VSREG , VSREG , VSREG",{0xF0000280,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01010000xxx xvmulsp vs0, vs0, vs0
+{ "xvmsubasp VSREG , VSREG , VSREG",{0xF0000288,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01010001xxx xvmsubasp vs0, vs0, vs0
+{ "xxspltw VSREG , VSREG , NUM",{0xF0000290,0x03E3F803}}, // 111100xxxxx000xxxxxxx010100100xx xxspltw vs0, vs0, 0
+{ "xvcmpgesp VSREG , VSREG , VSREG",{0xF0000298,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01010011xxx xvcmpgesp vs0, vs0, vs0
+{ "xvcvuxwsp VSREG , VSREG",{0xF00002A0,0x03E0F803}}, // 111100xxxxx00000xxxxx010101000xx xvcvuxwsp vs0, vs0
+{ "xvrspip VSREG , VSREG",{0xF00002A4,0x03E0F803}}, // 111100xxxxx00000xxxxx010101001xx xvrspip vs0, vs0
+{ "xvtsqrtsp CREG , VSREG",{0xF00002A8,0x0380F802}}, // 111100xxx0000000xxxxx010101010x0 xvtsqrtsp cr0, vs0
+{ "xvrspic VSREG , VSREG",{0xF00002AC,0x03E0F803}}, // 111100xxxxx00000xxxxx010101011xx xvrspic vs0, vs0
+{ "xvdivsp VSREG , VSREG , VSREG",{0xF00002C0,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01011000xxx xvdivsp vs0, vs0, vs0
+{ "xvmsubmsp VSREG , VSREG , VSREG",{0xF00002C8,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01011001xxx xvmsubmsp vs0, vs0, vs0
+{ "xvcvsxwsp VSREG , VSREG",{0xF00002E0,0x03E0F803}}, // 111100xxxxx00000xxxxx010111000xx xvcvsxwsp vs0, vs0
+{ "xvrspim VSREG , VSREG",{0xF00002E4,0x03E0F803}}, // 111100xxxxx00000xxxxx010111001xx xvrspim vs0, vs0
+{ "xvtdivsp CREG , VSREG , VSREG",{0xF00002E8,0x039FF806}}, // 111100xxx00xxxxxxxxxx01011101xx0 xvtdivsp cr0, vs0, vs0
+{ "xvadddp VSREG , VSREG , VSREG",{0xF0000300,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01100000xxx xvadddp vs0, vs0, vs0
+{ "xvmaddadp VSREG , VSREG , VSREG",{0xF0000308,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01100001xxx xvmaddadp vs0, vs0, vs0
+{ "xvcmpeqdp VSREG , VSREG , VSREG",{0xF0000318,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01100011xxx xvcmpeqdp vs0, vs0, vs0
+{ "xvcvdpuxws VSREG , VSREG",{0xF0000320,0x03E0F803}}, // 111100xxxxx00000xxxxx011001000xx xvcvdpuxws vs0, vs0
+{ "xvrdpi VSREG , VSREG",{0xF0000324,0x03E0F803}}, // 111100xxxxx00000xxxxx011001001xx xvrdpi vs0, vs0
+{ "xvrsqrtedp VSREG , VSREG",{0xF0000328,0x03E0F803}}, // 111100xxxxx00000xxxxx011001010xx xvrsqrtedp vs0, vs0
+{ "xvsqrtdp VSREG , VSREG",{0xF000032C,0x03E0F803}}, // 111100xxxxx00000xxxxx011001011xx xvsqrtdp vs0, vs0
+{ "xvsubdp VSREG , VSREG , VSREG",{0xF0000340,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01101000xxx xvsubdp vs0, vs0, vs0
+{ "xvmaddmdp VSREG , VSREG , VSREG",{0xF0000348,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01101001xxx xvmaddmdp vs0, vs0, vs0
+{ "xxmrgld VSREG , VSREG , VSREG",{0xF0000352,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01101010xxx xxmrgld vs0, vs0, vs32
+{ "xvcmpgtdp VSREG , VSREG , VSREG",{0xF0000358,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01101011xxx xvcmpgtdp vs0, vs0, vs0
+{ "xvcvdpsxws VSREG , VSREG",{0xF0000360,0x03E0F803}}, // 111100xxxxx00000xxxxx011011000xx xvcvdpsxws vs0, vs0
+{ "xvrdpiz VSREG , VSREG",{0xF0000364,0x03E0F803}}, // 111100xxxxx00000xxxxx011011001xx xvrdpiz vs0, vs0
+{ "xvredp VSREG , VSREG",{0xF0000368,0x03E0F803}}, // 111100xxxxx00000xxxxx011011010xx xvredp vs0, vs0
+{ "xvmuldp VSREG , VSREG , VSREG",{0xF0000380,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01110000xxx xvmuldp vs0, vs0, vs0
+{ "xvmsubadp VSREG , VSREG , VSREG",{0xF0000388,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01110001xxx xvmsubadp vs0, vs0, vs0
+{ "xvcmpgedp VSREG , VSREG , VSREG",{0xF0000398,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01110011xxx xvcmpgedp vs0, vs0, vs0
+{ "xvcvuxwdp VSREG , VSREG",{0xF00003A0,0x03E0F803}}, // 111100xxxxx00000xxxxx011101000xx xvcvuxwdp vs0, vs0
+{ "xvrdpip VSREG , VSREG",{0xF00003A4,0x03E0F803}}, // 111100xxxxx00000xxxxx011101001xx xvrdpip vs0, vs0
+{ "xvtsqrtdp CREG , VSREG",{0xF00003A8,0x0380F802}}, // 111100xxx0000000xxxxx011101010x0 xvtsqrtdp cr0, vs0
+{ "xvrdpic VSREG , VSREG",{0xF00003AC,0x03E0F803}}, // 111100xxxxx00000xxxxx011101011xx xvrdpic vs0, vs0
+{ "xvdivdp VSREG , VSREG , VSREG",{0xF00003C0,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01111000xxx xvdivdp vs0, vs0, vs0
+{ "xvmsubmdp VSREG , VSREG , VSREG",{0xF00003C8,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx01111001xxx xvmsubmdp vs0, vs0, vs0
+{ "xvcvsxwdp VSREG , VSREG",{0xF00003E0,0x03E0F803}}, // 111100xxxxx00000xxxxx011111000xx xvcvsxwdp vs0, vs0
+{ "xvrdpim VSREG , VSREG",{0xF00003E4,0x03E0F803}}, // 111100xxxxx00000xxxxx011111001xx xvrdpim vs0, vs0
+{ "xvtdivdp CREG , VSREG , VSREG",{0xF00003E8,0x039FF806}}, // 111100xxx00xxxxxxxxxx01111101xx0 xvtdivdp cr0, vs0, vs0
+{ "xxland VSREG , VSREG , VSREG",{0xF0000410,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx10000010xxx xxland vs0, vs0, vs0
+{ "xscvdpsp FREG , FREG",{0xF0000424,0x03E0F800}}, // 111100xxxxx00000xxxxx10000100100 xscvdpsp f0, f0
+{ "xscvdpsp VSREG , FREG",{0xF0000425,0x03E0F800}}, // 111100xxxxx00000xxxxx10000100101 xscvdpsp vs32, f0
+{ "xscvdpsp FREG , VSREG",{0xF0000426,0x03E0F800}}, // 111100xxxxx00000xxxxx10000100110 xscvdpsp f0, vs32
+{ "xscvdpsp VSREG , VSREG",{0xF0000427,0x03E0F800}}, // 111100xxxxx00000xxxxx10000100111 xscvdpsp vs32, vs32
+{ "xxlandc VSREG , VSREG , VSREG",{0xF0000450,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx10001010xxx xxlandc vs0, vs0, vs0
+{ "xxlor VSREG , VSREG , VSREG",{0xF0000490,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx10010010xxx xxlor vs0, vs0, vs0
+{ "xxlxor VSREG , VSREG , VSREG",{0xF00004D0,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx10011010xxx xxlxor vs0, vs0, vs0
+{ "xsmaxdp FREG , FREG , FREG",{0xF0000500,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100000000 xsmaxdp f0, f0, f0
+{ "xsmaxdp VSREG , FREG , FREG",{0xF0000501,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100000001 xsmaxdp vs32, f0, f0
+{ "xsmaxdp FREG , FREG , VSREG",{0xF0000502,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100000010 xsmaxdp f0, f0, vs32
+{ "xsmaxdp VSREG , FREG , VSREG",{0xF0000503,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100000011 xsmaxdp vs32, f0, vs32
+{ "xsmaxdp FREG , VSREG , FREG",{0xF0000504,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100000100 xsmaxdp f0, vs32, f0
+{ "xsmaxdp VSREG , VSREG , FREG",{0xF0000505,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100000101 xsmaxdp vs32, vs32, f0
+{ "xsmaxdp FREG , VSREG , VSREG",{0xF0000506,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100000110 xsmaxdp f0, vs32, vs32
+{ "xsmaxdp VSREG , VSREG , VSREG",{0xF0000507,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100000111 xsmaxdp vs32, vs32, vs32
+{ "xsnmaddadp FREG , FREG , FREG",{0xF0000508,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100001000 xsnmaddadp f0, f0, f0
+{ "xsnmaddadp VSREG , FREG , FREG",{0xF0000509,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100001001 xsnmaddadp vs32, f0, f0
+{ "xsnmaddadp FREG , FREG , VSREG",{0xF000050A,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100001010 xsnmaddadp f0, f0, vs32
+{ "xsnmaddadp VSREG , FREG , VSREG",{0xF000050B,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100001011 xsnmaddadp vs32, f0, vs32
+{ "xsnmaddadp FREG , VSREG , FREG",{0xF000050C,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100001100 xsnmaddadp f0, vs32, f0
+{ "xsnmaddadp VSREG , VSREG , FREG",{0xF000050D,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100001101 xsnmaddadp vs32, vs32, f0
+{ "xsnmaddadp FREG , VSREG , VSREG",{0xF000050E,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100001110 xsnmaddadp f0, vs32, vs32
+{ "xsnmaddadp VSREG , VSREG , VSREG",{0xF000050F,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10100001111 xsnmaddadp vs32, vs32, vs32
+{ "xxlnor VSREG , VSREG , VSREG",{0xF0000510,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx10100010xxx xxlnor vs0, vs0, vs0
+{ "xscvdpuxds FREG , FREG",{0xF0000520,0x03E0F800}}, // 111100xxxxx00000xxxxx10100100000 xscvdpuxds f0, f0
+{ "xscvdpuxds VSREG , FREG",{0xF0000521,0x03E0F800}}, // 111100xxxxx00000xxxxx10100100001 xscvdpuxds vs32, f0
+{ "xscvdpuxds FREG , VSREG",{0xF0000522,0x03E0F800}}, // 111100xxxxx00000xxxxx10100100010 xscvdpuxds f0, vs32
+{ "xscvdpuxds VSREG , VSREG",{0xF0000523,0x03E0F800}}, // 111100xxxxx00000xxxxx10100100011 xscvdpuxds vs32, vs32
+{ "xscvspdp FREG , FREG",{0xF0000524,0x03E0F800}}, // 111100xxxxx00000xxxxx10100100100 xscvspdp f0, f0
+{ "xscvspdp VSREG , FREG",{0xF0000525,0x03E0F800}}, // 111100xxxxx00000xxxxx10100100101 xscvspdp vs32, f0
+{ "xscvspdp FREG , VSREG",{0xF0000526,0x03E0F800}}, // 111100xxxxx00000xxxxx10100100110 xscvspdp f0, vs32
+{ "xscvspdp VSREG , VSREG",{0xF0000527,0x03E0F800}}, // 111100xxxxx00000xxxxx10100100111 xscvspdp vs32, vs32
+{ "xsmindp FREG , FREG , FREG",{0xF0000540,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101000000 xsmindp f0, f0, f0
+{ "xsmindp VSREG , FREG , FREG",{0xF0000541,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101000001 xsmindp vs32, f0, f0
+{ "xsmindp FREG , FREG , VSREG",{0xF0000542,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101000010 xsmindp f0, f0, vs32
+{ "xsmindp VSREG , FREG , VSREG",{0xF0000543,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101000011 xsmindp vs32, f0, vs32
+{ "xsmindp FREG , VSREG , FREG",{0xF0000544,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101000100 xsmindp f0, vs32, f0
+{ "xsmindp VSREG , VSREG , FREG",{0xF0000545,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101000101 xsmindp vs32, vs32, f0
+{ "xsmindp FREG , VSREG , VSREG",{0xF0000546,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101000110 xsmindp f0, vs32, vs32
+{ "xsmindp VSREG , VSREG , VSREG",{0xF0000547,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101000111 xsmindp vs32, vs32, vs32
+{ "xsnmaddmdp FREG , FREG , FREG",{0xF0000548,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101001000 xsnmaddmdp f0, f0, f0
+{ "xsnmaddmdp VSREG , FREG , FREG",{0xF0000549,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101001001 xsnmaddmdp vs32, f0, f0
+{ "xsnmaddmdp FREG , FREG , VSREG",{0xF000054A,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101001010 xsnmaddmdp f0, f0, vs32
+{ "xsnmaddmdp VSREG , FREG , VSREG",{0xF000054B,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101001011 xsnmaddmdp vs32, f0, vs32
+{ "xsnmaddmdp FREG , VSREG , FREG",{0xF000054C,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101001100 xsnmaddmdp f0, vs32, f0
+{ "xsnmaddmdp VSREG , VSREG , FREG",{0xF000054D,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101001101 xsnmaddmdp vs32, vs32, f0
+{ "xsnmaddmdp FREG , VSREG , VSREG",{0xF000054E,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101001110 xsnmaddmdp f0, vs32, vs32
+{ "xsnmaddmdp VSREG , VSREG , VSREG",{0xF000054F,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10101001111 xsnmaddmdp vs32, vs32, vs32
+{ "xscvdpsxds FREG , FREG",{0xF0000560,0x03E0F800}}, // 111100xxxxx00000xxxxx10101100000 xscvdpsxds f0, f0
+{ "xscvdpsxds VSREG , FREG",{0xF0000561,0x03E0F800}}, // 111100xxxxx00000xxxxx10101100001 xscvdpsxds vs32, f0
+{ "xscvdpsxds FREG , VSREG",{0xF0000562,0x03E0F800}}, // 111100xxxxx00000xxxxx10101100010 xscvdpsxds f0, vs32
+{ "xscvdpsxds VSREG , VSREG",{0xF0000563,0x03E0F800}}, // 111100xxxxx00000xxxxx10101100011 xscvdpsxds vs32, vs32
+{ "xsabsdp FREG , FREG",{0xF0000564,0x03E0F800}}, // 111100xxxxx00000xxxxx10101100100 xsabsdp f0, f0
+{ "xsabsdp VSREG , FREG",{0xF0000565,0x03E0F800}}, // 111100xxxxx00000xxxxx10101100101 xsabsdp vs32, f0
+{ "xsabsdp FREG , VSREG",{0xF0000566,0x03E0F800}}, // 111100xxxxx00000xxxxx10101100110 xsabsdp f0, vs32
+{ "xsabsdp VSREG , VSREG",{0xF0000567,0x03E0F800}}, // 111100xxxxx00000xxxxx10101100111 xsabsdp vs32, vs32
+{ "xscpsgndp FREG , FREG , FREG",{0xF0000580,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110000000 xscpsgndp f0, f0, f0
+{ "xscpsgndp VSREG , FREG , FREG",{0xF0000581,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110000001 xscpsgndp vs32, f0, f0
+{ "xscpsgndp FREG , FREG , VSREG",{0xF0000582,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110000010 xscpsgndp f0, f0, vs32
+{ "xscpsgndp VSREG , FREG , VSREG",{0xF0000583,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110000011 xscpsgndp vs32, f0, vs32
+{ "xscpsgndp FREG , VSREG , FREG",{0xF0000584,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110000100 xscpsgndp f0, vs32, f0
+{ "xscpsgndp VSREG , VSREG , FREG",{0xF0000585,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110000101 xscpsgndp vs32, vs32, f0
+{ "xscpsgndp FREG , VSREG , VSREG",{0xF0000586,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110000110 xscpsgndp f0, vs32, vs32
+{ "xscpsgndp VSREG , VSREG , VSREG",{0xF0000587,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110000111 xscpsgndp vs32, vs32, vs32
+{ "xsnmsubadp FREG , FREG , FREG",{0xF0000588,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110001000 xsnmsubadp f0, f0, f0
+{ "xsnmsubadp VSREG , FREG , FREG",{0xF0000589,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110001001 xsnmsubadp vs32, f0, f0
+{ "xsnmsubadp FREG , FREG , VSREG",{0xF000058A,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110001010 xsnmsubadp f0, f0, vs32
+{ "xsnmsubadp VSREG , FREG , VSREG",{0xF000058B,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110001011 xsnmsubadp vs32, f0, vs32
+{ "xsnmsubadp FREG , VSREG , FREG",{0xF000058C,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110001100 xsnmsubadp f0, vs32, f0
+{ "xsnmsubadp VSREG , VSREG , FREG",{0xF000058D,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110001101 xsnmsubadp vs32, vs32, f0
+{ "xsnmsubadp FREG , VSREG , VSREG",{0xF000058E,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110001110 xsnmsubadp f0, vs32, vs32
+{ "xsnmsubadp VSREG , VSREG , VSREG",{0xF000058F,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10110001111 xsnmsubadp vs32, vs32, vs32
+{ "xscvuxddp FREG , FREG",{0xF00005A0,0x03E0F800}}, // 111100xxxxx00000xxxxx10110100000 xscvuxddp f0, f0
+{ "xscvuxddp VSREG , FREG",{0xF00005A1,0x03E0F800}}, // 111100xxxxx00000xxxxx10110100001 xscvuxddp vs32, f0
+{ "xscvuxddp FREG , VSREG",{0xF00005A2,0x03E0F800}}, // 111100xxxxx00000xxxxx10110100010 xscvuxddp f0, vs32
+{ "xscvuxddp VSREG , VSREG",{0xF00005A3,0x03E0F800}}, // 111100xxxxx00000xxxxx10110100011 xscvuxddp vs32, vs32
+{ "xsnabsdp FREG , FREG",{0xF00005A4,0x03E0F800}}, // 111100xxxxx00000xxxxx10110100100 xsnabsdp f0, f0
+{ "xsnabsdp VSREG , FREG",{0xF00005A5,0x03E0F800}}, // 111100xxxxx00000xxxxx10110100101 xsnabsdp vs32, f0
+{ "xsnabsdp FREG , VSREG",{0xF00005A6,0x03E0F800}}, // 111100xxxxx00000xxxxx10110100110 xsnabsdp f0, vs32
+{ "xsnabsdp VSREG , VSREG",{0xF00005A7,0x03E0F800}}, // 111100xxxxx00000xxxxx10110100111 xsnabsdp vs32, vs32
+{ "xsnmsubmdp FREG , FREG , FREG",{0xF00005C8,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10111001000 xsnmsubmdp f0, f0, f0
+{ "xsnmsubmdp VSREG , FREG , FREG",{0xF00005C9,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10111001001 xsnmsubmdp vs32, f0, f0
+{ "xsnmsubmdp FREG , FREG , VSREG",{0xF00005CA,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10111001010 xsnmsubmdp f0, f0, vs32
+{ "xsnmsubmdp VSREG , FREG , VSREG",{0xF00005CB,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10111001011 xsnmsubmdp vs32, f0, vs32
+{ "xsnmsubmdp FREG , VSREG , FREG",{0xF00005CC,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10111001100 xsnmsubmdp f0, vs32, f0
+{ "xsnmsubmdp VSREG , VSREG , FREG",{0xF00005CD,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10111001101 xsnmsubmdp vs32, vs32, f0
+{ "xsnmsubmdp FREG , VSREG , VSREG",{0xF00005CE,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10111001110 xsnmsubmdp f0, vs32, vs32
+{ "xsnmsubmdp VSREG , VSREG , VSREG",{0xF00005CF,0x03FFF800}}, // 111100xxxxxxxxxxxxxxx10111001111 xsnmsubmdp vs32, vs32, vs32
+{ "xscvsxddp FREG , FREG",{0xF00005E0,0x03E0F800}}, // 111100xxxxx00000xxxxx10111100000 xscvsxddp f0, f0
+{ "xscvsxddp VSREG , FREG",{0xF00005E1,0x03E0F800}}, // 111100xxxxx00000xxxxx10111100001 xscvsxddp vs32, f0
+{ "xscvsxddp FREG , VSREG",{0xF00005E2,0x03E0F800}}, // 111100xxxxx00000xxxxx10111100010 xscvsxddp f0, vs32
+{ "xscvsxddp VSREG , VSREG",{0xF00005E3,0x03E0F800}}, // 111100xxxxx00000xxxxx10111100011 xscvsxddp vs32, vs32
+{ "xsnegdp FREG , FREG",{0xF00005E4,0x03E0F800}}, // 111100xxxxx00000xxxxx10111100100 xsnegdp f0, f0
+{ "xsnegdp VSREG , FREG",{0xF00005E5,0x03E0F800}}, // 111100xxxxx00000xxxxx10111100101 xsnegdp vs32, f0
+{ "xsnegdp FREG , VSREG",{0xF00005E6,0x03E0F800}}, // 111100xxxxx00000xxxxx10111100110 xsnegdp f0, vs32
+{ "xsnegdp VSREG , VSREG",{0xF00005E7,0x03E0F800}}, // 111100xxxxx00000xxxxx10111100111 xsnegdp vs32, vs32
+{ "xvmaxsp VSREG , VSREG , VSREG",{0xF0000600,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11000000xxx xvmaxsp vs0, vs0, vs0
+{ "xvnmaddasp VSREG , VSREG , VSREG",{0xF0000608,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11000001xxx xvnmaddasp vs0, vs0, vs0
+{ "xvcmpeqsp . VSREG , VSREG , VSREG",{0xF0000618,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11000011xxx xvcmpeqsp. vs0, vs0, vs0
+{ "xvcvspuxds VSREG , VSREG",{0xF0000620,0x03E0F803}}, // 111100xxxxx00000xxxxx110001000xx xvcvspuxds vs0, vs0
+{ "xvcvdpsp VSREG , VSREG",{0xF0000624,0x03E0F803}}, // 111100xxxxx00000xxxxx110001001xx xvcvdpsp vs0, vs0
+{ "xvminsp VSREG , VSREG , VSREG",{0xF0000640,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11001000xxx xvminsp vs0, vs0, vs0
+{ "xvnmaddmsp VSREG , VSREG , VSREG",{0xF0000648,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11001001xxx xvnmaddmsp vs0, vs0, vs0
+{ "xvcmpgtsp . VSREG , VSREG , VSREG",{0xF0000658,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11001011xxx xvcmpgtsp. vs0, vs0, vs0
+{ "xvcvspsxds VSREG , VSREG",{0xF0000660,0x03E0F803}}, // 111100xxxxx00000xxxxx110011000xx xvcvspsxds vs0, vs0
+{ "xvabssp VSREG , VSREG",{0xF0000664,0x03E0F803}}, // 111100xxxxx00000xxxxx110011001xx xvabssp vs0, vs0
+{ "xvmovsp VSREG , VSREG",{0xF0000680,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11010000xxx xvmovsp vs0, vs0
+{ "xvcpsgnsp VSREG , VSREG , VSREG",{0xF0000682,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11010000xxx xvcpsgnsp vs0, vs0, vs32
+{ "xvnmsubasp VSREG , VSREG , VSREG",{0xF0000688,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11010001xxx xvnmsubasp vs0, vs0, vs0
+{ "xvcmpgesp . VSREG , VSREG , VSREG",{0xF0000698,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11010011xxx xvcmpgesp. vs0, vs0, vs0
+{ "xvcvuxdsp VSREG , VSREG",{0xF00006A0,0x03E0F803}}, // 111100xxxxx00000xxxxx110101000xx xvcvuxdsp vs0, vs0
+{ "xvnabssp VSREG , VSREG",{0xF00006A4,0x03E0F803}}, // 111100xxxxx00000xxxxx110101001xx xvnabssp vs0, vs0
+{ "xvnmsubmsp VSREG , VSREG , VSREG",{0xF00006C8,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11011001xxx xvnmsubmsp vs0, vs0, vs0
+{ "xvcvsxdsp VSREG , VSREG",{0xF00006E0,0x03E0F803}}, // 111100xxxxx00000xxxxx110111000xx xvcvsxdsp vs0, vs0
+{ "xvnegsp VSREG , VSREG",{0xF00006E4,0x03E0F803}}, // 111100xxxxx00000xxxxx110111001xx xvnegsp vs0, vs0
+{ "xvmaxdp VSREG , VSREG , VSREG",{0xF0000700,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11100000xxx xvmaxdp vs0, vs0, vs0
+{ "xvnmaddadp VSREG , VSREG , VSREG",{0xF0000708,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11100001xxx xvnmaddadp vs0, vs0, vs0
+{ "xvcmpeqdp . VSREG , VSREG , VSREG",{0xF0000718,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11100011xxx xvcmpeqdp. vs0, vs0, vs0
+{ "xvcvdpuxds VSREG , VSREG",{0xF0000720,0x03E0F803}}, // 111100xxxxx00000xxxxx111001000xx xvcvdpuxds vs0, vs0
+{ "xvcvspdp VSREG , VSREG",{0xF0000724,0x03E0F803}}, // 111100xxxxx00000xxxxx111001001xx xvcvspdp vs0, vs0
+{ "xvmindp VSREG , VSREG , VSREG",{0xF0000740,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11101000xxx xvmindp vs0, vs0, vs0
+{ "xvnmaddmdp VSREG , VSREG , VSREG",{0xF0000748,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11101001xxx xvnmaddmdp vs0, vs0, vs0
+{ "xvcmpgtdp . VSREG , VSREG , VSREG",{0xF0000758,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11101011xxx xvcmpgtdp. vs0, vs0, vs0
+{ "xvcvdpsxds VSREG , VSREG",{0xF0000760,0x03E0F803}}, // 111100xxxxx00000xxxxx111011000xx xvcvdpsxds vs0, vs0
+{ "xvabsdp VSREG , VSREG",{0xF0000764,0x03E0F803}}, // 111100xxxxx00000xxxxx111011001xx xvabsdp vs0, vs0
+{ "xvmovdp VSREG , VSREG",{0xF0000780,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11110000xxx xvmovdp vs0, vs0
+{ "xvcpsgndp VSREG , VSREG , VSREG",{0xF0000782,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11110000xxx xvcpsgndp vs0, vs0, vs32
+{ "xvnmsubadp VSREG , VSREG , VSREG",{0xF0000788,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11110001xxx xvnmsubadp vs0, vs0, vs0
+{ "xvcmpgedp . VSREG , VSREG , VSREG",{0xF0000798,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11110011xxx xvcmpgedp. vs0, vs0, vs0
+{ "xvcvuxddp VSREG , VSREG",{0xF00007A0,0x03E0F803}}, // 111100xxxxx00000xxxxx111101000xx xvcvuxddp vs0, vs0
+{ "xvnabsdp VSREG , VSREG",{0xF00007A4,0x03E0F803}}, // 111100xxxxx00000xxxxx111101001xx xvnabsdp vs0, vs0
+{ "xvnmsubmdp VSREG , VSREG , VSREG",{0xF00007C8,0x03FFF807}}, // 111100xxxxxxxxxxxxxxx11111001xxx xvnmsubmdp vs0, vs0, vs0
+{ "xvcvsxddp VSREG , VSREG",{0xF00007E0,0x03E0F803}}, // 111100xxxxx00000xxxxx111111000xx xvcvsxddp vs0, vs0
+{ "xvnegdp VSREG , VSREG",{0xF00007E4,0x03E0F803}}, // 111100xxxxx00000xxxxx111111001xx xvnegdp vs0, vs0
+{ "std GPR , NUM ( NUM )",{0xF8000000,0x03E0FFFC}}, // 111110xxxxx00000xxxxxxxxxxxxxx00 std r0, 0(0)
+{ "stdu GPR , NUM ( NUM )",{0xF8000001,0x03E0FFFC}}, // 111110xxxxx00000xxxxxxxxxxxxxx01 stdu r0, 0(0)
+{ "std GPR , NUM ( GPR )",{0xF8010000,0x03FFFFFC}}, // 111110xxxxxxxxxxxxxxxxxxxxxxxx00 std r0, 0(r1)
+{ "stdu GPR , NUM ( GPR )",{0xF8010001,0x03FFFFFC}}, // 111110xxxxxxxxxxxxxxxxxxxxxxxx01 stdu r0, 0(r1)
+{ "fcmpu CREG , FREG , FREG",{0xFC000000,0x039FF800}}, // 111111xxx00xxxxxxxxxx00000000000 fcmpu cr0, f0, f0
+{ "fcpsgn FREG , FREG , FREG",{0xFC000010,0x03FFF800}}, // 111111xxxxxxxxxxxxxxx00000010000 fcpsgn f0, f0, f0
+{ "fcpsgn . FREG , FREG , FREG",{0xFC000011,0x03FFF800}}, // 111111xxxxxxxxxxxxxxx00000010001 fcpsgn. f0, f0, f0
+{ "frsp FREG , FREG",{0xFC000018,0x03E0F800}}, // 111111xxxxx00000xxxxx00000011000 frsp f0, f0
+{ "frsp . FREG , FREG",{0xFC000019,0x03E0F800}}, // 111111xxxxx00000xxxxx00000011001 frsp. f0, f0
+{ "fctiw FREG , FREG",{0xFC00001C,0x03E0F800}}, // 111111xxxxx00000xxxxx00000011100 fctiw f0, f0
+{ "fctiw . FREG , FREG",{0xFC00001D,0x03E0F800}}, // 111111xxxxx00000xxxxx00000011101 fctiw. f0, f0
+{ "fctiwz FREG , FREG",{0xFC00001E,0x03E0F800}}, // 111111xxxxx00000xxxxx00000011110 fctiwz f0, f0
+{ "fctiwz . FREG , FREG",{0xFC00001F,0x03E0F800}}, // 111111xxxxx00000xxxxx00000011111 fctiwz. f0, f0
+{ "fdiv FREG , FREG , FREG",{0xFC000024,0x03FFF800}}, // 111111xxxxxxxxxxxxxxx00000100100 fdiv f0, f0, f0
+{ "fdiv . FREG , FREG , FREG",{0xFC000025,0x03FFF800}}, // 111111xxxxxxxxxxxxxxx00000100101 fdiv. f0, f0, f0
+{ "fsub FREG , FREG , FREG",{0xFC000028,0x03FFF800}}, // 111111xxxxxxxxxxxxxxx00000101000 fsub f0, f0, f0
+{ "fsub . FREG , FREG , FREG",{0xFC000029,0x03FFF800}}, // 111111xxxxxxxxxxxxxxx00000101001 fsub. f0, f0, f0
+{ "fadd FREG , FREG , FREG",{0xFC00002A,0x03FFF800}}, // 111111xxxxxxxxxxxxxxx00000101010 fadd f0, f0, f0
+{ "fadd . FREG , FREG , FREG",{0xFC00002B,0x03FFF800}}, // 111111xxxxxxxxxxxxxxx00000101011 fadd. f0, f0, f0
+{ "fsqrt FREG , FREG",{0xFC00002C,0x03E0F800}}, // 111111xxxxx00000xxxxx00000101100 fsqrt f0, f0
+{ "fsqrt . FREG , FREG",{0xFC00002D,0x03E0F800}}, // 111111xxxxx00000xxxxx00000101101 fsqrt. f0, f0
+{ "fsel FREG , FREG , FREG , FREG",{0xFC00002E,0x03FFFFC0}}, // 111111xxxxxxxxxxxxxxxxxxxx101110 fsel f0, f0, f0, f0
+{ "fsel . FREG , FREG , FREG , FREG",{0xFC00002F,0x03FFFFC0}}, // 111111xxxxxxxxxxxxxxxxxxxx101111 fsel. f0, f0, f0, f0
+{ "fre FREG , FREG",{0xFC000030,0x03E0F800}}, // 111111xxxxx00000xxxxx00000110000 fre f0, f0
+{ "fre . FREG , FREG",{0xFC000031,0x03E0F800}}, // 111111xxxxx00000xxxxx00000110001 fre. f0, f0
+{ "fmul FREG , FREG , FREG",{0xFC000032,0x03FF07C0}}, // 111111xxxxxxxxxx00000xxxxx110010 fmul f0, f0, f0
+{ "fmul . FREG , FREG , FREG",{0xFC000033,0x03FF07C0}}, // 111111xxxxxxxxxx00000xxxxx110011 fmul. f0, f0, f0
+{ "frsqrte FREG , FREG",{0xFC000034,0x03E0F800}}, // 111111xxxxx00000xxxxx00000110100 frsqrte f0, f0
+{ "frsqrte . FREG , FREG",{0xFC000035,0x03E0F800}}, // 111111xxxxx00000xxxxx00000110101 frsqrte. f0, f0
+{ "fmsub FREG , FREG , FREG , FREG",{0xFC000038,0x03FFFFC0}}, // 111111xxxxxxxxxxxxxxxxxxxx111000 fmsub f0, f0, f0, f0
+{ "fmsub . FREG , FREG , FREG , FREG",{0xFC000039,0x03FFFFC0}}, // 111111xxxxxxxxxxxxxxxxxxxx111001 fmsub. f0, f0, f0, f0
+{ "fmadd FREG , FREG , FREG , FREG",{0xFC00003A,0x03FFFFC0}}, // 111111xxxxxxxxxxxxxxxxxxxx111010 fmadd f0, f0, f0, f0
+{ "fmadd . FREG , FREG , FREG , FREG",{0xFC00003B,0x03FFFFC0}}, // 111111xxxxxxxxxxxxxxxxxxxx111011 fmadd. f0, f0, f0, f0
+{ "fnmsub FREG , FREG , FREG , FREG",{0xFC00003C,0x03FFFFC0}}, // 111111xxxxxxxxxxxxxxxxxxxx111100 fnmsub f0, f0, f0, f0
+{"fnmsub . FREG , FREG , FREG , FREG",{0xFC00003D,0x03FFFFC0}}, // 111111xxxxxxxxxxxxxxxxxxxx111101 fnmsub. f0, f0, f0, f0
+{ "fnmadd FREG , FREG , FREG , FREG",{0xFC00003E,0x03FFFFC0}}, // 111111xxxxxxxxxxxxxxxxxxxx111110 fnmadd f0, f0, f0, f0
+{"fnmadd . FREG , FREG , FREG , FREG",{0xFC00003F,0x03FFFFC0}}, // 111111xxxxxxxxxxxxxxxxxxxx111111 fnmadd. f0, f0, f0, f0
+{ "mtfsb1 NUM",{0xFC00004C,0x03E00000}}, // 111111xxxxx000000000000001001100 mtfsb1 0
+{ "fneg FREG , FREG",{0xFC000050,0x03E0F800}}, // 111111xxxxx00000xxxxx00001010000 fneg f0, f0
+{ "fneg . FREG , FREG",{0xFC000051,0x03E0F800}}, // 111111xxxxx00000xxxxx00001010001 fneg. f0, f0
+{ "mtfsb0 NUM",{0xFC00008C,0x03E00000}}, // 111111xxxxx000000000000010001100 mtfsb0 0
+{ "fmr FREG , FREG",{0xFC000090,0x03E0F800}}, // 111111xxxxx00000xxxxx00010010000 fmr f0, f0
+{ "fmr . FREG , FREG",{0xFC000091,0x03E0F800}}, // 111111xxxxx00000xxxxx00010010001 fmr. f0, f0
+{ "fnabs FREG , FREG",{0xFC000110,0x03E0F800}}, // 111111xxxxx00000xxxxx00100010000 fnabs f0, f0
+{ "fnabs . FREG , FREG",{0xFC000111,0x03E0F800}}, // 111111xxxxx00000xxxxx00100010001 fnabs. f0, f0
+{ "fctiwuz FREG , FREG",{0xFC00011E,0x03E0F800}}, // 111111xxxxx00000xxxxx00100011110 fctiwuz f0, f0
+{ "fctiwuz . FREG , FREG",{0xFC00011F,0x03E0F800}}, // 111111xxxxx00000xxxxx00100011111 fctiwuz. f0, f0
+{ "fabs FREG , FREG",{0xFC000210,0x03E0F800}}, // 111111xxxxx00000xxxxx01000010000 fabs f0, f0
+{ "fabs . FREG , FREG",{0xFC000211,0x03E0F800}}, // 111111xxxxx00000xxxxx01000010001 fabs. f0, f0
+{ "frin FREG , FREG",{0xFC000310,0x03E0F800}}, // 111111xxxxx00000xxxxx01100010000 frin f0, f0
+{ "frin . FREG , FREG",{0xFC000311,0x03E0F800}}, // 111111xxxxx00000xxxxx01100010001 frin. f0, f0
+{ "friz FREG , FREG",{0xFC000350,0x03E0F800}}, // 111111xxxxx00000xxxxx01101010000 friz f0, f0
+{ "friz . FREG , FREG",{0xFC000351,0x03E0F800}}, // 111111xxxxx00000xxxxx01101010001 friz. f0, f0
+{ "frip FREG , FREG",{0xFC000390,0x03E0F800}}, // 111111xxxxx00000xxxxx01110010000 frip f0, f0
+{ "frip . FREG , FREG",{0xFC000391,0x03E0F800}}, // 111111xxxxx00000xxxxx01110010001 frip. f0, f0
+{ "frim FREG , FREG",{0xFC0003D0,0x03E0F800}}, // 111111xxxxx00000xxxxx01111010000 frim f0, f0
+{ "frim . FREG , FREG",{0xFC0003D1,0x03E0F800}}, // 111111xxxxx00000xxxxx01111010001 frim. f0, f0
+{ "mffs FREG",{0xFC00048E,0x03E00000}}, // 111111xxxxx000000000010010001110 mffs f0
+{ "mtfsf NUM , FREG",{0xFC00058E,0x01FEF800}}, // 1111110xxxxxxxx0xxxxx10110001110 mtfsf 0, f0
+{ "fctid FREG , FREG",{0xFC00065C,0x03E0F800}}, // 111111xxxxx00000xxxxx11001011100 fctid f0, f0
+{ "fctid . FREG , FREG",{0xFC00065D,0x03E0F800}}, // 111111xxxxx00000xxxxx11001011101 fctid. f0, f0
+{ "fctidz FREG , FREG",{0xFC00065E,0x03E0F800}}, // 111111xxxxx00000xxxxx11001011110 fctidz f0, f0
+{ "fctidz . FREG , FREG",{0xFC00065F,0x03E0F800}}, // 111111xxxxx00000xxxxx11001011111 fctidz. f0, f0
+{ "fcfid FREG , FREG",{0xFC00069C,0x03E0F800}}, // 111111xxxxx00000xxxxx11010011100 fcfid f0, f0
+{ "fcfid . FREG , FREG",{0xFC00069D,0x03E0F800}}, // 111111xxxxx00000xxxxx11010011101 fcfid. f0, f0
+{ "fctiduz FREG , FREG",{0xFC00075E,0x03E0F800}}, // 111111xxxxx00000xxxxx11101011110 fctiduz f0, f0
+{ "fctiduz . FREG , FREG",{0xFC00075F,0x03E0F800}}, // 111111xxxxx00000xxxxx11101011111 fctiduz. f0, f0
+{ "fcfidu FREG , FREG",{0xFC00079C,0x03E0F800}}, // 111111xxxxx00000xxxxx11110011100 fcfidu f0, f0
+{ "fcfidu . FREG , FREG",{0xFC00079D,0x03E0F800}}, // 111111xxxxx00000xxxxx11110011101 fcfidu. f0, f0
+};
+
+/*****************************************************************************/
+/* capstone */
+/*****************************************************************************/
+const char *cs_err_to_string(cs_err e)
+{
+ switch(e) {
+ case CS_ERR_OK: return "CS_ERR_OK";
+ case CS_ERR_MEM: return "CS_ERR_MEM";
+ case CS_ERR_ARCH: return "CS_ERR_ARCH";
+ case CS_ERR_HANDLE: return "CS_ERR_HANDLE";
+ case CS_ERR_CSH: return "CS_ERR_CSH";
+ case CS_ERR_MODE: return "CS_ERR_MODE";
+ case CS_ERR_OPTION: return "CS_ERR_OPTION";
+ case CS_ERR_DETAIL: return "CS_ERR_DETAIL";
+ case CS_ERR_MEMSETUP: return "CS_ERR_MEMSETUP";
+ case CS_ERR_VERSION: return "CS_ERR_VERSION";
+ case CS_ERR_DIET: return "CS_ERR_DIET";
+ case CS_ERR_SKIPDATA: return "CS_ERR_SKIPDATA";
+ case CS_ERR_X86_ATT: return "CS_ERR_X86_ATT";
+ case CS_ERR_X86_INTEL: return "CS_ERR_X86_INTEL";
+ default: return "WTF";
+ }
+}
+
+int disasm_capstone(uint8_t *data, uint32_t addr, string& result, string& err)
+{
+ int rc = -1;
+ static bool init = false;
+
+ /* capstone vars */
+ static csh handle;
+ cs_insn *insn = NULL;
+ size_t count = 0;
+
+ if (!init) {
+ /* initialize capstone handle */
+ cs_mode mode = (cs_mode)(CS_MODE_LITTLE_ENDIAN);
+
+ if(cs_open(CS_ARCH_PPC, mode, &handle) != CS_ERR_OK) {
+ MYLOG("ERROR: cs_open()\n");
+ goto cleanup;
+ }
+ init = true;
+ }
+
+ count = cs_disasm(handle, data,
+ /* code_size */ 4,
+ /* address */ addr,
+ /* instr count */ 1,
+ /* result */ &insn
+ );
+
+ if(count != 1) {
+ cs_err e = cs_errno(handle);
+
+ if(e == CS_ERR_OK) {
+ result = "undefined";
+ }
+ else {
+ char msg[128];
+ snprintf(
+ msg, sizeof(msg), "ERROR: cs_disasm() returned %zu cs_err=%d (%s)\n", count, e, cs_err_to_string(e));
+ err = msg;
+ goto cleanup;
+ }
+ }
+ else {
+ result = insn->mnemonic;
+ result += " ";
+ result += insn->op_str;
+ }
+
+ rc = 0;
+ cleanup:
+ if(insn) cs_free(insn, count);
+ return rc;
+}
+
+/*****************************************************************************/
+/* instruction tokenizing */
+/*****************************************************************************/
+
+#define TT_GPR 1
+#define TT_VREG 2
+#define TT_FLAG 3
+#define TT_CREG 4
+#define TT_VSREG 5
+#define TT_FREG 6
+#define TT_NUM 7
+#define TT_PUNC 8
+#define TT_OPC 9
+
+struct token {
+ int type;
+ uint32_t ival;
+ string sval;
+};
+
+int tokenize(string src, vector<token>& result, string& err)
+{
+ int rc = -1, n=0;
+ char *endptr;
+ const char *inbuf = src.c_str();
+
+ result.clear();
+
+ /* grab opcode */
+ while(isalnum(inbuf[n]))
+ n++;
+ result.push_back({TT_OPC, 0, string(inbuf, n)});
+ inbuf += n;
+
+ /* loop over the rest */
+ while(inbuf[0]) {
+ char c = inbuf[0];
+ char d = inbuf[1];
+
+ /* skip spaces */
+ if(c == ' ') {
+ inbuf += 1;
+ }
+ /* GPR's */
+ else if(c=='r') {
+ uint32_t value = strtoul(inbuf+1, &endptr, 10);
+ result.push_back({TT_GPR, value, ""});
+ inbuf = endptr;
+ }
+ /* vs registers */
+ else if(c=='v' && inbuf[1]=='s') {
+ uint32_t value = strtoul(inbuf+2, &endptr, 10);
+ result.push_back({TT_VSREG, value, ""});
+ inbuf = endptr;
+ }
+ /* v registers */
+ else if(c=='v') {
+ uint32_t value = strtoul(inbuf+1, &endptr, 10);
+ result.push_back({TT_VREG, value, ""});
+ inbuf = endptr;
+ }
+ /* f registers */
+ else if(c=='f') {
+ uint32_t value = strtoul(inbuf+1, &endptr, 10);
+ result.push_back({TT_FREG, value, ""});
+ inbuf = endptr;
+ }
+ /* cr registers */
+ else if(c=='c' && inbuf[1]=='r') {
+ uint32_t value = strtoul(inbuf+2, &endptr, 10);
+ result.push_back({TT_CREG, value, ""});
+ inbuf = endptr;
+ }
+ /* FLAGS: lt, gt, eq, so */
+ else if((c=='l' && d=='t') || (c=='g' && d=='t') ||
+ (c=='e' && d=='q') || (c=='s' && d=='o')) {
+
+ result.push_back({TT_FLAG, 0, string(inbuf, 2)});
+ inbuf += 2;
+ }
+ /* hexadecimal immediates */
+ else if((c=='0' && d=='x') || (c=='-' && d=='0' && inbuf[2]=='x')) {
+ uint32_t value = strtoul(inbuf, &endptr, 16);
+ result.push_back({TT_NUM, value, ""});
+ inbuf = endptr;
+ }
+ /* decimal immediates */
+ else if(isdigit(c) || (c=='-' && isdigit(d))) {
+ uint32_t value = strtoul(inbuf, &endptr, 10);
+ result.push_back({TT_NUM, value, ""});
+ inbuf = endptr;
+ }
+ /* punctuation */
+ else if(c=='(' || c==')' || c==',' || c=='.' || c=='*' || c=='+' || c=='-') {
+ result.push_back({TT_PUNC, 0, string(inbuf,1)});
+ inbuf += 1;
+ }
+ /* wtf? */
+ else {
+ err = "error at: " + string(inbuf);
+ goto cleanup;
+ }
+ }
+
+ rc = 0;
+ cleanup:
+ return rc;
+}
+
+const char* token_type_tostr(int tt)
+{
+ switch(tt) {
+ case TT_GPR: return "GPR";
+ case TT_VREG: return "VREG";
+ case TT_FLAG: return "FLAG";
+ case TT_CREG: return "CREG";
+ case TT_VSREG: return "VSREG";
+ case TT_FREG: return "FREG";
+ case TT_NUM: return "NUM";
+ case TT_PUNC: return "PUNC";
+ case TT_OPC: return "OPC";
+ }
+ return "ERR_RESOLVING_TOKEN_TYPE";
+}
+
+string tokens_to_signature(vector<token>& tokens)
+{
+ string result;
+ for(unsigned i=0; i<tokens.size(); ++i) {
+ if(i)
+ result += " ";
+
+ token t = tokens[i];
+
+ switch(t.type) {
+ case TT_GPR:
+ case TT_VREG:
+ case TT_CREG:
+ case TT_FREG:
+ case TT_VSREG:
+ case TT_NUM:
+ case TT_FLAG:
+ result += token_type_tostr(t.type);
+ break;
+ case TT_PUNC:
+ case TT_OPC:
+ result += t.sval;
+ break;
+ }
+ }
+
+ return result;
+}
+
+void tokens_print(vector<token>& tokens)
+{
+ for(unsigned i=0; i<tokens.size(); ++i) {
+ token t = tokens[i];
+
+ switch(t.type) {
+ case TT_GPR:
+ case TT_VREG:
+ case TT_CREG:
+ case TT_FREG:
+ case TT_VSREG:
+ case TT_NUM:
+ printf("%s: %d\n", token_type_tostr(t.type), t.ival);
+ break;
+ case TT_PUNC:
+ case TT_OPC:
+ printf("%s: %s\n", token_type_tostr(t.type), t.sval.c_str());
+ break;
+ }
+ }
+}
+
+/*****************************************************************************/
+/* genetic */
+/*****************************************************************************/
+
+int count_bits(uint32_t x)
+{
+ x = x - ((x >> 1) & 0x55555555);
+ x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
+ return ((((x + (x >> 4)) & 0x0F0F0F0F) * 0x01010101) >> 24);
+}
+
+float hamming_similar(int a, int b)
+{
+ return (32-count_bits(a ^ b)) / 32.0f;
+}
+
+float fitness(vector<token> dst, vector<token> src) {
+ size_t n = dst.size();
+
+ /* same number of tokens */
+ if(n != src.size())
+ return 0;
+
+ /* */
+ float score = 0;
+ float scorePerToken = 100.0f / (float)n;
+
+ /* for each token... */
+ for(size_t i=0; i<n; ++i) {
+ /* same type */
+ if(src[i].type != dst[i].type)
+ return 0;
+
+ switch(src[i].type) {
+ case TT_VREG:
+ case TT_FREG:
+ case TT_GPR:
+ case TT_VSREG:
+ case TT_CREG:
+ case TT_NUM:
+ score += hamming_similar(src[i].ival, dst[i].ival) * scorePerToken;
+ break;
+ /* opcodes and flags must string match */
+ case TT_OPC:
+ case TT_FLAG:
+ case TT_PUNC:
+ if(src[i].sval == dst[i].sval)
+ score += scorePerToken;
+ break;
+ default:
+ printf("ERROR!!!!\n");
+ }
+ }
+
+ return score;
+}
+
+float score(vector<token> baseline, uint32_t newcomer, uint32_t addr)
+{
+ vector<token> toks_child;
+ string err;
+ string src;
+
+ if(disasm_capstone((uint8_t *)&newcomer, addr, src, err))
+ return -1;
+
+ /* compare mnemonics before doing more work */
+ string mnem = baseline[0].sval;
+ if(src.compare(0, mnem.size(), mnem) != 0) {
+ return 0;
+ }
+
+ /* mnemonics are the same, tokenize now... */
+ if(tokenize(src, toks_child, err)) {
+ printf("ERROR: %s\n", err.c_str());
+ return 0;
+ }
+
+ return fitness(baseline, toks_child);
+}
+
+struct match {
+ uint32_t src_hi, src_lo; // source bit range
+ uint32_t dst_hi, dst_lo; // destination bit range
+};
+
+// force certain regions of bits to match
+uint32_t enforce_bit_match(uint32_t inp, unsigned bit, vector<match> matches)
+{
+ for(auto iter=matches.begin(); iter != matches.end(); ++iter) {
+ struct match m = *iter;
+
+ /* did we change a bit in the source region? */
+ if(bit >= m.src_lo && bit <= m.src_hi) {
+ /* compute masks */
+ uint32_t a = 1<<m.src_hi;
+ uint32_t b = 1<<m.src_lo;
+ uint32_t src_mask = (a|(a-1)) ^ (b-1);
+
+ a = 1<<m.dst_hi;
+ b = 1<<m.dst_lo;
+ uint32_t dst_mask = (a|(a-1)) ^ (b-1);
+
+ /* mask and shift */
+ inp = (inp & (~dst_mask));
+ if(m.src_hi > m.dst_hi) {
+ inp |= ((inp & src_mask) >> (m.src_hi - m.dst_hi));
+ }
+ else {
+ inp |= ((inp & src_mask) << (m.dst_hi - m.src_hi));
+ }
+ }
+ }
+
+ return inp;
+}
+
+// for certain instructions with difficult inter-field dependencies
+// inputs:
+// seed: the seed value that may need the special case
+// insword: instruction word
+// bit: last bit changed
+uint32_t special_handling(uint32_t seed, uint32_t insword, int bit)
+{
+ switch(seed) {
+ /* sldi is extended mnemonic for rldicr (when mask = 63-shift) and hops
+ to it or other extended mnemonics easily */
+ case 0x780007C6:
+ /* if shift field changed, update mask */
+ if(bit==1 || (bit>=11 && bit<=15)) {
+ uint32_t shift = ((insword>>1)&1) | ((insword>>10)&0x3E);
+ uint32_t mask = 63-shift;
+ return (insword&0xFFFFF81F) | (mask<<5);
+ }
+ /* if mask field changed, update shift */
+ if(bit>=5 && bit<=10) {
+ uint32_t mask = (insword>>5)&0x3F;
+ uint32_t shift = 63-mask;
+ return (insword&0xFFFF07FD) | ((shift&0x3E)<<11) | ((shift&0x1)<<1);
+ }
+ /* neither field updated */
+ return insword;
+
+ case 0x54000FFE: // srwi
+ if(bit>=6 && bit<=10) {
+ uint32_t tmp = 32 - ((insword>>6) & 0x1F);
+ return (insword&0xFFFF07FF) | (tmp<<11);
+ }
+ if(bit>=11 && bit<=15) {
+ uint32_t tmp = 32 - ((insword>>11) & 0x1F);
+ return (insword&0xFFFFF83F) | (tmp<<6);
+ }
+ /* neither field updated */
+ return insword;
+
+ case 0x5400003E: // slwi
+ if(bit>=1 && bit<=5) {
+ uint32_t tmp = 31 - ((insword>>1) & 0x1F);
+ return (insword&0xFFFF07FF) | (tmp<<11);
+ }
+ if(bit>=11 && bit<=15) {
+ uint32_t tmp = 31 - ((insword>>11) & 0x1F);
+ return (insword&0xFFFFFFC1) | (tmp<<1);
+ }
+ /* neither field updated */
+ return insword;
+
+ /* crclr is when crxor has three 5-bit fields match! unlikely! */
+ case 0x4c000182:
+ {
+ vector<struct match> matches = {{25,21,20,16},{25,21,15,11},
+ {20,16,25,21},{20,16,15,11},
+ {15,11,25,21},{15,11,20,16}};
+
+ return enforce_bit_match(insword, bit, matches);
+ }
+
+ /* xxpermdi is 111100xxxxxxxxxxxxxxx0xx01010xxx */
+ // xxspltd T,A,0 <=> xxpermdi T,A,A,0b00
+ // xxspltd T,A,1 <=> xxpermdi T,A,A,0b11
+ // xxmrghd T,A,B <=> xxpermdi T,A,B,0b00
+ // xxmrgld T,A,B <=> xxpermdi T,A,B,0b11
+ // xxswapd T,A <=> xxpermdi T,A,A,0b10
+
+ /* xxspltd is extended mnemonic for xxpermdi (when A==B): */
+ case 0xF0000050:
+ {
+ vector<struct match> matches = {{20,16,15,11},{15,11,20,19},{9,9,8,8},{8,8,9,9},{2,2,1,1},{1,1,2,2}};
+ return enforce_bit_match(insword, bit, matches);
+ }
+
+ /* xvmovdp is extended mnemonic for something
+ 111100 AAAAA BBBBB CCCCC 11110000CBA
+ require BBBBBB == CCCCCC */
+ case 0xF0000250: // xxswapd
+ case 0xF0000780: // xvmovdp
+ case 0xF0000680: // xvmovsp
+ {
+ vector<struct match> matches = {{20,16,15,11},{15,11,20,19},{2,2,1,1},{1,1,2,2}};
+ return enforce_bit_match(insword, bit, matches);
+ }
+
+ /* mr is extended mnemonic for or (when RS==RB): */
+ case 0x7C000378:
+ {
+ vector<struct match> matches = {{25,21,15,11},{15,11,25,21}};
+ return enforce_bit_match(insword, bit, matches);
+ }
+
+ /* tdi/twi so easily falls into extended mnemonics */
+ case 0x0800000A: // tdi
+ case 0x0C000000: // twi
+ if(bit>=21 && bit<=25) {
+ uint32_t foo, bar;
+ foo = bar = (insword & 0x03E00000) >> 21;
+ switch(foo) {
+ case 1: foo=3; break; // get off tdlgti/twlgti
+ case 2: foo=3; break; // get off tdllti/twllti
+ case 4: foo=5; break; // get off tdeqi/tweqi
+ case 8: foo=9; break; // get off tdgti/twgti
+ case 16: foo=17; break; // get off tdlti/twlti
+ case 24: foo=25; break; // get off tdnei/twnei
+ case 63: foo=0; break; // get off tdui/twui
+ }
+ if(foo != bar)
+ insword = (insword & 0xFC1FFFFF) | (foo << 21);
+ }
+ /* no bit change in sensitive region */
+ return insword;
+
+ default:
+ return insword;
+ }
+}
+
+/*****************************************************************************/
+/* string processing crap */
+/*****************************************************************************/
+
+int split_newlines(const string& chunk, vector<string> &lines)
+{
+ lines.clear();
+
+ const char *p = chunk.c_str();
+
+ unsigned i=0, left=0;
+ while(1) {
+ if(p[i]=='\x00') {
+ if(left < i) {
+ lines.push_back(string(p,left,i-left));
+ }
+
+ break;
+ }
+
+ if(p[i]=='\x0a') {
+ if(left < i) {
+ lines.push_back(string(p,left,i-left));
+ }
+
+ left = i = (i+1);
+ }
+ else if(i+1 < chunk.size() && p[i]=='\x0d' && p[i+1]=='\x0a') {
+ if(left < i) {
+ lines.push_back(string(p,left,i-left));
+ }
+
+ left = i = (i+2);
+ }
+ else {
+ i += 1;
+ }
+ }
+
+ return 0;
+}
+
+int trim_lines(vector<string> &lines)
+{
+ vector<string> filtered;
+
+ for(size_t i=0; i<lines.size(); ++i) {
+ const char *p = lines[i].c_str();
+ int left = 0, right = (int)lines[i].size()-1;
+
+ while(isspace(p[left]))
+ left += 1;
+
+ while(right>=0 && isspace(p[right]))
+ right -= 1;
+
+ if(right >= left)
+ filtered.push_back(string(p, left, right-left+1));
+ }
+
+ lines = filtered;
+
+ return 0;
+}
+
+// \S - one or more spaces
+// \s - zero or more spaces
+// \H - hex number (captures)
+// \I - identifier (captures)
+// \X - anything
+bool fmt_match(string fmt, string str, vector<string>& result)
+{
+ bool match = false;
+ size_t i=0, j=0;
+ size_t nfmt=fmt.size(), nstr=str.size();
+
+ result.clear();
+ while(1) {
+ string fcode = fmt.substr(i,2);
+
+ if(fcode=="\\S") {
+ if(!isspace(str[j]))
+ goto cleanup;
+ while(isspace(str[j]))
+ j += 1;
+ i += 2;
+ }
+ else
+ if(fcode=="\\s") {
+ while(isspace(str[j]))
+ j += 1;
+ i += 2;
+ }
+ else
+ if(fcode=="\\I") {
+ if(!isalpha(str[j]))
+ goto cleanup;
+ size_t start = j;
+ j += 1;
+ while(isalnum(str[j]) || str[j]=='_')
+ j += 1;
+ result.push_back(str.substr(start, j-start));
+ i += 2;
+ }
+ else
+ if(fcode=="\\H") {
+ const char *raw = str.c_str();
+ char *endptr;
+ strtoul(raw + j, &endptr, 16);
+ size_t len = endptr - (raw+j);
+ if(!len) goto cleanup;
+ result.push_back(str.substr(j, len));
+ i += 2;
+ j += len;
+ }
+ else
+ if(fcode=="\\X") {
+ i += 2;
+ j = nstr;
+ }
+ else
+ if(fmt[i] == str[j]) {
+ i += 1;
+ j += 1;
+ }
+ else {
+ goto cleanup;
+ }
+
+ if(i==nfmt && j==nstr) break;
+ }
+
+ match = true;
+ cleanup:
+ return match;
+}
+
+/*****************************************************************************/
+/* assembler calls */
+/*****************************************************************************/
+
+#define FAILURES_LIMIT 10000
+int assemble_single(string src, uint32_t addr, uint8_t *result, string& err,
+ int& failures)
+{
+ int rc = -1;
+
+ /* decompose instruction into tokens */
+ vector<token> toks_src;
+ vector<token> toks_child;
+
+ if(tokenize(src, toks_src, err)) {
+ err = "invalid syntax";
+ return -1;
+ }
+
+ /* form signature, look it up */
+ string sig_src = tokens_to_signature(toks_src);
+
+ MYLOG("src:%s has signature:%s\n", src.c_str(), sig_src.c_str());
+
+ if(lookup.find(sig_src) == lookup.end()) {
+ err = "invalid syntax";
+ return -1;
+ }
+
+ auto info = lookup[sig_src];
+ uint32_t vary_mask = info.mask;
+
+ /* for relative branches, shift the target address to 0 */
+ if(toks_src[0].sval[0]=='b' && toks_src[0].sval.back() != 'a' &&
+ toks_src.back().type == TT_NUM) {
+ toks_src.back().ival -= addr;
+ addr = 0;
+ }
+
+ /* start with the parent */
+ uint32_t parent = info.seed;
+ float init_score, top_score;
+ init_score = top_score = score(toks_src, parent, addr);
+
+ /* cache the xor masks */
+ int n_flips = 0;
+ int flipper_idx[32];
+ uint32_t flipper[32];
+ for(int i=0; i<32; ++i) {
+ if(vary_mask & (1 << i)) {
+ flipper_idx[n_flips] = i;
+ flipper[n_flips++] = 1<<i;
+ }
+ }
+
+ failures = 0;
+ int failstreak = 0;
+
+ /* vary the parent */
+ int b1i=0;
+ while(1) {
+ /* winner? */
+ if(top_score > 99.99) {
+ MYLOG("%08X wins!\n", parent);
+ memcpy(result, &parent, 4);
+ break;
+ }
+
+ bool overtake = false;
+
+ for(; b1i<n_flips; b1i = (b1i+1) % n_flips) {
+ uint32_t child = parent ^ flipper[b1i];
+ child = special_handling(info.seed, child, flipper_idx[b1i]);
+
+ float s = score(toks_src, child, addr);
+ if(s > top_score) {
+ parent = child;
+ top_score = s;
+ overtake = true;
+ break;
+ }
+
+ failures++;
+ if(failures > FAILURES_LIMIT) {
+ MYLOG("failure limit reached, not assembling!\n");
+ err = "cannot assemble, valid operands?";
+ goto cleanup;
+ }
+
+ failstreak++;
+ if(failstreak >= n_flips) {
+ /* generate a new parent that's at least as good as the seed */
+ while(1) {
+ parent = info.seed;
+ for(int i=0; i<n_flips; ++i) {
+ if(rand()%2) {
+ parent ^= flipper[i];
+ parent = special_handling(info.seed, parent, flipper_idx[i]);
+ }
+ }
+
+ top_score = score(toks_src, parent, addr);
+
+ if(top_score >= init_score) {
+ MYLOG("perturbing the parent to: %08X (score:%f) (vs:%f)\n", parent, top_score, init_score);
+ break;
+ }
+ else {
+ string tmp;
+ disasm_capstone((uint8_t *)&parent, addr, tmp, err);
+ MYLOG("%08X: %s perturb fail %f\n", parent, tmp.c_str(), top_score);
+ failures++;
+ }
+
+ if(failures > FAILURES_LIMIT) {
+ err = "cannot assemble, valid operands?";
+ MYLOG("failure limit reached, not assembling!\n");
+ goto cleanup;
+ }
+ }
+ failstreak = 0;
+ break;
+ }
+ }
+
+ if(overtake) {
+ failstreak = 0;
+ if(0) {
+ string tmp;
+ disasm_capstone((uint8_t *)&parent, addr, tmp, err);
+ MYLOG("%08X: %s overtakes with 1-bit flip (%d) after %d failures, score %f\n", parent, tmp.c_str(), b1i, failures, top_score);
+ }
+ }
+ }
+
+ rc = 0;
+ cleanup:
+ return rc;
+}
+
+int assemble_multiline(const string& code, vector<uint8_t>& result, string& err)
+{
+ int rc = -1;
+ vector<string> lines, fields;
+
+ split_newlines(code, lines);
+ trim_lines(lines);
+
+ bool lilEndian = false;
+
+ uint64_t vaddr = 0;
+ map<string,uint64_t> symbols;
+
+ /* FIRST PASS */
+ for(unsigned i=0; i<lines.size(); ++i) {
+ MYLOG("line %d: -%s-\n", i, lines[i].c_str());
+
+ /* .org directive */
+ if(fmt_match(".org\\S\\H", lines[i], fields)) {
+ vaddr = strtol(fields[0].c_str(), 0, 16);
+ if(vaddr & 0x3) {
+ err = "ERROR: .org address is not 4-byte aligned";
+ goto cleanup;
+ }
+ MYLOG("PASS1, set vaddr to: %" PRIx64 "\n", vaddr);
+ }
+ /* .endian directive */
+ else
+ if(fmt_match(".endian\\S\\I", lines[i], fields)) {
+ if(fields[0] == "big")
+ lilEndian = false;
+ else
+ if(fields[0] == "little")
+ lilEndian = true;
+ else {
+ err = "invalid argument to .endian directive (expected big or little)";
+ }
+ }
+ /* .equ directive */
+ else
+ if(fmt_match(".equ\\S\\I\\s,\\s\\H", lines[i], fields)) {
+ uint32_t value = strtol(fields[1].c_str(), 0, 16);
+ symbols[fields[0]] = value;
+ MYLOG("PASS1, set symbol %s: %08X\n", fields[0].c_str(), value);
+ }
+ /* labels */
+ else
+ if(fmt_match("\\I:", lines[i], fields)) {
+ symbols[fields[0]] = vaddr;
+ MYLOG("PASS1, set label %s: %" PRIx64 "\n", fields[0].c_str(), vaddr);
+ }
+ }
+
+ /* SECOND PASS */
+ vaddr = 0;
+ for(unsigned i=0; i<lines.size(); ++i) {
+ vector<string> fields;
+
+ MYLOG("line %d: -%s-\n", i, lines[i].c_str());
+
+ /* .org directive */
+ if(fmt_match(".org\\S\\H", lines[i], fields)) {
+ vaddr = strtol(fields[0].c_str(), 0, 16);
+ MYLOG("set vaddr to: %" PRIx64 "\n", vaddr);
+ }
+ /* .endian directive */
+ else
+ if(fmt_match(".endian\\S\\I", lines[i], fields)) {
+ if(fields[0] == "big")
+ lilEndian = false;
+ else
+ if(fields[0] == "little")
+ lilEndian = true;
+ else {
+ err = "invalid argument to .endian directive (expected big or little)";
+ }
+ }
+ /* .equ directive */
+ else
+ if(fmt_match(".equ\\S\\I\\s,\\s\\H", lines[i], fields)) {
+
+ }
+ /* labels */
+ else
+ if(fmt_match("\\I:", lines[i], fields)) {
+
+ }
+ /* comments */
+ else
+ if(fmt_match("\\s//\\X", lines[i], fields)) {
+
+ }
+ /* instructions */
+ else {
+ uint8_t encoding[4];
+
+ /* replace the last word (if it exists) with a label/symbol */
+ string line = lines[i], token;
+ int left = (int)line.size()-1;
+ while(left>=0 && isalnum(line[left]))
+ left--;
+ left += 1;
+ token = line.substr(left, line.size()-left);
+ if(fmt_match("\\I", token, fields)) {
+ if(symbols.find(token) != symbols.end()) {
+ char buf[16];
+ int64_t value = symbols[token];
+ if(value < 0) {
+ snprintf(buf, sizeof(buf), "-0x%08X", (unsigned)(-1 * value));
+ }
+ else {
+ snprintf(buf, sizeof(buf), "0x%08X", (unsigned)value);
+ }
+ line.replace(left, line.size()-left, buf);
+ }
+ else {
+ MYLOG("not found in symbol table\n");
+ }
+ }
+ else {
+ MYLOG("not an identifier\n");
+ }
+
+ /* now actually assemble */
+ MYLOG("assembling: %s at address %" PRIx64 "\n", line.c_str(), vaddr);
+ int failures;
+ if(assemble_single(line, (uint32_t)vaddr, encoding, err, failures)) {
+ MYLOG("assemble_single failed, err contains: %s\n", err.c_str());
+ goto cleanup;
+ }
+
+ /* return results */
+ if(lilEndian == true) {
+ for(int i=0; i<4; ++i) {
+ MYLOG("LILEND returning byte %02X\n", encoding[i]);
+ result.push_back(encoding[i]);
+ }
+ }
+ else {
+ for(int i=3; i>=0; --i) {
+ MYLOG("BIGEND returning byte %02X\n", encoding[i]);
+ result.push_back(encoding[i]);
+ }
+ }
+
+ /* next! */
+ vaddr += 4;
+ }
+ }
+
+ rc = 0;
+ cleanup:
+ return rc;
+}
+
+