ref: 8be7f27b758ef9ef818f68db0d8bcb7b038eae0e
dir: /sys/src/libmach/test/q.c/
#include <u.h> #include <libc.h> #include <bio.h> #include <mach.h> /* * The following tables are copy-pasted from * the POWER ISA 3.1 instruction manual * "Instructions Ordered By Opcode" section */ typedef struct Ins Ins; typedef struct Word Word; struct Ins { char *op; char *a1; char *a2; char *a3; char *xop; }; struct Word { Ins; char *mneomic; }; Word instab[] = { {"000010", ".....", ".....", ".....", "...........", "tdi"}, {"000011", ".....", ".....", ".....", "...........", "twi"}, {"000100", ".....", ".....", ".....", "00000000000", "vaddubm"}, {"000100", ".....", ".....", ".....", "00001000000", "vadduhm"}, {"000100", ".....", ".....", ".....", "00010000000", "vadduwm"}, {"000100", ".....", ".....", ".....", "00011000000", "vaddudm"}, {"000100", ".....", ".....", ".....", "00100000000", "vadduqm"}, {"000100", ".....", ".....", ".....", "00101000000", "vaddcuq"}, {"000100", ".....", ".....", ".....", "00110000000", "vaddcuw"}, {"000100", ".....", ".....", ".....", "01000000000", "vaddubs"}, {"000100", ".....", ".....", ".....", "01001000000", "vadduhs"}, {"000100", ".....", ".....", ".....", "01010000000", "vadduws"}, {"000100", ".....", ".....", ".....", "01100000000", "vaddsbs"}, {"000100", ".....", ".....", ".....", "01101000000", "vaddshs"}, {"000100", ".....", ".....", ".....", "01110000000", "vaddsws"}, {"000100", ".....", ".....", ".....", "10000000000", "vsububm"}, {"000100", ".....", ".....", ".....", "10001000000", "vsubuhm"}, {"000100", ".....", ".....", ".....", "10010000000", "vsubuwm"}, {"000100", ".....", ".....", ".....", "10011000000", "vsubudm"}, {"000100", ".....", ".....", ".....", "10100000000", "vsubuqm"}, {"000100", ".....", ".....", ".....", "10101000000", "vsubcuq"}, {"000100", ".....", ".....", ".....", "10110000000", "vsubcuw"}, {"000100", ".....", ".....", ".....", "11000000000", "vsububs"}, {"000100", ".....", ".....", ".....", "11001000000", "vsubuhs"}, {"000100", ".....", ".....", ".....", "11010000000", "vsubuws"}, {"000100", ".....", ".....", ".....", "11100000000", "vsubsbs"}, {"000100", ".....", ".....", ".....", "11101000000", "vsubshs"}, {"000100", ".....", ".....", ".....", "11110000000", "vsubsws"}, {"000100", ".....", ".....", "/////", "00000000001", "vmul10cuq"}, {"000100", ".....", ".....", ".....", "00001000001", "vmul10ecuq"}, {"000100", "...//", ".....", ".....", "00100000001", "vcmpuq"}, {"000100", "...//", ".....", ".....", "00101000001", "vcmpsq"}, {"000100", ".....", ".....", "/////", "01000000001", "vmul10uq"}, {"000100", ".....", ".....", ".....", "01001000001", "vmul10euq"}, {"000100", ".....", ".....", ".....", "01101000001", "bcdcpsgn."}, {"000100", ".....", ".....", ".....", "1.000000001", "bcdadd."}, {"000100", ".....", ".....", ".....", "1.001000001", "bcdsub."}, {"000100", ".....", ".....", ".....", "1/010000001", "bcdus."}, {"000100", ".....", ".....", ".....", "1.011000001", "bcds."}, {"000100", ".....", ".....", ".....", "1.100000001", "bcdtrunc."}, {"000100", ".....", ".....", ".....", "1/101000001", "bcdutrunc."}, {"000100", ".....", "00000", ".....", "1/110000001", "bcdctsq."}, {"000100", ".....", "00010", ".....", "1.110000001", "bcdcfsq."}, {"000100", ".....", "00100", ".....", "1.110000001", "bcdctz."}, {"000100", ".....", "00101", ".....", "1/110000001", "bcdctn."}, {"000100", ".....", "00110", ".....", "1.110000001", "bcdcfz."}, {"000100", ".....", "00111", ".....", "1.110000001", "bcdcfn."}, {"000100", ".....", "11111", ".....", "1.110000001", "bcdsetsgn."}, {"000100", ".....", ".....", ".....", "1.111000001", "bcdsr."}, {"000100", ".....", ".....", ".....", "00000000010", "vmaxub"}, {"000100", ".....", ".....", ".....", "00001000010", "vmaxuh"}, {"000100", ".....", ".....", ".....", "00010000010", "vmaxuw"}, {"000100", ".....", ".....", ".....", "00011000010", "vmaxud"}, {"000100", ".....", ".....", ".....", "00100000010", "vmaxsb"}, {"000100", ".....", ".....", ".....", "00101000010", "vmaxsh"}, {"000100", ".....", ".....", ".....", "00110000010", "vmaxsw"}, {"000100", ".....", ".....", ".....", "00111000010", "vmaxsd"}, {"000100", ".....", ".....", ".....", "01000000010", "vminub"}, {"000100", ".....", ".....", ".....", "01001000010", "vminuh"}, {"000100", ".....", ".....", ".....", "01010000010", "vminuw"}, {"000100", ".....", ".....", ".....", "01011000010", "vminud"}, {"000100", ".....", ".....", ".....", "01100000010", "vminsb"}, {"000100", ".....", ".....", ".....", "01101000010", "vminsh"}, {"000100", ".....", ".....", ".....", "01110000010", "vminsw"}, {"000100", ".....", ".....", ".....", "01111000010", "vminsd"}, {"000100", ".....", ".....", ".....", "10000000010", "vavgub"}, {"000100", ".....", ".....", ".....", "10001000010", "vavguh"}, {"000100", ".....", ".....", ".....", "10010000010", "vavguw"}, {"000100", ".....", ".....", ".....", "10100000010", "vavgsb"}, {"000100", ".....", ".....", ".....", "10101000010", "vavgsh"}, {"000100", ".....", ".....", ".....", "10110000010", "vavgsw"}, {"000100", ".....", "00000", ".....", "11000000010", "vclzlsbb"}, {"000100", ".....", "00001", ".....", "11000000010", "vctzlsbb"}, {"000100", ".....", "00110", ".....", "11000000010", "vnegw"}, {"000100", ".....", "00111", ".....", "11000000010", "vnegd"}, {"000100", ".....", "01000", ".....", "11000000010", "vprtybw"}, {"000100", ".....", "01001", ".....", "11000000010", "vprtybd"}, {"000100", ".....", "01010", ".....", "11000000010", "vprtybq"}, {"000100", ".....", "10000", ".....", "11000000010", "vextsb2w"}, {"000100", ".....", "10001", ".....", "11000000010", "vextsh2w"}, {"000100", ".....", "11000", ".....", "11000000010", "vextsb2d"}, {"000100", ".....", "11001", ".....", "11000000010", "vextsh2d"}, {"000100", ".....", "11010", ".....", "11000000010", "vextsw2d"}, {"000100", ".....", "11011", ".....", "11000000010", "vextsd2q"}, {"000100", ".....", "11100", ".....", "11000000010", "vctzb"}, {"000100", ".....", "11101", ".....", "11000000010", "vctzh"}, {"000100", ".....", "11110", ".....", "11000000010", "vctzw"}, {"000100", ".....", "11111", ".....", "11000000010", "vctzd"}, {"000100", ".....", "00000", ".....", "11001000010", "vexpandbm"}, {"000100", ".....", "00001", ".....", "11001000010", "vexpandhm"}, {"000100", ".....", "00010", ".....", "11001000010", "vexpandwm"}, {"000100", ".....", "00011", ".....", "11001000010", "vexpanddm"}, {"000100", ".....", "00100", ".....", "11001000010", "vexpandqm"}, {"000100", ".....", "01000", ".....", "11001000010", "vextractbm"}, {"000100", ".....", "01001", ".....", "11001000010", "vextracthm"}, {"000100", ".....", "01010", ".....", "11001000010", "vextractwm"}, {"000100", ".....", "01011", ".....", "11001000010", "vextractdm"}, {"000100", ".....", "01100", ".....", "11001000010", "vextractqm"}, {"000100", ".....", "10000", ".....", "11001000010", "mtvsrbm"}, {"000100", ".....", "10001", ".....", "11001000010", "mtvsrhm"}, {"000100", ".....", "10010", ".....", "11001000010", "mtvsrwm"}, {"000100", ".....", "10011", ".....", "11001000010", "mtvsrdm"}, {"000100", ".....", "10100", ".....", "11001000010", "mtvsrqm"}, {"000100", ".....", "1100.", ".....", "11001000010", "vcntmbb"}, {"000100", ".....", "1101.", ".....", "11001000010", "vcntmbd"}, {"000100", ".....", "1110.", ".....", "11001000010", "vcntmbh"}, {"000100", ".....", "1111.", ".....", "11001000010", "vcntmbw"}, {"000100", ".....", ".....", ".....", "11010000010", "vshasigmaw"}, {"000100", ".....", ".....", ".....", "11011000010", "vshasigmad"}, {"000100", ".....", "/////", ".....", "11100000010", "vclzb"}, {"000100", ".....", "/////", ".....", "11101000010", "vclzh"}, {"000100", ".....", "/////", ".....", "11110000010", "vclzw"}, {"000100", ".....", "/////", ".....", "11111000010", "vclzd"}, {"000100", ".....", ".....", ".....", "10000000011", "vabsdub"}, {"000100", ".....", ".....", ".....", "10001000011", "vabsduh"}, {"000100", ".....", ".....", ".....", "10010000011", "vabsduw"}, {"000100", ".....", "/////", ".....", "11100000011", "vpopcntb"}, {"000100", ".....", "/////", ".....", "11101000011", "vpopcnth"}, {"000100", ".....", "/////", ".....", "11110000011", "vpopcntw"}, {"000100", ".....", "/////", ".....", "11111000011", "vpopcntd"}, {"000100", ".....", ".....", ".....", "00000000100", "vrlb"}, {"000100", ".....", ".....", ".....", "00001000100", "vrlh"}, {"000100", ".....", ".....", ".....", "00010000100", "vrlw"}, {"000100", ".....", ".....", ".....", "00011000100", "vrld"}, {"000100", ".....", ".....", ".....", "00100000100", "vslb"}, {"000100", ".....", ".....", ".....", "00101000100", "vslh"}, {"000100", ".....", ".....", ".....", "00110000100", "vslw"}, {"000100", ".....", ".....", ".....", "00111000100", "vsl"}, {"000100", ".....", ".....", ".....", "01000000100", "vsrb"}, {"000100", ".....", ".....", ".....", "01001000100", "vsrh"}, {"000100", ".....", ".....", ".....", "01010000100", "vsrw"}, {"000100", ".....", ".....", ".....", "01011000100", "vsr"}, {"000100", ".....", ".....", ".....", "01100000100", "vsrab"}, {"000100", ".....", ".....", ".....", "01101000100", "vsrah"}, {"000100", ".....", ".....", ".....", "01110000100", "vsraw"}, {"000100", ".....", ".....", ".....", "01111000100", "vsrad"}, {"000100", ".....", ".....", ".....", "10000000100", "vand"}, {"000100", ".....", ".....", ".....", "10001000100", "vandc"}, {"000100", ".....", ".....", ".....", "10010000100", "vor"}, {"000100", ".....", ".....", ".....", "10011000100", "vxor"}, {"000100", ".....", ".....", ".....", "10100000100", "vnor"}, {"000100", ".....", ".....", ".....", "10101000100", "vorc"}, {"000100", ".....", ".....", ".....", "10110000100", "vnand"}, {"000100", ".....", ".....", ".....", "10111000100", "vsld"}, {"000100", ".....", "/////", "/////", "11000000100", "mfvscr"}, {"000100", "/////", "/////", ".....", "11001000100", "mtvscr"}, {"000100", ".....", ".....", ".....", "11010000100", "veqv"}, {"000100", ".....", ".....", ".....", "11011000100", "vsrd"}, {"000100", ".....", ".....", ".....", "11100000100", "vsrv"}, {"000100", ".....", ".....", ".....", "11101000100", "vslv"}, {"000100", ".....", ".....", ".....", "11110000100", "vclzdm"}, {"000100", ".....", ".....", ".....", "11111000100", "vctzdm"}, {"000100", ".....", ".....", ".....", "00000000101", "vrlq"}, {"000100", ".....", ".....", ".....", "00001000101", "vrlqmi"}, {"000100", ".....", ".....", ".....", "00010000101", "vrlwmi"}, {"000100", ".....", ".....", ".....", "00011000101", "vrldmi"}, {"000100", ".....", ".....", ".....", "00100000101", "vslq"}, {"000100", ".....", ".....", ".....", "00101000101", "vrlqnm"}, {"000100", ".....", ".....", ".....", "00110000101", "vrlwnm"}, {"000100", ".....", ".....", ".....", "00111000101", "vrldnm"}, {"000100", ".....", ".....", ".....", "01000000101", "vsrq"}, {"000100", ".....", ".....", ".....", "01100000101", "vsraq"}, {"000100", ".....", ".....", ".....", ".0000000110", "vcmpequb[.]"}, {"000100", ".....", ".....", ".....", ".0001000110", "vcmpequh[.]"}, {"000100", ".....", ".....", ".....", ".0010000110", "vcmpequw[.]"}, {"000100", ".....", ".....", ".....", ".0011000110", "vcmpeqfp[.]"}, {"000100", ".....", ".....", ".....", ".0111000110", "vcmpgefp[.]"}, {"000100", ".....", ".....", ".....", ".1000000110", "vcmpgtub[.]"}, {"000100", ".....", ".....", ".....", ".1001000110", "vcmpgtuh[.]"}, {"000100", ".....", ".....", ".....", ".1010000110", "vcmpgtuw[.]"}, {"000100", ".....", ".....", ".....", ".1011000110", "vcmpgtfp[.]"}, {"000100", ".....", ".....", ".....", ".1100000110", "vcmpgtsb[.]"}, {"000100", ".....", ".....", ".....", ".1101000110", "vcmpgtsh[.]"}, {"000100", ".....", ".....", ".....", ".1110000110", "vcmpgtsw[.]"}, {"000100", ".....", ".....", ".....", ".1111000110", "vcmpbfp[.]"}, {"000100", ".....", ".....", ".....", ".0000000111", "vcmpneb[.]"}, {"000100", ".....", ".....", ".....", ".0001000111", "vcmpneh[.]"}, {"000100", ".....", ".....", ".....", ".0010000111", "vcmpnew[.]"}, {"000100", ".....", ".....", ".....", ".0011000111", "vcmpequd[.]"}, {"000100", ".....", ".....", ".....", ".0100000111", "vcmpnezb[.]"}, {"000100", ".....", ".....", ".....", ".0101000111", "vcmpnezh[.]"}, {"000100", ".....", ".....", ".....", ".0110000111", "vcmpnezw[.]"}, {"000100", ".....", ".....", ".....", ".0111000111", "vcmpequq[.]"}, {"000100", ".....", ".....", ".....", ".1010000111", "vcmpgtuq[.]"}, {"000100", ".....", ".....", ".....", ".1011000111", "vcmpgtud[.]"}, {"000100", ".....", ".....", ".....", ".1110000111", "vcmpgtsq[.]"}, {"000100", ".....", ".....", ".....", ".1111000111", "vcmpgtsd[.]"}, {"000100", ".....", ".....", ".....", "00000001000", "vmuloub"}, {"000100", ".....", ".....", ".....", "00001001000", "vmulouh"}, {"000100", ".....", ".....", ".....", "00010001000", "vmulouw"}, {"000100", ".....", ".....", ".....", "00011001000", "vmuloud"}, {"000100", ".....", ".....", ".....", "00100001000", "vmulosb"}, {"000100", ".....", ".....", ".....", "00101001000", "vmulosh"}, {"000100", ".....", ".....", ".....", "00110001000", "vmulosw"}, {"000100", ".....", ".....", ".....", "00111001000", "vmulosd"}, {"000100", ".....", ".....", ".....", "01000001000", "vmuleub"}, {"000100", ".....", ".....", ".....", "01001001000", "vmuleuh"}, {"000100", ".....", ".....", ".....", "01010001000", "vmuleuw"}, {"000100", ".....", ".....", ".....", "01011001000", "vmuleud"}, {"000100", ".....", ".....", ".....", "01100001000", "vmulesb"}, {"000100", ".....", ".....", ".....", "01101001000", "vmulesh"}, {"000100", ".....", ".....", ".....", "01110001000", "vmulesw"}, {"000100", ".....", ".....", ".....", "01111001000", "vmulesd"}, {"000100", ".....", ".....", ".....", "10000001000", "vpmsumb"}, {"000100", ".....", ".....", ".....", "10001001000", "vpmsumh"}, {"000100", ".....", ".....", ".....", "10010001000", "vpmsumw"}, {"000100", ".....", ".....", ".....", "10011001000", "vpmsumd"}, {"000100", ".....", ".....", ".....", "10100001000", "vcipher"}, {"000100", ".....", ".....", ".....", "10101001000", "vncipher"}, {"000100", ".....", ".....", "/////", "10111001000", "vsbox"}, {"000100", ".....", ".....", ".....", "11000001000", "vsum4ubs"}, {"000100", ".....", ".....", ".....", "11001001000", "vsum4shs"}, {"000100", ".....", ".....", ".....", "11010001000", "vsum2sws"}, {"000100", ".....", ".....", ".....", "11100001000", "vsum4sbs"}, {"000100", ".....", ".....", ".....", "11110001000", "vsumsws"}, {"000100", ".....", ".....", ".....", "00010001001", "vmuluwm"}, {"000100", ".....", ".....", ".....", "00111001001", "vmulld"}, {"000100", ".....", ".....", ".....", "01010001001", "vmulhuw"}, {"000100", ".....", ".....", ".....", "01011001001", "vmulhud"}, {"000100", ".....", ".....", ".....", "01110001001", "vmulhsw"}, {"000100", ".....", ".....", ".....", "01111001001", "vmulhsd"}, {"000100", ".....", ".....", ".....", "10100001001", "vcipherlast"}, {"000100", ".....", ".....", ".....", "10101001001", "vncipherlast"}, {"000100", ".....", ".....", ".....", "00000001010", "vaddfp"}, {"000100", ".....", ".....", ".....", "00001001010", "vsubfp"}, {"000100", ".....", "/////", ".....", "00100001010", "vrefp"}, {"000100", ".....", "/////", ".....", "00101001010", "vrsqrtefp"}, {"000100", ".....", "/////", ".....", "00110001010", "vexptefp"}, {"000100", ".....", "/////", ".....", "00111001010", "vlogefp"}, {"000100", ".....", "/////", ".....", "01000001010", "vrfin"}, {"000100", ".....", "/////", ".....", "01001001010", "vrfiz"}, {"000100", ".....", "/////", ".....", "01010001010", "vrfip"}, {"000100", ".....", "/////", ".....", "01011001010", "vrfim"}, {"000100", ".....", ".....", ".....", "01100001010", "vcfux"}, {"000100", ".....", ".....", ".....", "01101001010", "vcfsx"}, {"000100", ".....", ".....", ".....", "01110001010", "vctuxs"}, {"000100", ".....", ".....", ".....", "01111001010", "vctsxs"}, {"000100", ".....", ".....", ".....", "10000001010", "vmaxfp"}, {"000100", ".....", ".....", ".....", "10001001010", "vminfp"}, {"000100", ".....", ".....", ".....", "00000001011", "vdivuq"}, {"000100", ".....", ".....", ".....", "00010001011", "vdivuw"}, {"000100", ".....", ".....", ".....", "00011001011", "vdivud"}, {"000100", ".....", ".....", ".....", "00100001011", "vdivsq"}, {"000100", ".....", ".....", ".....", "00110001011", "vdivsw"}, {"000100", ".....", ".....", ".....", "00111001011", "vdivsd"}, {"000100", ".....", ".....", ".....", "01000001011", "vdiveuq"}, {"000100", ".....", ".....", ".....", "01010001011", "vdiveuw"}, {"000100", ".....", ".....", ".....", "01011001011", "vdiveud"}, {"000100", ".....", ".....", ".....", "01100001011", "vdivesq"}, {"000100", ".....", ".....", ".....", "01110001011", "vdivesw"}, {"000100", ".....", ".....", ".....", "01111001011", "vdivesd"}, {"000100", ".....", ".....", ".....", "11000001011", "vmoduq"}, {"000100", ".....", ".....", ".....", "11010001011", "vmoduw"}, {"000100", ".....", ".....", ".....", "11011001011", "vmodud"}, {"000100", ".....", ".....", ".....", "11100001011", "vmodsq"}, {"000100", ".....", ".....", ".....", "11110001011", "vmodsw"}, {"000100", ".....", ".....", ".....", "11111001011", "vmodsd"}, {"000100", ".....", ".....", ".....", "00000001100", "vmrghb"}, {"000100", ".....", ".....", ".....", "00001001100", "vmrghh"}, {"000100", ".....", ".....", ".....", "00010001100", "vmrghw"}, {"000100", ".....", ".....", ".....", "00100001100", "vmrglb"}, {"000100", ".....", ".....", ".....", "00101001100", "vmrglh"}, {"000100", ".....", ".....", ".....", "00110001100", "vmrglw"}, {"000100", ".....", "/....", ".....", "01000001100", "vspltb"}, {"000100", ".....", "//...", ".....", "01001001100", "vsplth"}, {"000100", ".....", "///..", ".....", "01010001100", "vspltw"}, {"000100", ".....", ".....", "/////", "01100001100", "vspltisb"}, {"000100", ".....", ".....", "/////", "01101001100", "vspltish"}, {"000100", ".....", ".....", "/////", "01110001100", "vspltisw"}, {"000100", ".....", ".....", ".....", "10000001100", "vslo"}, {"000100", ".....", ".....", ".....", "10001001100", "vsro"}, {"000100", ".....", "//...", ".....", "10011001100", "vgnb"}, {"000100", ".....", "/////", ".....", "10100001100", "vgbbd"}, {"000100", ".....", ".....", ".....", "10101001100", "vbpermq"}, {"000100", ".....", ".....", ".....", "10111001100", "vbpermd"}, {"000100", ".....", ".....", ".....", "11010001100", "vmrgow"}, {"000100", ".....", ".....", ".....", "11110001100", "vmrgew"}, {"000100", ".....", "00000", ".....", ".0000001101", "vstribl[.]"}, {"000100", ".....", "00001", ".....", ".0000001101", "vstribr[.]"}, {"000100", ".....", "00010", ".....", ".0000001101", "vstrihl[.]"}, {"000100", ".....", "00011", ".....", ".0000001101", "vstrihr[.]"}, {"000100", ".....", ".....", ".....", "00110001101", "vclrlb"}, {"000100", ".....", ".....", ".....", "00111001101", "vclrrb"}, {"000100", ".....", "/....", ".....", "01000001101", "vextractub"}, {"000100", ".....", "/....", ".....", "01001001101", "vextractuh"}, {"000100", ".....", "/....", ".....", "01010001101", "vextractuw"}, {"000100", ".....", "/....", ".....", "01011001101", "vextractd"}, {"000100", ".....", "/....", ".....", "01100001101", "vinsertb"}, {"000100", ".....", "/....", ".....", "01101001101", "vinserth"}, {"000100", ".....", "/....", ".....", "01110001101", "vinsertw"}, {"000100", ".....", "/....", ".....", "01111001101", "vinsertd"}, {"000100", ".....", ".....", ".....", "10101001101", "vcfuged"}, {"000100", ".....", ".....", ".....", "10110001101", "vpextd"}, {"000100", ".....", ".....", ".....", "10111001101", "vpdepd"}, {"000100", ".....", ".....", ".....", "11000001101", "vextublx"}, {"000100", ".....", ".....", ".....", "11001001101", "vextuhlx"}, {"000100", ".....", ".....", ".....", "11010001101", "vextuwlx"}, {"000100", ".....", ".....", ".....", "11100001101", "vextubrx"}, {"000100", ".....", ".....", ".....", "11101001101", "vextuhrx"}, {"000100", ".....", ".....", ".....", "11110001101", "vextuwrx"}, {"000100", ".....", ".....", ".....", "00000001110", "vpkuhum"}, {"000100", ".....", ".....", ".....", "00001001110", "vpkuwum"}, {"000100", ".....", ".....", ".....", "00010001110", "vpkuhus"}, {"000100", ".....", ".....", ".....", "00011001110", "vpkuwus"}, {"000100", ".....", ".....", ".....", "00100001110", "vpkshus"}, {"000100", ".....", ".....", ".....", "00101001110", "vpkswus"}, {"000100", ".....", ".....", ".....", "00110001110", "vpkshss"}, {"000100", ".....", ".....", ".....", "00111001110", "vpkswss"}, {"000100", ".....", "/////", ".....", "01000001110", "vupkhsb"}, {"000100", ".....", "/////", ".....", "01001001110", "vupkhsh"}, {"000100", ".....", "/////", ".....", "01010001110", "vupklsb"}, {"000100", ".....", "/////", ".....", "01011001110", "vupklsh"}, {"000100", ".....", ".....", ".....", "01100001110", "vpkpx"}, {"000100", ".....", "/////", ".....", "01101001110", "vupkhpx"}, {"000100", ".....", "/////", ".....", "01111001110", "vupklpx"}, {"000100", ".....", ".....", ".....", "10001001110", "vpkudum"}, {"000100", ".....", ".....", ".....", "10011001110", "vpkudus"}, {"000100", ".....", ".....", ".....", "10101001110", "vpksdus"}, {"000100", ".....", ".....", ".....", "10111001110", "vpksdss"}, {"000100", ".....", "/////", ".....", "11001001110", "vupkhsw"}, {"000100", ".....", "/////", ".....", "11011001110", "vupklsw"}, {"000100", ".....", ".....", ".....", "00000001111", "vinsbvlx"}, {"000100", ".....", ".....", ".....", "00001001111", "vinshvlx"}, {"000100", ".....", ".....", ".....", "00010001111", "vinswvlx"}, {"000100", ".....", "/....", ".....", "00011001111", "vinsw"}, {"000100", ".....", ".....", ".....", "00100001111", "vinsbvrx"}, {"000100", ".....", ".....", ".....", "00101001111", "vinshvrx"}, {"000100", ".....", ".....", ".....", "00110001111", "vinswvrx"}, {"000100", ".....", "/....", ".....", "00111001111", "vinsd"}, {"000100", ".....", ".....", ".....", "01000001111", "vinsblx"}, {"000100", ".....", ".....", ".....", "01001001111", "vinshlx"}, {"000100", ".....", ".....", ".....", "01010001111", "vinswlx"}, {"000100", ".....", ".....", ".....", "01011001111", "vinsdlx"}, {"000100", ".....", ".....", ".....", "01100001111", "vinsbrx"}, {"000100", ".....", ".....", ".....", "01101001111", "vinshrx"}, {"000100", ".....", ".....", ".....", "01110001111", "vinswrx"}, {"000100", ".....", ".....", ".....", "01111001111", "vinsdrx"}, {"000100", ".....", ".....", ".....", ".....01010.", "mtvsrbmi"}, {"000100", ".....", ".....", ".....", "00...010110", "vsldbi"}, {"000100", ".....", ".....", ".....", "01...010110", "vsrdbi"}, {"000100", ".....", ".....", ".....", ".....010111", "vmsumcud"}, {"000100", ".....", ".....", ".....", ".....011000", "vextdubvlx"}, {"000100", ".....", ".....", ".....", ".....011001", "vextdubvrx"}, {"000100", ".....", ".....", ".....", ".....011010", "vextduhvlx"}, {"000100", ".....", ".....", ".....", ".....011011", "vextduhvrx"}, {"000100", ".....", ".....", ".....", ".....011100", "vextduwvlx"}, {"000100", ".....", ".....", ".....", ".....011101", "vextduwvrx"}, {"000100", ".....", ".....", ".....", ".....011110", "vextddvlx"}, {"000100", ".....", ".....", ".....", ".....011111", "vextddvrx"}, {"000100", ".....", ".....", ".....", ".....100000", "vmhaddshs"}, {"000100", ".....", ".....", ".....", ".....100001", "vmhraddshs"}, {"000100", ".....", ".....", ".....", ".....100010", "vmladduhm"}, {"000100", ".....", ".....", ".....", ".....100011", "vmsumudm"}, {"000100", ".....", ".....", ".....", ".....100100", "vmsumubm"}, {"000100", ".....", ".....", ".....", ".....100101", "vmsummbm"}, {"000100", ".....", ".....", ".....", ".....100110", "vmsumuhm"}, {"000100", ".....", ".....", ".....", ".....100111", "vmsumuhs"}, {"000100", ".....", ".....", ".....", ".....101000", "vmsumshm"}, {"000100", ".....", ".....", ".....", ".....101001", "vmsumshs"}, {"000100", ".....", ".....", ".....", ".....101010", "vsel"}, {"000100", ".....", ".....", ".....", ".....101011", "vperm"}, {"000100", ".....", ".....", ".....", "/....101100", "vsldoi"}, {"000100", ".....", ".....", ".....", ".....101101", "vpermxor"}, {"000100", ".....", ".....", ".....", ".....101110", "vmaddfp"}, {"000100", ".....", ".....", ".....", ".....101111", "vnmsubfp"}, {"000100", ".....", ".....", ".....", ".....110000", "maddhd"}, {"000100", ".....", ".....", ".....", ".....110001", "maddhdu"}, {"000100", ".....", ".....", ".....", ".....110011", "maddld"}, {"000100", ".....", ".....", ".....", ".....111011", "vpermr"}, {"000100", ".....", ".....", ".....", ".....111100", "vaddeuqm"}, {"000100", ".....", ".....", ".....", ".....111101", "vaddecuq"}, {"000100", ".....", ".....", ".....", ".....111110", "vsubeuqm"}, {"000100", ".....", ".....", ".....", ".....111111", "vsubecuq"}, {"000110", ".....", ".....", ".....", ".......0000", "lxvp"}, {"000110", ".....", ".....", ".....", ".......0001", "stxvp"}, {"000111", ".....", ".....", ".....", "...........", "mulli"}, {"001000", ".....", ".....", ".....", "...........", "subfic"}, {"001010", ".../.", ".....", ".....", "...........", "cmpli"}, {"001011", ".../.", ".....", ".....", "...........", "cmpi"}, {"001100", ".....", ".....", ".....", "...........", "addic"}, {"001101", ".....", ".....", ".....", "...........", "addic."}, {"001110", ".....", ".....", ".....", "...........", "addi"}, {"001111", ".....", ".....", ".....", "...........", "addis"}, {"010000", ".....", ".....", ".....", "...........", "bc[l][a]"}, {"010001", "/////", "/////", "////.", "......///01", "scv"}, {"010001", "/////", "/////", "////.", "......///1/", "sc"}, {"010010", ".....", ".....", ".....", "...........", "b[l][a]"}, {"010011", "...//", "...//", "/////", "0000000000/", "mcrf"}, {"010011", ".....", ".....", ".....", "0000100001/", "crnor"}, {"010011", ".....", ".....", ".....", "0010000001/", "crandc"}, {"010011", ".....", ".....", ".....", "0011000001/", "crxor"}, {"010011", ".....", ".....", ".....", "0011100001/", "crnand"}, {"010011", ".....", ".....", ".....", "0100000001/", "crand"}, {"010011", ".....", ".....", ".....", "0100100001/", "creqv"}, {"010011", ".....", ".....", ".....", "0110100001/", "crorc"}, {"010011", ".....", ".....", ".....", "0111000001/", "cror"}, {"010011", ".....", ".....", ".....", ".....00010.", "addpcis"}, {"010011", ".....", ".....", "///..", "0000010000.", "bclr[l]"}, {"010011", ".....", ".....", "///..", "1000010000.", "bcctr[l]"}, {"010011", ".....", ".....", "///..", "1000110000.", "bctar[l]"}, {"010011", "/////", "/////", "/////", "0000010010/", "rfid"}, {"010011", "/////", "/////", "/////", "0001010010/", "rfscv"}, {"010011", "/////", "/////", "////.", "0010010010/", "rfebb"}, {"010011", "/////", "/////", "/////", "0100010010/", "hrfid"}, {"010011", "/////", "/////", "/////", "0100110010/", "urfid"}, {"010011", "/////", "/////", "/////", "0101110010/", "stop"}, {"010011", "/////", "/////", "/////", "0010010110/", "isync"}, {"010100", ".....", ".....", ".....", "...........", "rlwimi[.]"}, {"010101", ".....", ".....", ".....", "...........", "rlwinm[.]"}, {"010111", ".....", ".....", ".....", "...........", "rlwnm[.]"}, {"011000", ".....", ".....", ".....", "...........", "ori"}, {"011001", ".....", ".....", ".....", "...........", "oris"}, {"011010", ".....", ".....", ".....", "...........", "xori"}, {"011011", ".....", ".....", ".....", "...........", "xoris"}, {"011100", ".....", ".....", ".....", "...........", "andi."}, {"011101", ".....", ".....", ".....", "...........", "andis."}, {"011110", ".....", ".....", ".....", "......000..", "rldicl[.]"}, {"011110", ".....", ".....", ".....", "......001..", "rldicr[.]"}, {"011110", ".....", ".....", ".....", "......010..", "rldic[.]"}, {"011110", ".....", ".....", ".....", "......011..", "rldimi[.]"}, {"011110", ".....", ".....", ".....", "......1000.", "rldcl[.]"}, {"011110", ".....", ".....", ".....", "......1001.", "rldcr[.]"}, {"011111", ".../.", ".....", ".....", "0000000000/", "cmp"}, {"011111", ".../.", ".....", ".....", "0000100000/", "cmpl"}, {"011111", ".....", "...//", "/////", "0010000000/", "setb"}, {"011111", ".../.", ".....", ".....", "0011000000/", "cmprb"}, {"011111", "...//", ".....", ".....", "0011100000/", "cmpeqb"}, {"011111", ".....", ".....", "/////", "0110000000/", "setbc"}, {"011111", ".....", ".....", "/////", "0110100000/", "setbcr"}, {"011111", ".....", ".....", "/////", "0111000000/", "setnbc"}, {"011111", ".....", ".....", "/////", "0111100000/", "setnbcr"}, {"011111", "...//", "/////", "/////", "1001000000/", "mcrxrx"}, {"011111", ".....", ".....", ".....", "0000000100/", "tw"}, {"011111", ".....", ".....", ".....", "0001000100/", "td"}, {"011111", ".....", ".....", ".....", "0000000110/", "lvsl"}, {"011111", ".....", ".....", ".....", "0000100110/", "lvsr"}, {"011111", ".....", ".....", ".....", "1001000110/", "lwat"}, {"011111", ".....", ".....", ".....", "1001100110/", "ldat"}, {"011111", ".....", ".....", ".....", "1011000110/", "stwat"}, {"011111", ".....", ".....", ".....", "1011100110/", "stdat"}, {"011111", "////.", ".....", ".....", "1100000110/", "copy"}, {"011111", "/////", "/////", "/////", "1101000110/", "cpabort"}, {"011111", "////.", ".....", ".....", "1110000110.", "paste[.]"}, {"011111", ".....", ".....", ".....", "0000000111/", "lvebx"}, {"011111", ".....", ".....", ".....", "0000100111/", "lvehx"}, {"011111", ".....", ".....", ".....", "0001000111/", "lvewx"}, {"011111", ".....", ".....", ".....", "0001100111/", "lvx"}, {"011111", ".....", ".....", ".....", "0010000111/", "stvebx"}, {"011111", ".....", ".....", ".....", "0010100111/", "stvehx"}, {"011111", ".....", ".....", ".....", "0011000111/", "stvewx"}, {"011111", ".....", ".....", ".....", "0011100111/", "stvx"}, {"011111", ".....", ".....", ".....", "0101100111/", "lvxl"}, {"011111", ".....", ".....", ".....", "0111100111/", "stvxl"}, {"011111", ".....", ".....", ".....", "0000001000.", "subfc[.]"}, {"011111", ".....", ".....", ".....", "0000101000.", "subf[.]"}, {"011111", ".....", ".....", "/////", "0001101000.", "neg[.]"}, {"011111", ".....", ".....", ".....", "0010001000.", "subfe[.]"}, {"011111", ".....", ".....", "/////", "0011001000.", "subfze[.]"}, {"011111", ".....", ".....", "/////", "0011101000.", "subfme[.]"}, {"011111", ".....", ".....", ".....", "1000001000.", "subfco[.]"}, {"011111", ".....", ".....", ".....", "1000101000.", "subfo[.]"}, {"011111", ".....", ".....", "/////", "1001101000.", "nego[.]"}, {"011111", ".....", ".....", ".....", "1010001000.", "subfeo[.]"}, {"011111", ".....", ".....", "/////", "1011001000.", "subfzeo[.]"}, {"011111", ".....", ".....", "/////", "1011101000.", "subfmeo[.]"}, {"011111", ".....", ".....", ".....", "/000001001.", "mulhdu[.]"}, {"011111", ".....", ".....", ".....", "/001001001.", "mulhd[.]"}, {"011111", ".....", ".....", ".....", "0011101001.", "mulld[.]"}, {"011111", ".....", ".....", ".....", "0100001001/", "modud"}, {"011111", ".....", ".....", ".....", "0110001001.", "divdeu[.]"}, {"011111", ".....", ".....", ".....", "0110101001.", "divde[.]"}, {"011111", ".....", ".....", ".....", "0111001001.", "divdu[.]"}, {"011111", ".....", ".....", ".....", "0111101001.", "divd[.]"}, {"011111", ".....", ".....", ".....", "1011101001.", "mulldo[.]"}, {"011111", ".....", ".....", ".....", "1100001001/", "modsd"}, {"011111", ".....", ".....", ".....", "1110001001.", "divdeuo[.]"}, {"011111", ".....", ".....", ".....", "1110101001.", "divdeo[.]"}, {"011111", ".....", ".....", ".....", "1111001001.", "divduo[.]"}, {"011111", ".....", ".....", ".....", "1111101001.", "divdo[.]"}, {"011111", ".....", ".....", ".....", "..10101010/", "addex"}, {"011111", ".....", ".....", ".....", "/001001010/", "addg"}, {"011111", ".....", ".....", ".....", "0000001010.", "addc[.]"}, {"011111", ".....", ".....", ".....", "0010001010.", "adde[.]"}, {"011111", ".....", ".....", "/////", "0011001010.", "addze[.]"}, {"011111", ".....", ".....", "/////", "0011101010.", "addme[.]"}, {"011111", ".....", ".....", ".....", "0100001010.", "add[.]"}, {"011111", ".....", ".....", ".....", "1000001010.", "addco[.]"}, {"011111", ".....", ".....", ".....", "1010001010.", "addeo[.]"}, {"011111", ".....", ".....", "/////", "1011001010.", "addzeo[.]"}, {"011111", ".....", ".....", "/////", "1011101010.", "addmeo[.]"}, {"011111", ".....", ".....", ".....", "1100001010.", "addo[.]"}, {"011111", ".....", ".....", ".....", "/000001011.", "mulhwu[.]"}, {"011111", ".....", ".....", ".....", "/001001011.", "mulhw[.]"}, {"011111", ".....", ".....", ".....", "0011101011.", "mullw[.]"}, {"011111", ".....", ".....", ".....", "0100001011/", "moduw"}, {"011111", ".....", ".....", ".....", "0110001011.", "divweu[.]"}, {"011111", ".....", ".....", ".....", "0110101011.", "divwe[.]"}, {"011111", ".....", ".....", ".....", "0111001011.", "divwu[.]"}, {"011111", ".....", ".....", ".....", "0111101011.", "divw[.]"}, {"011111", ".....", ".....", ".....", "1011101011.", "mullwo[.]"}, {"011111", ".....", ".....", ".....", "1100001011/", "modsw"}, {"011111", ".....", ".....", ".....", "1110001011.", "divweuo[.]"}, {"011111", ".....", ".....", ".....", "1110101011.", "divweo[.]"}, {"011111", ".....", ".....", ".....", "1111001011.", "divwuo[.]"}, {"011111", ".....", ".....", ".....", "1111101011.", "divwo[.]"}, {"011111", ".....", ".....", ".....", "0000001100.", "lxsiwzx"}, {"011111", ".....", ".....", ".....", "0001001100.", "lxsiwax"}, {"011111", ".....", ".....", ".....", "0010001100.", "stxsiwx"}, {"011111", ".....", ".....", ".....", "0100/01100.", "lxvx"}, {"011111", ".....", ".....", ".....", "0101001100.", "lxvdsx"}, {"011111", ".....", ".....", ".....", "0101101100.", "lxvwsx"}, {"011111", ".....", ".....", ".....", "0110001100.", "stxvx"}, {"011111", ".....", ".....", ".....", "1000001100.", "lxsspx"}, {"011111", ".....", ".....", ".....", "1001001100.", "lxsdx"}, {"011111", ".....", ".....", ".....", "1010001100.", "stxsspx"}, {"011111", ".....", ".....", ".....", "1011001100.", "stxsdx"}, {"011111", ".....", ".....", ".....", "1100001100.", "lxvw4x"}, {"011111", ".....", ".....", ".....", "1100101100.", "lxvh8x"}, {"011111", ".....", ".....", ".....", "1101001100.", "lxvd2x"}, {"011111", ".....", ".....", ".....", "1101101100.", "lxvb16x"}, {"011111", ".....", ".....", ".....", "1110001100.", "stxvw4x"}, {"011111", ".....", ".....", ".....", "1110101100.", "stxvh8x"}, {"011111", ".....", ".....", ".....", "1111001100.", "stxvd2x"}, {"011111", ".....", ".....", ".....", "1111101100.", "stxvb16x"}, {"011111", ".....", ".....", ".....", "0000001101.", "lxvrbx"}, {"011111", ".....", ".....", ".....", "0000101101.", "lxvrhx"}, {"011111", ".....", ".....", ".....", "0001001101.", "lxvrwx"}, {"011111", ".....", ".....", ".....", "0001101101.", "lxvrdx"}, {"011111", ".....", ".....", ".....", "0010001101.", "stxvrbx"}, {"011111", ".....", ".....", ".....", "0010101101.", "stxvrhx"}, {"011111", ".....", ".....", ".....", "0011001101.", "stxvrwx"}, {"011111", ".....", ".....", ".....", "0011101101.", "stxvrdx"}, {"011111", ".....", ".....", ".....", "0100001101.", "lxvl"}, {"011111", ".....", ".....", ".....", "0100101101.", "lxvll"}, {"011111", ".....", ".....", ".....", "0101001101/", "lxvpx"}, {"011111", ".....", ".....", ".....", "0110001101.", "stxvl"}, {"011111", ".....", ".....", ".....", "0110101101.", "stxvll"}, {"011111", ".....", ".....", ".....", "0111001101/", "stxvpx"}, {"011111", ".....", ".....", ".....", "1100001101.", "lxsibzx"}, {"011111", ".....", ".....", ".....", "1100101101.", "lxsihzx"}, {"011111", ".....", ".....", ".....", "1110001101.", "stxsibx"}, {"011111", ".....", ".....", ".....", "1110101101.", "stxsihx"}, {"011111", "/////", "/////", ".....", "0001001110/", "msgsndu"}, {"011111", "/////", "/////", ".....", "0001101110/", "msgclru"}, {"011111", "/////", "/////", ".....", "0010001110/", "msgsndp"}, {"011111", "/////", "/////", ".....", "0010101110/", "msgclrp"}, {"011111", "/////", "/////", ".....", "0011001110/", "msgsnd"}, {"011111", "/////", "/////", ".....", "0011101110/", "msgclr"}, {"011111", ".....", ".....", ".....", "0100101110/", "mfbhrbe"}, {"011111", "/////", "/////", "/////", "0110101110/", "clrbhrb"}, {"011111", ".....", ".....", ".....", ".....01111/", "isel"}, {"011111", ".....", "0....", "..../", "0010010000/", "mtcrf"}, {"011111", ".....", "1....", "..../", "0010010000/", "mtocrf"}, {"011111", "...//", "00000", "/////", "0010110001/", "xxmfacc"}, {"011111", "...//", "00001", "/////", "0010110001/", "xxmtacc"}, {"011111", "...//", "00011", "/////", "0010110001/", "xxsetaccz"}, {"011111", ".....", "////.", "/////", "0010010010/", "mtmsr"}, {"011111", ".....", "////.", "/////", "0010110010/", "mtmsrd"}, {"011111", ".....", "/....", ".....", "0100010010/", "tlbiel"}, {"011111", ".....", "/....", ".....", "0100110010/", "tlbie"}, {"011111", "/////", "/////", "/////", "0101010010/", "slbsync"}, {"011111", ".....", "/////", ".....", "0110010010/", "slbmte"}, {"011111", "/////", "/////", ".....", "0110110010/", "slbie"}, {"011111", ".....", "/////", ".....", "0111010010/", "slbieg"}, {"011111", "//...", "/////", "/////", "0111110010/", "slbia"}, {"011111", ".....", "/////", ".....", "1101010010/", "slbiag"}, {"011111", ".....", "0////", "/////", "0000010011/", "mfcr"}, {"011111", ".....", "1....", "..../", "0000010011/", "mfocrf"}, {"011111", ".....", ".....", "/////", "0000110011.", "mfvsrd"}, {"011111", ".....", "/////", "/////", "0001010011/", "mfmsr"}, {"011111", ".....", ".....", "/////", "0001110011.", "mfvsrwz"}, {"011111", ".....", ".....", "/////", "0010110011.", "mtvsrd"}, {"011111", ".....", ".....", "/////", "0011010011.", "mtvsrwa"}, {"011111", ".....", ".....", "/////", "0011110011.", "mtvsrwz"}, {"011111", ".....", ".....", "/////", "0100110011.", "mfvsrld"}, {"011111", ".....", ".....", ".....", "0101010011/", "mfspr"}, {"011111", ".....", ".....", ".....", "0101110011/", "mftb"}, {"011111", ".....", ".....", "/////", "0110010011.", "mtvsrws"}, {"011111", ".....", ".....", ".....", "0110110011.", "mtvsrdd"}, {"011111", ".....", ".....", ".....", "0111010011/", "mtspr"}, {"011111", ".....", "///..", "/////", "1011110011/", "darn"}, {"011111", ".....", "/////", ".....", "1101010011/", "slbmfev"}, {"011111", ".....", "/////", ".....", "1110010011/", "slbmfee"}, {"011111", ".....", "/////", ".....", "11110100111", "slbfee."}, {"011111", ".....", ".....", ".....", "0000010100/", "lwarx"}, {"011111", ".....", ".....", ".....", "0000110100.", "lbarx"}, {"011111", ".....", ".....", ".....", "0001010100/", "ldarx"}, {"011111", ".....", ".....", ".....", "0001110100.", "lharx"}, {"011111", ".....", ".....", ".....", "0100010100.", "lqarx"}, {"011111", ".....", ".....", ".....", "1000010100/", "ldbrx"}, {"011111", ".....", ".....", ".....", "1010010100/", "stdbrx"}, {"011111", ".....", ".....", ".....", "0000010101/", "ldx"}, {"011111", ".....", ".....", ".....", "0000110101/", "ldux"}, {"011111", ".....", ".....", ".....", "0010010101/", "stdx"}, {"011111", ".....", ".....", ".....", "0010110101/", "stdux"}, {"011111", ".....", ".....", ".....", "0101010101/", "lwax"}, {"011111", ".....", ".....", ".....", "0101110101/", "lwaux"}, {"011111", ".....", ".....", ".....", "1000010101/", "lswx"}, {"011111", ".....", ".....", ".....", "1001010101/", "lswi"}, {"011111", ".....", ".....", ".....", "1010010101/", "stswx"}, {"011111", ".....", ".....", ".....", "1011010101/", "stswi"}, {"011111", ".....", ".....", ".....", "1100010101/", "lwzcix"}, {"011111", ".....", ".....", ".....", "1100110101/", "lhzcix"}, {"011111", ".....", ".....", ".....", "1101010101/", "lbzcix"}, {"011111", ".....", ".....", ".....", "1101110101/", "ldcix"}, {"011111", ".....", ".....", ".....", "1110010101/", "stwcix"}, {"011111", ".....", ".....", ".....", "1110110101/", "sthcix"}, {"011111", ".....", ".....", ".....", "1111010101/", "stbcix"}, {"011111", ".....", ".....", ".....", "1111110101/", "stdcix"}, {"011111", "/....", ".....", ".....", "0000010110/", "icbt"}, {"011111", "/////", ".....", ".....", "0000110110/", "dcbst"}, {"011111", "///..", ".....", ".....", "0001010110/", "dcbf"}, {"011111", ".....", ".....", ".....", "0011110110/", "dcbtst"}, {"011111", ".....", ".....", ".....", "0100010110/", "dcbt"}, {"011111", ".....", ".....", ".....", "1000010110/", "lwbrx"}, {"011111", "/////", "/////", "/////", "1000110110/", "tlbsync"}, {"011111", "///..", "/////", "/////", "1001010110/", "sync"}, {"011111", ".....", ".....", ".....", "1010010110/", "stwbrx"}, {"011111", ".....", ".....", ".....", "1100010110/", "lhbrx"}, {"011111", "/////", "/////", "/////", "1101010110/", "eieio"}, {"011111", "/////", "/////", "/////", "1101110110/", "msgsync"}, {"011111", ".....", ".....", ".....", "1110010110/", "sthbrx"}, {"011111", "/////", ".....", ".....", "1111010110/", "icbi"}, {"011111", "/////", ".....", ".....", "1111110110/", "dcbz"}, {"011111", ".....", ".....", ".....", "00100101101", "stwcx."}, {"011111", ".....", ".....", ".....", "00101101101", "stqcx."}, {"011111", ".....", ".....", ".....", "00110101101", "stdcx."}, {"011111", ".....", ".....", ".....", "10101101101", "stbcx."}, {"011111", ".....", ".....", ".....", "10110101101", "sthcx."}, {"011111", ".....", ".....", ".....", "0000010111/", "lwzx"}, {"011111", ".....", ".....", ".....", "0000110111/", "lwzux"}, {"011111", ".....", ".....", ".....", "0001010111/", "lbzx"}, {"011111", ".....", ".....", ".....", "0001110111/", "lbzux"}, {"011111", ".....", ".....", ".....", "0010010111/", "stwx"}, {"011111", ".....", ".....", ".....", "0010110111/", "stwux"}, {"011111", ".....", ".....", ".....", "0011010111/", "stbx"}, {"011111", ".....", ".....", ".....", "0011110111/", "stbux"}, {"011111", ".....", ".....", ".....", "0100010111/", "lhzx"}, {"011111", ".....", ".....", ".....", "0100110111/", "lhzux"}, {"011111", ".....", ".....", ".....", "0101010111/", "lhax"}, {"011111", ".....", ".....", ".....", "0101110111/", "lhaux"}, {"011111", ".....", ".....", ".....", "0110010111/", "sthx"}, {"011111", ".....", ".....", ".....", "0110110111/", "sthux"}, {"011111", "///..", ".....", ".....", "0111110111/", "spom"}, {"011111", ".....", ".....", ".....", "1000010111/", "lfsx"}, {"011111", ".....", ".....", ".....", "1000110111/", "lfsux"}, {"011111", ".....", ".....", ".....", "1001010111/", "lfdx"}, {"011111", ".....", ".....", ".....", "1001110111/", "lfdux"}, {"011111", ".....", ".....", ".....", "1010010111/", "stfsx"}, {"011111", ".....", ".....", ".....", "1010110111/", "stfsux"}, {"011111", ".....", ".....", ".....", "1011010111/", "stfdx"}, {"011111", ".....", ".....", ".....", "1011110111/", "stfdux"}, {"011111", ".....", ".....", ".....", "1100010111/", "lfdpx"}, {"011111", ".....", ".....", ".....", "1101010111/", "lfiwax"}, {"011111", ".....", ".....", ".....", "1101110111/", "lfiwzx"}, {"011111", ".....", ".....", ".....", "1110010111/", "stfdpx"}, {"011111", ".....", ".....", ".....", "1111010111/", "stfiwx"}, {"011111", "/////", ".....", ".....", "1111110111/", "lqm"}, {"011111", ".....", ".....", ".....", "0000011000.", "slw[.]"}, {"011111", ".....", ".....", ".....", "1000011000.", "srw[.]"}, {"011111", ".....", ".....", ".....", "1100011000.", "sraw[.]"}, {"011111", ".....", ".....", ".....", "1100111000.", "srawi[.]"}, {"011111", ".....", ".....", ".....", "110011101..", "sradi[.]"}, {"011111", ".....", ".....", ".....", "110111101..", "extswsli[.]"}, {"011111", ".....", ".....", "/////", "0000011010.", "cntlzw[.]"}, {"011111", ".....", ".....", "/////", "0000111010.", "cntlzd[.]"}, {"011111", ".....", ".....", "/////", "0001111010/", "popcntb"}, {"011111", ".....", ".....", "/////", "0010011010/", "prtyw"}, {"011111", ".....", ".....", "/////", "0010111010/", "prtyd"}, {"011111", ".....", ".....", "/////", "0100011010/", "cdtbcd"}, {"011111", ".....", ".....", "/////", "0100111010/", "cbcdtd"}, {"011111", ".....", ".....", "/////", "0101111010/", "popcntw"}, {"011111", ".....", ".....", "/////", "0111111010/", "popcntd"}, {"011111", ".....", ".....", "/////", "1000011010.", "cnttzw[.]"}, {"011111", ".....", ".....", "/////", "1000111010.", "cnttzd[.]"}, {"011111", ".....", ".....", ".....", "1100011010.", "srad[.]"}, {"011111", ".....", ".....", "/////", "1110011010.", "extsh[.]"}, {"011111", ".....", ".....", "/////", "1110111010.", "extsb[.]"}, {"011111", ".....", ".....", "/////", "1111011010.", "extsw[.]"}, {"011111", ".....", ".....", ".....", "0000011011.", "sld[.]"}, {"011111", ".....", ".....", ".....", "0000111011/", "cntlzdm"}, {"011111", ".....", ".....", "/////", "0010011011/", "brw"}, {"011111", ".....", ".....", "/////", "0010111011/", "brd"}, {"011111", ".....", ".....", "/////", "0011011011/", "brh"}, {"011111", ".....", ".....", ".....", "1000011011.", "srd[.]"}, {"011111", ".....", ".....", ".....", "1000111011/", "cnttzdm"}, {"011111", ".....", ".....", ".....", "0000011100.", "and[.]"}, {"011111", ".....", ".....", ".....", "0000111100.", "andc[.]"}, {"011111", ".....", ".....", ".....", "0001111100.", "nor[.]"}, {"011111", ".....", ".....", ".....", "0010011100/", "pdepd"}, {"011111", ".....", ".....", ".....", "0010111100/", "pextd"}, {"011111", ".....", ".....", ".....", "0011011100/", "cfuged"}, {"011111", ".....", ".....", ".....", "0011111100/", "bpermd"}, {"011111", ".....", ".....", ".....", "0100011100.", "eqv[.]"}, {"011111", ".....", ".....", ".....", "0100111100.", "xor[.]"}, {"011111", ".....", ".....", ".....", "0110011100.", "orc[.]"}, {"011111", ".....", ".....", ".....", "0110111100.", "or[.]"}, {"011111", ".....", ".....", ".....", "0111011100.", "nand[.]"}, {"011111", ".....", ".....", ".....", "0111111100/", "cmpb"}, {"011111", "///..", "/////", "/////", "0000011110/", "wait"}, {"100000", ".....", ".....", ".....", "...........", "lwz"}, {"100001", ".....", ".....", ".....", "...........", "lwzu"}, {"100010", ".....", ".....", ".....", "...........", "lbz"}, {"100011", ".....", ".....", ".....", "...........", "lbzu"}, {"100100", ".....", ".....", ".....", "...........", "stw"}, {"100101", ".....", ".....", ".....", "...........", "stwu"}, {"100110", ".....", ".....", ".....", "...........", "stb"}, {"100111", ".....", ".....", ".....", "...........", "stbu"}, {"101000", ".....", ".....", ".....", "...........", "lhz"}, {"101001", ".....", ".....", ".....", "...........", "lhzu"}, {"101010", ".....", ".....", ".....", "...........", "lha"}, {"101011", ".....", ".....", ".....", "...........", "lhau"}, {"101100", ".....", ".....", ".....", "...........", "sth"}, {"101101", ".....", ".....", ".....", "...........", "sthu"}, {"101110", ".....", ".....", ".....", "...........", "lmw"}, {"101111", ".....", ".....", ".....", "...........", "stmw"}, {"110000", ".....", ".....", ".....", "...........", "lfs"}, {"110001", ".....", ".....", ".....", "...........", "lfsu"}, {"110010", ".....", ".....", ".....", "...........", "lfd"}, {"110011", ".....", ".....", ".....", "...........", "lfdu"}, {"110100", ".....", ".....", ".....", "...........", "stfs"}, {"110101", ".....", ".....", ".....", "...........", "stfsu"}, {"110110", ".....", ".....", ".....", "...........", "stfd"}, {"110111", ".....", ".....", ".....", "...........", "stfdu"}, {"111000", ".....", ".....", ".....", ".......////", "lq"}, {"111001", ".....", ".....", ".....", ".........00", "lfdp"}, {"111001", ".....", ".....", ".....", ".........10", "lxsd"}, {"111001", ".....", ".....", ".....", ".........11", "lxssp"}, {"111010", ".....", ".....", ".....", ".........00", "ld"}, {"111010", ".....", ".....", ".....", ".........01", "ldu"}, {"111010", ".....", ".....", ".....", ".........10", "lwa"}, {"111011", ".....", ".....", ".....", "0001000010.", "dscli[.]"}, {"111011", ".....", ".....", ".....", "0001100010.", "dscri[.]"}, {"111011", "...//", ".....", ".....", "0011000010/", "dtstdc"}, {"111011", "...//", ".....", ".....", "0011100010/", "dtstdg"}, {"111011", ".....", ".....", ".....", "0000000010.", "dadd[.]"}, {"111011", ".....", ".....", ".....", "0000100010.", "dmul[.]"}, {"111011", "...//", ".....", ".....", "0010000010/", "dcmpo"}, {"111011", "...//", ".....", ".....", "0010100010/", "dtstex"}, {"111011", ".....", "/////", ".....", "0100000010.", "dctdp[.]"}, {"111011", ".....", "/////", ".....", "0100100010.", "dctfix[.]"}, {"111011", ".....", "..///", ".....", "0101000010.", "ddedpd[.]"}, {"111011", ".....", "/////", ".....", "0101100010.", "dxex[.]"}, {"111011", ".....", ".....", ".....", "1000000010.", "dsub[.]"}, {"111011", ".....", ".....", ".....", "1000100010.", "ddiv[.]"}, {"111011", "...//", ".....", ".....", "1010000010/", "dcmpu"}, {"111011", "...//", ".....", ".....", "1010100010/", "dtstsf"}, {"111011", ".....", "/////", ".....", "1100000010.", "drsp[.]"}, {"111011", ".....", "/////", ".....", "1100100010.", "dcffix[.]"}, {"111011", ".....", ".////", ".....", "1101000010.", "denbcd[.]"}, {"111011", ".....", ".....", ".....", "1101100010.", "diex[.]"}, {"111011", ".....", ".....", ".....", "..00000011.", "dqua[.]"}, {"111011", ".....", ".....", ".....", "..00100011.", "drrnd[.]"}, {"111011", ".....", ".....", ".....", "..01000011.", "dquai[.]"}, {"111011", ".....", "////.", ".....", "..01100011.", "drintx[.]"}, {"111011", ".....", "////.", ".....", "..11100011.", "drintn[.]"}, {"111011", "...//", ".....", ".....", "1010100011/", "dtstsfi"}, {"111011", "...//", ".....", ".....", "00000010../", "xvi8ger4pp"}, {"111011", "...//", ".....", ".....", "00010010../", "xvf16ger2pp"}, {"111011", "...//", ".....", ".....", "00011010../", "xvf32gerpp"}, {"111011", "...//", ".....", ".....", "00100010../", "xvi4ger8pp"}, {"111011", "...//", ".....", ".....", "11010010../", "xvf16ger2nn"}, {"111011", "...//", ".....", ".....", "11011010../", "xvf32gernn"}, {"111011", "...//", ".....", ".....", "11110010../", "xvbf16ger2nn"}, {"111011", "...//", ".....", ".....", "11111010../", "xvf64gernn"}, {"111011", "...//", ".....", ".....", "00000011../", "xvi8ger4"}, {"111011", "...//", ".....", ".....", "00010011../", "xvf16ger2"}, {"111011", "...//", ".....", ".....", "00011011../", "xvf32ger"}, {"111011", "...//", ".....", ".....", "00100011../", "xvi4ger8"}, {"111011", "...//", ".....", ".....", "00101011../", "xvi16ger2s"}, {"111011", "...//", ".....", ".....", "00110011../", "xvbf16ger2"}, {"111011", "...//", ".....", ".....", "00111011../", "xvf64ger"}, {"111011", "...//", ".....", ".....", "01001011../", "xvi16ger2"}, {"111011", "...//", ".....", ".....", "01101011../", "xvi16ger2pp"}, {"111011", "...//", ".....", ".....", "01100011../", "xvi8ger4spp"}, {"111011", ".....", "/////", ".....", "1101001110.", "fcfids[.]"}, {"111011", ".....", "/////", ".....", "1111001110.", "fcfidus[.]"}, {"111011", ".....", ".....", ".....", "/////10010.", "fdivs[.]"}, {"111011", ".....", ".....", ".....", "/////10100.", "fsubs[.]"}, {"111011", ".....", ".....", ".....", "/////10101.", "fadds[.]"}, {"111011", ".....", "/////", ".....", "/////10110.", "fsqrts[.]"}, {"111011", ".....", "/////", ".....", "/////11000.", "fres[.]"}, {"111011", ".....", ".....", "/////", ".....11001.", "fmuls[.]"}, {"111011", ".....", "/////", ".....", "/////11010.", "frsqrtes[.]"}, {"111011", ".....", ".....", ".....", ".....11100.", "fmsubs[.]"}, {"111011", ".....", ".....", ".....", ".....11101.", "fmadds[.]"}, {"111011", ".....", ".....", ".....", ".....11110.", "fnmsubs[.]"}, {"111011", ".....", ".....", ".....", ".....11111.", "fnmadds[.]"}, {"111100", ".....", ".....", ".....", "00000000...", "xsaddsp"}, {"111100", ".....", ".....", ".....", "00001000...", "xssubsp"}, {"111100", ".....", ".....", ".....", "00010000...", "xsmulsp"}, {"111100", ".....", ".....", ".....", "00011000...", "xsdivsp"}, {"111100", ".....", ".....", ".....", "00100000...", "xsadddp"}, {"111100", ".....", ".....", ".....", "00101000...", "xssubdp"}, {"111100", ".....", ".....", ".....", "00110000...", "xsmuldp"}, {"111100", ".....", ".....", ".....", "00111000...", "xsdivdp"}, {"111100", ".....", ".....", ".....", "01000000...", "xvaddsp"}, {"111100", ".....", ".....", ".....", "01001000...", "xvsubsp"}, {"111100", ".....", ".....", ".....", "01010000...", "xvmulsp"}, {"111100", ".....", ".....", ".....", "01011000...", "xvdivsp"}, {"111100", ".....", ".....", ".....", "01100000...", "xvadddp"}, {"111100", ".....", ".....", ".....", "01101000...", "xvsubdp"}, {"111100", ".....", ".....", ".....", "01110000...", "xvmuldp"}, {"111100", ".....", ".....", ".....", "01111000...", "xvdivdp"}, {"111100", ".....", ".....", ".....", "10000000...", "xsmaxcdp"}, {"111100", ".....", ".....", ".....", "10001000...", "xsmincdp"}, {"111100", ".....", ".....", ".....", "10010000...", "xsmaxjdp"}, {"111100", ".....", ".....", ".....", "10011000...", "xsminjdp"}, {"111100", ".....", ".....", ".....", "10100000...", "xsmaxdp"}, {"111100", ".....", ".....", ".....", "10101000...", "xsmindp"}, {"111100", ".....", ".....", ".....", "10110000...", "xscpsgndp"}, {"111100", ".....", ".....", ".....", "11000000...", "xvmaxsp"}, {"111100", ".....", ".....", ".....", "11001000...", "xvminsp"}, {"111100", ".....", ".....", ".....", "11010000...", "xvcpsgnsp"}, {"111100", ".....", ".....", ".....", "11011000...", "xviexpsp"}, {"111100", ".....", ".....", ".....", "11100000...", "xvmaxdp"}, {"111100", ".....", ".....", ".....", "11101000...", "xvmindp"}, {"111100", ".....", ".....", ".....", "11110000...", "xvcpsgndp"}, {"111100", ".....", ".....", ".....", "11111000...", "xviexpdp"}, {"111100", ".....", ".....", ".....", "00000001...", "xsmaddasp"}, {"111100", ".....", ".....", ".....", "00001001...", "xsmaddmsp"}, {"111100", ".....", ".....", ".....", "00010001...", "xsmsubasp"}, {"111100", ".....", ".....", ".....", "00011001...", "xsmsubmsp"}, {"111100", ".....", ".....", ".....", "00100001...", "xsmaddadp"}, {"111100", ".....", ".....", ".....", "00101001...", "xsmaddmdp"}, {"111100", ".....", ".....", ".....", "00110001...", "xsmsubadp"}, {"111100", ".....", ".....", ".....", "00111001...", "xsmsubmdp"}, {"111100", ".....", ".....", ".....", "01000001...", "xvmaddasp"}, {"111100", ".....", ".....", ".....", "01001001...", "xvmaddmsp"}, {"111100", ".....", ".....", ".....", "01010001...", "xvmsubasp"}, {"111100", ".....", ".....", ".....", "01011001...", "xvmsubmsp"}, {"111100", ".....", ".....", ".....", "01100001...", "xvmaddadp"}, {"111100", ".....", ".....", ".....", "01101001...", "xvmaddmdp"}, {"111100", ".....", ".....", ".....", "01110001...", "xvmsubadp"}, {"111100", ".....", ".....", ".....", "01111001...", "xvmsubmdp"}, {"111100", ".....", ".....", ".....", "10000001...", "xsnmaddasp"}, {"111100", ".....", ".....", ".....", "10001001...", "xsnmaddmsp"}, {"111100", ".....", ".....", ".....", "10010001...", "xsnmsubasp"}, {"111100", ".....", ".....", ".....", "10011001...", "xsnmsubmsp"}, {"111100", ".....", ".....", ".....", "10100001...", "xsnmaddadp"}, {"111100", ".....", ".....", ".....", "10101001...", "xsnmaddmdp"}, {"111100", ".....", ".....", ".....", "10110001...", "xsnmsubadp"}, {"111100", ".....", ".....", ".....", "10111001...", "xsnmsubmdp"}, {"111100", ".....", ".....", ".....", "11000001...", "xvnmaddasp"}, {"111100", ".....", ".....", ".....", "11001001...", "xvnmaddmsp"}, {"111100", ".....", ".....", ".....", "11010001...", "xvnmsubasp"}, {"111100", ".....", ".....", ".....", "11011001...", "xvnmsubmsp"}, {"111100", ".....", ".....", ".....", "11100001...", "xvnmaddadp"}, {"111100", ".....", ".....", ".....", "11101001...", "xvnmaddmdp"}, {"111100", ".....", ".....", ".....", "11110001...", "xvnmsubadp"}, {"111100", ".....", ".....", ".....", "11111001...", "xvnmsubmdp"}, {"111100", ".....", ".....", ".....", "0..00010...", "xxsldwi"}, {"111100", ".....", ".....", ".....", "0..01010...", "xxpermdi"}, {"111100", ".....", ".....", ".....", "00010010...", "xxmrghw"}, {"111100", ".....", ".....", ".....", "00011010...", "xxperm"}, {"111100", ".....", ".....", ".....", "00110010...", "xxmrglw"}, {"111100", ".....", ".....", ".....", "00111010...", "xxpermr"}, {"111100", ".....", ".....", ".....", "10000010...", "xxland"}, {"111100", ".....", ".....", ".....", "10001010...", "xxlandc"}, {"111100", ".....", ".....", ".....", "10010010...", "xxlor"}, {"111100", ".....", ".....", ".....", "10011010...", "xxlxor"}, {"111100", ".....", ".....", ".....", "10100010...", "xxlnor"}, {"111100", ".....", ".....", ".....", "10101010...", "xxlorc"}, {"111100", ".....", ".....", ".....", "10110010...", "xxlnand"}, {"111100", ".....", ".....", ".....", "10111010...", "xxleqv"}, {"111100", ".....", "///..", ".....", "010100100..", "xxspltw"}, {"111100", ".....", "00...", ".....", "0101101000.", "xxspltib"}, {"111100", ".....", "11111", ".....", "0101101000.", "lxvkq"}, {"111100", ".....", "/....", ".....", "010100101..", "xxextractuw"}, {"111100", ".....", "/....", ".....", "010110101..", "xxinsertw"}, {"111100", ".....", ".....", ".....", ".1000011...", "xvcmpeqsp[.]"}, {"111100", ".....", ".....", ".....", ".1001011...", "xvcmpgtsp[.]"}, {"111100", ".....", ".....", ".....", ".1010011...", "xvcmpgesp[.]"}, {"111100", ".....", ".....", ".....", ".1100011...", "xvcmpeqdp[.]"}, {"111100", ".....", ".....", ".....", ".1101011...", "xvcmpgtdp[.]"}, {"111100", ".....", ".....", ".....", ".1110011...", "xvcmpgedp[.]"}, {"111100", ".....", ".....", ".....", "00000011...", "xscmpeqdp"}, {"111100", ".....", ".....", ".....", "00001011...", "xscmpgtdp"}, {"111100", ".....", ".....", ".....", "00010011...", "xscmpgedp"}, {"111100", "...//", ".....", ".....", "00100011../", "xscmpudp"}, {"111100", "...//", ".....", ".....", "00101011../", "xscmpodp"}, {"111100", "...//", ".....", ".....", "00111011../", "xscmpexpdp"}, {"111100", ".....", "/////", ".....", "001001000..", "xscvdpuxws"}, {"111100", ".....", "/////", ".....", "001011000..", "xscvdpsxws"}, {"111100", ".....", "/////", ".....", "010001000..", "xvcvspuxws"}, {"111100", ".....", "/////", ".....", "010011000..", "xvcvspsxws"}, {"111100", ".....", "/////", ".....", "010101000..", "xvcvuxwsp"}, {"111100", ".....", "/////", ".....", "010111000..", "xvcvsxwsp"}, {"111100", ".....", "/////", ".....", "011001000..", "xvcvdpuxws"}, {"111100", ".....", "/////", ".....", "011011000..", "xvcvdpsxws"}, {"111100", ".....", "/////", ".....", "011101000..", "xvcvuxwdp"}, {"111100", ".....", "/////", ".....", "011111000..", "xvcvsxwdp"}, {"111100", ".....", "/////", ".....", "100101000..", "xscvuxdsp"}, {"111100", ".....", "/////", ".....", "100111000..", "xscvsxdsp"}, {"111100", ".....", "/////", ".....", "101001000..", "xscvdpuxds"}, {"111100", ".....", "/////", ".....", "101011000..", "xscvdpsxds"}, {"111100", ".....", "/////", ".....", "101101000..", "xscvuxddp"}, {"111100", ".....", "/////", ".....", "101111000..", "xscvsxddp"}, {"111100", ".....", "/////", ".....", "110001000..", "xvcvspuxds"}, {"111100", ".....", "/////", ".....", "110011000..", "xvcvspsxds"}, {"111100", ".....", "/////", ".....", "110101000..", "xvcvuxdsp"}, {"111100", ".....", "/////", ".....", "110111000..", "xvcvsxdsp"}, {"111100", ".....", "/////", ".....", "111001000..", "xvcvdpuxds"}, {"111100", ".....", "/////", ".....", "111011000..", "xvcvdpsxds"}, {"111100", ".....", "/////", ".....", "111101000..", "xvcvuxddp"}, {"111100", ".....", "/////", ".....", "111111000..", "xvcvsxddp"}, {"111100", ".....", "/////", ".....", "001001001..", "xsrdpi"}, {"111100", ".....", "/////", ".....", "001011001..", "xsrdpiz"}, {"111100", ".....", "/////", ".....", "001101001..", "xsrdpip"}, {"111100", ".....", "/////", ".....", "001111001..", "xsrdpim"}, {"111100", ".....", "/////", ".....", "010001001..", "xvrspi"}, {"111100", ".....", "/////", ".....", "010011001..", "xvrspiz"}, {"111100", ".....", "/////", ".....", "010101001..", "xvrspip"}, {"111100", ".....", "/////", ".....", "010111001..", "xvrspim"}, {"111100", ".....", "/////", ".....", "011001001..", "xvrdpi"}, {"111100", ".....", "/////", ".....", "011011001..", "xvrdpiz"}, {"111100", ".....", "/////", ".....", "011101001..", "xvrdpip"}, {"111100", ".....", "/////", ".....", "011111001..", "xvrdpim"}, {"111100", ".....", "/////", ".....", "100001001..", "xscvdpsp"}, {"111100", ".....", "/////", ".....", "100011001..", "xsrsp"}, {"111100", ".....", "/////", ".....", "101001001..", "xscvspdp"}, {"111100", ".....", "/////", ".....", "101011001..", "xsabsdp"}, {"111100", ".....", "/////", ".....", "101101001..", "xsnabsdp"}, {"111100", ".....", "/////", ".....", "101111001..", "xsnegdp"}, {"111100", ".....", "/////", ".....", "110001001..", "xvcvdpsp"}, {"111100", ".....", "/////", ".....", "110011001..", "xvabssp"}, {"111100", ".....", "/////", ".....", "110101001..", "xvnabssp"}, {"111100", ".....", "/////", ".....", "110111001..", "xvnegsp"}, {"111100", ".....", "/////", ".....", "111001001..", "xvcvspdp"}, {"111100", ".....", "/////", ".....", "111011001..", "xvabsdp"}, {"111100", ".....", "/////", ".....", "111101001..", "xvnabsdp"}, {"111100", ".....", "/////", ".....", "111111001..", "xvnegdp"}, {"111100", "...//", ".....", ".....", "00111101../", "xstdivdp"}, {"111100", "...//", ".....", ".....", "01011101../", "xvtdivsp"}, {"111100", "...//", ".....", ".....", "01111101../", "xvtdivdp"}, {"111100", ".....", ".....", ".....", "1101.101...", "xvtstdcsp"}, {"111100", ".....", ".....", ".....", "1111.101...", "xvtstdcdp"}, {"111100", ".....", "/////", ".....", "000001010..", "xsrsqrtesp"}, {"111100", ".....", "/////", ".....", "000011010..", "xsresp"}, {"111100", ".....", "/////", ".....", "001001010..", "xsrsqrtedp"}, {"111100", ".....", "/////", ".....", "001011010..", "xsredp"}, {"111100", "...//", "/////", ".....", "001101010./", "xstsqrtdp"}, {"111100", ".....", "/////", ".....", "010001010..", "xvrsqrtesp"}, {"111100", ".....", "/////", ".....", "010011010..", "xvresp"}, {"111100", "...//", "/////", ".....", "010101010./", "xvtsqrtsp"}, {"111100", ".....", "/////", ".....", "011001010..", "xvrsqrtedp"}, {"111100", ".....", "/////", ".....", "011011010..", "xvredp"}, {"111100", "...//", "/////", ".....", "011101010./", "xvtsqrtdp"}, {"111100", ".....", ".....", ".....", "100101010./", "xststdcsp"}, {"111100", ".....", ".....", ".....", "101101010./", "xststdcdp"}, {"111100", ".....", ".....", ".....", "1110010100.", "xxgenpcvbm"}, {"111100", ".....", ".....", ".....", "1110110100.", "xxgenpcvwm"}, {"111100", ".....", ".....", ".....", "1110010101.", "xxgenpcvhm"}, {"111100", ".....", ".....", ".....", "1110110101.", "xxgenpcvdm"}, {"111100", ".....", "/////", ".....", "000001011..", "xssqrtsp"}, {"111100", ".....", "/////", ".....", "001001011..", "xssqrtdp"}, {"111100", ".....", "/////", ".....", "001101011..", "xsrdpic"}, {"111100", ".....", "/////", ".....", "010001011..", "xvsqrtsp"}, {"111100", ".....", "/////", ".....", "010101011..", "xvrspic"}, {"111100", ".....", "/////", ".....", "011001011..", "xvsqrtdp"}, {"111100", ".....", "/////", ".....", "011101011..", "xvrdpic"}, {"111100", ".....", "/////", ".....", "100001011..", "xscvdpspn"}, {"111100", ".....", "/////", ".....", "101001011..", "xscvspdpn"}, {"111100", ".....", "00000", ".....", "101011011./", "xsxexpdp"}, {"111100", ".....", "00001", ".....", "101011011./", "xsxsigdp"}, {"111100", ".....", "10000", ".....", "101011011..", "xscvhpdp"}, {"111100", ".....", "10001", ".....", "101011011..", "xscvdphp"}, {"111100", ".....", "00000", ".....", "111011011..", "xvxexpdp"}, {"111100", ".....", "00001", ".....", "111011011..", "xvxsigdp"}, {"111100", "...//", "00010", ".....", "111011011./", "xvtlsbb"}, {"111100", ".....", "00111", ".....", "111011011..", "xxbrh"}, {"111100", ".....", "01000", ".....", "111011011..", "xvxexpsp"}, {"111100", ".....", "01001", ".....", "111011011..", "xvxsigsp"}, {"111100", ".....", "01111", ".....", "111011011..", "xxbrw"}, {"111100", ".....", "10000", ".....", "111011011..", "xvcvbf16sp"}, {"111100", ".....", "10001", ".....", "111011011..", "xvcvspbf16"}, {"111100", ".....", "10111", ".....", "111011011..", "xxbrd"}, {"111100", ".....", "11000", ".....", "111011011..", "xvcvhpsp"}, {"111100", ".....", "11001", ".....", "111011011..", "xvcvsphp"}, {"111100", ".....", "11111", ".....", "111011011..", "xxbrq"}, {"111100", ".....", ".....", ".....", "1110010110.", "xsiexpdp"}, {"111100", ".....", ".....", ".....", ".....11....", "xxsel"}, {"111101", ".....", ".....", ".....", ".........00", "stfdp"}, {"111101", ".....", ".....", ".....", ".........10", "stxsd"}, {"111101", ".....", ".....", ".....", ".........11", "stxssp"}, {"111101", ".....", ".....", ".....", "........001", "lxv"}, {"111101", ".....", ".....", ".....", "........101", "stxv"}, {"111110", ".....", ".....", ".....", ".........00", "std"}, {"111110", ".....", ".....", ".....", ".........01", "stdu"}, {"111110", ".....", ".....", ".....", ".........10", "stq"}, {"111111", "...//", ".....", ".....", "0000000000/", "fcmpu"}, {"111111", "...//", ".....", ".....", "0000100000/", "fcmpo"}, {"111111", "...//", "...//", "/////", "0001000000/", "mcrfs"}, {"111111", "...//", ".....", ".....", "0010000000/", "ftdiv"}, {"111111", "...//", "/////", ".....", "0010100000/", "ftsqrt"}, {"111111", ".....", ".....", ".....", "0001000010.", "dscliq[.]"}, {"111111", ".....", ".....", ".....", "0001100010.", "dscriq[.]"}, {"111111", "...//", ".....", ".....", "0011000010/", "dtstdcq"}, {"111111", "...//", ".....", ".....", "0011100010/", "dtstdgq"}, {"111111", ".....", ".....", ".....", "0000000010.", "daddq[.]"}, {"111111", ".....", ".....", ".....", "0000100010.", "dmulq[.]"}, {"111111", "...//", ".....", ".....", "0010000010/", "dcmpoq"}, {"111111", "...//", ".....", ".....", "0010100010/", "dtstexq"}, {"111111", ".....", "/////", ".....", "0100000010.", "dctqpq[.]"}, {"111111", ".....", "/////", ".....", "0100100010.", "dctfixq[.]"}, {"111111", ".....", "..///", ".....", "0101000010.", "ddedpdq[.]"}, {"111111", ".....", "/////", ".....", "0101100010.", "dxexq[.]"}, {"111111", ".....", ".....", ".....", "1000000010.", "dsubq[.]"}, {"111111", ".....", ".....", ".....", "1000100010.", "ddivq[.]"}, {"111111", "...//", ".....", ".....", "1010000010/", "dcmpuq"}, {"111111", "...//", ".....", ".....", "1010100010/", "dtstsfq"}, {"111111", ".....", "/////", ".....", "1100000010.", "drdpq[.]"}, {"111111", ".....", "/////", ".....", "1100100010.", "dcffixq[.]"}, {"111111", ".....", ".////", ".....", "1101000010.", "denbcdq[.]"}, {"111111", ".....", ".....", ".....", "1101100010.", "diexq[.]"}, {"111111", ".....", "00000", ".....", "1111100010/", "dcffixqq"}, {"111111", ".....", "00001", ".....", "1111100010/", "dctfixqq"}, {"111111", ".....", ".....", ".....", "..00000011.", "dquaq[.]"}, {"111111", ".....", ".....", ".....", "..00100011.", "drrndq[.]"}, {"111111", ".....", ".....", ".....", "..01000011.", "dquaiq[.]"}, {"111111", ".....", "////.", ".....", "..01100011.", "drintxq[.]"}, {"111111", ".....", "////.", ".....", "..11100011.", "drintnq[.]"}, {"111111", "...//", ".....", ".....", "1010100011/", "dtstsfiq"}, {"111111", ".....", ".....", ".....", "0000000100.", "xsaddqp[o]"}, {"111111", ".....", ".....", ".....", "0000100100.", "xsmulqp[o]"}, {"111111", ".....", ".....", ".....", "0001000100/", "xscmpeqqp"}, {"111111", ".....", ".....", ".....", "0001100100/", "xscpsgnqp"}, {"111111", "...//", ".....", ".....", "0010000100/", "xscmpoqp"}, {"111111", "...//", ".....", ".....", "0010100100/", "xscmpexpqp"}, {"111111", ".....", ".....", ".....", "0011000100/", "xscmpgeqp"}, {"111111", ".....", ".....", ".....", "0011100100/", "xscmpgtqp"}, {"111111", ".....", ".....", ".....", "0110000100.", "xsmaddqp[o]"}, {"111111", ".....", ".....", ".....", "0110100100.", "xsmsubqp[o]"}, {"111111", ".....", ".....", ".....", "0111000100.", "xsnmaddqp[o]"}, {"111111", ".....", ".....", ".....", "0111100100.", "xsnmsubqp[o]"}, {"111111", ".....", ".....", ".....", "1000000100.", "xssubqp[o]"}, {"111111", ".....", ".....", ".....", "1000100100.", "xsdivqp[o]"}, {"111111", "...//", ".....", ".....", "1010000100/", "xscmpuqp"}, {"111111", ".....", ".....", ".....", "1010100100/", "xsmaxcqp"}, {"111111", ".....", ".....", ".....", "1011000100/", "xststdcqp"}, {"111111", ".....", ".....", ".....", "1011100100/", "xsmincqp"}, {"111111", ".....", "00000", ".....", "1100100100/", "xsabsqp"}, {"111111", ".....", "00010", ".....", "1100100100/", "xsxexpqp"}, {"111111", ".....", "01000", ".....", "1100100100/", "xsnabsqp"}, {"111111", ".....", "10000", ".....", "1100100100/", "xsnegqp"}, {"111111", ".....", "10010", ".....", "1100100100/", "xsxsigqp"}, {"111111", ".....", "11011", ".....", "1100100100.", "xssqrtqp[o]"}, {"111111", ".....", "00000", ".....", "1101000100/", "xscvqpuqz"}, {"111111", ".....", "00001", ".....", "1101000100/", "xscvqpuwz"}, {"111111", ".....", "00010", ".....", "1101000100/", "xscvudqp"}, {"111111", ".....", "00011", ".....", "1101000100/", "xscvuqqp"}, {"111111", ".....", "01000", ".....", "1101000100/", "xscvqpsqz"}, {"111111", ".....", "01001", ".....", "1101000100/", "xscvqpswz"}, {"111111", ".....", "01010", ".....", "1101000100/", "xscvsdqp"}, {"111111", ".....", "01011", ".....", "1101000100/", "xscvsqqp"}, {"111111", ".....", "10001", ".....", "1101000100/", "xscvqpudz"}, {"111111", ".....", "10100", ".....", "1101000100.", "xscvqpdp[o]"}, {"111111", ".....", "10110", ".....", "1101000100/", "xscvdpqp"}, {"111111", ".....", "11001", ".....", "1101000100/", "xscvqpsdz"}, {"111111", ".....", ".....", ".....", "1101100100/", "xsiexpqp"}, {"111111", ".....", "////.", ".....", "..00000101.", "xsrqpi[x]"}, {"111111", ".....", "////.", ".....", "..00100101/", "xsrqpxp"}, {"111111", ".....", "/////", "/////", "0000100110.", "mtfsb"}, {"111111", ".....", "/////", "/////", "0001000110.", "mtfsb"}, {"111111", "...//", "////.", "..../", "0010000110.", "mtfsfi[.]"}, {"111111", ".....", ".....", ".....", "1101000110/", "fmrgow"}, {"111111", ".....", ".....", ".....", "1111000110/", "fmrgew"}, {"111111", ".....", "00000", "/////", "1001000111.", "mffs[.]"}, {"111111", ".....", "00001", "/////", "1001000111/", "mffsce"}, {"111111", ".....", "10100", ".....", "1001000111/", "mffscdrn"}, {"111111", ".....", "10101", "//...", "1001000111/", "mffscdrni"}, {"111111", ".....", "10110", ".....", "1001000111/", "mffscrn"}, {"111111", ".....", "10111", "///..", "1001000111/", "mffscrni"}, {"111111", ".....", "11000", "/////", "1001000111/", "mffsl"}, {"111111", ".....", ".....", ".....", "1011000111.", "mtfsf[.]"}, {"111111", ".....", ".....", ".....", "0000001000.", "fcpsgn[.]"}, {"111111", ".....", "/////", ".....", "0000101000.", "fneg[.]"}, {"111111", ".....", "/////", ".....", "0001001000.", "fmr[.]"}, {"111111", ".....", "/////", ".....", "0010001000.", "fnabs[.]"}, {"111111", ".....", "/////", ".....", "0100001000.", "fabs[.]"}, {"111111", ".....", "/////", ".....", "0110001000.", "frin[.]"}, {"111111", ".....", "/////", ".....", "0110101000.", "friz[.]"}, {"111111", ".....", "/////", ".....", "0111001000.", "frip[.]"}, {"111111", ".....", "/////", ".....", "0111101000.", "frim[.]"}, {"111111", ".....", "/////", ".....", "0000001100.", "frsp[.]"}, {"111111", ".....", "/////", ".....", "0000001110.", "fctiw[.]"}, {"111111", ".....", "/////", ".....", "0010001110.", "fctiwu[.]"}, {"111111", ".....", "/////", ".....", "1100101110.", "fctid[.]"}, {"111111", ".....", "/////", ".....", "1101001110.", "fcfid[.]"}, {"111111", ".....", "/////", ".....", "1110101110.", "fctidu[.]"}, {"111111", ".....", "/////", ".....", "1111001110.", "fcfidu[.]"}, {"111111", ".....", "/////", ".....", "0000001111.", "fctiwz[.]"}, {"111111", ".....", "/////", ".....", "0010001111.", "fctiwuz[.]"}, {"111111", ".....", "/////", ".....", "1100101111.", "fctidz[.]"}, {"111111", ".....", "/////", ".....", "1110101111.", "fctiduz[.]"}, {"111111", ".....", ".....", ".....", "/////10010.", "fdiv[.]"}, {"111111", ".....", ".....", ".....", "/////10100.", "fsub[.]"}, {"111111", ".....", ".....", ".....", "/////10101.", "fadd[.]"}, {"111111", ".....", "/////", ".....", "/////10110.", "fsqrt[.]"}, {"111111", ".....", ".....", ".....", ".....10111.", "fsel[.]"}, {"111111", ".....", "/////", ".....", "/////11000.", "fre[.]"}, {"111111", ".....", ".....", "/////", ".....11001.", "fmul[.]"}, {"111111", ".....", "/////", ".....", "/////11010.", "frsqrte[.]"}, {"111111", ".....", ".....", ".....", ".....11100.", "fmsub[.]"}, {"111111", ".....", ".....", ".....", ".....11101.", "fmadd[.]"}, {"111111", ".....", ".....", ".....", ".....11110.", "fnmsub[.]"}, {"111111", ".....", ".....", ".....", ".....11111.", "fnmadd[.]"}, {"111011", "...//", ".....", ".....", "00101010../", "xvi16ger2spp"}, {"111011", "...//", ".....", ".....", "00110010../", "xvbf16ger2pp"}, {"111011", "...//", ".....", ".....", "00111010../", "xvf64gerpp"}, {"111011", "...//", ".....", ".....", "01010010../", "xvf16ger2np"}, {"111011", "...//", ".....", ".....", "01011010../", "xvf32gernp"}, {"111011", "...//", ".....", ".....", "01110010../", "xvbf16ger2np"}, {"111011", "...//", ".....", ".....", "01111010../", "xvf64gernp"}, {"111011", "...//", ".....", ".....", "10010010../", "xvf16ger2pn"}, {"111011", "...//", ".....", ".....", "10011010../", "xvf32gerpn"}, {"111011", "...//", ".....", ".....", "10110010../", "xvbf16ger2pn"}, {"111011", "...//", ".....", ".....", "10111010../", "xvf64gerpn"}, }; struct { Ins pfx; Ins ins; char *mneomic; } instab2[] = { {{"000001", "000//", ".//..", ".....", "..........."}, {"111101", ".....", ".....", ".....", "..........."}, "pstd"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"111110", ".....", ".....", ".....", "..........."}, "pstxvp"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"100000", ".....", ".....", ".....", "..........."}, "plwz"}, {{"000001", "01000", "0////", ".....", "..........."}, {"100000", ".....", "000..", ".....", "..........."}, "xxsplti32dx"}, {{"000001", "01000", "0////", ".....", "..........."}, {"100000", ".....", "0010.", ".....", "..........."}, "xxspltidp"}, {{"000001", "01000", "0////", ".....", "..........."}, {"100000", ".....", "0011.", ".....", "..........."}, "xxspltiw"}, {{"000001", "01000", "0////", "/////", "///////////"}, {"100001", ".....", ".....", ".....", ".....00...."}, "xxblendvb"}, {{"000001", "01000", "0////", "/////", "///////////"}, {"100001", ".....", ".....", ".....", ".....01...."}, "xxblendvh"}, {{"000001", "01000", "0////", "/////", "///////////"}, {"100001", ".....", ".....", ".....", ".....10...."}, "xxblendvw"}, {{"000001", "01000", "0////", "/////", "///////////"}, {"100001", ".....", ".....", ".....", ".....11...."}, "xxblendvd"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"100010", ".....", ".....", ".....", "..........."}, "plbz"}, {{"000001", "01000", "0////", "/////", "////////..."}, {"100010", ".....", ".....", ".....", ".....00...."}, "xxpermx"}, {{"000001", "01000", "0////", "/////", "///........"}, {"100010", ".....", ".....", ".....", ".....01...."}, "xxeval"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"100100", ".....", ".....", ".....", "..........."}, "pstw"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"100110", ".....", ".....", ".....", "..........."}, "pstb"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"101000", ".....", ".....", ".....", "..........."}, "plhz"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"101001", ".....", ".....", ".....", "..........."}, "plwa"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"101010", ".....", ".....", ".....", "..........."}, "plxsd"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"101010", ".....", ".....", ".....", "..........."}, "plha"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"101011", ".....", ".....", ".....", "..........."}, "plxssp"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"101100", ".....", ".....", ".....", "..........."}, "psth"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"101110", ".....", ".....", ".....", "..........."}, "pstxsd"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"101111", ".....", ".....", ".....", "..........."}, "pstxssp"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"110000", ".....", ".....", ".....", "..........."}, "plfs"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"11001.", ".....", ".....", ".....", "..........."}, "plxv"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"110010", ".....", ".....", ".....", "..........."}, "plfd"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"110100", ".....", ".....", ".....", "..........."}, "pstfs"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"11011.", ".....", ".....", ".....", "..........."}, "pstxv"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"110110", ".....", ".....", ".....", "..........."}, "pstfd"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"111000", ".....", ".....", ".....", "..........."}, "plq"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"111001", ".....", ".....", ".....", "..........."}, "pld"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"111010", ".....", ".....", ".....", "..........."}, "plxvp"}, {{"000001", "11100", "1////", "..../", "///........"}, {"111011", "...//", ".....", ".....", "00000010../"}, "pmxvi8ger4pp"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "00010010../"}, "pmxvf16ger2pp"}, {{"000001", "11100", "1////", "/////", "///........"}, {"111011", "...//", ".....", ".....", "00011010../"}, "pmxvf32gerpp"}, {{"000001", "11100", "1////", ".....", "..........."}, {"111011", "...//", ".....", ".....", "00100010../"}, "pmxvi4ger8pp"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "00101010../"}, "pmxvi16ger2spp"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "00110010../"}, "pmxvbf16ger2pp"}, {{"000001", "11100", "1////", "/////", "///........"}, {"111011", "...//", ".....", ".....", "00111010../"}, "pmxvf64gerpp"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "01010010../"}, "pmxvf16ger2np"}, {{"000001", "11100", "1////", "/////", "///........"}, {"111011", "...//", ".....", ".....", "01011010../"}, "pmxvf32gernp"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "01110010../"}, "pmxvbf16ger2n"}, {{"000001", "11100", "1////", "/////", "///........"}, {"111011", "...//", ".....", ".....", "01111010../"}, "pmxvf64gernp"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "10010010../"}, "pmxvf16ger2pn"}, {{"000001", "11100", "1////", "/////", "///........"}, {"111011", "...//", ".....", ".....", "10011010../"}, "pmxvf32gerpn"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "10110010../"}, "pmxvbf16ger2pn"}, {{"000001", "11100", "1////", "/////", "///........"}, {"111011", "...//", ".....", ".....", "10111010../"}, "pmxvf64gerpn"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "11010010../"}, "pmxvf16ger2nn"}, {{"000001", "11100", "1////", "/////", "///........"}, {"111011", "...//", ".....", ".....", "11011010../"}, "pmxvf32gernn"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "11110010../"}, "pmxvbf16ger2nn"}, {{"000001", "11100", "1////", "/////", "///........"}, {"111011", "...//", ".....", ".....", "11111010../"}, "pmxvf64gernn"}, {{"000001", "11100", "1////", "..../", "///........"}, {"111011", "...//", ".....", ".....", "00000011../"}, "pmxvi8ger4"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "00010011../"}, "pmxvf16ger2"}, {{"000001", "11100", "1////", "/////", "///........"}, {"111011", "...//", ".....", ".....", "00011011../"}, "pmxvf32ger"}, {{"000001", "11100", "1////", ".....", "..........."}, {"111011", "...//", ".....", ".....", "00100011../"}, "pmxvi4ger8"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "00101011../"}, "pmxvi16ger2s"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "00110011../"}, "pmxvbf16ger2"}, {{"000001", "11100", "1////", "/////", "///........"}, {"111011", "...//", ".....", ".....", "00111011../"}, "pmxvf64ger"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "01001011../"}, "pmxvi16ger2"}, {{"000001", "11100", "1////", "..../", "///........"}, {"111011", "...//", ".....", ".....", "01100011../"}, "pmxvi8ger4spp"}, {{"000001", "11100", "1////", "..///", "///........"}, {"111011", "...//", ".....", ".....", "01101011../"}, "pmxvi16ger2pp"}, {{"000001", "000//", ".//..", ".....", "..........."}, {"111100", ".....", ".....", ".....", "..........."}, "pstq"}, {{"000001", "100//", ".//..", ".....", "..........."}, {"001110", ".....", ".....", ".....", "..........."}, "paddi"}, {{"000001", "11000", "000//", "/////", "///////////"}, {"......", ".....", ".....", ".....", "..........."}, "pnop"}, }; static int which = 0; static ulong str2i(char *s) { ulong o; for(o = 0; *s != '\0'; s++){ o <<= 1; switch(*s){ case '.': o |= which&1; break; case '0': case '/': break; case '1': o |= 1; break; } } return o; } static ulong parsefmt(Ins *w) { return (str2i(w->op)<<26) | (str2i(w->a1)<<21) | (str2i(w->a2)<<16) | (str2i(w->a3)<<11) | (str2i(w->xop)<<0); } #define GET4(p) (u32int)(p)[3] | (u32int)(p)[2]<<8 | (u32int)(p)[1]<<16 | (u32int)(p)[0]<<24 #define PUT4(p, u) (p)[0] = (u)>>24, (p)[1] = (u)>>16, (p)[2] = (u)>>8, (p)[3] = (u) long fakeread(int, void *buf, long n, vlong off) { uvlong o; if(n < 0 || n%4 != 0 || off%4 != 0) return -1; if(off < nelem(instab)*4){ o = parsefmt(instab+off/4); PUT4(((uchar*)buf), o); return 4; } off -= nelem(instab)*4; switch(off%8){ case 0: o = parsefmt(&instab2[off/8].pfx); PUT4(((uchar*)buf), o); return 4; case 4: o = parsefmt(&instab2[off/8].ins); PUT4(((uchar*)buf), o); return 4; default: return -1; } } Map fakemap = { 1, "", -1, fakeread, 1, 0, 0, nelem(instab)*4 + nelem(instab2)*8, 0, }; void main(int argc, char **argv) { uchar buf[64]; int i, w; int debug; machbytype(FPOWER64); debug = 0; ARGBEGIN{ case 'd': debug++; break; }ARGEND for(w = 0; w < 2; w++){ which = w; for(i = 0; i < nelem(instab); i++){ buf[0] = 0; machdata->das(&fakemap, i*4, 0, (char*)buf, sizeof buf); if(strstr((char*)buf, "unknown") != nil) sysfatal("%s not implemented", instab[i].mneomic); else if(debug && strstr((char*)buf, instab[i].mneomic) == nil) print("%s\t%s\n", instab[i].mneomic, (char*)buf); } } for(w = 0; w < 2; w++){ which = w; for(i = 0; i < nelem(instab2); i++){ buf[0] = 0; machdata->das(&fakemap, nelem(instab)*4+i*8, 0, (char*)buf, sizeof buf); if(strstr((char*)buf, "unknown") != nil) sysfatal("%s not implemented", instab2[i].mneomic); else if(debug && strstr((char*)buf, instab2[i].mneomic) == nil) print("%s\t%s\n", instab2[i].mneomic, (char*)buf); } } exits(nil); }