From 419caba14d077aa6e1048bb92cff67bf2ebc3d68 Mon Sep 17 00:00:00 2001 From: Al Stone Date: Mon, 26 Nov 2012 12:23:58 -0700 Subject: add in whichasm source Signed-off-by: Al Stone --- whichasm-0.01/Makefile | 22 + whichasm-0.01/arm.h | 848 ++++++++++ whichasm-0.01/classifier.h | 17 + whichasm-0.01/classifier_arm.c | 58 + whichasm-0.01/classifier_ppc.c | 61 + whichasm-0.01/classifier_s390x.c | 53 + whichasm-0.01/classifier_x86.c | 56 + whichasm-0.01/ppc.h | 3210 ++++++++++++++++++++++++++++++++++++++ whichasm-0.01/s390x.h | 1148 ++++++++++++++ whichasm-0.01/whichasm.c | 498 ++++++ whichasm-0.01/x86.h | 746 +++++++++ 11 files changed, 6717 insertions(+) create mode 100644 whichasm-0.01/Makefile create mode 100644 whichasm-0.01/arm.h create mode 100644 whichasm-0.01/classifier.h create mode 100644 whichasm-0.01/classifier_arm.c create mode 100644 whichasm-0.01/classifier_ppc.c create mode 100644 whichasm-0.01/classifier_s390x.c create mode 100644 whichasm-0.01/classifier_x86.c create mode 100644 whichasm-0.01/ppc.h create mode 100644 whichasm-0.01/s390x.h create mode 100644 whichasm-0.01/whichasm.c create mode 100644 whichasm-0.01/x86.h (limited to 'whichasm-0.01') diff --git a/whichasm-0.01/Makefile b/whichasm-0.01/Makefile new file mode 100644 index 0000000..11855de --- /dev/null +++ b/whichasm-0.01/Makefile @@ -0,0 +1,22 @@ +# Simple initial makefile +# +CC=gcc +CFLAGS=-O2 + +DESTDIR ?= +PREFIX ?= /usr/local + +all: whichasm + +OBJS = classifier_arm.o \ + classifier_ppc.o \ + classifier_s390x.o \ + classifier_x86.o + +whichasm: $(OBJS) + +install: whichasm + install -m 755 whichasm $(DESTDIR)/$(PREFIX)/bin + +clean: + -rm -f *.o whichasm diff --git a/whichasm-0.01/arm.h b/whichasm-0.01/arm.h new file mode 100644 index 0000000..e35cff7 --- /dev/null +++ b/whichasm-0.01/arm.h @@ -0,0 +1,848 @@ + +struct arm_opcode +{ + unsigned long arch; + const char *assembler; +}; + +struct arm_reg +{ + unsigned long arch; + const char *assembler; +}; + +enum arm_arch +{ + ARM_NONE, + ARM_GENERIC, + ARM_EXT_V1, + ARM_EXT_V2, + ARM_EXT_V2S, + ARM_EXT_V3, + ARM_EXT_V3M, + ARM_EXT_V4, + ARM_EXT_V4T, + ARM_EXT_V5, + ARM_EXT_V5T, + ARM_EXT_V5ExP, + ARM_EXT_V5E, + ARM_EXT_V5J, + ARM_EXT_V6, + ARM_EXT_V6K, + ARM_EXT_V6T2, + ARM_EXT_DIV, + ARM_EXT_V5E_NOTM, + ARM_EXT_V6_NOTM, + ARM_EXT_V7, + ARM_EXT_V7A, + ARM_EXT_V7R, + ARM_EXT_V7M, + ARM_EXT_V6M, + ARM_EXT_BARRIER, + ARM_EXT_THUMB_MSR, + ARM_EXT_V6_DSP, + ARM_EXT_MP, + ARM_EXT_SEC, + ARM_EXT_OS, + ARM_EXT_ADIV, + ARM_EXT_VIRT, + ARM_CEXT_XSCALE, + ARM_CEXT_MAVERICK, + ARM_CEXT_IWMMXT, + ARM_CEXT_IWMMXT2, + FPU_ENDIAN_PURE, + FPU_ENDIAN_BIG, + FPU_FPA_EXT_V1, + FPU_FPA_EXT_V2, + FPU_MAVERICK, + FPU_VFP_EXT_V1xD, + FPU_VFP_EXT_V1, + FPU_VFP_EXT_V2, + FPU_VFP_EXT_V3xD, + FPU_VFP_EXT_V3, + FPU_NEON_EXT_V1, + FPU_VFP_EXT_D32, + FPU_VFP_EXT_FP16, + FPU_NEON_EXT_FMA, + FPU_VFP_EXT_FMA +}; + +static const struct arm_reg arm_regs[] = +{ + {ARM_GENERIC, "R0"}, + {ARM_GENERIC, "R1"}, + {ARM_GENERIC, "R2"}, + {ARM_GENERIC, "R3"}, + {ARM_GENERIC, "R4"}, + {ARM_GENERIC, "R5"}, + {ARM_GENERIC, "R6"}, + {ARM_GENERIC, "R7"}, + {ARM_GENERIC, "R8"}, + {ARM_GENERIC, "R9"}, + {ARM_GENERIC, "R10"}, + {ARM_GENERIC, "R11"}, + {ARM_GENERIC, "R12"}, + {ARM_GENERIC, "R13"}, /* SVC, IRQ, FIQ transparent */ + {ARM_GENERIC, "R14"}, /* SVC, IRQ, FIQ transparent */ + {ARM_GENERIC, "R15"}, + {ARM_GENERIC, "FP"}, + {ARM_GENERIC, "IP"}, + {ARM_GENERIC, "SP"}, + {ARM_GENERIC, "LR"}, + {ARM_GENERIC, "PC"}, + {ARM_GENERIC, "APSR"}, + {ARM_GENERIC, "SPSR"}, + {ARM_GENERIC, "CPSR"}, + {ARM_GENERIC, "A1"}, + {ARM_GENERIC, "A2"}, + {ARM_GENERIC, "A3"}, + {ARM_GENERIC, "A4"}, + {ARM_GENERIC, "V1"}, + {ARM_GENERIC, "V2"}, + {ARM_GENERIC, "V3"}, + {ARM_GENERIC, "V4"}, + {ARM_GENERIC, "V5"}, + {ARM_GENERIC, "V6"}, + {ARM_GENERIC, "V7"}, + {ARM_GENERIC, "V8"}, + {0, 0} +}; + +static const struct arm_opcode arm_opcodes[] = +{ + {ARM_CEXT_IWMMXT, "tandc"}, + {ARM_CEXT_MAVERICK, "cfabs32"}, + {ARM_CEXT_MAVERICK, "cfabs64"}, + {ARM_CEXT_MAVERICK, "cfabsd"}, + {ARM_CEXT_MAVERICK, "cfabss"}, + {ARM_CEXT_MAVERICK, "cfadd32"}, + {ARM_CEXT_MAVERICK, "cfadd64"}, + {ARM_CEXT_MAVERICK, "cfaddd"}, + {ARM_CEXT_MAVERICK, "cfadds"}, + {ARM_CEXT_MAVERICK, "cfcmp32"}, + {ARM_CEXT_MAVERICK, "cfcmp64"}, + {ARM_CEXT_MAVERICK, "cfcmpd"}, + {ARM_CEXT_MAVERICK, "cfcmps"}, + {ARM_CEXT_MAVERICK, "cfcpyd"}, + {ARM_CEXT_MAVERICK, "cfcpys"}, + {ARM_CEXT_MAVERICK, "cfcvt32d"}, + {ARM_CEXT_MAVERICK, "cfcvt32s"}, + {ARM_CEXT_MAVERICK, "cfcvt64d"}, + {ARM_CEXT_MAVERICK, "cfcvt64s"}, + {ARM_CEXT_MAVERICK, "cfcvtd32"}, + {ARM_CEXT_MAVERICK, "cfcvtds"}, + {ARM_CEXT_MAVERICK, "cfcvts32"}, + {ARM_CEXT_MAVERICK, "cfcvtsd"}, + {ARM_CEXT_MAVERICK, "cfldr32"}, + {ARM_CEXT_MAVERICK, "cfldr64"}, + {ARM_CEXT_MAVERICK, "cfldrd"}, + {ARM_CEXT_MAVERICK, "cfldrd"}, + {ARM_CEXT_MAVERICK, "cfldrs"}, + {ARM_CEXT_MAVERICK, "cfmac32"}, + {ARM_CEXT_MAVERICK, "cfmadd32"}, + {ARM_CEXT_MAVERICK, "cfmadda32"}, + {ARM_CEXT_MAVERICK, "cfmsc32"}, + {ARM_CEXT_MAVERICK, "cfmsub32"}, + {ARM_CEXT_MAVERICK, "cfmsuba32"}, + {ARM_CEXT_MAVERICK, "cfmul32"}, + {ARM_CEXT_MAVERICK, "cfmul64"}, + {ARM_CEXT_MAVERICK, "cfmuld"}, + {ARM_CEXT_MAVERICK, "cfmuls"}, + {ARM_CEXT_MAVERICK, "cfmv32a"}, + {ARM_CEXT_MAVERICK, "cfmv32ah"}, + {ARM_CEXT_MAVERICK, "cfmv32al"}, + {ARM_CEXT_MAVERICK, "cfmv32am"}, + {ARM_CEXT_MAVERICK, "cfmv32sc"}, + {ARM_CEXT_MAVERICK, "cfmv64a"}, + {ARM_CEXT_MAVERICK, "cfmv64hr"}, + {ARM_CEXT_MAVERICK, "cfmv64lr"}, + {ARM_CEXT_MAVERICK, "cfmva32"}, + {ARM_CEXT_MAVERICK, "cfmva64"}, + {ARM_CEXT_MAVERICK, "cfmvah32"}, + {ARM_CEXT_MAVERICK, "cfmval32"}, + {ARM_CEXT_MAVERICK, "cfmvam32"}, + {ARM_CEXT_MAVERICK, "cfmvdhr"}, + {ARM_CEXT_MAVERICK, "cfmvdlr"}, + {ARM_CEXT_MAVERICK, "cfmvr64h"}, + {ARM_CEXT_MAVERICK, "cfmvr64l"}, + {ARM_CEXT_MAVERICK, "cfmvrdh"}, + {ARM_CEXT_MAVERICK, "cfmvrdl"}, + {ARM_CEXT_MAVERICK, "cfmvrs"}, + {ARM_CEXT_MAVERICK, "cfmvsc32"}, + {ARM_CEXT_MAVERICK, "cfmvsr"}, + {ARM_CEXT_MAVERICK, "cfneg32"}, + {ARM_CEXT_MAVERICK, "cfneg64"}, + {ARM_CEXT_MAVERICK, "cfnegd"}, + {ARM_CEXT_MAVERICK, "cfnegs"}, + {ARM_CEXT_MAVERICK, "cfrshl32"}, + {ARM_CEXT_MAVERICK, "cfrshl64"}, + {ARM_CEXT_MAVERICK, "cfsh32"}, + {ARM_CEXT_MAVERICK, "cfsh64"}, + {ARM_CEXT_MAVERICK, "cfstr32"}, + {ARM_CEXT_MAVERICK, "cfstr64"}, + {ARM_CEXT_MAVERICK, "cfstrd"}, + {ARM_CEXT_MAVERICK, "cfstrs"}, + {ARM_CEXT_MAVERICK, "cfsub32"}, + {ARM_CEXT_MAVERICK, "cfsub64"}, + {ARM_CEXT_MAVERICK, "cfsubd"}, + {ARM_CEXT_MAVERICK, "cfsubs"}, + {ARM_CEXT_MAVERICK, "cftruncd32"}, + {ARM_CEXT_MAVERICK, "cftruncs32"}, + {ARM_CEXT_XSCALE, "mar"}, + {ARM_CEXT_XSCALE, "mia"}, + {ARM_CEXT_XSCALE, "miaph"}, + {ARM_CEXT_XSCALE, "mra"}, + {ARM_CEXT_XSCALE, "tbcst"}, + {ARM_CEXT_XSCALE, "textrc"}, + {ARM_CEXT_XSCALE, "textrm"}, + {ARM_CEXT_XSCALE, "tinsr"}, + {ARM_CEXT_XSCALE, "tmcr"}, + {ARM_CEXT_XSCALE, "tmcrr"}, + {ARM_CEXT_XSCALE, "tmia"}, + {ARM_CEXT_XSCALE, "tmiaph"}, + {ARM_CEXT_XSCALE, "tmovmsk"}, + {ARM_CEXT_XSCALE, "tmrc"}, + {ARM_CEXT_XSCALE, "tmrrc"}, + {ARM_CEXT_XSCALE, "torc"}, + {ARM_CEXT_XSCALE, "torvsc"}, + {ARM_CEXT_XSCALE, "wabs"}, + {ARM_CEXT_XSCALE, "wabsdiff"}, + {ARM_CEXT_XSCALE, "wacc"}, + {ARM_CEXT_XSCALE, "wadd"}, + {ARM_CEXT_XSCALE, "waddbhus"}, + {ARM_CEXT_XSCALE, "waddsubhx"}, + {ARM_CEXT_XSCALE, "waligni"}, + {ARM_CEXT_XSCALE, "walignr"}, + {ARM_CEXT_XSCALE, "wand"}, + {ARM_CEXT_XSCALE, "wavg2"}, + {ARM_CEXT_XSCALE, "wavg4"}, + {ARM_CEXT_XSCALE, "wcmpeq"}, + {ARM_CEXT_XSCALE, "wcmpgt"}, + {ARM_CEXT_XSCALE, "wldr"}, + {ARM_CEXT_XSCALE, "wldrd"}, + {ARM_CEXT_XSCALE, "wldrw"}, + {ARM_CEXT_XSCALE, "wmac"}, + {ARM_CEXT_XSCALE, "wmadd"}, + {ARM_CEXT_XSCALE, "wmax"}, + {ARM_CEXT_XSCALE, "wmerge"}, + {ARM_CEXT_XSCALE, "wmia"}, + {ARM_CEXT_XSCALE, "wmiaw"}, + {ARM_CEXT_XSCALE, "wmin"}, + {ARM_CEXT_XSCALE, "wmul"}, + {ARM_CEXT_XSCALE, "wmulwl"}, + {ARM_CEXT_XSCALE, "wmulwsm"}, + {ARM_CEXT_XSCALE, "wmulwum"}, + {ARM_CEXT_XSCALE, "wor"}, + {ARM_CEXT_XSCALE, "wpack"}, + {ARM_CEXT_XSCALE, "wqmia"}, + {ARM_CEXT_XSCALE, "wqmulm"}, + {ARM_CEXT_XSCALE, "wqmulwm"}, + {ARM_CEXT_XSCALE, "wror"}, + {ARM_CEXT_XSCALE, "wsad"}, + {ARM_CEXT_XSCALE, "wshufh"}, + {ARM_CEXT_XSCALE, "wsll"}, + {ARM_CEXT_XSCALE, "wsra"}, + {ARM_CEXT_XSCALE, "wsrl"}, + {ARM_CEXT_XSCALE, "wstr"}, + {ARM_CEXT_XSCALE, "wstrd"}, + {ARM_CEXT_XSCALE, "wstrw"}, + {ARM_CEXT_XSCALE, "wsub"}, + {ARM_CEXT_XSCALE, "wsubaddhx"}, + {ARM_CEXT_XSCALE, "wunpckeh"}, + {ARM_CEXT_XSCALE, "wunpckel"}, + {ARM_CEXT_XSCALE, "wunpckih"}, + {ARM_CEXT_XSCALE, "wunpckil"}, + {ARM_CEXT_XSCALE, "wxor"}, + {ARM_EXT_ADIV, "sdiv"}, + {ARM_EXT_ADIV, "udiv"}, + {ARM_EXT_DIV, "sdiv"}, + {ARM_EXT_DIV, "udiv"}, + {ARM_EXT_MP, "pldw"}, + {ARM_EXT_SEC, "smc"}, + {ARM_EXT_V1, "adc"}, + {ARM_EXT_V1, "add"}, + {ARM_EXT_V1, "and"}, + {ARM_EXT_V1, "asr"}, + {ARM_EXT_V1, "b"}, + {ARM_EXT_V1, "bic"}, + {ARM_EXT_V1, "cmn"}, + {ARM_EXT_V1, "cmp"}, + {ARM_EXT_V1, "eor"}, + {ARM_EXT_V1, "ldm"}, + {ARM_EXT_V1, "ldmfd"}, + {ARM_EXT_V1, "ldr"}, + {ARM_EXT_V1, "ldrb"}, + {ARM_EXT_V1, "ldrt"}, + {ARM_EXT_V1, "lsl"}, + {ARM_EXT_V1, "lsr"}, + {ARM_EXT_V1, "mov"}, + {ARM_EXT_V1, "mvn"}, + {ARM_EXT_V1, "nop"}, + {ARM_EXT_V1, "orr"}, + {ARM_EXT_V1, "pop"}, + {ARM_EXT_V1, "push"}, + {ARM_EXT_V1, "ror"}, + {ARM_EXT_V1, "rrx"}, + {ARM_EXT_V1, "rsb"}, + {ARM_EXT_V1, "rsc"}, + {ARM_EXT_V1, "sbc"}, + {ARM_EXT_V1, "stm"}, + {ARM_EXT_V1, "stmfd"}, + {ARM_EXT_V1, "str"}, + {ARM_EXT_V1, "strb"}, + {ARM_EXT_V1, "strh"}, + {ARM_EXT_V1, "sub"}, + {ARM_EXT_V1, "svc"}, + {ARM_EXT_V1, "teq"}, + {ARM_EXT_V1, "tst"}, + {ARM_EXT_V2, "cdp"}, + {ARM_EXT_V2, "ldc"}, + {ARM_EXT_V2, "mcr"}, + {ARM_EXT_V2, "mla"}, + {ARM_EXT_V2, "mrc"}, + {ARM_EXT_V2, "mul"}, + {ARM_EXT_V2S, "swp"}, + {ARM_EXT_V2, "stc"}, + {ARM_EXT_V3, "mrs"}, + {ARM_EXT_V3, "msr"}, + {ARM_EXT_V4T, "adc"}, + {ARM_EXT_V4T, "add"}, + {ARM_EXT_V4T, "and"}, + {ARM_EXT_V4T | ARM_EXT_V5, "bx"}, + {ARM_EXT_V4T, "asr"}, + {ARM_EXT_V4T, "b"}, + {ARM_EXT_V4T, "bic"}, + {ARM_EXT_V4T, "bl"}, + {ARM_EXT_V4T, "blx"}, + {ARM_EXT_V4T, "bx"}, + {ARM_EXT_V4T, "cmn"}, + {ARM_EXT_V4T, "cmp"}, + {ARM_EXT_V4T, "eor"}, + {ARM_EXT_V4T, "ldmia"}, + {ARM_EXT_V4T, "ldr"}, + {ARM_EXT_V4T, "ldrb"}, + {ARM_EXT_V4T, "ldrh"}, + {ARM_EXT_V4T, "ldrs"}, + {ARM_EXT_V4T, "lsl"}, + {ARM_EXT_V4T, "lsr"}, + {ARM_EXT_V4T, "mov"}, + {ARM_EXT_V4T, "mul"}, + {ARM_EXT_V4T, "mvn"}, + {ARM_EXT_V4T, "neg"}, + {ARM_EXT_V4T, "nop"}, + {ARM_EXT_V4T, "orr"}, + {ARM_EXT_V4T, "pop"}, + {ARM_EXT_V4T, "push"}, + {ARM_EXT_V4T, "ror"}, + {ARM_EXT_V4T, "sbc"}, + {ARM_EXT_V4T, "stmia"}, + {ARM_EXT_V4T, "str"}, + {ARM_EXT_V4T, "strb"}, + {ARM_EXT_V4T, "strh"}, + {ARM_EXT_V4T, "sub"}, + {ARM_EXT_V4T, "svc"}, + {ARM_EXT_V4T, "tst"}, + {ARM_EXT_V5, "bkpt"}, + {ARM_EXT_V5, "blx"}, + {ARM_EXT_V5, "cdp2"}, + {ARM_EXT_V5, "clz"}, + {ARM_EXT_V5E, "ldrd"}, + {ARM_EXT_V5E, "mcrr"}, + {ARM_EXT_V5E, "mrrc"}, + {ARM_EXT_V5E, "pld"}, + {ARM_EXT_V5E, "strd"}, + {ARM_EXT_V5ExP, "qadd"}, + {ARM_EXT_V5ExP, "qdadd"}, + {ARM_EXT_V5ExP, "qdsub"}, + {ARM_EXT_V5ExP, "qsub"}, + {ARM_EXT_V5ExP, "smlabb"}, + {ARM_EXT_V5ExP, "smlabt"}, + {ARM_EXT_V5ExP, "smlalbb"}, + {ARM_EXT_V5ExP, "smlalbt"}, + {ARM_EXT_V5ExP, "smlaltb"}, + {ARM_EXT_V5ExP, "smlaltt"}, + {ARM_EXT_V5ExP, "smlatb"}, + {ARM_EXT_V5ExP, "smlatt"}, + {ARM_EXT_V5ExP, "smlawb"}, + {ARM_EXT_V5ExP, "smlawt"}, + {ARM_EXT_V5ExP, "smulbb"}, + {ARM_EXT_V5ExP, "smulbt"}, + {ARM_EXT_V5ExP, "smultb"}, + {ARM_EXT_V5ExP, "smultt"}, + {ARM_EXT_V5ExP, "smulwb"}, + {ARM_EXT_V5ExP, "smulwt"}, + {ARM_EXT_V5J, "bxj"}, + {ARM_EXT_V5, "ldc2"}, + {ARM_EXT_V5, "mcr2"}, + {ARM_EXT_V5, "mrc2"}, + {ARM_EXT_V5, "stc2"}, + {ARM_EXT_V5T, "bkpt"}, + {ARM_EXT_V5T, "blx"}, + {ARM_EXT_V6, "cps"}, + {ARM_EXT_V6, "cpsid"}, + {ARM_EXT_V6, "cpsie"}, + {ARM_EXT_V6K, "clrex"}, + {ARM_EXT_V6K, "ldrexb"}, + {ARM_EXT_V6K, "ldrexd"}, + {ARM_EXT_V6K, "ldrexh"}, + {ARM_EXT_V6K, "nop"}, + {ARM_EXT_V6K, "sev"}, + {ARM_EXT_V6K, "strexb"}, + {ARM_EXT_V6K, "strexd"}, + {ARM_EXT_V6K, "strexh"}, + {ARM_EXT_V6K, "wfe"}, + {ARM_EXT_V6K, "wfi"}, + {ARM_EXT_V6K, "yield"}, + {ARM_EXT_V6, "ldrex"}, + {ARM_EXT_V6, "mcrr2"}, + {ARM_EXT_V6, "mov"}, + {ARM_EXT_V6, "mrrc2"}, + {ARM_EXT_V6, "pkhbt"}, + {ARM_EXT_V6, "pkhtb"}, + {ARM_EXT_V6, "qadd16"}, + {ARM_EXT_V6, "qadd8"}, + {ARM_EXT_V6, "qasx"}, + {ARM_EXT_V6, "qsax"}, + {ARM_EXT_V6, "qsub16"}, + {ARM_EXT_V6, "qsub8"}, + {ARM_EXT_V6, "rev"}, + {ARM_EXT_V6, "rev16"}, + {ARM_EXT_V6, "revsh"}, + {ARM_EXT_V6, "rfe"}, + {ARM_EXT_V6, "sadd16"}, + {ARM_EXT_V6, "sadd8"}, + {ARM_EXT_V6, "sasx"}, + {ARM_EXT_V6, "sel"}, + {ARM_EXT_V6, "setend"}, + {ARM_EXT_V6, "shadd16"}, + {ARM_EXT_V6, "shadd8"}, + {ARM_EXT_V6, "shasx"}, + {ARM_EXT_V6, "shsax"}, + {ARM_EXT_V6, "shsub16"}, + {ARM_EXT_V6, "shsub8"}, + {ARM_EXT_V6, "smlad"}, + {ARM_EXT_V6, "smlald"}, + {ARM_EXT_V6, "smlsd"}, + {ARM_EXT_V6, "smlsld"}, + {ARM_EXT_V6, "smmla"}, + {ARM_EXT_V6, "smmls"}, + {ARM_EXT_V6, "smmul"}, + {ARM_EXT_V6, "smuad"}, + {ARM_EXT_V6, "smusd"}, + {ARM_EXT_V6, "srs"}, + {ARM_EXT_V6, "ssat"}, + {ARM_EXT_V6, "ssat16"}, + {ARM_EXT_V6, "ssax"}, + {ARM_EXT_V6, "ssub16"}, + {ARM_EXT_V6, "ssub8"}, + {ARM_EXT_V6, "strex"}, + {ARM_EXT_V6, "sxtab"}, + {ARM_EXT_V6, "sxtab16"}, + {ARM_EXT_V6, "sxtah"}, + {ARM_EXT_V6, "sxtb"}, + {ARM_EXT_V6, "sxtb16"}, + {ARM_EXT_V6, "sxth"}, + {ARM_EXT_V6T2, "adc"}, + {ARM_EXT_V6T2, "add"}, + {ARM_EXT_V6T2, "addw"}, + {ARM_EXT_V6T2, "and"}, + {ARM_EXT_V6T2, "asr"}, + {ARM_EXT_V6T2, "b"}, + {ARM_EXT_V6T2, "bfc"}, + {ARM_EXT_V6T2, "bfi"}, + {ARM_EXT_V6T2, "bic"}, + {ARM_EXT_V6T2, "bxj"}, + {ARM_EXT_V6T2, "cbnz"}, + {ARM_EXT_V6T2, "cbz"}, + {ARM_EXT_V6T2, "clrex"}, + {ARM_EXT_V6T2, "clz"}, + {ARM_EXT_V6T2, "cmn"}, + {ARM_EXT_V6T2, "cmp"}, + {ARM_EXT_V6T2, "cps"}, + {ARM_EXT_V6T2, "cpsid"}, + {ARM_EXT_V6T2, "cpsid.w"}, + {ARM_EXT_V6T2, "cpsie"}, + {ARM_EXT_V6T2, "cpsie.w"}, + {ARM_EXT_V6T2, "eor"}, + {ARM_EXT_V6T2, "it"}, + {ARM_EXT_V6T2, "ldmdb"}, + {ARM_EXT_V6T2, "ldmia"}, + {ARM_EXT_V6T2, "ldr"}, + {ARM_EXT_V6T2, "ldrd"}, + {ARM_EXT_V6T2, "ldrex"}, + {ARM_EXT_V6T2, "ldrexd"}, + {ARM_EXT_V6T2, "lsl"}, + {ARM_EXT_V6T2, "lsr"}, + {ARM_EXT_V6T2, "mla"}, + {ARM_EXT_V6T2, "mls"}, + {ARM_EXT_V6T2, "mov"}, + {ARM_EXT_V6T2, "movt"}, + {ARM_EXT_V6T2, "movw"}, + {ARM_EXT_V6T2, "mrs"}, + {ARM_EXT_V6T2, "msr"}, + {ARM_EXT_V6T2, "mul"}, + {ARM_EXT_V6T2, "mvn"}, + {ARM_EXT_V6T2, "nop"}, + {ARM_EXT_V6T2, "orn"}, + {ARM_EXT_V6T2, "orr"}, + {ARM_EXT_V6T2, "pkhbt"}, + {ARM_EXT_V6T2, "pkhtb"}, + {ARM_EXT_V6T2, "pld"}, + {ARM_EXT_V6T2, "qadd"}, + {ARM_EXT_V6T2, "qadd16"}, + {ARM_EXT_V6T2, "qadd8"}, + {ARM_EXT_V6T2, "qasx"}, + {ARM_EXT_V6T2, "qdadd"}, + {ARM_EXT_V6T2, "qdsub"}, + {ARM_EXT_V6T2, "qsax"}, + {ARM_EXT_V6T2, "qsub"}, + {ARM_EXT_V6T2, "qsub16"}, + {ARM_EXT_V6T2, "qsub8"}, + {ARM_EXT_V6T2, "rbit"}, + {ARM_EXT_V6T2, "rev"}, + {ARM_EXT_V6T2, "rev16"}, + {ARM_EXT_V6T2, "revsh"}, + {ARM_EXT_V6T2, "rfedb"}, + {ARM_EXT_V6T2, "rfeia"}, + {ARM_EXT_V6T2, "ror"}, + {ARM_EXT_V6T2, "rsb"}, + {ARM_EXT_V6T2, "sadd16"}, + {ARM_EXT_V6T2, "sadd8"}, + {ARM_EXT_V6T2, "sasx"}, + {ARM_EXT_V6T2, "sbc"}, + {ARM_EXT_V6T2, "sbfx"}, + {ARM_EXT_V6T2, "sel"}, + {ARM_EXT_V6T2, "sev"}, + {ARM_EXT_V6T2, "shadd16"}, + {ARM_EXT_V6T2, "shadd8"}, + {ARM_EXT_V6T2, "shasx"}, + {ARM_EXT_V6T2, "shsax"}, + {ARM_EXT_V6T2, "shsub16"}, + {ARM_EXT_V6T2, "shsub8"}, + {ARM_EXT_V6T2, "smla"}, + {ARM_EXT_V6T2, "smlad"}, + {ARM_EXT_V6T2, "smlal"}, + {ARM_EXT_V6T2, "smlald"}, + {ARM_EXT_V6T2, "smlaw"}, + {ARM_EXT_V6T2, "smlsd"}, + {ARM_EXT_V6T2, "smlsld"}, + {ARM_EXT_V6T2, "smmla"}, + {ARM_EXT_V6T2, "smmls"}, + {ARM_EXT_V6T2, "smmul"}, + {ARM_EXT_V6T2, "smuad"}, + {ARM_EXT_V6T2, "smul"}, + {ARM_EXT_V6T2, "smull"}, + {ARM_EXT_V6T2, "smulw"}, + {ARM_EXT_V6T2, "smusd"}, + {ARM_EXT_V6T2, "srsdb"}, + {ARM_EXT_V6T2, "srsia"}, + {ARM_EXT_V6T2, "ssat"}, + {ARM_EXT_V6T2, "ssat16"}, + {ARM_EXT_V6T2, "ssax"}, + {ARM_EXT_V6T2, "ssub16"}, + {ARM_EXT_V6T2, "ssub8"}, + {ARM_EXT_V6T2, "stmdb"}, + {ARM_EXT_V6T2, "stmia"}, + {ARM_EXT_V6T2, "str"}, + {ARM_EXT_V6T2, "strd"}, + {ARM_EXT_V6T2, "strex"}, + {ARM_EXT_V6T2, "strexd"}, + {ARM_EXT_V6T2, "strht"}, + {ARM_EXT_V6T2, "sub"}, + {ARM_EXT_V6T2, "subs"}, + {ARM_EXT_V6T2, "subw"}, + {ARM_EXT_V6T2, "sxtab"}, + {ARM_EXT_V6T2, "sxtab16"}, + {ARM_EXT_V6T2, "sxtah"}, + {ARM_EXT_V6T2, "sxtb"}, + {ARM_EXT_V6T2, "sxtb16"}, + {ARM_EXT_V6T2, "sxth"}, + {ARM_EXT_V6T2, "tbb"}, + {ARM_EXT_V6T2, "tbh"}, + {ARM_EXT_V6T2, "teq"}, + {ARM_EXT_V6T2, "tst"}, + {ARM_EXT_V6T2, "uadd16"}, + {ARM_EXT_V6T2, "uadd8"}, + {ARM_EXT_V6T2, "uasx"}, + {ARM_EXT_V6T2, "ubfx"}, + {ARM_EXT_V6T2, "uhadd16"}, + {ARM_EXT_V6T2, "uhadd8"}, + {ARM_EXT_V6T2, "uhasx"}, + {ARM_EXT_V6T2, "uhsax"}, + {ARM_EXT_V6T2, "uhsub16"}, + {ARM_EXT_V6T2, "uhsub8"}, + {ARM_EXT_V6T2, "umaal"}, + {ARM_EXT_V6T2, "umlal"}, + {ARM_EXT_V6T2, "umull"}, + {ARM_EXT_V6T2, "uqadd16"}, + {ARM_EXT_V6T2, "uqadd8"}, + {ARM_EXT_V6T2, "uqasx"}, + {ARM_EXT_V6T2, "uqsax"}, + {ARM_EXT_V6T2, "uqsub16"}, + {ARM_EXT_V6T2, "uqsub8"}, + {ARM_EXT_V6T2, "usad8"}, + {ARM_EXT_V6T2, "usada8"}, + {ARM_EXT_V6T2, "usat"}, + {ARM_EXT_V6T2, "usat16"}, + {ARM_EXT_V6T2, "usax"}, + {ARM_EXT_V6T2, "usub16"}, + {ARM_EXT_V6T2, "usub8"}, + {ARM_EXT_V6T2, "uxtab"}, + {ARM_EXT_V6T2, "uxtab16"}, + {ARM_EXT_V6T2, "uxtah"}, + {ARM_EXT_V6T2, "uxtb"}, + {ARM_EXT_V6T2, "uxtb16"}, + {ARM_EXT_V6T2, "uxth"}, + {ARM_EXT_V6T2, "wfe"}, + {ARM_EXT_V6T2, "wfi"}, + {ARM_EXT_V6T2, "yield"}, + {ARM_EXT_V6, "uadd16"}, + {ARM_EXT_V6, "uadd8"}, + {ARM_EXT_V6, "uasx"}, + {ARM_EXT_V6, "uhadd16"}, + {ARM_EXT_V6, "uhadd8"}, + {ARM_EXT_V6, "uhasx"}, + {ARM_EXT_V6, "uhsax"}, + {ARM_EXT_V6, "uhsub16"}, + {ARM_EXT_V6, "uhsub8"}, + {ARM_EXT_V6, "umaal"}, + {ARM_EXT_V6, "uqadd16"}, + {ARM_EXT_V6, "uqadd8"}, + {ARM_EXT_V6, "uqasx"}, + {ARM_EXT_V6, "uqsax"}, + {ARM_EXT_V6, "uqsub16"}, + {ARM_EXT_V6, "uqsub8"}, + {ARM_EXT_V6, "usad8"}, + {ARM_EXT_V6, "usada8"}, + {ARM_EXT_V6, "usat"}, + {ARM_EXT_V6, "usat16"}, + {ARM_EXT_V6, "usax"}, + {ARM_EXT_V6, "usub16"}, + {ARM_EXT_V6, "usub8"}, + {ARM_EXT_V6, "uxtab"}, + {ARM_EXT_V6, "uxtab16"}, + {ARM_EXT_V6, "uxtah"}, + {ARM_EXT_V6, "uxtb"}, + {ARM_EXT_V6, "uxtb16"}, + {ARM_EXT_V6, "uxth"}, + {ARM_EXT_V7, "dbg"}, + {ARM_EXT_V7, "dmb"}, + {ARM_EXT_V7, "dsb"}, + {ARM_EXT_V7, "isb"}, + {ARM_EXT_V7, "pli"}, + {ARM_EXT_VIRT, "eret"}, + {ARM_EXT_VIRT, "hvc"}, + {ARM_EXT_VIRT, "msr"}, + {FPU_FPA_EXT_V1, "abs"}, + {FPU_FPA_EXT_V1, "acs"}, + {FPU_FPA_EXT_V1, "adf"}, + {FPU_FPA_EXT_V1, "asn"}, + {FPU_FPA_EXT_V1, "atn"}, + {FPU_FPA_EXT_V1, "cmf"}, + {FPU_FPA_EXT_V1, "cmfe"}, + {FPU_FPA_EXT_V1, "cnf"}, + {FPU_FPA_EXT_V1, "cnfe"}, + {FPU_FPA_EXT_V1, "cos"}, + {FPU_FPA_EXT_V1, "dvf"}, + {FPU_FPA_EXT_V1, "exp"}, + {FPU_FPA_EXT_V1, "fdv"}, + {FPU_FPA_EXT_V1, "fix"}, + {FPU_FPA_EXT_V1, "flt"}, + {FPU_FPA_EXT_V1, "fml"}, + {FPU_FPA_EXT_V1, "frd"}, + {FPU_FPA_EXT_V1, "ldf"}, + {FPU_FPA_EXT_V1, "lgn"}, + {FPU_FPA_EXT_V1, "log"}, + {FPU_FPA_EXT_V1, "mnf"}, + {FPU_FPA_EXT_V1, "muf"}, + {FPU_FPA_EXT_V1, "mvf"}, + {FPU_FPA_EXT_V1, "nrm"}, + {FPU_FPA_EXT_V1, "pol"}, + {FPU_FPA_EXT_V1, "pow"}, + {FPU_FPA_EXT_V1, "rdf"}, + {FPU_FPA_EXT_V1, "rfc"}, + {FPU_FPA_EXT_V1, "rfs"}, + {FPU_FPA_EXT_V1, "rmf"}, + {FPU_FPA_EXT_V1, "rnd"}, + {FPU_FPA_EXT_V1, "rpw"}, + {FPU_FPA_EXT_V1, "rsf"}, + {FPU_FPA_EXT_V1, "sin"}, + {FPU_FPA_EXT_V1, "sqt"}, + {FPU_FPA_EXT_V1, "stf"}, + {FPU_FPA_EXT_V1, "suf"}, + {FPU_FPA_EXT_V1, "tan"}, + {FPU_FPA_EXT_V1, "urd"}, + {FPU_FPA_EXT_V1, "wfc"}, + {FPU_FPA_EXT_V1, "wfs"}, + {FPU_FPA_EXT_V2, "lfm"}, + {FPU_FPA_EXT_V2, "sfm"}, + {FPU_NEON_EXT_FMA, "vfma"}, + {FPU_NEON_EXT_FMA, "vfms"}, + {FPU_NEON_EXT_V1, "vaba"}, + {FPU_NEON_EXT_V1, "vabal"}, + {FPU_NEON_EXT_V1, "vabd"}, + {FPU_NEON_EXT_V1, "vabdl"}, + {FPU_NEON_EXT_V1, "vabs"}, + {FPU_NEON_EXT_V1, "vacge"}, + {FPU_NEON_EXT_V1, "vacgt"}, + {FPU_NEON_EXT_V1, "vadd"}, + {FPU_NEON_EXT_V1, "vaddhn"}, + {FPU_NEON_EXT_V1, "vaddl"}, + {FPU_NEON_EXT_V1, "vaddw"}, + {FPU_NEON_EXT_V1, "vand"}, + {FPU_NEON_EXT_V1, "vbic"}, + {FPU_NEON_EXT_V1, "vbif"}, + {FPU_NEON_EXT_V1, "vbit"}, + {FPU_NEON_EXT_V1, "vbsl"}, + {FPU_NEON_EXT_V1, "vceq"}, + {FPU_NEON_EXT_V1, "vcge"}, + {FPU_NEON_EXT_V1, "vcgt"}, + {FPU_NEON_EXT_V1, "vcle"}, + {FPU_NEON_EXT_V1, "vcls"}, + {FPU_NEON_EXT_V1, "vclt"}, + {FPU_NEON_EXT_V1, "vclz"}, + {FPU_NEON_EXT_V1, "vcnt"}, + {FPU_NEON_EXT_V1, "vcvt"}, + {FPU_NEON_EXT_V1, "vdup"}, + {FPU_NEON_EXT_V1, "veor"}, + {FPU_NEON_EXT_V1, "vext"}, + {FPU_NEON_EXT_V1, "vhadd"}, + {FPU_NEON_EXT_V1, "vhsub"}, + {FPU_NEON_EXT_V1, "vld1"}, + {FPU_NEON_EXT_V1, "vld2"}, + {FPU_NEON_EXT_V1, "vld3"}, + {FPU_NEON_EXT_V1, "vld4"}, + {FPU_NEON_EXT_V1, "vmax"}, + {FPU_NEON_EXT_V1, "vmin"}, + {FPU_NEON_EXT_V1, "vmla"}, + {FPU_NEON_EXT_V1, "vmlal"}, + {FPU_NEON_EXT_V1, "vmls"}, + {FPU_NEON_EXT_V1, "vmlsl"}, + {FPU_NEON_EXT_V1, "vmov"}, + {FPU_NEON_EXT_V1, "vmovl"}, + {FPU_NEON_EXT_V1, "vmovn"}, + {FPU_NEON_EXT_V1, "vmul"}, + {FPU_NEON_EXT_V1, "vmull"}, + {FPU_NEON_EXT_V1, "vmvn"}, + {FPU_NEON_EXT_V1, "vneg"}, + {FPU_NEON_EXT_V1, "vorn"}, + {FPU_NEON_EXT_V1, "vorr"}, + {FPU_NEON_EXT_V1, "vpadal"}, + {FPU_NEON_EXT_V1, "vpadd"}, + {FPU_NEON_EXT_V1, "vpaddl"}, + {FPU_NEON_EXT_V1, "vpmax"}, + {FPU_NEON_EXT_V1, "vpmin"}, + {FPU_NEON_EXT_V1, "vqabs"}, + {FPU_NEON_EXT_V1, "vqadd"}, + {FPU_NEON_EXT_V1, "vqdmlal"}, + {FPU_NEON_EXT_V1, "vqdmlsl"}, + {FPU_NEON_EXT_V1, "vqdmulh"}, + {FPU_NEON_EXT_V1, "vqdmull"}, + {FPU_NEON_EXT_V1, "vqmovn"}, + {FPU_NEON_EXT_V1, "vqmovun"}, + {FPU_NEON_EXT_V1, "vqneg"}, + {FPU_NEON_EXT_V1, "vqrdmulh"}, + {FPU_NEON_EXT_V1, "vqrshl"}, + {FPU_NEON_EXT_V1, "vqrshrn"}, + {FPU_NEON_EXT_V1, "vqrshrun"}, + {FPU_NEON_EXT_V1, "vqshl"}, + {FPU_NEON_EXT_V1, "vqshlu"}, + {FPU_NEON_EXT_V1, "vqshrn"}, + {FPU_NEON_EXT_V1, "vqshrun"}, + {FPU_NEON_EXT_V1, "vqsub"}, + {FPU_NEON_EXT_V1, "vraddhn"}, + {FPU_NEON_EXT_V1, "vrecpe"}, + {FPU_NEON_EXT_V1, "vrecps"}, + {FPU_NEON_EXT_V1, "vrev16"}, + {FPU_NEON_EXT_V1, "vrev32"}, + {FPU_NEON_EXT_V1, "vrev64"}, + {FPU_NEON_EXT_V1, "vrhadd"}, + {FPU_NEON_EXT_V1, "vrshl"}, + {FPU_NEON_EXT_V1, "vrshr"}, + {FPU_NEON_EXT_V1, "vrshrn"}, + {FPU_NEON_EXT_V1, "vrsqrte"}, + {FPU_NEON_EXT_V1, "vrsqrts"}, + {FPU_NEON_EXT_V1, "vrsra"}, + {FPU_NEON_EXT_V1, "vrsubhn"}, + {FPU_NEON_EXT_V1, "vshl"}, + {FPU_NEON_EXT_V1, "vshll"}, + {FPU_NEON_EXT_V1, "vshr"}, + {FPU_NEON_EXT_V1, "vshrn"}, + {FPU_NEON_EXT_V1, "vsli"}, + {FPU_NEON_EXT_V1, "vsra"}, + {FPU_NEON_EXT_V1, "vsri"}, + {FPU_NEON_EXT_V1, "vsub"}, + {FPU_NEON_EXT_V1, "vsubhn"}, + {FPU_NEON_EXT_V1, "vsubl"}, + {FPU_NEON_EXT_V1, "vsubw"}, + {FPU_NEON_EXT_V1, "vswp"}, + {FPU_NEON_EXT_V1, "vtbl"}, + {FPU_NEON_EXT_V1, "vtbx"}, + {FPU_NEON_EXT_V1, "vtrn"}, + {FPU_NEON_EXT_V1, "vtst"}, + {FPU_NEON_EXT_V1, "vuzp"}, + {FPU_NEON_EXT_V1, "vzip"}, + {FPU_VFP_EXT_FMA, "vfma"}, + {FPU_VFP_EXT_FMA, "vfms"}, + {FPU_VFP_EXT_FMA, "vfnma"}, + {FPU_VFP_EXT_FMA, "vfnms"}, + {FPU_VFP_EXT_FP16, "vcvt"}, + {FPU_VFP_EXT_V1, "vabs"}, + {FPU_VFP_EXT_V1, "vadd"}, + {FPU_VFP_EXT_V1, "vcmp"}, + {FPU_VFP_EXT_V1, "vcvt"}, + {FPU_VFP_EXT_V1, "vdiv"}, + {FPU_VFP_EXT_V1, "vmla"}, + {FPU_VFP_EXT_V1, "vmls"}, + {FPU_VFP_EXT_V1, "vmov"}, + {FPU_VFP_EXT_V1, "vmul"}, + {FPU_VFP_EXT_V1, "vneg"}, + {FPU_VFP_EXT_V1, "vnmla"}, + {FPU_VFP_EXT_V1, "vnmls"}, + {FPU_VFP_EXT_V1, "vnmul"}, + {FPU_VFP_EXT_V1, "vsqrt"}, + {FPU_VFP_EXT_V1, "vsub"}, + {FPU_VFP_EXT_V1xD, "fldmdbx"}, + {FPU_VFP_EXT_V1xD, "fldmiax"}, + {FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1, "vldmdb"}, + {FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1, "vldmia"}, + {FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1, "vldr"}, + {FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1, "vpop"}, + {FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1, "vpush"}, + {FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1, "vstmdb"}, + {FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1, "vstmia"}, + {FPU_VFP_EXT_V1xD | FPU_NEON_EXT_V1, "vstr"}, + {FPU_VFP_EXT_V1xD, "fstmdbx"}, + {FPU_VFP_EXT_V1xD, "fstmiax"}, + {FPU_VFP_EXT_V1xD, "vabs"}, + {FPU_VFP_EXT_V1xD, "vadd"}, + {FPU_VFP_EXT_V1xD, "vcmp"}, + {FPU_VFP_EXT_V1xD, "vcvt"}, + {FPU_VFP_EXT_V1xD, "vdiv"}, + {FPU_VFP_EXT_V1xD, "vldmdb"}, + {FPU_VFP_EXT_V1xD, "vldmia"}, + {FPU_VFP_EXT_V1xD, "vldr"}, + {FPU_VFP_EXT_V1xD, "vmla"}, + {FPU_VFP_EXT_V1xD, "vmls"}, + {FPU_VFP_EXT_V1xD, "vmov"}, + {FPU_VFP_EXT_V1xD, "vmrs"}, + {FPU_VFP_EXT_V1xD, "vmsr"}, + {FPU_VFP_EXT_V1xD, "vmul"}, + {FPU_VFP_EXT_V1xD, "vneg"}, + {FPU_VFP_EXT_V1xD, "vnmla"}, + {FPU_VFP_EXT_V1xD, "vnmls"}, + {FPU_VFP_EXT_V1xD, "vnmul"}, + {FPU_VFP_EXT_V1xD, "vpop"}, + {FPU_VFP_EXT_V1xD, "vpush"}, + {FPU_VFP_EXT_V1xD, "vsqrt"}, + {FPU_VFP_EXT_V1xD, "vstmdb"}, + {FPU_VFP_EXT_V1xD, "vstmia"}, + {FPU_VFP_EXT_V1xD, "vstr"}, + {FPU_VFP_EXT_V1xD, "vsub"}, + {FPU_VFP_EXT_V2, "vmov"}, + {FPU_VFP_EXT_V3, "vcvt"}, + {FPU_VFP_EXT_V3, "vmov"}, + {FPU_VFP_EXT_V3xD, "vcvt"}, + {FPU_VFP_EXT_V3xD, "vmov"}, + {0, 0} +}; diff --git a/whichasm-0.01/classifier.h b/whichasm-0.01/classifier.h new file mode 100644 index 0000000..9a595c9 --- /dev/null +++ b/whichasm-0.01/classifier.h @@ -0,0 +1,17 @@ +/* standard types */ + +enum class { + UNKNOWN, + MNEMONIC, + REGISTER +}; + +struct token { + char *name; + struct token *next; +}; + +int classifier_arm(char *token_name); +int classifier_ppc(char *token_name); +int classifier_s390x(char *token_name); +int classifier_x86(char *token_name); diff --git a/whichasm-0.01/classifier_arm.c b/whichasm-0.01/classifier_arm.c new file mode 100644 index 0000000..b2c127c --- /dev/null +++ b/whichasm-0.01/classifier_arm.c @@ -0,0 +1,58 @@ +/* + * Classifier for ARM assembly language + * + * Copyright (C) 2012 Red Hat, Inc. + * + */ + +/* ARM opcodes usually have a format like this: + * mnemonic , , ... + * Register names include the following: + * + * 32-bit GPRS: R0-R15 (fp, ip, sp, lr, pc) + * 32-bit shadow FIQ mode GPRS: R8_FIQ-R14_FIQ + * 32-bit shadow SVC mode GPRS: R13_SVC, R14_SVC + * 32-bit shadow ABT mode GPRS: R13_ABT, R14_ABT + * 32-bit shadow IRQ mode GPRS: R13_IRQ, R14_IRQ + * 32-bit program status registers: APSR, SPSR, CPSR (including shadow regs) + * (also APCS defined a1-a4, v1-v8, s0-s32, d0-d16, etc.) + * (not doing floating point registers at this stage) + */ + +#include "arm.h" +#include +#include +#include +#include +#include + +#include "classifier.h" + +int classifier_arm(char *token_name) +{ + const struct arm_opcode *opcode; + const struct arm_reg *reg; + + for (opcode=arm_opcodes;opcode->assembler;opcode++) { + // TODO - catch variants of assembly language mnemonics + // previously limited to opcode->assembler length + // need to catch assembly that has appended letters + if (strlen(token_name) == strlen(opcode->assembler)) + if (0 == strncasecmp(token_name, opcode->assembler, + strlen(opcode->assembler))) { + //printf("opcode: %s\n", opcode->assembler); + return MNEMONIC; + } + } + + for (reg=arm_regs;reg->assembler;reg++) { + + if (strlen(token_name) == strlen(reg->assembler)) + if (0 == strncasecmp(reg->assembler,token_name, + strlen(token_name))) + //printf("register: %s\n", reg->assembler); + return REGISTER; + } + + return UNKNOWN; +} diff --git a/whichasm-0.01/classifier_ppc.c b/whichasm-0.01/classifier_ppc.c new file mode 100644 index 0000000..dcea4c7 --- /dev/null +++ b/whichasm-0.01/classifier_ppc.c @@ -0,0 +1,61 @@ +/* + * Classifier for ppc assembly language + * + * Copyright (C) 2012 Red Hat, Inc. + * + */ + +/* PowerPC/POWER opcodes have a form similar to: + * nmemonic , , ... + * Register names include the following (32-bit is notional): + * 32/64-bit GPRS: GPR0-GPR31 + * 32/64-bit SPRS: SPRG4-SPRG7 + * 32-bit Condition register: CR + * 32/64-bit Link Register: LR + * 32/64-bit Count Register: CTR + * 32/64-bit Fixed-Point Exception Register: XER + * 32-bit VR Save Register: VRSAVE + * 32/64-bit Floating Point: FPR0-FPR31 + * 32/64-bit Vector registers: VR0-VR31 + * 32-bit Vector Status control: VSCR + * 32/64-bit Vector scalar registers: VSR0-VSR63 + */ + +#include "ppc.h" +#include +#include +#include +#include +#include + +#include "classifier.h" + +int classifier_ppc(char *token_name) +{ + const struct ppc_opcode *opcode; + const struct ppc_reg *reg; + + for (opcode=ppc_opcodes;opcode->assembler;opcode++) { + // TODO - catch variants of assembly language mnemonics + // previously limited to opcode->assembler length + // need to catch assembly that has appended letters + if (strlen(token_name) == strlen(opcode->assembler)) + if (0 == strncasecmp(token_name, opcode->assembler, + strlen(opcode->assembler))) { + //printf("opcode: %s\n", opcode->assembler); + return MNEMONIC; + } + } + + for (reg=ppc_regs;reg->assembler;reg++) { + if (strlen(token_name) == strlen(reg->assembler)) + if (0 == strncasecmp(reg->assembler,token_name, + strlen(token_name))) { + //printf("ppc register match\n"); + return REGISTER; + } + } + + return UNKNOWN; +} + diff --git a/whichasm-0.01/classifier_s390x.c b/whichasm-0.01/classifier_s390x.c new file mode 100644 index 0000000..2ce9d93 --- /dev/null +++ b/whichasm-0.01/classifier_s390x.c @@ -0,0 +1,53 @@ +/* + * Classifier for s390x assembly language + * + * Copyright (C) 2012 Red Hat, Inc. + * + */ + +/* s390x opcodes have 26 different formats but mostly match this: + * nmemonic , , ... + * Register names include the following: + * 32/64-bit GPRS: R0-R15 (GPR0-GPR15) + * 32/64-bit control registers: CR0-CR15 + * 32-bit access registers: AR0-AR15 + * 64-bit floating point: FP0-FP15 + * 64/128-bit status reg: PSW + */ + +#include "s390x.h" +#include +#include +#include +#include +#include + +#include "classifier.h" + +int classifier_s390x(char *token_name) +{ + const struct s390x_opcode *opcode; + const struct s390x_reg *reg; + + for (opcode=s390x_opcodes;opcode->assembler;opcode++) { + // TODO - catch variants of assembly language mnemonics + // previously limited to opcode->assembler length + // need to catch assembly that has appended letters + if (strlen(token_name) == strlen(opcode->assembler)) + if (0 == strncasecmp(token_name, opcode->assembler, + strlen(opcode->assembler))) { + //printf("opcode: %s\n", opcode->assembler); + return MNEMONIC; + } + } + + for (reg=s390x_regs;reg->assembler;reg++) { + if (strlen(token_name) == strlen(reg->assembler)) + if (0 == strncasecmp(reg->assembler,token_name, + strlen(token_name))) + return REGISTER; + } + + return UNKNOWN; +} + diff --git a/whichasm-0.01/classifier_x86.c b/whichasm-0.01/classifier_x86.c new file mode 100644 index 0000000..a669d81 --- /dev/null +++ b/whichasm-0.01/classifier_x86.c @@ -0,0 +1,56 @@ +/* + * Classifier for x86 assembly language + * + * Copyright (C) 2012 Red Hat, Inc. + * + */ + +/* x86 opcodes usually have one of two syntax forms (dest/source reversed): + * nmemonic , , ... + * Register names include the following: + * 64-bit GPRS: RAX, RBX, RCX, RDX, RSI, RDI, RBP, RSP, R8-R15 + * 32-bit GPRS: EAX, EBX, ECX, EDX + * 16-bit GPRS: AX, BX, CX, DX + * Segment registers: CS, DS, ES, FS, GS, SS + * Index and pointers: ESI, EDI, EBP, EIP, ESP, RIP + * Flags: FLAGS, EFLAGS, RFLAGS + */ + +#include "x86.h" +#include +#include +#include +#include +#include + +#include "classifier.h" + +int classifier_x86(char *token_name) +{ + const struct x86_opcode *opcode; + const struct x86_reg *reg; + + for (opcode=x86_opcodes;opcode->assembler;opcode++) { + // TODO - catch variants of assembly language mnemonics + // previously limited to opcode->assembler length + // need to catch assembly that has appended letters + if (strlen(token_name) == strlen(opcode->assembler)) + if (0 == strncasecmp(token_name, opcode->assembler, + strlen(opcode->assembler))) { + //printf("opcode: %s\n", opcode->assembler); + return MNEMONIC; + } + } + + for (reg=x86_regs;reg->assembler;reg++) { + if (strlen(token_name) == strlen(reg->assembler)) + if (0 == strncasecmp(reg->assembler,token_name, + strlen(token_name))) { + //printf("x86 register match\n"); + return REGISTER; + } + } + + return UNKNOWN; +} + diff --git a/whichasm-0.01/ppc.h b/whichasm-0.01/ppc.h new file mode 100644 index 0000000..178b1ca --- /dev/null +++ b/whichasm-0.01/ppc.h @@ -0,0 +1,3210 @@ +struct ppc_opcode +{ + unsigned long arch; + const char *assembler; +}; + +struct ppc_reg +{ + unsigned long arch; + const char *assembler; +}; + +enum ppc_arch +{ + PPC_NONE, + PPC_GENERIC +}; + +static const struct ppc_reg ppc_regs[] = +{ + {PPC_GENERIC, "R0"}, + {PPC_GENERIC, "R1"}, + {PPC_GENERIC, "R2"}, + {PPC_GENERIC, "R3"}, + {PPC_GENERIC, "R4"}, + {PPC_GENERIC, "R5"}, + {PPC_GENERIC, "R6"}, + {PPC_GENERIC, "R7"}, + {PPC_GENERIC, "R8"}, + {PPC_GENERIC, "R9"}, + {PPC_GENERIC, "R10"}, + {PPC_GENERIC, "R11"}, + {PPC_GENERIC, "R12"}, + {PPC_GENERIC, "R13"}, + {PPC_GENERIC, "R14"}, + {PPC_GENERIC, "R15"}, + {PPC_GENERIC, "R16"}, + {PPC_GENERIC, "R17"}, + {PPC_GENERIC, "R18"}, + {PPC_GENERIC, "R19"}, + {PPC_GENERIC, "R20"}, + {PPC_GENERIC, "R21"}, + {PPC_GENERIC, "R22"}, + {PPC_GENERIC, "R23"}, + {PPC_GENERIC, "R24"}, + {PPC_GENERIC, "R25"}, + {PPC_GENERIC, "R26"}, + {PPC_GENERIC, "R27"}, + {PPC_GENERIC, "R28"}, + {PPC_GENERIC, "R29"}, + {PPC_GENERIC, "R30"}, + {PPC_GENERIC, "R31"}, + {PPC_GENERIC, "CR"}, + {PPC_GENERIC, "LR"}, + {PPC_GENERIC, "CTR"}, + {PPC_GENERIC, "XER"}, + {0, 0} +}; + +static const struct ppc_opcode ppc_opcodes[] = +{ + {PPC_GENERIC, ""}, + {PPC_GENERIC, "attn"}, + {PPC_GENERIC, "tdlgti"}, + {PPC_GENERIC, "tdllti"}, + {PPC_GENERIC, "tdeqi"}, + {PPC_GENERIC, "tdlgei"}, + {PPC_GENERIC, "tdlnli"}, + {PPC_GENERIC, "tdllei"}, + {PPC_GENERIC, "tdlngi"}, + {PPC_GENERIC, "tdgti"}, + {PPC_GENERIC, "tdgei"}, + {PPC_GENERIC, "tdnli"}, + {PPC_GENERIC, "tdlti"}, + {PPC_GENERIC, "tdlei"}, + {PPC_GENERIC, "tdngi"}, + {PPC_GENERIC, "tdnei"}, + {PPC_GENERIC, "tdi"}, + {PPC_GENERIC, "twlgti"}, + {PPC_GENERIC, "tlgti"}, + {PPC_GENERIC, "twllti"}, + {PPC_GENERIC, "tllti"}, + {PPC_GENERIC, "tweqi"}, + {PPC_GENERIC, "teqi"}, + {PPC_GENERIC, "twlgei"}, + {PPC_GENERIC, "tlgei"}, + {PPC_GENERIC, "twlnli"}, + {PPC_GENERIC, "tlnli"}, + {PPC_GENERIC, "twllei"}, + {PPC_GENERIC, "tllei"}, + {PPC_GENERIC, "twlngi"}, + {PPC_GENERIC, "tlngi"}, + {PPC_GENERIC, "twgti"}, + {PPC_GENERIC, "tgti"}, + {PPC_GENERIC, "twgei"}, + {PPC_GENERIC, "tgei"}, + {PPC_GENERIC, "twnli"}, + {PPC_GENERIC, "tnli"}, + {PPC_GENERIC, "twlti"}, + {PPC_GENERIC, "tlti"}, + {PPC_GENERIC, "twlei"}, + {PPC_GENERIC, "tlei"}, + {PPC_GENERIC, "twngi"}, + {PPC_GENERIC, "tngi"}, + {PPC_GENERIC, "twnei"}, + {PPC_GENERIC, "tnei"}, + {PPC_GENERIC, "twi"}, + {PPC_GENERIC, "ti"}, + {PPC_GENERIC, "ps_cmpu0"}, + {PPC_GENERIC, "vaddubm"}, + {PPC_GENERIC, "vmaxub"}, + {PPC_GENERIC, "vrlb"}, + {PPC_GENERIC, "vcmpequb"}, + {PPC_GENERIC, "vmuloub"}, + {PPC_GENERIC, "vaddfp"}, + {PPC_GENERIC, "psq_lx"}, + {PPC_GENERIC, "vmrghb"}, + {PPC_GENERIC, "psq_stx"}, + {PPC_GENERIC, "vpkuhum"}, + {PPC_GENERIC, "mulhhwu"}, + {PPC_GENERIC, "mulhhwu."}, + {PPC_GENERIC, "ps_sum0"}, + {PPC_GENERIC, "ps_sum0."}, + {PPC_GENERIC, "ps_sum1"}, + {PPC_GENERIC, "ps_sum1."}, + {PPC_GENERIC, "ps_muls0"}, + {PPC_GENERIC, "machhwu"}, + {PPC_GENERIC, "ps_muls0."}, + {PPC_GENERIC, "machhwu."}, + {PPC_GENERIC, "ps_muls1"}, + {PPC_GENERIC, "ps_muls1."}, + {PPC_GENERIC, "ps_madds0"}, + {PPC_GENERIC, "ps_madds0."}, + {PPC_GENERIC, "ps_madds1"}, + {PPC_GENERIC, "ps_madds1."}, + {PPC_GENERIC, "vmhaddshs"}, + {PPC_GENERIC, "vmhraddshs"}, + {PPC_GENERIC, "vmladduhm"}, + {PPC_GENERIC, "ps_div"}, + {PPC_GENERIC, "vmsumubm"}, + {PPC_GENERIC, "ps_div."}, + {PPC_GENERIC, "vmsummbm"}, + {PPC_GENERIC, "vmsumuhm"}, + {PPC_GENERIC, "vmsumuhs"}, + {PPC_GENERIC, "ps_sub"}, + {PPC_GENERIC, "vmsumshm"}, + {PPC_GENERIC, "ps_sub."}, + {PPC_GENERIC, "vmsumshs"}, + {PPC_GENERIC, "ps_add"}, + {PPC_GENERIC, "vsel"}, + {PPC_GENERIC, "ps_add."}, + {PPC_GENERIC, "vperm"}, + {PPC_GENERIC, "vsldoi"}, + {PPC_GENERIC, "ps_sel"}, + {PPC_GENERIC, "vmaddfp"}, + {PPC_GENERIC, "ps_sel."}, + {PPC_GENERIC, "vnmsubfp"}, + {PPC_GENERIC, "ps_res"}, + {PPC_GENERIC, "ps_res."}, + {PPC_GENERIC, "ps_mul"}, + {PPC_GENERIC, "ps_mul."}, + {PPC_GENERIC, "ps_rsqrte"}, + {PPC_GENERIC, "ps_rsqrte."}, + {PPC_GENERIC, "ps_msub"}, + {PPC_GENERIC, "ps_msub."}, + {PPC_GENERIC, "ps_madd"}, + {PPC_GENERIC, "ps_madd."}, + {PPC_GENERIC, "ps_nmsub"}, + {PPC_GENERIC, "ps_nmsub."}, + {PPC_GENERIC, "ps_nmadd"}, + {PPC_GENERIC, "ps_nmadd."}, + {PPC_GENERIC, "ps_cmpo0"}, + {PPC_GENERIC, "vadduhm"}, + {PPC_GENERIC, "vmaxuh"}, + {PPC_GENERIC, "vrlh"}, + {PPC_GENERIC, "vcmpequh"}, + {PPC_GENERIC, "vmulouh"}, + {PPC_GENERIC, "vsubfp"}, + {PPC_GENERIC, "psq_lux"}, + {PPC_GENERIC, "vmrghh"}, + {PPC_GENERIC, "psq_stux"}, + {PPC_GENERIC, "vpkuwum"}, + {PPC_GENERIC, "ps_neg"}, + {PPC_GENERIC, "mulhhw"}, + {PPC_GENERIC, "ps_neg."}, + {PPC_GENERIC, "mulhhw."}, + {PPC_GENERIC, "machhw"}, + {PPC_GENERIC, "machhw."}, + {PPC_GENERIC, "nmachhw"}, + {PPC_GENERIC, "nmachhw."}, + {PPC_GENERIC, "ps_cmpu1"}, + {PPC_GENERIC, "vadduwm"}, + {PPC_GENERIC, "vmaxuw"}, + {PPC_GENERIC, "vrlw"}, + {PPC_GENERIC, "vcmpequw"}, + {PPC_GENERIC, "vmrghw"}, + {PPC_GENERIC, "vpkuhus"}, + {PPC_GENERIC, "ps_mr"}, + {PPC_GENERIC, "ps_mr."}, + {PPC_GENERIC, "machhwsu"}, + {PPC_GENERIC, "machhwsu."}, + {PPC_GENERIC, "ps_cmpo1"}, + {PPC_GENERIC, "vabsdub"}, + {PPC_GENERIC, "vcmpeqfp"}, + {PPC_GENERIC, "vpkuwus"}, + {PPC_GENERIC, "machhws"}, + {PPC_GENERIC, "machhws."}, + {PPC_GENERIC, "nmachhws"}, + {PPC_GENERIC, "nmachhws."}, + {PPC_GENERIC, "vabsduh"}, + {PPC_GENERIC, "vmaxsb"}, + {PPC_GENERIC, "vslb"}, + {PPC_GENERIC, "vmulosb"}, + {PPC_GENERIC, "vrefp"}, + {PPC_GENERIC, "vmrglb"}, + {PPC_GENERIC, "vpkshus"}, + {PPC_GENERIC, "ps_nabs"}, + {PPC_GENERIC, "mulchwu"}, + {PPC_GENERIC, "ps_nabs."}, + {PPC_GENERIC, "mulchwu."}, + {PPC_GENERIC, "macchwu"}, + {PPC_GENERIC, "macchwu."}, + {PPC_GENERIC, "vabsduw"}, + {PPC_GENERIC, "vmaxsh"}, + {PPC_GENERIC, "vslh"}, + {PPC_GENERIC, "vmulosh"}, + {PPC_GENERIC, "vrsqrtefp"}, + {PPC_GENERIC, "vmrglh"}, + {PPC_GENERIC, "vpkswus"}, + {PPC_GENERIC, "mulchw"}, + {PPC_GENERIC, "mulchw."}, + {PPC_GENERIC, "macchw"}, + {PPC_GENERIC, "macchw."}, + {PPC_GENERIC, "nmacchw"}, + {PPC_GENERIC, "nmacchw."}, + {PPC_GENERIC, "vaddcuw"}, + {PPC_GENERIC, "vmaxsw"}, + {PPC_GENERIC, "vslw"}, + {PPC_GENERIC, "vexptefp"}, + {PPC_GENERIC, "vmrglw"}, + {PPC_GENERIC, "vpkshss"}, + {PPC_GENERIC, "macchwsu"}, + {PPC_GENERIC, "macchwsu."}, + {PPC_GENERIC, "vsl"}, + {PPC_GENERIC, "vcmpgefp"}, + {PPC_GENERIC, "vlogefp"}, + {PPC_GENERIC, "vpkswss"}, + {PPC_GENERIC, "macchws"}, + {PPC_GENERIC, "macchws."}, + {PPC_GENERIC, "nmacchws"}, + {PPC_GENERIC, "nmacchws."}, + {PPC_GENERIC, "evaddw"}, + {PPC_GENERIC, "vaddubs"}, + {PPC_GENERIC, "evaddiw"}, + {PPC_GENERIC, "vminub"}, + {PPC_GENERIC, "evsubfw"}, + {PPC_GENERIC, "evsubw"}, + {PPC_GENERIC, "vsrb"}, + {PPC_GENERIC, "evsubifw"}, + {PPC_GENERIC, "evsubiw"}, + {PPC_GENERIC, "vcmpgtub"}, + {PPC_GENERIC, "evabs"}, + {PPC_GENERIC, "vmuleub"}, + {PPC_GENERIC, "evneg"}, + {PPC_GENERIC, "evextsb"}, + {PPC_GENERIC, "vrfin"}, + {PPC_GENERIC, "evextsh"}, + {PPC_GENERIC, "evrndw"}, + {PPC_GENERIC, "vspltb"}, + {PPC_GENERIC, "evcntlzw"}, + {PPC_GENERIC, "evcntlsw"}, + {PPC_GENERIC, "vupkhsb"}, + {PPC_GENERIC, "brinc"}, + {PPC_GENERIC, "ps_abs"}, + {PPC_GENERIC, "ps_abs."}, + {PPC_GENERIC, "evand"}, + {PPC_GENERIC, "evandc"}, + {PPC_GENERIC, "evxor"}, + {PPC_GENERIC, "evmr"}, + {PPC_GENERIC, "evor"}, + {PPC_GENERIC, "evnor"}, + {PPC_GENERIC, "evnot"}, + {PPC_GENERIC, "get"}, + {PPC_GENERIC, "eveqv"}, + {PPC_GENERIC, "evorc"}, + {PPC_GENERIC, "evnand"}, + {PPC_GENERIC, "evsrwu"}, + {PPC_GENERIC, "evsrws"}, + {PPC_GENERIC, "evsrwiu"}, + {PPC_GENERIC, "evsrwis"}, + {PPC_GENERIC, "evslw"}, + {PPC_GENERIC, "evslwi"}, + {PPC_GENERIC, "evrlw"}, + {PPC_GENERIC, "evsplati"}, + {PPC_GENERIC, "evrlwi"}, + {PPC_GENERIC, "evsplatfi"}, + {PPC_GENERIC, "evmergehi"}, + {PPC_GENERIC, "evmergelo"}, + {PPC_GENERIC, "evmergehilo"}, + {PPC_GENERIC, "evmergelohi"}, + {PPC_GENERIC, "evcmpgtu"}, + {PPC_GENERIC, "evcmpgts"}, + {PPC_GENERIC, "evcmpltu"}, + {PPC_GENERIC, "evcmplts"}, + {PPC_GENERIC, "evcmpeq"}, + {PPC_GENERIC, "cget"}, + {PPC_GENERIC, "vadduhs"}, + {PPC_GENERIC, "vminuh"}, + {PPC_GENERIC, "vsrh"}, + {PPC_GENERIC, "vcmpgtuh"}, + {PPC_GENERIC, "vmuleuh"}, + {PPC_GENERIC, "vrfiz"}, + {PPC_GENERIC, "vsplth"}, + {PPC_GENERIC, "vupkhsh"}, + {PPC_GENERIC, "nget"}, + {PPC_GENERIC, "evsel"}, + {PPC_GENERIC, "ncget"}, + {PPC_GENERIC, "evfsadd"}, + {PPC_GENERIC, "vadduws"}, + {PPC_GENERIC, "evfssub"}, + {PPC_GENERIC, "vminuw"}, + {PPC_GENERIC, "evfsabs"}, + {PPC_GENERIC, "vsrw"}, + {PPC_GENERIC, "evfsnabs"}, + {PPC_GENERIC, "evfsneg"}, + {PPC_GENERIC, "vcmpgtuw"}, + {PPC_GENERIC, "evfsmul"}, + {PPC_GENERIC, "evfsdiv"}, + {PPC_GENERIC, "vrfip"}, + {PPC_GENERIC, "evfscmpgt"}, + {PPC_GENERIC, "vspltw"}, + {PPC_GENERIC, "evfscmplt"}, + {PPC_GENERIC, "evfscmpeq"}, + {PPC_GENERIC, "vupklsb"}, + {PPC_GENERIC, "evfscfui"}, + {PPC_GENERIC, "evfscfsi"}, + {PPC_GENERIC, "evfscfuf"}, + {PPC_GENERIC, "evfscfsf"}, + {PPC_GENERIC, "evfsctui"}, + {PPC_GENERIC, "evfsctsi"}, + {PPC_GENERIC, "evfsctuf"}, + {PPC_GENERIC, "evfsctsf"}, + {PPC_GENERIC, "evfsctuiz"}, + {PPC_GENERIC, "put"}, + {PPC_GENERIC, "evfsctsiz"}, + {PPC_GENERIC, "evfststgt"}, + {PPC_GENERIC, "evfststlt"}, + {PPC_GENERIC, "evfststeq"}, + {PPC_GENERIC, "cput"}, + {PPC_GENERIC, "efsadd"}, + {PPC_GENERIC, "efssub"}, + {PPC_GENERIC, "efsabs"}, + {PPC_GENERIC, "vsr"}, + {PPC_GENERIC, "efsnabs"}, + {PPC_GENERIC, "efsneg"}, + {PPC_GENERIC, "vcmpgtfp"}, + {PPC_GENERIC, "efsmul"}, + {PPC_GENERIC, "efsdiv"}, + {PPC_GENERIC, "vrfim"}, + {PPC_GENERIC, "efscmpgt"}, + {PPC_GENERIC, "efscmplt"}, + {PPC_GENERIC, "efscmpeq"}, + {PPC_GENERIC, "vupklsh"}, + {PPC_GENERIC, "efscfd"}, + {PPC_GENERIC, "efscfui"}, + {PPC_GENERIC, "efscfsi"}, + {PPC_GENERIC, "efscfuf"}, + {PPC_GENERIC, "efscfsf"}, + {PPC_GENERIC, "efsctui"}, + {PPC_GENERIC, "efsctsi"}, + {PPC_GENERIC, "efsctuf"}, + {PPC_GENERIC, "efsctsf"}, + {PPC_GENERIC, "efsctuiz"}, + {PPC_GENERIC, "nput"}, + {PPC_GENERIC, "efsctsiz"}, + {PPC_GENERIC, "efststgt"}, + {PPC_GENERIC, "efststlt"}, + {PPC_GENERIC, "efststeq"}, + {PPC_GENERIC, "efdadd"}, + {PPC_GENERIC, "efdsub"}, + {PPC_GENERIC, "efdcfuid"}, + {PPC_GENERIC, "efdcfsid"}, + {PPC_GENERIC, "efdabs"}, + {PPC_GENERIC, "efdnabs"}, + {PPC_GENERIC, "efdneg"}, + {PPC_GENERIC, "efdmul"}, + {PPC_GENERIC, "efddiv"}, + {PPC_GENERIC, "efdctuidz"}, + {PPC_GENERIC, "efdctsidz"}, + {PPC_GENERIC, "efdcmpgt"}, + {PPC_GENERIC, "efdcmplt"}, + {PPC_GENERIC, "efdcmpeq"}, + {PPC_GENERIC, "efdcfs"}, + {PPC_GENERIC, "efdcfui"}, + {PPC_GENERIC, "efdcfsi"}, + {PPC_GENERIC, "efdcfuf"}, + {PPC_GENERIC, "efdcfsf"}, + {PPC_GENERIC, "efdctui"}, + {PPC_GENERIC, "efdctsi"}, + {PPC_GENERIC, "efdctuf"}, + {PPC_GENERIC, "efdctsf"}, + {PPC_GENERIC, "efdctuiz"}, + {PPC_GENERIC, "ncput"}, + {PPC_GENERIC, "efdctsiz"}, + {PPC_GENERIC, "efdtstgt"}, + {PPC_GENERIC, "efdtstlt"}, + {PPC_GENERIC, "efdtsteq"}, + {PPC_GENERIC, "evlddx"}, + {PPC_GENERIC, "vaddsbs"}, + {PPC_GENERIC, "evldd"}, + {PPC_GENERIC, "evldwx"}, + {PPC_GENERIC, "vminsb"}, + {PPC_GENERIC, "evldw"}, + {PPC_GENERIC, "evldhx"}, + {PPC_GENERIC, "vsrab"}, + {PPC_GENERIC, "evldh"}, + {PPC_GENERIC, "vcmpgtsb"}, + {PPC_GENERIC, "evlhhesplatx"}, + {PPC_GENERIC, "vmulesb"}, + {PPC_GENERIC, "evlhhesplat"}, + {PPC_GENERIC, "vcfux"}, + {PPC_GENERIC, "evlhhousplatx"}, + {PPC_GENERIC, "vspltisb"}, + {PPC_GENERIC, "evlhhousplat"}, + {PPC_GENERIC, "evlhhossplatx"}, + {PPC_GENERIC, "vpkpx"}, + {PPC_GENERIC, "evlhhossplat"}, + {PPC_GENERIC, "mullhwu"}, + {PPC_GENERIC, "evlwhex"}, + {PPC_GENERIC, "mullhwu."}, + {PPC_GENERIC, "evlwhe"}, + {PPC_GENERIC, "evlwhoux"}, + {PPC_GENERIC, "evlwhou"}, + {PPC_GENERIC, "evlwhosx"}, + {PPC_GENERIC, "evlwhos"}, + {PPC_GENERIC, "maclhwu"}, + {PPC_GENERIC, "evlwwsplatx"}, + {PPC_GENERIC, "maclhwu."}, + {PPC_GENERIC, "evlwwsplat"}, + {PPC_GENERIC, "evlwhsplatx"}, + {PPC_GENERIC, "evlwhsplat"}, + {PPC_GENERIC, "evstddx"}, + {PPC_GENERIC, "evstdd"}, + {PPC_GENERIC, "evstdwx"}, + {PPC_GENERIC, "evstdw"}, + {PPC_GENERIC, "evstdhx"}, + {PPC_GENERIC, "evstdh"}, + {PPC_GENERIC, "evstwhex"}, + {PPC_GENERIC, "evstwhe"}, + {PPC_GENERIC, "evstwhox"}, + {PPC_GENERIC, "evstwho"}, + {PPC_GENERIC, "evstwwex"}, + {PPC_GENERIC, "evstwwe"}, + {PPC_GENERIC, "evstwwox"}, + {PPC_GENERIC, "evstwwo"}, + {PPC_GENERIC, "vaddshs"}, + {PPC_GENERIC, "vminsh"}, + {PPC_GENERIC, "vsrah"}, + {PPC_GENERIC, "vcmpgtsh"}, + {PPC_GENERIC, "vmulesh"}, + {PPC_GENERIC, "vcfsx"}, + {PPC_GENERIC, "vspltish"}, + {PPC_GENERIC, "vupkhpx"}, + {PPC_GENERIC, "mullhw"}, + {PPC_GENERIC, "mullhw."}, + {PPC_GENERIC, "maclhw"}, + {PPC_GENERIC, "maclhw."}, + {PPC_GENERIC, "nmaclhw"}, + {PPC_GENERIC, "nmaclhw."}, + {PPC_GENERIC, "vaddsws"}, + {PPC_GENERIC, "vminsw"}, + {PPC_GENERIC, "vsraw"}, + {PPC_GENERIC, "vcmpgtsw"}, + {PPC_GENERIC, "vctuxs"}, + {PPC_GENERIC, "vspltisw"}, + {PPC_GENERIC, "maclhwsu"}, + {PPC_GENERIC, "maclhwsu."}, + {PPC_GENERIC, "vcmpbfp"}, + {PPC_GENERIC, "vctsxs"}, + {PPC_GENERIC, "vupklpx"}, + {PPC_GENERIC, "maclhws"}, + {PPC_GENERIC, "maclhws."}, + {PPC_GENERIC, "nmaclhws"}, + {PPC_GENERIC, "nmaclhws."}, + {PPC_GENERIC, "vsububm"}, + {PPC_GENERIC, "vavgub"}, + {PPC_GENERIC, "evmhessf"}, + {PPC_GENERIC, "vand"}, + {PPC_GENERIC, "vcmpequb."}, + {PPC_GENERIC, "udi0fcm."}, + {PPC_GENERIC, "udi0fcm"}, + {PPC_GENERIC, "evmhossf"}, + {PPC_GENERIC, "evmheumi"}, + {PPC_GENERIC, "evmhesmi"}, + {PPC_GENERIC, "vmaxfp"}, + {PPC_GENERIC, "evmhesmf"}, + {PPC_GENERIC, "evmhoumi"}, + {PPC_GENERIC, "vslo"}, + {PPC_GENERIC, "evmhosmi"}, + {PPC_GENERIC, "evmhosmf"}, + {PPC_GENERIC, "machhwuo"}, + {PPC_GENERIC, "machhwuo."}, + {PPC_GENERIC, "ps_merge00"}, + {PPC_GENERIC, "ps_merge00."}, + {PPC_GENERIC, "evmhessfa"}, + {PPC_GENERIC, "evmhossfa"}, + {PPC_GENERIC, "evmheumia"}, + {PPC_GENERIC, "evmhesmia"}, + {PPC_GENERIC, "evmhesmfa"}, + {PPC_GENERIC, "evmhoumia"}, + {PPC_GENERIC, "evmhosmia"}, + {PPC_GENERIC, "evmhosmfa"}, + {PPC_GENERIC, "vsubuhm"}, + {PPC_GENERIC, "vavguh"}, + {PPC_GENERIC, "vandc"}, + {PPC_GENERIC, "vcmpequh."}, + {PPC_GENERIC, "udi1fcm."}, + {PPC_GENERIC, "udi1fcm"}, + {PPC_GENERIC, "evmwhssf"}, + {PPC_GENERIC, "evmwlumi"}, + {PPC_GENERIC, "vminfp"}, + {PPC_GENERIC, "evmwhumi"}, + {PPC_GENERIC, "vsro"}, + {PPC_GENERIC, "evmwhsmi"}, + {PPC_GENERIC, "evmwhsmf"}, + {PPC_GENERIC, "evmwssf"}, + {PPC_GENERIC, "machhwo"}, + {PPC_GENERIC, "evmwumi"}, + {PPC_GENERIC, "machhwo."}, + {PPC_GENERIC, "evmwsmi"}, + {PPC_GENERIC, "evmwsmf"}, + {PPC_GENERIC, "nmachhwo"}, + {PPC_GENERIC, "nmachhwo."}, + {PPC_GENERIC, "ps_merge01"}, + {PPC_GENERIC, "ps_merge01."}, + {PPC_GENERIC, "evmwhssfa"}, + {PPC_GENERIC, "evmwlumia"}, + {PPC_GENERIC, "evmwhumia"}, + {PPC_GENERIC, "evmwhsmia"}, + {PPC_GENERIC, "evmwhsmfa"}, + {PPC_GENERIC, "evmwssfa"}, + {PPC_GENERIC, "evmwumia"}, + {PPC_GENERIC, "evmwsmia"}, + {PPC_GENERIC, "evmwsmfa"}, + {PPC_GENERIC, "vsubuwm"}, + {PPC_GENERIC, "vavguw"}, + {PPC_GENERIC, "vor"}, + {PPC_GENERIC, "vcmpequw."}, + {PPC_GENERIC, "udi2fcm."}, + {PPC_GENERIC, "udi2fcm"}, + {PPC_GENERIC, "machhwsuo"}, + {PPC_GENERIC, "machhwsuo."}, + {PPC_GENERIC, "ps_merge10"}, + {PPC_GENERIC, "ps_merge10."}, + {PPC_GENERIC, "evaddusiaaw"}, + {PPC_GENERIC, "evaddssiaaw"}, + {PPC_GENERIC, "evsubfusiaaw"}, + {PPC_GENERIC, "evsubfssiaaw"}, + {PPC_GENERIC, "evmra"}, + {PPC_GENERIC, "vxor"}, + {PPC_GENERIC, "evdivws"}, + {PPC_GENERIC, "vcmpeqfp."}, + {PPC_GENERIC, "udi3fcm."}, + {PPC_GENERIC, "udi3fcm"}, + {PPC_GENERIC, "evdivwu"}, + {PPC_GENERIC, "evaddumiaaw"}, + {PPC_GENERIC, "evaddsmiaaw"}, + {PPC_GENERIC, "evsubfumiaaw"}, + {PPC_GENERIC, "evsubfsmiaaw"}, + {PPC_GENERIC, "machhwso"}, + {PPC_GENERIC, "machhwso."}, + {PPC_GENERIC, "nmachhwso"}, + {PPC_GENERIC, "nmachhwso."}, + {PPC_GENERIC, "ps_merge11"}, + {PPC_GENERIC, "ps_merge11."}, + {PPC_GENERIC, "evmheusiaaw"}, + {PPC_GENERIC, "evmhessiaaw"}, + {PPC_GENERIC, "vavgsb"}, + {PPC_GENERIC, "evmhessfaaw"}, + {PPC_GENERIC, "evmhousiaaw"}, + {PPC_GENERIC, "vnor"}, + {PPC_GENERIC, "evmhossiaaw"}, + {PPC_GENERIC, "udi4fcm."}, + {PPC_GENERIC, "udi4fcm"}, + {PPC_GENERIC, "evmhossfaaw"}, + {PPC_GENERIC, "evmheumiaaw"}, + {PPC_GENERIC, "evmhesmiaaw"}, + {PPC_GENERIC, "evmhesmfaaw"}, + {PPC_GENERIC, "evmhoumiaaw"}, + {PPC_GENERIC, "evmhosmiaaw"}, + {PPC_GENERIC, "evmhosmfaaw"}, + {PPC_GENERIC, "macchwuo"}, + {PPC_GENERIC, "macchwuo."}, + {PPC_GENERIC, "evmhegumiaa"}, + {PPC_GENERIC, "evmhegsmiaa"}, + {PPC_GENERIC, "evmhegsmfaa"}, + {PPC_GENERIC, "evmhogumiaa"}, + {PPC_GENERIC, "evmhogsmiaa"}, + {PPC_GENERIC, "evmhogsmfaa"}, + {PPC_GENERIC, "evmwlusiaaw"}, + {PPC_GENERIC, "evmwlssiaaw"}, + {PPC_GENERIC, "vavgsh"}, + {PPC_GENERIC, "udi5fcm."}, + {PPC_GENERIC, "udi5fcm"}, + {PPC_GENERIC, "evmwlumiaaw"}, + {PPC_GENERIC, "evmwlsmiaaw"}, + {PPC_GENERIC, "evmwssfaa"}, + {PPC_GENERIC, "macchwo"}, + {PPC_GENERIC, "evmwumiaa"}, + {PPC_GENERIC, "macchwo."}, + {PPC_GENERIC, "evmwsmiaa"}, + {PPC_GENERIC, "evmwsmfaa"}, + {PPC_GENERIC, "nmacchwo"}, + {PPC_GENERIC, "nmacchwo."}, + {PPC_GENERIC, "evmheusianw"}, + {PPC_GENERIC, "vsubcuw"}, + {PPC_GENERIC, "evmhessianw"}, + {PPC_GENERIC, "vavgsw"}, + {PPC_GENERIC, "evmhessfanw"}, + {PPC_GENERIC, "evmhousianw"}, + {PPC_GENERIC, "evmhossianw"}, + {PPC_GENERIC, "udi6fcm."}, + {PPC_GENERIC, "udi6fcm"}, + {PPC_GENERIC, "evmhossfanw"}, + {PPC_GENERIC, "evmheumianw"}, + {PPC_GENERIC, "evmhesmianw"}, + {PPC_GENERIC, "evmhesmfanw"}, + {PPC_GENERIC, "evmhoumianw"}, + {PPC_GENERIC, "evmhosmianw"}, + {PPC_GENERIC, "evmhosmfanw"}, + {PPC_GENERIC, "macchwsuo"}, + {PPC_GENERIC, "macchwsuo."}, + {PPC_GENERIC, "evmhegumian"}, + {PPC_GENERIC, "evmhegsmian"}, + {PPC_GENERIC, "evmhegsmfan"}, + {PPC_GENERIC, "evmhogumian"}, + {PPC_GENERIC, "evmhogsmian"}, + {PPC_GENERIC, "evmhogsmfan"}, + {PPC_GENERIC, "evmwlusianw"}, + {PPC_GENERIC, "evmwlssianw"}, + {PPC_GENERIC, "vcmpgefp."}, + {PPC_GENERIC, "udi7fcm."}, + {PPC_GENERIC, "udi7fcm"}, + {PPC_GENERIC, "evmwlumianw"}, + {PPC_GENERIC, "evmwlsmianw"}, + {PPC_GENERIC, "evmwssfan"}, + {PPC_GENERIC, "macchwso"}, + {PPC_GENERIC, "evmwumian"}, + {PPC_GENERIC, "macchwso."}, + {PPC_GENERIC, "evmwsmian"}, + {PPC_GENERIC, "evmwsmfan"}, + {PPC_GENERIC, "nmacchwso"}, + {PPC_GENERIC, "nmacchwso."}, + {PPC_GENERIC, "vsububs"}, + {PPC_GENERIC, "mfvscr"}, + {PPC_GENERIC, "vcmpgtub."}, + {PPC_GENERIC, "udi8fcm."}, + {PPC_GENERIC, "udi8fcm"}, + {PPC_GENERIC, "vsum4ubs"}, + {PPC_GENERIC, "vsubuhs"}, + {PPC_GENERIC, "mtvscr"}, + {PPC_GENERIC, "vcmpgtuh."}, + {PPC_GENERIC, "vsum4shs"}, + {PPC_GENERIC, "udi9fcm."}, + {PPC_GENERIC, "udi9fcm"}, + {PPC_GENERIC, "vsubuws"}, + {PPC_GENERIC, "vcmpgtuw."}, + {PPC_GENERIC, "udi10fcm."}, + {PPC_GENERIC, "udi10fcm"}, + {PPC_GENERIC, "vsum2sws"}, + {PPC_GENERIC, "vcmpgtfp."}, + {PPC_GENERIC, "udi11fcm."}, + {PPC_GENERIC, "udi11fcm"}, + {PPC_GENERIC, "vsubsbs"}, + {PPC_GENERIC, "vcmpgtsb."}, + {PPC_GENERIC, "udi12fcm."}, + {PPC_GENERIC, "udi12fcm"}, + {PPC_GENERIC, "vsum4sbs"}, + {PPC_GENERIC, "maclhwuo"}, + {PPC_GENERIC, "maclhwuo."}, + {PPC_GENERIC, "vsubshs"}, + {PPC_GENERIC, "vcmpgtsh."}, + {PPC_GENERIC, "udi13fcm."}, + {PPC_GENERIC, "udi13fcm"}, + {PPC_GENERIC, "maclhwo"}, + {PPC_GENERIC, "maclhwo."}, + {PPC_GENERIC, "nmaclhwo"}, + {PPC_GENERIC, "nmaclhwo."}, + {PPC_GENERIC, "vsubsws"}, + {PPC_GENERIC, "vcmpgtsw."}, + {PPC_GENERIC, "udi14fcm."}, + {PPC_GENERIC, "udi14fcm"}, + {PPC_GENERIC, "vsumsws"}, + {PPC_GENERIC, "maclhwsuo"}, + {PPC_GENERIC, "maclhwsuo."}, + {PPC_GENERIC, "vcmpbfp."}, + {PPC_GENERIC, "udi15fcm."}, + {PPC_GENERIC, "udi15fcm"}, + {PPC_GENERIC, "maclhwso"}, + {PPC_GENERIC, "maclhwso."}, + {PPC_GENERIC, "nmaclhwso"}, + {PPC_GENERIC, "nmaclhwso."}, + {PPC_GENERIC, "dcbz_l"}, + {PPC_GENERIC, "mulli"}, + {PPC_GENERIC, "muli"}, + {PPC_GENERIC, "subfic"}, + {PPC_GENERIC, "sfi"}, + {PPC_GENERIC, "dozi"}, + {PPC_GENERIC, "cmplwi"}, + {PPC_GENERIC, "cmpldi"}, + {PPC_GENERIC, "cmpli"}, + {PPC_GENERIC, "cmpli"}, + {PPC_GENERIC, "cmpwi"}, + {PPC_GENERIC, "cmpdi"}, + {PPC_GENERIC, "cmpi"}, + {PPC_GENERIC, "cmpi"}, + {PPC_GENERIC, "addic"}, + {PPC_GENERIC, "ai"}, + {PPC_GENERIC, "subic"}, + {PPC_GENERIC, "addic."}, + {PPC_GENERIC, "ai."}, + {PPC_GENERIC, "subic."}, + {PPC_GENERIC, "li"}, + {PPC_GENERIC, "lil"}, + {PPC_GENERIC, "addi"}, + {PPC_GENERIC, "cal"}, + {PPC_GENERIC, "subi"}, + {PPC_GENERIC, "la"}, + {PPC_GENERIC, "lis"}, + {PPC_GENERIC, "liu"}, + {PPC_GENERIC, "addis"}, + {PPC_GENERIC, "cau"}, + {PPC_GENERIC, "subis"}, + {PPC_GENERIC, "bdnz-"}, + {PPC_GENERIC, "bdnz+"}, + {PPC_GENERIC, "bdnz"}, + {PPC_GENERIC, "bdn"}, + {PPC_GENERIC, "bdnzl-"}, + {PPC_GENERIC, "bdnzl+"}, + {PPC_GENERIC, "bdnzl"}, + {PPC_GENERIC, "bdnl"}, + {PPC_GENERIC, "bdnza-"}, + {PPC_GENERIC, "bdnza+"}, + {PPC_GENERIC, "bdnza"}, + {PPC_GENERIC, "bdna"}, + {PPC_GENERIC, "bdnzla-"}, + {PPC_GENERIC, "bdnzla+"}, + {PPC_GENERIC, "bdnzla"}, + {PPC_GENERIC, "bdnla"}, + {PPC_GENERIC, "bdz-"}, + {PPC_GENERIC, "bdz+"}, + {PPC_GENERIC, "bdz"}, + {PPC_GENERIC, "bdzl-"}, + {PPC_GENERIC, "bdzl+"}, + {PPC_GENERIC, "bdzl"}, + {PPC_GENERIC, "bdza-"}, + {PPC_GENERIC, "bdza+"}, + {PPC_GENERIC, "bdza"}, + {PPC_GENERIC, "bdzla-"}, + {PPC_GENERIC, "bdzla+"}, + {PPC_GENERIC, "bdzla"}, + {PPC_GENERIC, "bge-"}, + {PPC_GENERIC, "bge+"}, + {PPC_GENERIC, "bge"}, + {PPC_GENERIC, "bnl-"}, + {PPC_GENERIC, "bnl+"}, + {PPC_GENERIC, "bnl"}, + {PPC_GENERIC, "bgel-"}, + {PPC_GENERIC, "bgel+"}, + {PPC_GENERIC, "bgel"}, + {PPC_GENERIC, "bnll-"}, + {PPC_GENERIC, "bnll+"}, + {PPC_GENERIC, "bnll"}, + {PPC_GENERIC, "bgea-"}, + {PPC_GENERIC, "bgea+"}, + {PPC_GENERIC, "bgea"}, + {PPC_GENERIC, "bnla-"}, + {PPC_GENERIC, "bnla+"}, + {PPC_GENERIC, "bnla"}, + {PPC_GENERIC, "bgela-"}, + {PPC_GENERIC, "bgela+"}, + {PPC_GENERIC, "bgela"}, + {PPC_GENERIC, "bnlla-"}, + {PPC_GENERIC, "bnlla+"}, + {PPC_GENERIC, "bnlla"}, + {PPC_GENERIC, "ble-"}, + {PPC_GENERIC, "ble+"}, + {PPC_GENERIC, "ble"}, + {PPC_GENERIC, "bng-"}, + {PPC_GENERIC, "bng+"}, + {PPC_GENERIC, "bng"}, + {PPC_GENERIC, "blel-"}, + {PPC_GENERIC, "blel+"}, + {PPC_GENERIC, "blel"}, + {PPC_GENERIC, "bngl-"}, + {PPC_GENERIC, "bngl+"}, + {PPC_GENERIC, "bngl"}, + {PPC_GENERIC, "blea-"}, + {PPC_GENERIC, "blea+"}, + {PPC_GENERIC, "blea"}, + {PPC_GENERIC, "bnga-"}, + {PPC_GENERIC, "bnga+"}, + {PPC_GENERIC, "bnga"}, + {PPC_GENERIC, "blela-"}, + {PPC_GENERIC, "blela+"}, + {PPC_GENERIC, "blela"}, + {PPC_GENERIC, "bngla-"}, + {PPC_GENERIC, "bngla+"}, + {PPC_GENERIC, "bngla"}, + {PPC_GENERIC, "bne-"}, + {PPC_GENERIC, "bne+"}, + {PPC_GENERIC, "bne"}, + {PPC_GENERIC, "bnel-"}, + {PPC_GENERIC, "bnel+"}, + {PPC_GENERIC, "bnel"}, + {PPC_GENERIC, "bnea-"}, + {PPC_GENERIC, "bnea+"}, + {PPC_GENERIC, "bnea"}, + {PPC_GENERIC, "bnela-"}, + {PPC_GENERIC, "bnela+"}, + {PPC_GENERIC, "bnela"}, + {PPC_GENERIC, "bns-"}, + {PPC_GENERIC, "bns+"}, + {PPC_GENERIC, "bns"}, + {PPC_GENERIC, "bnu-"}, + {PPC_GENERIC, "bnu+"}, + {PPC_GENERIC, "bnu"}, + {PPC_GENERIC, "bnsl-"}, + {PPC_GENERIC, "bnsl+"}, + {PPC_GENERIC, "bnsl"}, + {PPC_GENERIC, "bnul-"}, + {PPC_GENERIC, "bnul+"}, + {PPC_GENERIC, "bnul"}, + {PPC_GENERIC, "bnsa-"}, + {PPC_GENERIC, "bnsa+"}, + {PPC_GENERIC, "bnsa"}, + {PPC_GENERIC, "bnua-"}, + {PPC_GENERIC, "bnua+"}, + {PPC_GENERIC, "bnua"}, + {PPC_GENERIC, "bnsla-"}, + {PPC_GENERIC, "bnsla+"}, + {PPC_GENERIC, "bnsla"}, + {PPC_GENERIC, "bnula-"}, + {PPC_GENERIC, "bnula+"}, + {PPC_GENERIC, "bnula"}, + {PPC_GENERIC, "blt-"}, + {PPC_GENERIC, "blt+"}, + {PPC_GENERIC, "blt"}, + {PPC_GENERIC, "bltl-"}, + {PPC_GENERIC, "bltl+"}, + {PPC_GENERIC, "bltl"}, + {PPC_GENERIC, "blta-"}, + {PPC_GENERIC, "blta+"}, + {PPC_GENERIC, "blta"}, + {PPC_GENERIC, "bltla-"}, + {PPC_GENERIC, "bltla+"}, + {PPC_GENERIC, "bltla"}, + {PPC_GENERIC, "bgt-"}, + {PPC_GENERIC, "bgt+"}, + {PPC_GENERIC, "bgt"}, + {PPC_GENERIC, "bgtl-"}, + {PPC_GENERIC, "bgtl+"}, + {PPC_GENERIC, "bgtl"}, + {PPC_GENERIC, "bgta-"}, + {PPC_GENERIC, "bgta+"}, + {PPC_GENERIC, "bgta"}, + {PPC_GENERIC, "bgtla-"}, + {PPC_GENERIC, "bgtla+"}, + {PPC_GENERIC, "bgtla"}, + {PPC_GENERIC, "beq-"}, + {PPC_GENERIC, "beq+"}, + {PPC_GENERIC, "beq"}, + {PPC_GENERIC, "beql-"}, + {PPC_GENERIC, "beql+"}, + {PPC_GENERIC, "beql"}, + {PPC_GENERIC, "beqa-"}, + {PPC_GENERIC, "beqa+"}, + {PPC_GENERIC, "beqa"}, + {PPC_GENERIC, "beqla-"}, + {PPC_GENERIC, "beqla+"}, + {PPC_GENERIC, "beqla"}, + {PPC_GENERIC, "bso-"}, + {PPC_GENERIC, "bso+"}, + {PPC_GENERIC, "bso"}, + {PPC_GENERIC, "bun-"}, + {PPC_GENERIC, "bun+"}, + {PPC_GENERIC, "bun"}, + {PPC_GENERIC, "bsol-"}, + {PPC_GENERIC, "bsol+"}, + {PPC_GENERIC, "bsol"}, + {PPC_GENERIC, "bunl-"}, + {PPC_GENERIC, "bunl+"}, + {PPC_GENERIC, "bunl"}, + {PPC_GENERIC, "bsoa-"}, + {PPC_GENERIC, "bsoa+"}, + {PPC_GENERIC, "bsoa"}, + {PPC_GENERIC, "buna-"}, + {PPC_GENERIC, "buna+"}, + {PPC_GENERIC, "buna"}, + {PPC_GENERIC, "bsola-"}, + {PPC_GENERIC, "bsola+"}, + {PPC_GENERIC, "bsola"}, + {PPC_GENERIC, "bunla-"}, + {PPC_GENERIC, "bunla+"}, + {PPC_GENERIC, "bunla"}, + {PPC_GENERIC, "bdnzf-"}, + {PPC_GENERIC, "bdnzf+"}, + {PPC_GENERIC, "bdnzf"}, + {PPC_GENERIC, "bdnzfl-"}, + {PPC_GENERIC, "bdnzfl+"}, + {PPC_GENERIC, "bdnzfl"}, + {PPC_GENERIC, "bdnzfa-"}, + {PPC_GENERIC, "bdnzfa+"}, + {PPC_GENERIC, "bdnzfa"}, + {PPC_GENERIC, "bdnzfla-"}, + {PPC_GENERIC, "bdnzfla+"}, + {PPC_GENERIC, "bdnzfla"}, + {PPC_GENERIC, "bdzf-"}, + {PPC_GENERIC, "bdzf+"}, + {PPC_GENERIC, "bdzf"}, + {PPC_GENERIC, "bdzfl-"}, + {PPC_GENERIC, "bdzfl+"}, + {PPC_GENERIC, "bdzfl"}, + {PPC_GENERIC, "bdzfa-"}, + {PPC_GENERIC, "bdzfa+"}, + {PPC_GENERIC, "bdzfa"}, + {PPC_GENERIC, "bdzfla-"}, + {PPC_GENERIC, "bdzfla+"}, + {PPC_GENERIC, "bdzfla"}, + {PPC_GENERIC, "bf-"}, + {PPC_GENERIC, "bf+"}, + {PPC_GENERIC, "bf"}, + {PPC_GENERIC, "bbf"}, + {PPC_GENERIC, "bfl-"}, + {PPC_GENERIC, "bfl+"}, + {PPC_GENERIC, "bfl"}, + {PPC_GENERIC, "bbfl"}, + {PPC_GENERIC, "bfa-"}, + {PPC_GENERIC, "bfa+"}, + {PPC_GENERIC, "bfa"}, + {PPC_GENERIC, "bbfa"}, + {PPC_GENERIC, "bfla-"}, + {PPC_GENERIC, "bfla+"}, + {PPC_GENERIC, "bfla"}, + {PPC_GENERIC, "bbfla"}, + {PPC_GENERIC, "bdnzt-"}, + {PPC_GENERIC, "bdnzt+"}, + {PPC_GENERIC, "bdnzt"}, + {PPC_GENERIC, "bdnztl-"}, + {PPC_GENERIC, "bdnztl+"}, + {PPC_GENERIC, "bdnztl"}, + {PPC_GENERIC, "bdnzta-"}, + {PPC_GENERIC, "bdnzta+"}, + {PPC_GENERIC, "bdnzta"}, + {PPC_GENERIC, "bdnztla-"}, + {PPC_GENERIC, "bdnztla+"}, + {PPC_GENERIC, "bdnztla"}, + {PPC_GENERIC, "bdzt-"}, + {PPC_GENERIC, "bdzt+"}, + {PPC_GENERIC, "bdzt"}, + {PPC_GENERIC, "bdztl-"}, + {PPC_GENERIC, "bdztl+"}, + {PPC_GENERIC, "bdztl"}, + {PPC_GENERIC, "bdzta-"}, + {PPC_GENERIC, "bdzta+"}, + {PPC_GENERIC, "bdzta"}, + {PPC_GENERIC, "bdztla-"}, + {PPC_GENERIC, "bdztla+"}, + {PPC_GENERIC, "bdztla"}, + {PPC_GENERIC, "bt-"}, + {PPC_GENERIC, "bt+"}, + {PPC_GENERIC, "bt"}, + {PPC_GENERIC, "bbt"}, + {PPC_GENERIC, "btl-"}, + {PPC_GENERIC, "btl+"}, + {PPC_GENERIC, "btl"}, + {PPC_GENERIC, "bbtl"}, + {PPC_GENERIC, "bta-"}, + {PPC_GENERIC, "bta+"}, + {PPC_GENERIC, "bta"}, + {PPC_GENERIC, "bbta"}, + {PPC_GENERIC, "btla-"}, + {PPC_GENERIC, "btla+"}, + {PPC_GENERIC, "btla"}, + {PPC_GENERIC, "bbtla"}, + {PPC_GENERIC, "bc-"}, + {PPC_GENERIC, "bc+"}, + {PPC_GENERIC, "bc"}, + {PPC_GENERIC, "bcl-"}, + {PPC_GENERIC, "bcl+"}, + {PPC_GENERIC, "bcl"}, + {PPC_GENERIC, "bca-"}, + {PPC_GENERIC, "bca+"}, + {PPC_GENERIC, "bca"}, + {PPC_GENERIC, "bcla-"}, + {PPC_GENERIC, "bcla+"}, + {PPC_GENERIC, "bcla"}, + {PPC_GENERIC, "svc"}, + {PPC_GENERIC, "svcl"}, + {PPC_GENERIC, "sc"}, + {PPC_GENERIC, "svca"}, + {PPC_GENERIC, "svcla"}, + {PPC_GENERIC, "b"}, + {PPC_GENERIC, "bl"}, + {PPC_GENERIC, "ba"}, + {PPC_GENERIC, "bla"}, + {PPC_GENERIC, "mcrf"}, + {PPC_GENERIC, "bdnzlr"}, + {PPC_GENERIC, "bdnzlr-"}, + {PPC_GENERIC, "bdnzlrl"}, + {PPC_GENERIC, "bdnzlrl-"}, + {PPC_GENERIC, "bdnzlr+"}, + {PPC_GENERIC, "bdnzlrl+"}, + {PPC_GENERIC, "bdzlr"}, + {PPC_GENERIC, "bdzlr-"}, + {PPC_GENERIC, "bdzlrl"}, + {PPC_GENERIC, "bdzlrl-"}, + {PPC_GENERIC, "bdzlr+"}, + {PPC_GENERIC, "bdzlrl+"}, + {PPC_GENERIC, "blr"}, + {PPC_GENERIC, "br"}, + {PPC_GENERIC, "blrl"}, + {PPC_GENERIC, "brl"}, + {PPC_GENERIC, "bdnzlr-"}, + {PPC_GENERIC, "bdnzlrl-"}, + {PPC_GENERIC, "bdnzlr+"}, + {PPC_GENERIC, "bdnzlrl+"}, + {PPC_GENERIC, "bdzlr-"}, + {PPC_GENERIC, "bdzlrl-"}, + {PPC_GENERIC, "bdzlr+"}, + {PPC_GENERIC, "bdzlrl+"}, + {PPC_GENERIC, "bgelr"}, + {PPC_GENERIC, "bgelr-"}, + {PPC_GENERIC, "bger"}, + {PPC_GENERIC, "bnllr"}, + {PPC_GENERIC, "bnllr-"}, + {PPC_GENERIC, "bnlr"}, + {PPC_GENERIC, "bgelrl"}, + {PPC_GENERIC, "bgelrl-"}, + {PPC_GENERIC, "bgerl"}, + {PPC_GENERIC, "bnllrl"}, + {PPC_GENERIC, "bnllrl-"}, + {PPC_GENERIC, "bnlrl"}, + {PPC_GENERIC, "blelr"}, + {PPC_GENERIC, "blelr-"}, + {PPC_GENERIC, "bler"}, + {PPC_GENERIC, "bnglr"}, + {PPC_GENERIC, "bnglr-"}, + {PPC_GENERIC, "bngr"}, + {PPC_GENERIC, "blelrl"}, + {PPC_GENERIC, "blelrl-"}, + {PPC_GENERIC, "blerl"}, + {PPC_GENERIC, "bnglrl"}, + {PPC_GENERIC, "bnglrl-"}, + {PPC_GENERIC, "bngrl"}, + {PPC_GENERIC, "bnelr"}, + {PPC_GENERIC, "bnelr-"}, + {PPC_GENERIC, "bner"}, + {PPC_GENERIC, "bnelrl"}, + {PPC_GENERIC, "bnelrl-"}, + {PPC_GENERIC, "bnerl"}, + {PPC_GENERIC, "bnslr"}, + {PPC_GENERIC, "bnslr-"}, + {PPC_GENERIC, "bnsr"}, + {PPC_GENERIC, "bnulr"}, + {PPC_GENERIC, "bnulr-"}, + {PPC_GENERIC, "bnslrl"}, + {PPC_GENERIC, "bnslrl-"}, + {PPC_GENERIC, "bnsrl"}, + {PPC_GENERIC, "bnulrl"}, + {PPC_GENERIC, "bnulrl-"}, + {PPC_GENERIC, "bgelr+"}, + {PPC_GENERIC, "bnllr+"}, + {PPC_GENERIC, "bgelrl+"}, + {PPC_GENERIC, "bnllrl+"}, + {PPC_GENERIC, "blelr+"}, + {PPC_GENERIC, "bnglr+"}, + {PPC_GENERIC, "blelrl+"}, + {PPC_GENERIC, "bnglrl+"}, + {PPC_GENERIC, "bnelr+"}, + {PPC_GENERIC, "bnelrl+"}, + {PPC_GENERIC, "bnslr+"}, + {PPC_GENERIC, "bnulr+"}, + {PPC_GENERIC, "bnslrl+"}, + {PPC_GENERIC, "bnulrl+"}, + {PPC_GENERIC, "bgelr-"}, + {PPC_GENERIC, "bnllr-"}, + {PPC_GENERIC, "bgelrl-"}, + {PPC_GENERIC, "bnllrl-"}, + {PPC_GENERIC, "blelr-"}, + {PPC_GENERIC, "bnglr-"}, + {PPC_GENERIC, "blelrl-"}, + {PPC_GENERIC, "bnglrl-"}, + {PPC_GENERIC, "bnelr-"}, + {PPC_GENERIC, "bnelrl-"}, + {PPC_GENERIC, "bnslr-"}, + {PPC_GENERIC, "bnulr-"}, + {PPC_GENERIC, "bnslrl-"}, + {PPC_GENERIC, "bnulrl-"}, + {PPC_GENERIC, "bgelr+"}, + {PPC_GENERIC, "bnllr+"}, + {PPC_GENERIC, "bgelrl+"}, + {PPC_GENERIC, "bnllrl+"}, + {PPC_GENERIC, "blelr+"}, + {PPC_GENERIC, "bnglr+"}, + {PPC_GENERIC, "blelrl+"}, + {PPC_GENERIC, "bnglrl+"}, + {PPC_GENERIC, "bnelr+"}, + {PPC_GENERIC, "bnelrl+"}, + {PPC_GENERIC, "bnslr+"}, + {PPC_GENERIC, "bnulr+"}, + {PPC_GENERIC, "bnslrl+"}, + {PPC_GENERIC, "bnulrl+"}, + {PPC_GENERIC, "bltlr"}, + {PPC_GENERIC, "bltlr-"}, + {PPC_GENERIC, "bltr"}, + {PPC_GENERIC, "bltlrl"}, + {PPC_GENERIC, "bltlrl-"}, + {PPC_GENERIC, "bltrl"}, + {PPC_GENERIC, "bgtlr"}, + {PPC_GENERIC, "bgtlr-"}, + {PPC_GENERIC, "bgtr"}, + {PPC_GENERIC, "bgtlrl"}, + {PPC_GENERIC, "bgtlrl-"}, + {PPC_GENERIC, "bgtrl"}, + {PPC_GENERIC, "beqlr"}, + {PPC_GENERIC, "beqlr-"}, + {PPC_GENERIC, "beqr"}, + {PPC_GENERIC, "beqlrl"}, + {PPC_GENERIC, "beqlrl-"}, + {PPC_GENERIC, "beqrl"}, + {PPC_GENERIC, "bsolr"}, + {PPC_GENERIC, "bsolr-"}, + {PPC_GENERIC, "bsor"}, + {PPC_GENERIC, "bunlr"}, + {PPC_GENERIC, "bunlr-"}, + {PPC_GENERIC, "bsolrl"}, + {PPC_GENERIC, "bsolrl-"}, + {PPC_GENERIC, "bsorl"}, + {PPC_GENERIC, "bunlrl"}, + {PPC_GENERIC, "bunlrl-"}, + {PPC_GENERIC, "bltlr+"}, + {PPC_GENERIC, "bltlrl+"}, + {PPC_GENERIC, "bgtlr+"}, + {PPC_GENERIC, "bgtlrl+"}, + {PPC_GENERIC, "beqlr+"}, + {PPC_GENERIC, "beqlrl+"}, + {PPC_GENERIC, "bsolr+"}, + {PPC_GENERIC, "bunlr+"}, + {PPC_GENERIC, "bsolrl+"}, + {PPC_GENERIC, "bunlrl+"}, + {PPC_GENERIC, "bltlr-"}, + {PPC_GENERIC, "bltlrl-"}, + {PPC_GENERIC, "bgtlr-"}, + {PPC_GENERIC, "bgtlrl-"}, + {PPC_GENERIC, "beqlr-"}, + {PPC_GENERIC, "beqlrl-"}, + {PPC_GENERIC, "bsolr-"}, + {PPC_GENERIC, "bunlr-"}, + {PPC_GENERIC, "bsolrl-"}, + {PPC_GENERIC, "bunlrl-"}, + {PPC_GENERIC, "bltlr+"}, + {PPC_GENERIC, "bltlrl+"}, + {PPC_GENERIC, "bgtlr+"}, + {PPC_GENERIC, "bgtlrl+"}, + {PPC_GENERIC, "beqlr+"}, + {PPC_GENERIC, "beqlrl+"}, + {PPC_GENERIC, "bsolr+"}, + {PPC_GENERIC, "bunlr+"}, + {PPC_GENERIC, "bsolrl+"}, + {PPC_GENERIC, "bunlrl+"}, + {PPC_GENERIC, "bdnzflr"}, + {PPC_GENERIC, "bdnzflr-"}, + {PPC_GENERIC, "bdnzflrl"}, + {PPC_GENERIC, "bdnzflrl-"}, + {PPC_GENERIC, "bdnzflr+"}, + {PPC_GENERIC, "bdnzflrl+"}, + {PPC_GENERIC, "bdzflr"}, + {PPC_GENERIC, "bdzflr-"}, + {PPC_GENERIC, "bdzflrl"}, + {PPC_GENERIC, "bdzflrl-"}, + {PPC_GENERIC, "bdzflr+"}, + {PPC_GENERIC, "bdzflrl+"}, + {PPC_GENERIC, "bflr"}, + {PPC_GENERIC, "bflr-"}, + {PPC_GENERIC, "bbfr"}, + {PPC_GENERIC, "bflrl"}, + {PPC_GENERIC, "bflrl-"}, + {PPC_GENERIC, "bbfrl"}, + {PPC_GENERIC, "bflr+"}, + {PPC_GENERIC, "bflrl+"}, + {PPC_GENERIC, "bflr-"}, + {PPC_GENERIC, "bflrl-"}, + {PPC_GENERIC, "bflr+"}, + {PPC_GENERIC, "bflrl+"}, + {PPC_GENERIC, "bdnztlr"}, + {PPC_GENERIC, "bdnztlr-"}, + {PPC_GENERIC, "bdnztlrl"}, + {PPC_GENERIC, "bdnztlrl-"}, + {PPC_GENERIC, "bdnztlr+"}, + {PPC_GENERIC, "bdnztlrl+"}, + {PPC_GENERIC, "bdztlr"}, + {PPC_GENERIC, "bdztlr-"}, + {PPC_GENERIC, "bdztlrl"}, + {PPC_GENERIC, "bdztlrl-"}, + {PPC_GENERIC, "bdztlr+"}, + {PPC_GENERIC, "bdztlrl+"}, + {PPC_GENERIC, "btlr"}, + {PPC_GENERIC, "btlr-"}, + {PPC_GENERIC, "bbtr"}, + {PPC_GENERIC, "btlrl"}, + {PPC_GENERIC, "btlrl-"}, + {PPC_GENERIC, "bbtrl"}, + {PPC_GENERIC, "btlr+"}, + {PPC_GENERIC, "btlrl+"}, + {PPC_GENERIC, "btlr-"}, + {PPC_GENERIC, "btlrl-"}, + {PPC_GENERIC, "btlr+"}, + {PPC_GENERIC, "btlrl+"}, + {PPC_GENERIC, "bclr-"}, + {PPC_GENERIC, "bclrl-"}, + {PPC_GENERIC, "bclr+"}, + {PPC_GENERIC, "bclrl+"}, + {PPC_GENERIC, "bclr"}, + {PPC_GENERIC, "bcr"}, + {PPC_GENERIC, "bclrl"}, + {PPC_GENERIC, "bcrl"}, + {PPC_GENERIC, "rfid"}, + {PPC_GENERIC, "crnot"}, + {PPC_GENERIC, "crnor"}, + {PPC_GENERIC, "rfmci"}, + {PPC_GENERIC, "rfdi"}, + {PPC_GENERIC, "rfi"}, + {PPC_GENERIC, "rfci"}, + {PPC_GENERIC, "rfsvc"}, + {PPC_GENERIC, "rfgi"}, + {PPC_GENERIC, "crandc"}, + {PPC_GENERIC, "isync"}, + {PPC_GENERIC, "ics"}, + {PPC_GENERIC, "crclr"}, + {PPC_GENERIC, "crxor"}, + {PPC_GENERIC, "dnh"}, + {PPC_GENERIC, "crnand"}, + {PPC_GENERIC, "crand"}, + {PPC_GENERIC, "hrfid"}, + {PPC_GENERIC, "crset"}, + {PPC_GENERIC, "creqv"}, + {PPC_GENERIC, "doze"}, + {PPC_GENERIC, "crorc"}, + {PPC_GENERIC, "nap"}, + {PPC_GENERIC, "crmove"}, + {PPC_GENERIC, "cror"}, + {PPC_GENERIC, "sleep"}, + {PPC_GENERIC, "rvwinkle"}, + {PPC_GENERIC, "bctr"}, + {PPC_GENERIC, "bctrl"}, + {PPC_GENERIC, "bgectr"}, + {PPC_GENERIC, "bgectr-"}, + {PPC_GENERIC, "bnlctr"}, + {PPC_GENERIC, "bnlctr-"}, + {PPC_GENERIC, "bgectrl"}, + {PPC_GENERIC, "bgectrl-"}, + {PPC_GENERIC, "bnlctrl"}, + {PPC_GENERIC, "bnlctrl-"}, + {PPC_GENERIC, "blectr"}, + {PPC_GENERIC, "blectr-"}, + {PPC_GENERIC, "bngctr"}, + {PPC_GENERIC, "bngctr-"}, + {PPC_GENERIC, "blectrl"}, + {PPC_GENERIC, "blectrl-"}, + {PPC_GENERIC, "bngctrl"}, + {PPC_GENERIC, "bngctrl-"}, + {PPC_GENERIC, "bnectr"}, + {PPC_GENERIC, "bnectr-"}, + {PPC_GENERIC, "bnectrl"}, + {PPC_GENERIC, "bnectrl-"}, + {PPC_GENERIC, "bnsctr"}, + {PPC_GENERIC, "bnsctr-"}, + {PPC_GENERIC, "bnuctr"}, + {PPC_GENERIC, "bnuctr-"}, + {PPC_GENERIC, "bnsctrl"}, + {PPC_GENERIC, "bnsctrl-"}, + {PPC_GENERIC, "bnuctrl"}, + {PPC_GENERIC, "bnuctrl-"}, + {PPC_GENERIC, "bgectr+"}, + {PPC_GENERIC, "bnlctr+"}, + {PPC_GENERIC, "bgectrl+"}, + {PPC_GENERIC, "bnlctrl+"}, + {PPC_GENERIC, "blectr+"}, + {PPC_GENERIC, "bngctr+"}, + {PPC_GENERIC, "blectrl+"}, + {PPC_GENERIC, "bngctrl+"}, + {PPC_GENERIC, "bnectr+"}, + {PPC_GENERIC, "bnectrl+"}, + {PPC_GENERIC, "bnsctr+"}, + {PPC_GENERIC, "bnuctr+"}, + {PPC_GENERIC, "bnsctrl+"}, + {PPC_GENERIC, "bnuctrl+"}, + {PPC_GENERIC, "bgectr-"}, + {PPC_GENERIC, "bnlctr-"}, + {PPC_GENERIC, "bgectrl-"}, + {PPC_GENERIC, "bnlctrl-"}, + {PPC_GENERIC, "blectr-"}, + {PPC_GENERIC, "bngctr-"}, + {PPC_GENERIC, "blectrl-"}, + {PPC_GENERIC, "bngctrl-"}, + {PPC_GENERIC, "bnectr-"}, + {PPC_GENERIC, "bnectrl-"}, + {PPC_GENERIC, "bnsctr-"}, + {PPC_GENERIC, "bnuctr-"}, + {PPC_GENERIC, "bnsctrl-"}, + {PPC_GENERIC, "bnuctrl-"}, + {PPC_GENERIC, "bgectr+"}, + {PPC_GENERIC, "bnlctr+"}, + {PPC_GENERIC, "bgectrl+"}, + {PPC_GENERIC, "bnlctrl+"}, + {PPC_GENERIC, "blectr+"}, + {PPC_GENERIC, "bngctr+"}, + {PPC_GENERIC, "blectrl+"}, + {PPC_GENERIC, "bngctrl+"}, + {PPC_GENERIC, "bnectr+"}, + {PPC_GENERIC, "bnectrl+"}, + {PPC_GENERIC, "bnsctr+"}, + {PPC_GENERIC, "bnuctr+"}, + {PPC_GENERIC, "bnsctrl+"}, + {PPC_GENERIC, "bnuctrl+"}, + {PPC_GENERIC, "bltctr"}, + {PPC_GENERIC, "bltctr-"}, + {PPC_GENERIC, "bltctrl"}, + {PPC_GENERIC, "bltctrl-"}, + {PPC_GENERIC, "bgtctr"}, + {PPC_GENERIC, "bgtctr-"}, + {PPC_GENERIC, "bgtctrl"}, + {PPC_GENERIC, "bgtctrl-"}, + {PPC_GENERIC, "beqctr"}, + {PPC_GENERIC, "beqctr-"}, + {PPC_GENERIC, "beqctrl"}, + {PPC_GENERIC, "beqctrl-"}, + {PPC_GENERIC, "bsoctr"}, + {PPC_GENERIC, "bsoctr-"}, + {PPC_GENERIC, "bunctr"}, + {PPC_GENERIC, "bunctr-"}, + {PPC_GENERIC, "bsoctrl"}, + {PPC_GENERIC, "bsoctrl-"}, + {PPC_GENERIC, "bunctrl"}, + {PPC_GENERIC, "bunctrl-"}, + {PPC_GENERIC, "bltctr+"}, + {PPC_GENERIC, "bltctrl+"}, + {PPC_GENERIC, "bgtctr+"}, + {PPC_GENERIC, "bgtctrl+"}, + {PPC_GENERIC, "beqctr+"}, + {PPC_GENERIC, "beqctrl+"}, + {PPC_GENERIC, "bsoctr+"}, + {PPC_GENERIC, "bunctr+"}, + {PPC_GENERIC, "bsoctrl+"}, + {PPC_GENERIC, "bunctrl+"}, + {PPC_GENERIC, "bltctr-"}, + {PPC_GENERIC, "bltctrl-"}, + {PPC_GENERIC, "bgtctr-"}, + {PPC_GENERIC, "bgtctrl-"}, + {PPC_GENERIC, "beqctr-"}, + {PPC_GENERIC, "beqctrl-"}, + {PPC_GENERIC, "bsoctr-"}, + {PPC_GENERIC, "bunctr-"}, + {PPC_GENERIC, "bsoctrl-"}, + {PPC_GENERIC, "bunctrl-"}, + {PPC_GENERIC, "bltctr+"}, + {PPC_GENERIC, "bltctrl+"}, + {PPC_GENERIC, "bgtctr+"}, + {PPC_GENERIC, "bgtctrl+"}, + {PPC_GENERIC, "beqctr+"}, + {PPC_GENERIC, "beqctrl+"}, + {PPC_GENERIC, "bsoctr+"}, + {PPC_GENERIC, "bunctr+"}, + {PPC_GENERIC, "bsoctrl+"}, + {PPC_GENERIC, "bunctrl+"}, + {PPC_GENERIC, "bfctr"}, + {PPC_GENERIC, "bfctr-"}, + {PPC_GENERIC, "bfctrl"}, + {PPC_GENERIC, "bfctrl-"}, + {PPC_GENERIC, "bfctr+"}, + {PPC_GENERIC, "bfctrl+"}, + {PPC_GENERIC, "bfctr-"}, + {PPC_GENERIC, "bfctrl-"}, + {PPC_GENERIC, "bfctr+"}, + {PPC_GENERIC, "bfctrl+"}, + {PPC_GENERIC, "btctr"}, + {PPC_GENERIC, "btctr-"}, + {PPC_GENERIC, "btctrl"}, + {PPC_GENERIC, "btctrl-"}, + {PPC_GENERIC, "btctr+"}, + {PPC_GENERIC, "btctrl+"}, + {PPC_GENERIC, "btctr-"}, + {PPC_GENERIC, "btctrl-"}, + {PPC_GENERIC, "btctr+"}, + {PPC_GENERIC, "btctrl+"}, + {PPC_GENERIC, "bcctr-"}, + {PPC_GENERIC, "bcctrl-"}, + {PPC_GENERIC, "bcctr+"}, + {PPC_GENERIC, "bcctrl+"}, + {PPC_GENERIC, "bcctr"}, + {PPC_GENERIC, "bcc"}, + {PPC_GENERIC, "bcctrl"}, + {PPC_GENERIC, "bccl"}, + {PPC_GENERIC, "rlwimi"}, + {PPC_GENERIC, "rlimi"}, + {PPC_GENERIC, "rlwimi."}, + {PPC_GENERIC, "rlimi."}, + {PPC_GENERIC, "rotlwi"}, + {PPC_GENERIC, "clrlwi"}, + {PPC_GENERIC, "rlwinm"}, + {PPC_GENERIC, "rlinm"}, + {PPC_GENERIC, "rotlwi."}, + {PPC_GENERIC, "clrlwi."}, + {PPC_GENERIC, "rlwinm."}, + {PPC_GENERIC, "rlinm."}, + {PPC_GENERIC, "rlmi"}, + {PPC_GENERIC, "rlmi."}, + {PPC_GENERIC, "rotlw"}, + {PPC_GENERIC, "rlwnm"}, + {PPC_GENERIC, "rlnm"}, + {PPC_GENERIC, "rotlw."}, + {PPC_GENERIC, "rlwnm."}, + {PPC_GENERIC, "rlnm."}, + {PPC_GENERIC, "nop"}, + {PPC_GENERIC, "ori"}, + {PPC_GENERIC, "oril"}, + {PPC_GENERIC, "oris"}, + {PPC_GENERIC, "oriu"}, + {PPC_GENERIC, "xori"}, + {PPC_GENERIC, "xoril"}, + {PPC_GENERIC, "xoris"}, + {PPC_GENERIC, "xoriu"}, + {PPC_GENERIC, "andi."}, + {PPC_GENERIC, "andil."}, + {PPC_GENERIC, "andis."}, + {PPC_GENERIC, "andiu."}, + {PPC_GENERIC, "rotldi"}, + {PPC_GENERIC, "clrldi"}, + {PPC_GENERIC, "rldicl"}, + {PPC_GENERIC, "rotldi."}, + {PPC_GENERIC, "clrldi."}, + {PPC_GENERIC, "rldicl."}, + {PPC_GENERIC, "rldicr"}, + {PPC_GENERIC, "rldicr."}, + {PPC_GENERIC, "rldic"}, + {PPC_GENERIC, "rldic."}, + {PPC_GENERIC, "rldimi"}, + {PPC_GENERIC, "rldimi."}, + {PPC_GENERIC, "rotld"}, + {PPC_GENERIC, "rldcl"}, + {PPC_GENERIC, "rotld."}, + {PPC_GENERIC, "rldcl."}, + {PPC_GENERIC, "rldcr"}, + {PPC_GENERIC, "rldcr."}, + {PPC_GENERIC, "cmpw"}, + {PPC_GENERIC, "cmpd"}, + {PPC_GENERIC, "cmp"}, + {PPC_GENERIC, "cmp"}, + {PPC_GENERIC, "twlgt"}, + {PPC_GENERIC, "tlgt"}, + {PPC_GENERIC, "twllt"}, + {PPC_GENERIC, "tllt"}, + {PPC_GENERIC, "tweq"}, + {PPC_GENERIC, "teq"}, + {PPC_GENERIC, "twlge"}, + {PPC_GENERIC, "tlge"}, + {PPC_GENERIC, "twlnl"}, + {PPC_GENERIC, "tlnl"}, + {PPC_GENERIC, "twlle"}, + {PPC_GENERIC, "tlle"}, + {PPC_GENERIC, "twlng"}, + {PPC_GENERIC, "tlng"}, + {PPC_GENERIC, "twgt"}, + {PPC_GENERIC, "tgt"}, + {PPC_GENERIC, "twge"}, + {PPC_GENERIC, "tge"}, + {PPC_GENERIC, "twnl"}, + {PPC_GENERIC, "tnl"}, + {PPC_GENERIC, "twlt"}, + {PPC_GENERIC, "tlt"}, + {PPC_GENERIC, "twle"}, + {PPC_GENERIC, "tle"}, + {PPC_GENERIC, "twng"}, + {PPC_GENERIC, "tng"}, + {PPC_GENERIC, "twne"}, + {PPC_GENERIC, "tne"}, + {PPC_GENERIC, "trap"}, + {PPC_GENERIC, "tw"}, + {PPC_GENERIC, "t"}, + {PPC_GENERIC, "lvsl"}, + {PPC_GENERIC, "lvebx"}, + {PPC_GENERIC, "lbfcmx"}, + {PPC_GENERIC, "subfc"}, + {PPC_GENERIC, "sf"}, + {PPC_GENERIC, "subc"}, + {PPC_GENERIC, "subfc."}, + {PPC_GENERIC, "sf."}, + {PPC_GENERIC, "subc."}, + {PPC_GENERIC, "mulhdu"}, + {PPC_GENERIC, "mulhdu."}, + {PPC_GENERIC, "addc"}, + {PPC_GENERIC, "a"}, + {PPC_GENERIC, "addc."}, + {PPC_GENERIC, "a."}, + {PPC_GENERIC, "mulhwu"}, + {PPC_GENERIC, "mulhwu."}, + {PPC_GENERIC, "isellt"}, + {PPC_GENERIC, "tlbilxlpid"}, + {PPC_GENERIC, "tlbilxpid"}, + {PPC_GENERIC, "tlbilxva"}, + {PPC_GENERIC, "tlbilx"}, + {PPC_GENERIC, "mfcr"}, + {PPC_GENERIC, "mfcr"}, + {PPC_GENERIC, "mfocrf"}, + {PPC_GENERIC, "lwarx"}, + {PPC_GENERIC, "ldx"}, + {PPC_GENERIC, "icbt"}, + {PPC_GENERIC, "lwzx"}, + {PPC_GENERIC, "lx"}, + {PPC_GENERIC, "slw"}, + {PPC_GENERIC, "sl"}, + {PPC_GENERIC, "slw."}, + {PPC_GENERIC, "sl."}, + {PPC_GENERIC, "cntlzw"}, + {PPC_GENERIC, "cntlz"}, + {PPC_GENERIC, "cntlzw."}, + {PPC_GENERIC, "cntlz."}, + {PPC_GENERIC, "sld"}, + {PPC_GENERIC, "sld."}, + {PPC_GENERIC, "and"}, + {PPC_GENERIC, "and."}, + {PPC_GENERIC, "maskg"}, + {PPC_GENERIC, "maskg."}, + {PPC_GENERIC, "ldepx"}, + {PPC_GENERIC, "lwepx"}, + {PPC_GENERIC, "cmplw"}, + {PPC_GENERIC, "cmpld"}, + {PPC_GENERIC, "cmpl"}, + {PPC_GENERIC, "cmpl"}, + {PPC_GENERIC, "lvsr"}, + {PPC_GENERIC, "lvehx"}, + {PPC_GENERIC, "lhfcmx"}, + {PPC_GENERIC, "iselgt"}, + {PPC_GENERIC, "lvewx"}, + {PPC_GENERIC, "addg6s"}, + {PPC_GENERIC, "iseleq"}, + {PPC_GENERIC, "isel"}, + {PPC_GENERIC, "subf"}, + {PPC_GENERIC, "sub"}, + {PPC_GENERIC, "subf."}, + {PPC_GENERIC, "sub."}, + {PPC_GENERIC, "eratilx"}, + {PPC_GENERIC, "lbarx"}, + {PPC_GENERIC, "ldux"}, + {PPC_GENERIC, "dcbst"}, + {PPC_GENERIC, "lwzux"}, + {PPC_GENERIC, "lux"}, + {PPC_GENERIC, "cntlzd"}, + {PPC_GENERIC, "cntlzd."}, + {PPC_GENERIC, "andc"}, + {PPC_GENERIC, "andc."}, + {PPC_GENERIC, "waitrsv"}, + {PPC_GENERIC, "waitimpl"}, + {PPC_GENERIC, "wait"}, + {PPC_GENERIC, "dcbstep"}, + {PPC_GENERIC, "tdlgt"}, + {PPC_GENERIC, "tdllt"}, + {PPC_GENERIC, "tdeq"}, + {PPC_GENERIC, "tdlge"}, + {PPC_GENERIC, "tdlnl"}, + {PPC_GENERIC, "tdlle"}, + {PPC_GENERIC, "tdlng"}, + {PPC_GENERIC, "tdgt"}, + {PPC_GENERIC, "tdge"}, + {PPC_GENERIC, "tdnl"}, + {PPC_GENERIC, "tdlt"}, + {PPC_GENERIC, "tdle"}, + {PPC_GENERIC, "tdng"}, + {PPC_GENERIC, "tdne"}, + {PPC_GENERIC, "td"}, + {PPC_GENERIC, "lwfcmx"}, + {PPC_GENERIC, "mulhd"}, + {PPC_GENERIC, "mulhd."}, + {PPC_GENERIC, "mulhw"}, + {PPC_GENERIC, "mulhw."}, + {PPC_GENERIC, "dlmzb"}, + {PPC_GENERIC, "dlmzb."}, + {PPC_GENERIC, "mtsrd"}, + {PPC_GENERIC, "mfmsr"}, + {PPC_GENERIC, "ldarx"}, + {PPC_GENERIC, "dcbfl"}, + {PPC_GENERIC, "dcbf"}, + {PPC_GENERIC, "lbzx"}, + {PPC_GENERIC, "lbepx"}, + {PPC_GENERIC, "dni"}, + {PPC_GENERIC, "lvx"}, + {PPC_GENERIC, "lqfcmx"}, + {PPC_GENERIC, "neg"}, + {PPC_GENERIC, "neg."}, + {PPC_GENERIC, "mul"}, + {PPC_GENERIC, "mul."}, + {PPC_GENERIC, "mvidsplt"}, + {PPC_GENERIC, "mtsrdin"}, + {PPC_GENERIC, "lharx"}, + {PPC_GENERIC, "clf"}, + {PPC_GENERIC, "lbzux"}, + {PPC_GENERIC, "popcntb"}, + {PPC_GENERIC, "not"}, + {PPC_GENERIC, "nor"}, + {PPC_GENERIC, "not."}, + {PPC_GENERIC, "nor."}, + {PPC_GENERIC, "dcbfep"}, + {PPC_GENERIC, "wrtee"}, + {PPC_GENERIC, "dcbtstls"}, + {PPC_GENERIC, "stvebx"}, + {PPC_GENERIC, "stbfcmx"}, + {PPC_GENERIC, "subfe"}, + {PPC_GENERIC, "sfe"}, + {PPC_GENERIC, "subfe."}, + {PPC_GENERIC, "sfe."}, + {PPC_GENERIC, "adde"}, + {PPC_GENERIC, "ae"}, + {PPC_GENERIC, "adde."}, + {PPC_GENERIC, "ae."}, + {PPC_GENERIC, "mviwsplt"}, + {PPC_GENERIC, "dcbtstlse"}, + {PPC_GENERIC, "mtcr"}, + {PPC_GENERIC, "mtcrf"}, + {PPC_GENERIC, "mtocrf"}, + {PPC_GENERIC, "mtmsr"}, + {PPC_GENERIC, "eratsx"}, + {PPC_GENERIC, "eratsx."}, + {PPC_GENERIC, "stdx"}, + {PPC_GENERIC, "stwcx."}, + {PPC_GENERIC, "stwx"}, + {PPC_GENERIC, "stx"}, + {PPC_GENERIC, "slq"}, + {PPC_GENERIC, "slq."}, + {PPC_GENERIC, "sle"}, + {PPC_GENERIC, "sle."}, + {PPC_GENERIC, "prtyw"}, + {PPC_GENERIC, "stdepx"}, + {PPC_GENERIC, "stwepx"}, + {PPC_GENERIC, "wrteei"}, + {PPC_GENERIC, "dcbtls"}, + {PPC_GENERIC, "stvehx"}, + {PPC_GENERIC, "sthfcmx"}, + {PPC_GENERIC, "dcbtlse"}, + {PPC_GENERIC, "mtmsrd"}, + {PPC_GENERIC, "eratre"}, + {PPC_GENERIC, "stdux"}, + {PPC_GENERIC, "wchkall"}, + {PPC_GENERIC, "stwux"}, + {PPC_GENERIC, "stux"}, + {PPC_GENERIC, "sliq"}, + {PPC_GENERIC, "sliq."}, + {PPC_GENERIC, "prtyd"}, + {PPC_GENERIC, "icblq."}, + {PPC_GENERIC, "stvewx"}, + {PPC_GENERIC, "stwfcmx"}, + {PPC_GENERIC, "subfze"}, + {PPC_GENERIC, "sfze"}, + {PPC_GENERIC, "subfze."}, + {PPC_GENERIC, "sfze."}, + {PPC_GENERIC, "addze"}, + {PPC_GENERIC, "aze"}, + {PPC_GENERIC, "addze."}, + {PPC_GENERIC, "aze."}, + {PPC_GENERIC, "msgsnd"}, + {PPC_GENERIC, "mtsr"}, + {PPC_GENERIC, "eratwe"}, + {PPC_GENERIC, "ldawx."}, + {PPC_GENERIC, "stdcx."}, + {PPC_GENERIC, "stbx"}, + {PPC_GENERIC, "sllq"}, + {PPC_GENERIC, "sllq."}, + {PPC_GENERIC, "sleq"}, + {PPC_GENERIC, "sleq."}, + {PPC_GENERIC, "stbepx"}, + {PPC_GENERIC, "icblc"}, + {PPC_GENERIC, "stvx"}, + {PPC_GENERIC, "stqfcmx"}, + {PPC_GENERIC, "subfme"}, + {PPC_GENERIC, "sfme"}, + {PPC_GENERIC, "subfme."}, + {PPC_GENERIC, "sfme."}, + {PPC_GENERIC, "mulld"}, + {PPC_GENERIC, "mulld."}, + {PPC_GENERIC, "addme"}, + {PPC_GENERIC, "ame"}, + {PPC_GENERIC, "addme."}, + {PPC_GENERIC, "ame."}, + {PPC_GENERIC, "mullw"}, + {PPC_GENERIC, "muls"}, + {PPC_GENERIC, "mullw."}, + {PPC_GENERIC, "muls."}, + {PPC_GENERIC, "icblce"}, + {PPC_GENERIC, "msgclr"}, + {PPC_GENERIC, "mtsrin"}, + {PPC_GENERIC, "mtsri"}, + {PPC_GENERIC, "dcbtstt"}, + {PPC_GENERIC, "dcbtst"}, + {PPC_GENERIC, "dcbtst"}, + {PPC_GENERIC, "stbux"}, + {PPC_GENERIC, "slliq"}, + {PPC_GENERIC, "slliq."}, + {PPC_GENERIC, "bpermd"}, + {PPC_GENERIC, "dcbtstep"}, + {PPC_GENERIC, "mfdcrx"}, + {PPC_GENERIC, "mfdcrx."}, + {PPC_GENERIC, "lvexbx"}, + {PPC_GENERIC, "icbt"}, + {PPC_GENERIC, "lvepxl"}, + {PPC_GENERIC, "ldfcmx"}, + {PPC_GENERIC, "doz"}, + {PPC_GENERIC, "doz."}, + {PPC_GENERIC, "add"}, + {PPC_GENERIC, "cax"}, + {PPC_GENERIC, "add."}, + {PPC_GENERIC, "cax."}, + {PPC_GENERIC, "ehpriv"}, + {PPC_GENERIC, "tlbiel"}, + {PPC_GENERIC, "mfapidi"}, + {PPC_GENERIC, "lscbx"}, + {PPC_GENERIC, "lscbx."}, + {PPC_GENERIC, "dcbtt"}, + {PPC_GENERIC, "dcbt"}, + {PPC_GENERIC, "dcbt"}, + {PPC_GENERIC, "lhzx"}, + {PPC_GENERIC, "cdtbcd"}, + {PPC_GENERIC, "eqv"}, + {PPC_GENERIC, "eqv."}, + {PPC_GENERIC, "lhepx"}, + {PPC_GENERIC, "mfdcrux"}, + {PPC_GENERIC, "lvexhx"}, + {PPC_GENERIC, "lvepx"}, + {PPC_GENERIC, "tlbie"}, + {PPC_GENERIC, "tlbi"}, + {PPC_GENERIC, "eciwx"}, + {PPC_GENERIC, "lhzux"}, + {PPC_GENERIC, "cbcdtd"}, + {PPC_GENERIC, "xor"}, + {PPC_GENERIC, "xor."}, + {PPC_GENERIC, "dcbtep"}, + {PPC_GENERIC, "mfexisr"}, + {PPC_GENERIC, "mfexier"}, + {PPC_GENERIC, "mfbr0"}, + {PPC_GENERIC, "mfbr1"}, + {PPC_GENERIC, "mfbr2"}, + {PPC_GENERIC, "mfbr3"}, + {PPC_GENERIC, "mfbr4"}, + {PPC_GENERIC, "mfbr5"}, + {PPC_GENERIC, "mfbr6"}, + {PPC_GENERIC, "mfbr7"}, + {PPC_GENERIC, "mfbear"}, + {PPC_GENERIC, "mfbesr"}, + {PPC_GENERIC, "mfiocr"}, + {PPC_GENERIC, "mfdmacr0"}, + {PPC_GENERIC, "mfdmact0"}, + {PPC_GENERIC, "mfdmada0"}, + {PPC_GENERIC, "mfdmasa0"}, + {PPC_GENERIC, "mfdmacc0"}, + {PPC_GENERIC, "mfdmacr1"}, + {PPC_GENERIC, "mfdmact1"}, + {PPC_GENERIC, "mfdmada1"}, + {PPC_GENERIC, "mfdmasa1"}, + {PPC_GENERIC, "mfdmacc1"}, + {PPC_GENERIC, "mfdmacr2"}, + {PPC_GENERIC, "mfdmact2"}, + {PPC_GENERIC, "mfdmada2"}, + {PPC_GENERIC, "mfdmasa2"}, + {PPC_GENERIC, "mfdmacc2"}, + {PPC_GENERIC, "mfdmacr3"}, + {PPC_GENERIC, "mfdmact3"}, + {PPC_GENERIC, "mfdmada3"}, + {PPC_GENERIC, "mfdmasa3"}, + {PPC_GENERIC, "mfdmacc3"}, + {PPC_GENERIC, "mfdmasr"}, + {PPC_GENERIC, "mfdcr"}, + {PPC_GENERIC, "mfdcr."}, + {PPC_GENERIC, "lvexwx"}, + {PPC_GENERIC, "dcread"}, + {PPC_GENERIC, "div"}, + {PPC_GENERIC, "div."}, + {PPC_GENERIC, "lxvdsx"}, + {PPC_GENERIC, "mfpmr"}, + {PPC_GENERIC, "mftmr"}, + {PPC_GENERIC, "mfmq"}, + {PPC_GENERIC, "mfxer"}, + {PPC_GENERIC, "mfrtcu"}, + {PPC_GENERIC, "mfrtcl"}, + {PPC_GENERIC, "mfdec"}, + {PPC_GENERIC, "mflr"}, + {PPC_GENERIC, "mfctr"}, + {PPC_GENERIC, "mftid"}, + {PPC_GENERIC, "mfdsisr"}, + {PPC_GENERIC, "mfdar"}, + {PPC_GENERIC, "mfdec"}, + {PPC_GENERIC, "mfsdr0"}, + {PPC_GENERIC, "mfsdr1"}, + {PPC_GENERIC, "mfsrr0"}, + {PPC_GENERIC, "mfsrr1"}, + {PPC_GENERIC, "mfcfar"}, + {PPC_GENERIC, "mfpid"}, + {PPC_GENERIC, "mfcsrr0"}, + {PPC_GENERIC, "mfcsrr1"}, + {PPC_GENERIC, "mfdear"}, + {PPC_GENERIC, "mfesr"}, + {PPC_GENERIC, "mfivpr"}, + {PPC_GENERIC, "mfcmpa"}, + {PPC_GENERIC, "mfcmpb"}, + {PPC_GENERIC, "mfcmpc"}, + {PPC_GENERIC, "mfcmpd"}, + {PPC_GENERIC, "mficr"}, + {PPC_GENERIC, "mfder"}, + {PPC_GENERIC, "mfcounta"}, + {PPC_GENERIC, "mfcountb"}, + {PPC_GENERIC, "mfcmpe"}, + {PPC_GENERIC, "mfcmpf"}, + {PPC_GENERIC, "mfcmpg"}, + {PPC_GENERIC, "mfcmph"}, + {PPC_GENERIC, "mflctrl1"}, + {PPC_GENERIC, "mflctrl2"}, + {PPC_GENERIC, "mfictrl"}, + {PPC_GENERIC, "mfbar"}, + {PPC_GENERIC, "mfvrsave"}, + {PPC_GENERIC, "mfusprg0"}, + {PPC_GENERIC, "mfsprg"}, + {PPC_GENERIC, "mfsprg4"}, + {PPC_GENERIC, "mfsprg5"}, + {PPC_GENERIC, "mfsprg6"}, + {PPC_GENERIC, "mfsprg7"}, + {PPC_GENERIC, "mftb"}, + {PPC_GENERIC, "mftbl"}, + {PPC_GENERIC, "mftbu"}, + {PPC_GENERIC, "mfsprg0"}, + {PPC_GENERIC, "mfsprg1"}, + {PPC_GENERIC, "mfsprg2"}, + {PPC_GENERIC, "mfsprg3"}, + {PPC_GENERIC, "mfasr"}, + {PPC_GENERIC, "mfear"}, + {PPC_GENERIC, "mfpir"}, + {PPC_GENERIC, "mfpvr"}, + {PPC_GENERIC, "mfdbsr"}, + {PPC_GENERIC, "mfdbcr0"}, + {PPC_GENERIC, "mfdbcr1"}, + {PPC_GENERIC, "mfdbcr2"}, + {PPC_GENERIC, "mfiac1"}, + {PPC_GENERIC, "mfiac2"}, + {PPC_GENERIC, "mfiac3"}, + {PPC_GENERIC, "mfiac4"}, + {PPC_GENERIC, "mfdac1"}, + {PPC_GENERIC, "mfdac2"}, + {PPC_GENERIC, "mfdvc1"}, + {PPC_GENERIC, "mfdvc2"}, + {PPC_GENERIC, "mftsr"}, + {PPC_GENERIC, "mftcr"}, + {PPC_GENERIC, "mfivor0"}, + {PPC_GENERIC, "mfivor1"}, + {PPC_GENERIC, "mfivor2"}, + {PPC_GENERIC, "mfivor3"}, + {PPC_GENERIC, "mfivor4"}, + {PPC_GENERIC, "mfivor5"}, + {PPC_GENERIC, "mfivor6"}, + {PPC_GENERIC, "mfivor7"}, + {PPC_GENERIC, "mfivor8"}, + {PPC_GENERIC, "mfivor9"}, + {PPC_GENERIC, "mfivor10"}, + {PPC_GENERIC, "mfivor11"}, + {PPC_GENERIC, "mfivor12"}, + {PPC_GENERIC, "mfivor13"}, + {PPC_GENERIC, "mfivor14"}, + {PPC_GENERIC, "mfivor15"}, + {PPC_GENERIC, "mfspefscr"}, + {PPC_GENERIC, "mfbbear"}, + {PPC_GENERIC, "mfbbtar"}, + {PPC_GENERIC, "mfivor32"}, + {PPC_GENERIC, "mfibatu"}, + {PPC_GENERIC, "mfivor33"}, + {PPC_GENERIC, "mfibatl"}, + {PPC_GENERIC, "mfivor34"}, + {PPC_GENERIC, "mfivor35"}, + {PPC_GENERIC, "mfdbatu"}, + {PPC_GENERIC, "mfdbatl"}, + {PPC_GENERIC, "mfic_cst"}, + {PPC_GENERIC, "mfic_adr"}, + {PPC_GENERIC, "mfic_dat"}, + {PPC_GENERIC, "mfdc_cst"}, + {PPC_GENERIC, "mfdc_adr"}, + {PPC_GENERIC, "mfdc_dat"}, + {PPC_GENERIC, "mfmcsrr0"}, + {PPC_GENERIC, "mfmcsrr1"}, + {PPC_GENERIC, "mfmcsr"}, + {PPC_GENERIC, "mfmcar"}, + {PPC_GENERIC, "mfdpdr"}, + {PPC_GENERIC, "mfdpir"}, + {PPC_GENERIC, "mfimmr"}, + {PPC_GENERIC, "mfmi_ctr"}, + {PPC_GENERIC, "mfmi_ap"}, + {PPC_GENERIC, "mfmi_epn"}, + {PPC_GENERIC, "mfmi_twc"}, + {PPC_GENERIC, "mfmi_rpn"}, + {PPC_GENERIC, "mfmd_ctr"}, + {PPC_GENERIC, "mfm_casid"}, + {PPC_GENERIC, "mfmd_ap"}, + {PPC_GENERIC, "mfmd_epn"}, + {PPC_GENERIC, "mfmd_twb"}, + {PPC_GENERIC, "mfmd_twc"}, + {PPC_GENERIC, "mfmd_rpn"}, + {PPC_GENERIC, "mfm_tw"}, + {PPC_GENERIC, "mfmi_dbcam"}, + {PPC_GENERIC, "mfmi_dbram0"}, + {PPC_GENERIC, "mfmi_dbram1"}, + {PPC_GENERIC, "mfmd_dbcam"}, + {PPC_GENERIC, "mfmd_dbram0"}, + {PPC_GENERIC, "mfmd_dbram1"}, + {PPC_GENERIC, "mfivndx"}, + {PPC_GENERIC, "mfdvndx"}, + {PPC_GENERIC, "mfivlim"}, + {PPC_GENERIC, "mfdvlim"}, + {PPC_GENERIC, "mfclcsr"}, + {PPC_GENERIC, "mfccr1"}, + {PPC_GENERIC, "mfrstcfg"}, + {PPC_GENERIC, "mfdcdbtrl"}, + {PPC_GENERIC, "mfdcdbtrh"}, + {PPC_GENERIC, "mficdbtr"}, + {PPC_GENERIC, "mfummcr0"}, + {PPC_GENERIC, "mfupmc1"}, + {PPC_GENERIC, "mfupmc2"}, + {PPC_GENERIC, "mfusia"}, + {PPC_GENERIC, "mfummcr1"}, + {PPC_GENERIC, "mfupmc3"}, + {PPC_GENERIC, "mfupmc4"}, + {PPC_GENERIC, "mfzpr"}, + {PPC_GENERIC, "mfpid"}, + {PPC_GENERIC, "mfmmucr"}, + {PPC_GENERIC, "mfccr0"}, + {PPC_GENERIC, "mfiac3"}, + {PPC_GENERIC, "mfiac4"}, + {PPC_GENERIC, "mfdvc1"}, + {PPC_GENERIC, "mfdvc2"}, + {PPC_GENERIC, "mfmmcr0"}, + {PPC_GENERIC, "mfpmc1"}, + {PPC_GENERIC, "mfsgr"}, + {PPC_GENERIC, "mfdcwr"}, + {PPC_GENERIC, "mfpmc2"}, + {PPC_GENERIC, "mfsia"}, + {PPC_GENERIC, "mfsler"}, + {PPC_GENERIC, "mfmmcr1"}, + {PPC_GENERIC, "mfsu0r"}, + {PPC_GENERIC, "mfdbcr1"}, + {PPC_GENERIC, "mfpmc3"}, + {PPC_GENERIC, "mfpmc4"}, + {PPC_GENERIC, "mficdbdr"}, + {PPC_GENERIC, "mfesr"}, + {PPC_GENERIC, "mfdear"}, + {PPC_GENERIC, "mfevpr"}, + {PPC_GENERIC, "mfcdbcr"}, + {PPC_GENERIC, "mftsr"}, + {PPC_GENERIC, "mftcr"}, + {PPC_GENERIC, "mfpit"}, + {PPC_GENERIC, "mftbhi"}, + {PPC_GENERIC, "mftblo"}, + {PPC_GENERIC, "mfsrr2"}, + {PPC_GENERIC, "mfsrr3"}, + {PPC_GENERIC, "mfdbsr"}, + {PPC_GENERIC, "mfdbcr0"}, + {PPC_GENERIC, "mfdbdr"}, + {PPC_GENERIC, "mfiac1"}, + {PPC_GENERIC, "mfiac2"}, + {PPC_GENERIC, "mfdac1"}, + {PPC_GENERIC, "mfdac2"}, + {PPC_GENERIC, "mfl2cr"}, + {PPC_GENERIC, "mfdccr"}, + {PPC_GENERIC, "mficcr"}, + {PPC_GENERIC, "mfictc"}, + {PPC_GENERIC, "mfpbl1"}, + {PPC_GENERIC, "mfthrm1"}, + {PPC_GENERIC, "mfpbu1"}, + {PPC_GENERIC, "mfthrm2"}, + {PPC_GENERIC, "mfpbl2"}, + {PPC_GENERIC, "mfthrm3"}, + {PPC_GENERIC, "mfpbu2"}, + {PPC_GENERIC, "mfspr"}, + {PPC_GENERIC, "lwax"}, + {PPC_GENERIC, "dst"}, + {PPC_GENERIC, "lhax"}, + {PPC_GENERIC, "lvxl"}, + {PPC_GENERIC, "abs"}, + {PPC_GENERIC, "abs."}, + {PPC_GENERIC, "divs"}, + {PPC_GENERIC, "divs."}, + {PPC_GENERIC, "tlbia"}, + {PPC_GENERIC, "mftbl"}, + {PPC_GENERIC, "mftbu"}, + {PPC_GENERIC, "mftb"}, + {PPC_GENERIC, "lwaux"}, + {PPC_GENERIC, "dstst"}, + {PPC_GENERIC, "lhaux"}, + {PPC_GENERIC, "popcntw"}, + {PPC_GENERIC, "mtdcrx"}, + {PPC_GENERIC, "mtdcrx."}, + {PPC_GENERIC, "stvexbx"}, + {PPC_GENERIC, "dcblc"}, + {PPC_GENERIC, "stdfcmx"}, + {PPC_GENERIC, "divdeu"}, + {PPC_GENERIC, "divdeu."}, + {PPC_GENERIC, "divweu"}, + {PPC_GENERIC, "divweu."}, + {PPC_GENERIC, "dcblce"}, + {PPC_GENERIC, "slbmte"}, + {PPC_GENERIC, "icswx"}, + {PPC_GENERIC, "icswx."}, + {PPC_GENERIC, "sthx"}, + {PPC_GENERIC, "orc"}, + {PPC_GENERIC, "orc."}, + {PPC_GENERIC, "sthepx"}, + {PPC_GENERIC, "mtdcrux"}, + {PPC_GENERIC, "stvexhx"}, + {PPC_GENERIC, "dcblq."}, + {PPC_GENERIC, "divde"}, + {PPC_GENERIC, "divde."}, + {PPC_GENERIC, "divwe"}, + {PPC_GENERIC, "divwe."}, + {PPC_GENERIC, "slbie"}, + {PPC_GENERIC, "ecowx"}, + {PPC_GENERIC, "sthux"}, + {PPC_GENERIC, "mdors"}, + {PPC_GENERIC, "miso"}, + {PPC_GENERIC, "mr"}, + {PPC_GENERIC, "or"}, + {PPC_GENERIC, "mr."}, + {PPC_GENERIC, "or."}, + {PPC_GENERIC, "mtexisr"}, + {PPC_GENERIC, "mtexier"}, + {PPC_GENERIC, "mtbr0"}, + {PPC_GENERIC, "mtbr1"}, + {PPC_GENERIC, "mtbr2"}, + {PPC_GENERIC, "mtbr3"}, + {PPC_GENERIC, "mtbr4"}, + {PPC_GENERIC, "mtbr5"}, + {PPC_GENERIC, "mtbr6"}, + {PPC_GENERIC, "mtbr7"}, + {PPC_GENERIC, "mtbear"}, + {PPC_GENERIC, "mtbesr"}, + {PPC_GENERIC, "mtiocr"}, + {PPC_GENERIC, "mtdmacr0"}, + {PPC_GENERIC, "mtdmact0"}, + {PPC_GENERIC, "mtdmada0"}, + {PPC_GENERIC, "mtdmasa0"}, + {PPC_GENERIC, "mtdmacc0"}, + {PPC_GENERIC, "mtdmacr1"}, + {PPC_GENERIC, "mtdmact1"}, + {PPC_GENERIC, "mtdmada1"}, + {PPC_GENERIC, "mtdmasa1"}, + {PPC_GENERIC, "mtdmacc1"}, + {PPC_GENERIC, "mtdmacr2"}, + {PPC_GENERIC, "mtdmact2"}, + {PPC_GENERIC, "mtdmada2"}, + {PPC_GENERIC, "mtdmasa2"}, + {PPC_GENERIC, "mtdmacc2"}, + {PPC_GENERIC, "mtdmacr3"}, + {PPC_GENERIC, "mtdmact3"}, + {PPC_GENERIC, "mtdmada3"}, + {PPC_GENERIC, "mtdmasa3"}, + {PPC_GENERIC, "mtdmacc3"}, + {PPC_GENERIC, "mtdmasr"}, + {PPC_GENERIC, "mtdcr"}, + {PPC_GENERIC, "mtdcr."}, + {PPC_GENERIC, "stvexwx"}, + {PPC_GENERIC, "dccci"}, + {PPC_GENERIC, "dci"}, + {PPC_GENERIC, "divdu"}, + {PPC_GENERIC, "divdu."}, + {PPC_GENERIC, "divwu"}, + {PPC_GENERIC, "divwu."}, + {PPC_GENERIC, "mtpmr"}, + {PPC_GENERIC, "mttmr"}, + {PPC_GENERIC, "mtmq"}, + {PPC_GENERIC, "mtxer"}, + {PPC_GENERIC, "mtlr"}, + {PPC_GENERIC, "mtctr"}, + {PPC_GENERIC, "mttid"}, + {PPC_GENERIC, "mtdsisr"}, + {PPC_GENERIC, "mtdar"}, + {PPC_GENERIC, "mtrtcu"}, + {PPC_GENERIC, "mtrtcl"}, + {PPC_GENERIC, "mtdec"}, + {PPC_GENERIC, "mtsdr0"}, + {PPC_GENERIC, "mtsdr1"}, + {PPC_GENERIC, "mtsrr0"}, + {PPC_GENERIC, "mtsrr1"}, + {PPC_GENERIC, "mtcfar"}, + {PPC_GENERIC, "mtpid"}, + {PPC_GENERIC, "mtdecar"}, + {PPC_GENERIC, "mtcsrr0"}, + {PPC_GENERIC, "mtcsrr1"}, + {PPC_GENERIC, "mtdear"}, + {PPC_GENERIC, "mtesr"}, + {PPC_GENERIC, "mtivpr"}, + {PPC_GENERIC, "mtcmpa"}, + {PPC_GENERIC, "mtcmpb"}, + {PPC_GENERIC, "mtcmpc"}, + {PPC_GENERIC, "mtcmpd"}, + {PPC_GENERIC, "mticr"}, + {PPC_GENERIC, "mtder"}, + {PPC_GENERIC, "mtcounta"}, + {PPC_GENERIC, "mtcountb"}, + {PPC_GENERIC, "mtcmpe"}, + {PPC_GENERIC, "mtcmpf"}, + {PPC_GENERIC, "mtcmpg"}, + {PPC_GENERIC, "mtcmph"}, + {PPC_GENERIC, "mtlctrl1"}, + {PPC_GENERIC, "mtlctrl2"}, + {PPC_GENERIC, "mtictrl"}, + {PPC_GENERIC, "mtbar"}, + {PPC_GENERIC, "mtvrsave"}, + {PPC_GENERIC, "mtusprg0"}, + {PPC_GENERIC, "mtsprg"}, + {PPC_GENERIC, "mtsprg0"}, + {PPC_GENERIC, "mtsprg1"}, + {PPC_GENERIC, "mtsprg2"}, + {PPC_GENERIC, "mtsprg3"}, + {PPC_GENERIC, "mtsprg4"}, + {PPC_GENERIC, "mtsprg5"}, + {PPC_GENERIC, "mtsprg6"}, + {PPC_GENERIC, "mtsprg7"}, + {PPC_GENERIC, "mtasr"}, + {PPC_GENERIC, "mtear"}, + {PPC_GENERIC, "mttbl"}, + {PPC_GENERIC, "mttbu"}, + {PPC_GENERIC, "mtdbsr"}, + {PPC_GENERIC, "mtdbcr0"}, + {PPC_GENERIC, "mtdbcr1"}, + {PPC_GENERIC, "mtdbcr2"}, + {PPC_GENERIC, "mtiac1"}, + {PPC_GENERIC, "mtiac2"}, + {PPC_GENERIC, "mtiac3"}, + {PPC_GENERIC, "mtiac4"}, + {PPC_GENERIC, "mtdac1"}, + {PPC_GENERIC, "mtdac2"}, + {PPC_GENERIC, "mtdvc1"}, + {PPC_GENERIC, "mtdvc2"}, + {PPC_GENERIC, "mttsr"}, + {PPC_GENERIC, "mttcr"}, + {PPC_GENERIC, "mtivor0"}, + {PPC_GENERIC, "mtivor1"}, + {PPC_GENERIC, "mtivor2"}, + {PPC_GENERIC, "mtivor3"}, + {PPC_GENERIC, "mtivor4"}, + {PPC_GENERIC, "mtivor5"}, + {PPC_GENERIC, "mtivor6"}, + {PPC_GENERIC, "mtivor7"}, + {PPC_GENERIC, "mtivor8"}, + {PPC_GENERIC, "mtivor9"}, + {PPC_GENERIC, "mtivor10"}, + {PPC_GENERIC, "mtivor11"}, + {PPC_GENERIC, "mtivor12"}, + {PPC_GENERIC, "mtivor13"}, + {PPC_GENERIC, "mtivor14"}, + {PPC_GENERIC, "mtivor15"}, + {PPC_GENERIC, "mtspefscr"}, + {PPC_GENERIC, "mtbbear"}, + {PPC_GENERIC, "mtbbtar"}, + {PPC_GENERIC, "mtivor32"}, + {PPC_GENERIC, "mtibatu"}, + {PPC_GENERIC, "mtivor33"}, + {PPC_GENERIC, "mtibatl"}, + {PPC_GENERIC, "mtivor34"}, + {PPC_GENERIC, "mtivor35"}, + {PPC_GENERIC, "mtdbatu"}, + {PPC_GENERIC, "mtdbatl"}, + {PPC_GENERIC, "mtmcsrr0"}, + {PPC_GENERIC, "mtmcsrr1"}, + {PPC_GENERIC, "mtmcsr"}, + {PPC_GENERIC, "mtivndx"}, + {PPC_GENERIC, "mtdvndx"}, + {PPC_GENERIC, "mtivlim"}, + {PPC_GENERIC, "mtdvlim"}, + {PPC_GENERIC, "mtclcsr"}, + {PPC_GENERIC, "mtccr1"}, + {PPC_GENERIC, "mtummcr0"}, + {PPC_GENERIC, "mtupmc1"}, + {PPC_GENERIC, "mtupmc2"}, + {PPC_GENERIC, "mtusia"}, + {PPC_GENERIC, "mtummcr1"}, + {PPC_GENERIC, "mtupmc3"}, + {PPC_GENERIC, "mtupmc4"}, + {PPC_GENERIC, "mtzpr"}, + {PPC_GENERIC, "mtpid"}, + {PPC_GENERIC, "mtrmmucr"}, + {PPC_GENERIC, "mtccr0"}, + {PPC_GENERIC, "mtiac3"}, + {PPC_GENERIC, "mtiac4"}, + {PPC_GENERIC, "mtdvc1"}, + {PPC_GENERIC, "mtdvc2"}, + {PPC_GENERIC, "mtmmcr0"}, + {PPC_GENERIC, "mtpmc1"}, + {PPC_GENERIC, "mtsgr"}, + {PPC_GENERIC, "mtdcwr"}, + {PPC_GENERIC, "mtpmc2"}, + {PPC_GENERIC, "mtsia"}, + {PPC_GENERIC, "mtsler"}, + {PPC_GENERIC, "mtmmcr1"}, + {PPC_GENERIC, "mtsu0r"}, + {PPC_GENERIC, "mtdbcr1"}, + {PPC_GENERIC, "mtpmc3"}, + {PPC_GENERIC, "mtpmc4"}, + {PPC_GENERIC, "mticdbdr"}, + {PPC_GENERIC, "mtesr"}, + {PPC_GENERIC, "mtdear"}, + {PPC_GENERIC, "mtevpr"}, + {PPC_GENERIC, "mtcdbcr"}, + {PPC_GENERIC, "mttsr"}, + {PPC_GENERIC, "mttcr"}, + {PPC_GENERIC, "mtpit"}, + {PPC_GENERIC, "mttbhi"}, + {PPC_GENERIC, "mttblo"}, + {PPC_GENERIC, "mtsrr2"}, + {PPC_GENERIC, "mtsrr3"}, + {PPC_GENERIC, "mtdbsr"}, + {PPC_GENERIC, "mtdbdr"}, + {PPC_GENERIC, "mtdbcr0"}, + {PPC_GENERIC, "mtiac1"}, + {PPC_GENERIC, "mtiac2"}, + {PPC_GENERIC, "mtdac1"}, + {PPC_GENERIC, "mtdac2"}, + {PPC_GENERIC, "mtl2cr"}, + {PPC_GENERIC, "mtdccr"}, + {PPC_GENERIC, "mticcr"}, + {PPC_GENERIC, "mtictc"}, + {PPC_GENERIC, "mtpbl1"}, + {PPC_GENERIC, "mtthrm1"}, + {PPC_GENERIC, "mtpbu1"}, + {PPC_GENERIC, "mtthrm2"}, + {PPC_GENERIC, "mtpbl2"}, + {PPC_GENERIC, "mtthrm3"}, + {PPC_GENERIC, "mtpbu2"}, + {PPC_GENERIC, "mtspr"}, + {PPC_GENERIC, "dcbi"}, + {PPC_GENERIC, "nand"}, + {PPC_GENERIC, "nand."}, + {PPC_GENERIC, "dsn"}, + {PPC_GENERIC, "dcread"}, + {PPC_GENERIC, "icbtls"}, + {PPC_GENERIC, "stvxl"}, + {PPC_GENERIC, "nabs"}, + {PPC_GENERIC, "nabs."}, + {PPC_GENERIC, "divd"}, + {PPC_GENERIC, "divd."}, + {PPC_GENERIC, "divw"}, + {PPC_GENERIC, "divw."}, + {PPC_GENERIC, "icbtlse"}, + {PPC_GENERIC, "slbia"}, + {PPC_GENERIC, "cli"}, + {PPC_GENERIC, "popcntd"}, + {PPC_GENERIC, "cmpb"}, + {PPC_GENERIC, "mcrxr"}, + {PPC_GENERIC, "lbdx"}, + {PPC_GENERIC, "bblels"}, + {PPC_GENERIC, "lvlx"}, + {PPC_GENERIC, "lbfcmux"}, + {PPC_GENERIC, "subfco"}, + {PPC_GENERIC, "sfo"}, + {PPC_GENERIC, "subco"}, + {PPC_GENERIC, "subfco."}, + {PPC_GENERIC, "sfo."}, + {PPC_GENERIC, "subco."}, + {PPC_GENERIC, "addco"}, + {PPC_GENERIC, "ao"}, + {PPC_GENERIC, "addco."}, + {PPC_GENERIC, "ao."}, + {PPC_GENERIC, "clcs"}, + {PPC_GENERIC, "ldbrx"}, + {PPC_GENERIC, "lswx"}, + {PPC_GENERIC, "lsx"}, + {PPC_GENERIC, "lwbrx"}, + {PPC_GENERIC, "lbrx"}, + {PPC_GENERIC, "lfsx"}, + {PPC_GENERIC, "srw"}, + {PPC_GENERIC, "sr"}, + {PPC_GENERIC, "srw."}, + {PPC_GENERIC, "sr."}, + {PPC_GENERIC, "rrib"}, + {PPC_GENERIC, "rrib."}, + {PPC_GENERIC, "srd"}, + {PPC_GENERIC, "srd."}, + {PPC_GENERIC, "maskir"}, + {PPC_GENERIC, "maskir."}, + {PPC_GENERIC, "lhdx"}, + {PPC_GENERIC, "lvtrx"}, + {PPC_GENERIC, "bbelr"}, + {PPC_GENERIC, "lvrx"}, + {PPC_GENERIC, "lhfcmux"}, + {PPC_GENERIC, "subfo"}, + {PPC_GENERIC, "subo"}, + {PPC_GENERIC, "subfo."}, + {PPC_GENERIC, "subo."}, + {PPC_GENERIC, "tlbsync"}, + {PPC_GENERIC, "lfsux"}, + {PPC_GENERIC, "lwdx"}, + {PPC_GENERIC, "lvtlx"}, + {PPC_GENERIC, "lwfcmux"}, + {PPC_GENERIC, "lxsdx"}, + {PPC_GENERIC, "mfsr"}, + {PPC_GENERIC, "lswi"}, + {PPC_GENERIC, "lsi"}, + {PPC_GENERIC, "lwsync"}, + {PPC_GENERIC, "ptesync"}, + {PPC_GENERIC, "sync"}, + {PPC_GENERIC, "sync"}, + {PPC_GENERIC, "msync"}, + {PPC_GENERIC, "sync"}, + {PPC_GENERIC, "lwsync"}, + {PPC_GENERIC, "dcs"}, + {PPC_GENERIC, "lfdx"}, + {PPC_GENERIC, "mffgpr"}, + {PPC_GENERIC, "lfdepx"}, + {PPC_GENERIC, "lddx"}, + {PPC_GENERIC, "lvswx"}, + {PPC_GENERIC, "lqfcmux"}, + {PPC_GENERIC, "nego"}, + {PPC_GENERIC, "nego."}, + {PPC_GENERIC, "mulo"}, + {PPC_GENERIC, "mulo."}, + {PPC_GENERIC, "mfsri"}, + {PPC_GENERIC, "dclst"}, + {PPC_GENERIC, "lfdux"}, + {PPC_GENERIC, "stbdx"}, + {PPC_GENERIC, "stvlx"}, + {PPC_GENERIC, "stbfcmux"}, + {PPC_GENERIC, "subfeo"}, + {PPC_GENERIC, "sfeo"}, + {PPC_GENERIC, "subfeo."}, + {PPC_GENERIC, "sfeo."}, + {PPC_GENERIC, "addeo"}, + {PPC_GENERIC, "aeo"}, + {PPC_GENERIC, "addeo."}, + {PPC_GENERIC, "aeo."}, + {PPC_GENERIC, "mfsrin"}, + {PPC_GENERIC, "stdbrx"}, + {PPC_GENERIC, "stswx"}, + {PPC_GENERIC, "stsx"}, + {PPC_GENERIC, "stwbrx"}, + {PPC_GENERIC, "stbrx"}, + {PPC_GENERIC, "stfsx"}, + {PPC_GENERIC, "srq"}, + {PPC_GENERIC, "srq."}, + {PPC_GENERIC, "sre"}, + {PPC_GENERIC, "sre."}, + {PPC_GENERIC, "sthdx"}, + {PPC_GENERIC, "stvfrx"}, + {PPC_GENERIC, "stvrx"}, + {PPC_GENERIC, "sthfcmux"}, + {PPC_GENERIC, "stbcx."}, + {PPC_GENERIC, "stfsux"}, + {PPC_GENERIC, "sriq"}, + {PPC_GENERIC, "sriq."}, + {PPC_GENERIC, "stwdx"}, + {PPC_GENERIC, "stvflx"}, + {PPC_GENERIC, "stwfcmux"}, + {PPC_GENERIC, "stxsdx"}, + {PPC_GENERIC, "subfzeo"}, + {PPC_GENERIC, "sfzeo"}, + {PPC_GENERIC, "subfzeo."}, + {PPC_GENERIC, "sfzeo."}, + {PPC_GENERIC, "addzeo"}, + {PPC_GENERIC, "azeo"}, + {PPC_GENERIC, "addzeo."}, + {PPC_GENERIC, "azeo."}, + {PPC_GENERIC, "stswi"}, + {PPC_GENERIC, "stsi"}, + {PPC_GENERIC, "sthcx."}, + {PPC_GENERIC, "stfdx"}, + {PPC_GENERIC, "srlq"}, + {PPC_GENERIC, "srlq."}, + {PPC_GENERIC, "sreq"}, + {PPC_GENERIC, "sreq."}, + {PPC_GENERIC, "mftgpr"}, + {PPC_GENERIC, "stfdepx"}, + {PPC_GENERIC, "stddx"}, + {PPC_GENERIC, "stvswx"}, + {PPC_GENERIC, "stqfcmux"}, + {PPC_GENERIC, "subfmeo"}, + {PPC_GENERIC, "sfmeo"}, + {PPC_GENERIC, "subfmeo."}, + {PPC_GENERIC, "sfmeo."}, + {PPC_GENERIC, "mulldo"}, + {PPC_GENERIC, "mulldo."}, + {PPC_GENERIC, "addmeo"}, + {PPC_GENERIC, "ameo"}, + {PPC_GENERIC, "addmeo."}, + {PPC_GENERIC, "ameo."}, + {PPC_GENERIC, "mullwo"}, + {PPC_GENERIC, "mulso"}, + {PPC_GENERIC, "mullwo."}, + {PPC_GENERIC, "mulso."}, + {PPC_GENERIC, "dcba"}, + {PPC_GENERIC, "dcbal"}, + {PPC_GENERIC, "stfdux"}, + {PPC_GENERIC, "srliq"}, + {PPC_GENERIC, "srliq."}, + {PPC_GENERIC, "lvsm"}, + {PPC_GENERIC, "stvepxl"}, + {PPC_GENERIC, "lvlxl"}, + {PPC_GENERIC, "ldfcmux"}, + {PPC_GENERIC, "dozo"}, + {PPC_GENERIC, "dozo."}, + {PPC_GENERIC, "addo"}, + {PPC_GENERIC, "caxo"}, + {PPC_GENERIC, "addo."}, + {PPC_GENERIC, "caxo."}, + {PPC_GENERIC, "lxvw4x"}, + {PPC_GENERIC, "tlbivax"}, + {PPC_GENERIC, "lwzcix"}, + {PPC_GENERIC, "lhbrx"}, + {PPC_GENERIC, "lfdpx"}, + {PPC_GENERIC, "lfqx"}, + {PPC_GENERIC, "sraw"}, + {PPC_GENERIC, "sra"}, + {PPC_GENERIC, "sraw."}, + {PPC_GENERIC, "sra."}, + {PPC_GENERIC, "srad"}, + {PPC_GENERIC, "srad."}, + {PPC_GENERIC, "lfddx"}, + {PPC_GENERIC, "lvtrxl"}, + {PPC_GENERIC, "stvepx"}, + {PPC_GENERIC, "lvrxl"}, + {PPC_GENERIC, "rac"}, + {PPC_GENERIC, "erativax"}, + {PPC_GENERIC, "lhzcix"}, + {PPC_GENERIC, "dss"}, + {PPC_GENERIC, "lfqux"}, + {PPC_GENERIC, "srawi"}, + {PPC_GENERIC, "srai"}, + {PPC_GENERIC, "srawi."}, + {PPC_GENERIC, "srai."}, + {PPC_GENERIC, "sradi"}, + {PPC_GENERIC, "sradi."}, + {PPC_GENERIC, "lvtlxl"}, + {PPC_GENERIC, "divo"}, + {PPC_GENERIC, "divo."}, + {PPC_GENERIC, "lxvd2x"}, + {PPC_GENERIC, "tlbsrx."}, + {PPC_GENERIC, "slbmfev"}, + {PPC_GENERIC, "lbzcix"}, + {PPC_GENERIC, "eieio"}, + {PPC_GENERIC, "mbar"}, + {PPC_GENERIC, "eieio"}, + {PPC_GENERIC, "eieio"}, + {PPC_GENERIC, "lfiwax"}, + {PPC_GENERIC, "lvswxl"}, + {PPC_GENERIC, "abso"}, + {PPC_GENERIC, "abso."}, + {PPC_GENERIC, "divso"}, + {PPC_GENERIC, "divso."}, + {PPC_GENERIC, "ldcix"}, + {PPC_GENERIC, "lfiwzx"}, + {PPC_GENERIC, "stvlxl"}, + {PPC_GENERIC, "stdfcmux"}, + {PPC_GENERIC, "divdeuo"}, + {PPC_GENERIC, "divdeuo."}, + {PPC_GENERIC, "divweuo"}, + {PPC_GENERIC, "divweuo."}, + {PPC_GENERIC, "stxvw4x"}, + {PPC_GENERIC, "tlbsx"}, + {PPC_GENERIC, "tlbsx."}, + {PPC_GENERIC, "slbmfee"}, + {PPC_GENERIC, "stwcix"}, + {PPC_GENERIC, "sthbrx"}, + {PPC_GENERIC, "stfdpx"}, + {PPC_GENERIC, "stfqx"}, + {PPC_GENERIC, "sraq"}, + {PPC_GENERIC, "sraq."}, + {PPC_GENERIC, "srea"}, + {PPC_GENERIC, "srea."}, + {PPC_GENERIC, "extsh"}, + {PPC_GENERIC, "exts"}, + {PPC_GENERIC, "extsh."}, + {PPC_GENERIC, "exts."}, + {PPC_GENERIC, "stfddx"}, + {PPC_GENERIC, "stvfrxl"}, + {PPC_GENERIC, "wclrone"}, + {PPC_GENERIC, "wclrall"}, + {PPC_GENERIC, "wclr"}, + {PPC_GENERIC, "stvrxl"}, + {PPC_GENERIC, "divdeo"}, + {PPC_GENERIC, "divdeo."}, + {PPC_GENERIC, "divweo"}, + {PPC_GENERIC, "divweo."}, + {PPC_GENERIC, "tlbrehi"}, + {PPC_GENERIC, "tlbrelo"}, + {PPC_GENERIC, "tlbre"}, + {PPC_GENERIC, "sthcix"}, + {PPC_GENERIC, "icswepx"}, + {PPC_GENERIC, "icswepx."}, + {PPC_GENERIC, "stfqux"}, + {PPC_GENERIC, "sraiq"}, + {PPC_GENERIC, "sraiq."}, + {PPC_GENERIC, "extsb"}, + {PPC_GENERIC, "extsb."}, + {PPC_GENERIC, "stvflxl"}, + {PPC_GENERIC, "iccci"}, + {PPC_GENERIC, "ici"}, + {PPC_GENERIC, "divduo"}, + {PPC_GENERIC, "divduo."}, + {PPC_GENERIC, "divwuo"}, + {PPC_GENERIC, "divwuo."}, + {PPC_GENERIC, "stxvd2x"}, + {PPC_GENERIC, "tlbld"}, + {PPC_GENERIC, "tlbwehi"}, + {PPC_GENERIC, "tlbwelo"}, + {PPC_GENERIC, "tlbwe"}, + {PPC_GENERIC, "stbcix"}, + {PPC_GENERIC, "icbi"}, + {PPC_GENERIC, "stfiwx"}, + {PPC_GENERIC, "extsw"}, + {PPC_GENERIC, "extsw."}, + {PPC_GENERIC, "icbiep"}, + {PPC_GENERIC, "stvswxl"}, + {PPC_GENERIC, "icread"}, + {PPC_GENERIC, "nabso"}, + {PPC_GENERIC, "nabso."}, + {PPC_GENERIC, "divdo"}, + {PPC_GENERIC, "divdo."}, + {PPC_GENERIC, "divwo"}, + {PPC_GENERIC, "divwo."}, + {PPC_GENERIC, "tlbli"}, + {PPC_GENERIC, "stdcix"}, + {PPC_GENERIC, "dcbz"}, + {PPC_GENERIC, "dclz"}, + {PPC_GENERIC, "dcbzep"}, + {PPC_GENERIC, "dcbzl"}, + {PPC_GENERIC, "cctpl"}, + {PPC_GENERIC, "cctpm"}, + {PPC_GENERIC, "cctph"}, + {PPC_GENERIC, "dstt"}, + {PPC_GENERIC, "dststt"}, + {PPC_GENERIC, "dssall"}, + {PPC_GENERIC, "db8cyc"}, + {PPC_GENERIC, "db10cyc"}, + {PPC_GENERIC, "db12cyc"}, + {PPC_GENERIC, "db16cyc"}, + {PPC_GENERIC, "lwz"}, + {PPC_GENERIC, "l"}, + {PPC_GENERIC, "lwzu"}, + {PPC_GENERIC, "lu"}, + {PPC_GENERIC, "lbz"}, + {PPC_GENERIC, "lbzu"}, + {PPC_GENERIC, "stw"}, + {PPC_GENERIC, "st"}, + {PPC_GENERIC, "stwu"}, + {PPC_GENERIC, "stu"}, + {PPC_GENERIC, "stb"}, + {PPC_GENERIC, "stbu"}, + {PPC_GENERIC, "lhz"}, + {PPC_GENERIC, "lhzu"}, + {PPC_GENERIC, "lha"}, + {PPC_GENERIC, "lhau"}, + {PPC_GENERIC, "sth"}, + {PPC_GENERIC, "sthu"}, + {PPC_GENERIC, "lmw"}, + {PPC_GENERIC, "lm"}, + {PPC_GENERIC, "stmw"}, + {PPC_GENERIC, "stm"}, + {PPC_GENERIC, "lfs"}, + {PPC_GENERIC, "lfsu"}, + {PPC_GENERIC, "lfd"}, + {PPC_GENERIC, "lfdu"}, + {PPC_GENERIC, "stfs"}, + {PPC_GENERIC, "stfsu"}, + {PPC_GENERIC, "stfd"}, + {PPC_GENERIC, "stfdu"}, + {PPC_GENERIC, "lq"}, + {PPC_GENERIC, "psq_l"}, + {PPC_GENERIC, "lfq"}, + {PPC_GENERIC, "lfdp"}, + {PPC_GENERIC, "psq_lu"}, + {PPC_GENERIC, "lfqu"}, + {PPC_GENERIC, "ld"}, + {PPC_GENERIC, "ldu"}, + {PPC_GENERIC, "lwa"}, + {PPC_GENERIC, "dadd"}, + {PPC_GENERIC, "dadd."}, + {PPC_GENERIC, "dqua"}, + {PPC_GENERIC, "dqua."}, + {PPC_GENERIC, "fdivs"}, + {PPC_GENERIC, "fdivs."}, + {PPC_GENERIC, "fsubs"}, + {PPC_GENERIC, "fsubs."}, + {PPC_GENERIC, "fadds"}, + {PPC_GENERIC, "fadds."}, + {PPC_GENERIC, "fsqrts"}, + {PPC_GENERIC, "fsqrts."}, + {PPC_GENERIC, "fres"}, + {PPC_GENERIC, "fres"}, + {PPC_GENERIC, "fres."}, + {PPC_GENERIC, "fres."}, + {PPC_GENERIC, "fmuls"}, + {PPC_GENERIC, "fmuls."}, + {PPC_GENERIC, "frsqrtes"}, + {PPC_GENERIC, "frsqrtes"}, + {PPC_GENERIC, "frsqrtes."}, + {PPC_GENERIC, "frsqrtes."}, + {PPC_GENERIC, "fmsubs"}, + {PPC_GENERIC, "fmsubs."}, + {PPC_GENERIC, "fmadds"}, + {PPC_GENERIC, "fmadds."}, + {PPC_GENERIC, "fnmsubs"}, + {PPC_GENERIC, "fnmsubs."}, + {PPC_GENERIC, "fnmadds"}, + {PPC_GENERIC, "fnmadds."}, + {PPC_GENERIC, "dmul"}, + {PPC_GENERIC, "dmul."}, + {PPC_GENERIC, "drrnd"}, + {PPC_GENERIC, "drrnd."}, + {PPC_GENERIC, "dscli"}, + {PPC_GENERIC, "dscli."}, + {PPC_GENERIC, "dquai"}, + {PPC_GENERIC, "dquai."}, + {PPC_GENERIC, "dscri"}, + {PPC_GENERIC, "dscri."}, + {PPC_GENERIC, "drintx"}, + {PPC_GENERIC, "drintx."}, + {PPC_GENERIC, "dcmpo"}, + {PPC_GENERIC, "dtstex"}, + {PPC_GENERIC, "dtstdc"}, + {PPC_GENERIC, "dtstdg"}, + {PPC_GENERIC, "drintn"}, + {PPC_GENERIC, "drintn."}, + {PPC_GENERIC, "dctdp"}, + {PPC_GENERIC, "dctdp."}, + {PPC_GENERIC, "dctfix"}, + {PPC_GENERIC, "dctfix."}, + {PPC_GENERIC, "ddedpd"}, + {PPC_GENERIC, "ddedpd."}, + {PPC_GENERIC, "dxex"}, + {PPC_GENERIC, "dxex."}, + {PPC_GENERIC, "dsub"}, + {PPC_GENERIC, "dsub."}, + {PPC_GENERIC, "ddiv"}, + {PPC_GENERIC, "ddiv."}, + {PPC_GENERIC, "dcmpu"}, + {PPC_GENERIC, "dtstsf"}, + {PPC_GENERIC, "drsp"}, + {PPC_GENERIC, "drsp."}, + {PPC_GENERIC, "dcffix"}, + {PPC_GENERIC, "dcffix."}, + {PPC_GENERIC, "denbcd"}, + {PPC_GENERIC, "denbcd."}, + {PPC_GENERIC, "fcfids"}, + {PPC_GENERIC, "fcfids."}, + {PPC_GENERIC, "diex"}, + {PPC_GENERIC, "diex."}, + {PPC_GENERIC, "fcfidus"}, + {PPC_GENERIC, "fcfidus."}, + {PPC_GENERIC, "xxsldwi"}, + {PPC_GENERIC, "xxsel"}, + {PPC_GENERIC, "xxspltd"}, + {PPC_GENERIC, "xxmrghd"}, + {PPC_GENERIC, "xxswapd"}, + {PPC_GENERIC, "xxmrgld"}, + {PPC_GENERIC, "xxpermdi"}, + {PPC_GENERIC, "xxmrghw"}, + {PPC_GENERIC, "xsadddp"}, + {PPC_GENERIC, "xsmaddadp"}, + {PPC_GENERIC, "xscmpudp"}, + {PPC_GENERIC, "xssubdp"}, + {PPC_GENERIC, "xsmaddmdp"}, + {PPC_GENERIC, "xscmpodp"}, + {PPC_GENERIC, "xsmuldp"}, + {PPC_GENERIC, "xsmsubadp"}, + {PPC_GENERIC, "xxmrglw"}, + {PPC_GENERIC, "xsdivdp"}, + {PPC_GENERIC, "xsmsubmdp"}, + {PPC_GENERIC, "xstdivdp"}, + {PPC_GENERIC, "xvaddsp"}, + {PPC_GENERIC, "xvmaddasp"}, + {PPC_GENERIC, "xvcmpeqsp"}, + {PPC_GENERIC, "xvcmpeqsp."}, + {PPC_GENERIC, "xvsubsp"}, + {PPC_GENERIC, "xscvdpuxws"}, + {PPC_GENERIC, "xvmaddmsp"}, + {PPC_GENERIC, "xsrdpi"}, + {PPC_GENERIC, "xsrsqrtedp"}, + {PPC_GENERIC, "xssqrtdp"}, + {PPC_GENERIC, "xvcmpgtsp"}, + {PPC_GENERIC, "xvcmpgtsp."}, + {PPC_GENERIC, "xvmulsp"}, + {PPC_GENERIC, "xvmsubasp"}, + {PPC_GENERIC, "xvcmpgesp"}, + {PPC_GENERIC, "xvcmpgesp."}, + {PPC_GENERIC, "xvdivsp"}, + {PPC_GENERIC, "xscvdpsxws"}, + {PPC_GENERIC, "xvmsubmsp"}, + {PPC_GENERIC, "xsrdpiz"}, + {PPC_GENERIC, "xsredp"}, + {PPC_GENERIC, "xvtdivsp"}, + {PPC_GENERIC, "xvadddp"}, + {PPC_GENERIC, "xvmaddadp"}, + {PPC_GENERIC, "xvcmpeqdp"}, + {PPC_GENERIC, "xvcmpeqdp."}, + {PPC_GENERIC, "xvsubdp"}, + {PPC_GENERIC, "xvmaddmdp"}, + {PPC_GENERIC, "xsrdpip"}, + {PPC_GENERIC, "xstsqrtdp"}, + {PPC_GENERIC, "xsrdpic"}, + {PPC_GENERIC, "xvcmpgtdp"}, + {PPC_GENERIC, "xvcmpgtdp."}, + {PPC_GENERIC, "xvmuldp"}, + {PPC_GENERIC, "xvmsubadp"}, + {PPC_GENERIC, "xvcmpgedp"}, + {PPC_GENERIC, "xvcmpgedp."}, + {PPC_GENERIC, "xvdivdp"}, + {PPC_GENERIC, "xvmsubmdp"}, + {PPC_GENERIC, "xsrdpim"}, + {PPC_GENERIC, "xvtdivdp"}, + {PPC_GENERIC, "xxland"}, + {PPC_GENERIC, "xvcvspuxws"}, + {PPC_GENERIC, "xvrspi"}, + {PPC_GENERIC, "xxlandc"}, + {PPC_GENERIC, "xvrsqrtesp"}, + {PPC_GENERIC, "xvsqrtsp"}, + {PPC_GENERIC, "xxlor"}, + {PPC_GENERIC, "xvcvspsxws"}, + {PPC_GENERIC, "xvrspiz"}, + {PPC_GENERIC, "xxlxor"}, + {PPC_GENERIC, "xvresp"}, + {PPC_GENERIC, "xsmaxdp"}, + {PPC_GENERIC, "xsnmaddadp"}, + {PPC_GENERIC, "xxlnor"}, + {PPC_GENERIC, "xxspltw"}, + {PPC_GENERIC, "xsmindp"}, + {PPC_GENERIC, "xvcvuxwsp"}, + {PPC_GENERIC, "xsnmaddmdp"}, + {PPC_GENERIC, "xvrspip"}, + {PPC_GENERIC, "xvtsqrtsp"}, + {PPC_GENERIC, "xvrspic"}, + {PPC_GENERIC, "xscpsgndp"}, + {PPC_GENERIC, "xsnmsubadp"}, + {PPC_GENERIC, "xvcvsxwsp"}, + {PPC_GENERIC, "xsnmsubmdp"}, + {PPC_GENERIC, "xvrspim"}, + {PPC_GENERIC, "xvmaxsp"}, + {PPC_GENERIC, "xvnmaddasp"}, + {PPC_GENERIC, "xvminsp"}, + {PPC_GENERIC, "xvcvdpuxws"}, + {PPC_GENERIC, "xvnmaddmsp"}, + {PPC_GENERIC, "xvrdpi"}, + {PPC_GENERIC, "xvrsqrtedp"}, + {PPC_GENERIC, "xvsqrtdp"}, + {PPC_GENERIC, "xvmovsp"}, + {PPC_GENERIC, "xvcpsgnsp"}, + {PPC_GENERIC, "xvnmsubasp"}, + {PPC_GENERIC, "xvcvdpsxws"}, + {PPC_GENERIC, "xvnmsubmsp"}, + {PPC_GENERIC, "xvrdpiz"}, + {PPC_GENERIC, "xvredp"}, + {PPC_GENERIC, "xvmaxdp"}, + {PPC_GENERIC, "xvnmaddadp"}, + {PPC_GENERIC, "xvmindp"}, + {PPC_GENERIC, "xvnmaddmdp"}, + {PPC_GENERIC, "xvcvuxwdp"}, + {PPC_GENERIC, "xvrdpip"}, + {PPC_GENERIC, "xvtsqrtdp"}, + {PPC_GENERIC, "xvrdpic"}, + {PPC_GENERIC, "xvmovdp"}, + {PPC_GENERIC, "xvcpsgndp"}, + {PPC_GENERIC, "xvnmsubadp"}, + {PPC_GENERIC, "xvcvsxwdp"}, + {PPC_GENERIC, "xvnmsubmdp"}, + {PPC_GENERIC, "xvrdpim"}, + {PPC_GENERIC, "xscvdpsp"}, + {PPC_GENERIC, "xscvdpuxds"}, + {PPC_GENERIC, "xscvspdp"}, + {PPC_GENERIC, "xscvdpsxds"}, + {PPC_GENERIC, "xsabsdp"}, + {PPC_GENERIC, "xscvuxddp"}, + {PPC_GENERIC, "xsnabsdp"}, + {PPC_GENERIC, "xscvsxddp"}, + {PPC_GENERIC, "xsnegdp"}, + {PPC_GENERIC, "xvcvspuxds"}, + {PPC_GENERIC, "xvcvdpsp"}, + {PPC_GENERIC, "xvcvspsxds"}, + {PPC_GENERIC, "xvabssp"}, + {PPC_GENERIC, "xvcvuxdsp"}, + {PPC_GENERIC, "xvnabssp"}, + {PPC_GENERIC, "xvcvsxdsp"}, + {PPC_GENERIC, "xvnegsp"}, + {PPC_GENERIC, "xvcvdpuxds"}, + {PPC_GENERIC, "xvcvspdp"}, + {PPC_GENERIC, "xvcvdpsxds"}, + {PPC_GENERIC, "xvabsdp"}, + {PPC_GENERIC, "xvcvuxddp"}, + {PPC_GENERIC, "xvnabsdp"}, + {PPC_GENERIC, "xvcvsxddp"}, + {PPC_GENERIC, "xvnegdp"}, + {PPC_GENERIC, "psq_st"}, + {PPC_GENERIC, "stfq"}, + {PPC_GENERIC, "stfdp"}, + {PPC_GENERIC, "psq_stu"}, + {PPC_GENERIC, "stfqu"}, + {PPC_GENERIC, "std"}, + {PPC_GENERIC, "stdu"}, + {PPC_GENERIC, "stq"}, + {PPC_GENERIC, "fcmpu"}, + {PPC_GENERIC, "daddq"}, + {PPC_GENERIC, "daddq."}, + {PPC_GENERIC, "dquaq"}, + {PPC_GENERIC, "dquaq."}, + {PPC_GENERIC, "fcpsgn"}, + {PPC_GENERIC, "fcpsgn."}, + {PPC_GENERIC, "frsp"}, + {PPC_GENERIC, "frsp."}, + {PPC_GENERIC, "fctiw"}, + {PPC_GENERIC, "fcir"}, + {PPC_GENERIC, "fctiw."}, + {PPC_GENERIC, "fcir."}, + {PPC_GENERIC, "fctiwz"}, + {PPC_GENERIC, "fcirz"}, + {PPC_GENERIC, "fctiwz."}, + {PPC_GENERIC, "fcirz."}, + {PPC_GENERIC, "fdiv"}, + {PPC_GENERIC, "fd"}, + {PPC_GENERIC, "fdiv."}, + {PPC_GENERIC, "fd."}, + {PPC_GENERIC, "fsub"}, + {PPC_GENERIC, "fs"}, + {PPC_GENERIC, "fsub."}, + {PPC_GENERIC, "fs."}, + {PPC_GENERIC, "fadd"}, + {PPC_GENERIC, "fa"}, + {PPC_GENERIC, "fadd."}, + {PPC_GENERIC, "fa."}, + {PPC_GENERIC, "fsqrt"}, + {PPC_GENERIC, "fsqrt."}, + {PPC_GENERIC, "fsel"}, + {PPC_GENERIC, "fsel."}, + {PPC_GENERIC, "fre"}, + {PPC_GENERIC, "fre"}, + {PPC_GENERIC, "fre."}, + {PPC_GENERIC, "fre."}, + {PPC_GENERIC, "fmul"}, + {PPC_GENERIC, "fm"}, + {PPC_GENERIC, "fmul."}, + {PPC_GENERIC, "fm."}, + {PPC_GENERIC, "frsqrte"}, + {PPC_GENERIC, "frsqrte"}, + {PPC_GENERIC, "frsqrte."}, + {PPC_GENERIC, "frsqrte."}, + {PPC_GENERIC, "fmsub"}, + {PPC_GENERIC, "fms"}, + {PPC_GENERIC, "fmsub."}, + {PPC_GENERIC, "fms."}, + {PPC_GENERIC, "fmadd"}, + {PPC_GENERIC, "fma"}, + {PPC_GENERIC, "fmadd."}, + {PPC_GENERIC, "fma."}, + {PPC_GENERIC, "fnmsub"}, + {PPC_GENERIC, "fnms"}, + {PPC_GENERIC, "fnmsub."}, + {PPC_GENERIC, "fnms."}, + {PPC_GENERIC, "fnmadd"}, + {PPC_GENERIC, "fnma"}, + {PPC_GENERIC, "fnmadd."}, + {PPC_GENERIC, "fnma."}, + {PPC_GENERIC, "fcmpo"}, + {PPC_GENERIC, "dmulq"}, + {PPC_GENERIC, "dmulq."}, + {PPC_GENERIC, "drrndq"}, + {PPC_GENERIC, "drrndq."}, + {PPC_GENERIC, "mtfsb1"}, + {PPC_GENERIC, "mtfsb1."}, + {PPC_GENERIC, "fneg"}, + {PPC_GENERIC, "fneg."}, + {PPC_GENERIC, "mcrfs"}, + {PPC_GENERIC, "dscliq"}, + {PPC_GENERIC, "dscliq."}, + {PPC_GENERIC, "dquaiq"}, + {PPC_GENERIC, "dquaiq."}, + {PPC_GENERIC, "mtfsb0"}, + {PPC_GENERIC, "mtfsb0."}, + {PPC_GENERIC, "fmr"}, + {PPC_GENERIC, "fmr."}, + {PPC_GENERIC, "dscriq"}, + {PPC_GENERIC, "dscriq."}, + {PPC_GENERIC, "drintxq"}, + {PPC_GENERIC, "drintxq."}, + {PPC_GENERIC, "ftdiv"}, + {PPC_GENERIC, "dcmpoq"}, + {PPC_GENERIC, "mtfsfi"}, + {PPC_GENERIC, "mtfsfi"}, + {PPC_GENERIC, "mtfsfi."}, + {PPC_GENERIC, "mtfsfi."}, + {PPC_GENERIC, "fnabs"}, + {PPC_GENERIC, "fnabs."}, + {PPC_GENERIC, "fctiwu"}, + {PPC_GENERIC, "fctiwu."}, + {PPC_GENERIC, "fctiwuz"}, + {PPC_GENERIC, "fctiwuz."}, + {PPC_GENERIC, "ftsqrt"}, + {PPC_GENERIC, "dtstexq"}, + {PPC_GENERIC, "dtstdcq"}, + {PPC_GENERIC, "dtstdgq"}, + {PPC_GENERIC, "drintnq"}, + {PPC_GENERIC, "drintnq."}, + {PPC_GENERIC, "dctqpq"}, + {PPC_GENERIC, "dctqpq."}, + {PPC_GENERIC, "fabs"}, + {PPC_GENERIC, "fabs."}, + {PPC_GENERIC, "dctfixq"}, + {PPC_GENERIC, "dctfixq."}, + {PPC_GENERIC, "ddedpdq"}, + {PPC_GENERIC, "ddedpdq."}, + {PPC_GENERIC, "dxexq"}, + {PPC_GENERIC, "dxexq."}, + {PPC_GENERIC, "frin"}, + {PPC_GENERIC, "frin."}, + {PPC_GENERIC, "friz"}, + {PPC_GENERIC, "friz."}, + {PPC_GENERIC, "frip"}, + {PPC_GENERIC, "frip."}, + {PPC_GENERIC, "frim"}, + {PPC_GENERIC, "frim."}, + {PPC_GENERIC, "dsubq"}, + {PPC_GENERIC, "dsubq."}, + {PPC_GENERIC, "ddivq"}, + {PPC_GENERIC, "ddivq."}, + {PPC_GENERIC, "mffs"}, + {PPC_GENERIC, "mffs."}, + {PPC_GENERIC, "dcmpuq"}, + {PPC_GENERIC, "dtstsfq"}, + {PPC_GENERIC, "mtfsf"}, + {PPC_GENERIC, "mtfsf"}, + {PPC_GENERIC, "mtfsf."}, + {PPC_GENERIC, "mtfsf."}, + {PPC_GENERIC, "drdpq"}, + {PPC_GENERIC, "drdpq."}, + {PPC_GENERIC, "dcffixq"}, + {PPC_GENERIC, "dcffixq."}, + {PPC_GENERIC, "fctid"}, + {PPC_GENERIC, "fctid"}, + {PPC_GENERIC, "fctid."}, + {PPC_GENERIC, "fctid."}, + {PPC_GENERIC, "fctidz"}, + {PPC_GENERIC, "fctidz"}, + {PPC_GENERIC, "fctidz."}, + {PPC_GENERIC, "fctidz."}, + {PPC_GENERIC, "denbcdq"}, + {PPC_GENERIC, "denbcdq."}, + {PPC_GENERIC, "fcfid"}, + {PPC_GENERIC, "fcfid"}, + {PPC_GENERIC, "fcfid."}, + {PPC_GENERIC, "fcfid."}, + {PPC_GENERIC, "diexq"}, + {PPC_GENERIC, "diexq."}, + {PPC_GENERIC, "fctidu"}, + {PPC_GENERIC, "fctidu."}, + {PPC_GENERIC, "fctiduz"}, + {PPC_GENERIC, "fctiduz."}, + {PPC_GENERIC, "fcfidu"}, + {PPC_GENERIC, "fcfidu."}, + {PPC_GENERIC, "se_illegal"}, + {PPC_GENERIC, "se_isync"}, + {PPC_GENERIC, "se_sc"}, + {PPC_GENERIC, "se_blr"}, + {PPC_GENERIC, "se_blrl"}, + {PPC_GENERIC, "se_bctr"}, + {PPC_GENERIC, "se_bctrl"}, + {PPC_GENERIC, "se_rfi"}, + {PPC_GENERIC, "se_rfci"}, + {PPC_GENERIC, "se_rfdi"}, + {PPC_GENERIC, "se_rfmci"}, + {PPC_GENERIC, "se_not"}, + {PPC_GENERIC, "se_neg"}, + {PPC_GENERIC, "se_mflr"}, + {PPC_GENERIC, "se_mtlr"}, + {PPC_GENERIC, "se_mfctr"}, + {PPC_GENERIC, "se_mtctr"}, + {PPC_GENERIC, "se_extzb"}, + {PPC_GENERIC, "se_extsb"}, + {PPC_GENERIC, "se_extzh"}, + {PPC_GENERIC, "se_extsh"}, + {PPC_GENERIC, "se_mr"}, + {PPC_GENERIC, "se_mtar"}, + {PPC_GENERIC, "se_mfar"}, + {PPC_GENERIC, "se_add"}, + {PPC_GENERIC, "se_mullw"}, + {PPC_GENERIC, "se_sub"}, + {PPC_GENERIC, "se_subf"}, + {PPC_GENERIC, "se_cmp"}, + {PPC_GENERIC, "se_cmpl"}, + {PPC_GENERIC, "se_cmph"}, + {PPC_GENERIC, "se_cmphl"}, + {PPC_GENERIC, "e_cmpi"}, + {PPC_GENERIC, "e_cmpli"}, + {PPC_GENERIC, "e_addi"}, + {PPC_GENERIC, "e_subi"}, + {PPC_GENERIC, "e_addi."}, + {PPC_GENERIC, "e_addic"}, + {PPC_GENERIC, "e_subic"}, + {PPC_GENERIC, "e_addic."}, + {PPC_GENERIC, "e_subic."}, + {PPC_GENERIC, "e_mulli"}, + {PPC_GENERIC, "e_subfic"}, + {PPC_GENERIC, "e_subfic."}, + {PPC_GENERIC, "e_andi"}, + {PPC_GENERIC, "e_andi."}, + {PPC_GENERIC, "e_nop"}, + {PPC_GENERIC, "e_ori"}, + {PPC_GENERIC, "e_ori."}, + {PPC_GENERIC, "e_xori"}, + {PPC_GENERIC, "e_xori."}, + {PPC_GENERIC, "e_lbzu"}, + {PPC_GENERIC, "e_lhau"}, + {PPC_GENERIC, "e_lhzu"}, + {PPC_GENERIC, "e_lmw"}, + {PPC_GENERIC, "e_lwzu"}, + {PPC_GENERIC, "e_stbu"}, + {PPC_GENERIC, "e_sthu"}, + {PPC_GENERIC, "e_stwu"}, + {PPC_GENERIC, "e_stmw"}, + {PPC_GENERIC, "e_add16i"}, + {PPC_GENERIC, "e_la"}, + {PPC_GENERIC, "e_sub16i"}, + {PPC_GENERIC, "se_addi"}, + {PPC_GENERIC, "se_cmpli"}, + {PPC_GENERIC, "se_subi"}, + {PPC_GENERIC, "se_subi."}, + {PPC_GENERIC, "se_cmpi"}, + {PPC_GENERIC, "se_bmaski"}, + {PPC_GENERIC, "se_andi"}, + {PPC_GENERIC, "e_lbz"}, + {PPC_GENERIC, "e_stb"}, + {PPC_GENERIC, "e_lha"}, + {PPC_GENERIC, "se_srw"}, + {PPC_GENERIC, "se_sraw"}, + {PPC_GENERIC, "se_slw"}, + {PPC_GENERIC, "se_nop"}, + {PPC_GENERIC, "se_or"}, + {PPC_GENERIC, "se_andc"}, + {PPC_GENERIC, "se_and"}, + {PPC_GENERIC, "se_and."}, + {PPC_GENERIC, "se_li"}, + {PPC_GENERIC, "e_lwz"}, + {PPC_GENERIC, "e_stw"}, + {PPC_GENERIC, "e_lhz"}, + {PPC_GENERIC, "e_sth"}, + {PPC_GENERIC, "se_bclri"}, + {PPC_GENERIC, "se_bgeni"}, + {PPC_GENERIC, "se_bseti"}, + {PPC_GENERIC, "se_btsti"}, + {PPC_GENERIC, "se_srwi"}, + {PPC_GENERIC, "se_srawi"}, + {PPC_GENERIC, "se_slwi"}, + {PPC_GENERIC, "e_lis"}, + {PPC_GENERIC, "e_and2is."}, + {PPC_GENERIC, "e_or2is"}, + {PPC_GENERIC, "e_and2i."}, + {PPC_GENERIC, "e_or2i"}, + {PPC_GENERIC, "e_cmphl16i"}, + {PPC_GENERIC, "e_cmph16i"}, + {PPC_GENERIC, "e_cmpl16i"}, + {PPC_GENERIC, "e_cmplwi"}, + {PPC_GENERIC, "e_mull2i"}, + {PPC_GENERIC, "e_cmp16i"}, + {PPC_GENERIC, "e_cmpwi"}, + {PPC_GENERIC, "e_sub2is"}, + {PPC_GENERIC, "e_add2is"}, + {PPC_GENERIC, "e_sub2i."}, + {PPC_GENERIC, "e_add2i."}, + {PPC_GENERIC, "e_li"}, + {PPC_GENERIC, "e_rlwimi"}, + {PPC_GENERIC, "e_rlwinm"}, + {PPC_GENERIC, "e_b"}, + {PPC_GENERIC, "e_bl"}, + {PPC_GENERIC, "e_bdnz"}, + {PPC_GENERIC, "e_bdnzl"}, + {PPC_GENERIC, "e_bdz"}, + {PPC_GENERIC, "e_bdzl"}, + {PPC_GENERIC, "e_bge"}, + {PPC_GENERIC, "e_bgel"}, + {PPC_GENERIC, "e_bnl"}, + {PPC_GENERIC, "e_bnll"}, + {PPC_GENERIC, "e_blt"}, + {PPC_GENERIC, "e_bltl"}, + {PPC_GENERIC, "e_bgt"}, + {PPC_GENERIC, "e_bgtl"}, + {PPC_GENERIC, "e_ble"}, + {PPC_GENERIC, "e_blel"}, + {PPC_GENERIC, "e_bng"}, + {PPC_GENERIC, "e_bngl"}, + {PPC_GENERIC, "e_bne"}, + {PPC_GENERIC, "e_bnel"}, + {PPC_GENERIC, "e_beq"}, + {PPC_GENERIC, "e_beql"}, + {PPC_GENERIC, "e_bso"}, + {PPC_GENERIC, "e_bsol"}, + {PPC_GENERIC, "e_bun"}, + {PPC_GENERIC, "e_bunl"}, + {PPC_GENERIC, "e_bns"}, + {PPC_GENERIC, "e_bnsl"}, + {PPC_GENERIC, "e_bnu"}, + {PPC_GENERIC, "e_bnul"}, + {PPC_GENERIC, "e_bc"}, + {PPC_GENERIC, "e_bcl"}, + {PPC_GENERIC, "e_bf"}, + {PPC_GENERIC, "e_bfl"}, + {PPC_GENERIC, "e_bt"}, + {PPC_GENERIC, "e_btl"}, + {PPC_GENERIC, "e_cmph"}, + {PPC_GENERIC, "e_cmphl"}, + {PPC_GENERIC, "e_crandc"}, + {PPC_GENERIC, "e_crnand"}, + {PPC_GENERIC, "e_crnot"}, + {PPC_GENERIC, "e_crnor"}, + {PPC_GENERIC, "e_crclr"}, + {PPC_GENERIC, "e_crxor"}, + {PPC_GENERIC, "e_mcrf"}, + {PPC_GENERIC, "e_slwi"}, + {PPC_GENERIC, "e_slwi."}, + {PPC_GENERIC, "e_crand"}, + {PPC_GENERIC, "e_rlw"}, + {PPC_GENERIC, "e_rlw."}, + {PPC_GENERIC, "e_crset"}, + {PPC_GENERIC, "e_creqv"}, + {PPC_GENERIC, "e_rlwi"}, + {PPC_GENERIC, "e_rlwi."}, + {PPC_GENERIC, "e_crorc"}, + {PPC_GENERIC, "e_crmove"}, + {PPC_GENERIC, "e_cror"}, + {PPC_GENERIC, "mtmas1"}, + {PPC_GENERIC, "e_srwi"}, + {PPC_GENERIC, "e_srwi."}, + {PPC_GENERIC, "se_lbz"}, + {PPC_GENERIC, "se_stb"}, + {PPC_GENERIC, "se_lhz"}, + {PPC_GENERIC, "se_sth"}, + {PPC_GENERIC, "se_lwz"}, + {PPC_GENERIC, "se_stw"}, + {PPC_GENERIC, "se_bge"}, + {PPC_GENERIC, "se_bnl"}, + {PPC_GENERIC, "se_ble"}, + {PPC_GENERIC, "se_bng"}, + {PPC_GENERIC, "se_bne"}, + {PPC_GENERIC, "se_bns"}, + {PPC_GENERIC, "se_bnu"}, + {PPC_GENERIC, "se_bf"}, + {PPC_GENERIC, "se_blt"}, + {PPC_GENERIC, "se_bgt"}, + {PPC_GENERIC, "se_beq"}, + {PPC_GENERIC, "se_bso"}, + {PPC_GENERIC, "se_bun"}, + {PPC_GENERIC, "se_bt"}, + {PPC_GENERIC, "se_bc"}, + {PPC_GENERIC, "se_b"}, + {PPC_GENERIC, "se_bl"}, + {PPC_GENERIC, "extldi"}, + {PPC_GENERIC, "extldi."}, + {PPC_GENERIC, "extrdi"}, + {PPC_GENERIC, "extrdi."}, + {PPC_GENERIC, "insrdi"}, + {PPC_GENERIC, "insrdi."}, + {PPC_GENERIC, "rotrdi"}, + {PPC_GENERIC, "rotrdi."}, + {PPC_GENERIC, "sldi"}, + {PPC_GENERIC, "sldi."}, + {PPC_GENERIC, "srdi"}, + {PPC_GENERIC, "srdi."}, + {PPC_GENERIC, "clrrdi"}, + {PPC_GENERIC, "clrrdi."}, + {PPC_GENERIC, "clrlsldi"}, + {PPC_GENERIC, "clrlsldi."}, + {PPC_GENERIC, "extlwi"}, + {PPC_GENERIC, "extlwi."}, + {PPC_GENERIC, "extrwi"}, + {PPC_GENERIC, "extrwi."}, + {PPC_GENERIC, "inslwi"}, + {PPC_GENERIC, "inslwi."}, + {PPC_GENERIC, "insrwi"}, + {PPC_GENERIC, "insrwi."}, + {PPC_GENERIC, "rotrwi"}, + {PPC_GENERIC, "rotrwi."}, + {PPC_GENERIC, "slwi"}, + {PPC_GENERIC, "sli"}, + {PPC_GENERIC, "slwi."}, + {PPC_GENERIC, "sli."}, + {PPC_GENERIC, "srwi"}, + {PPC_GENERIC, "sri"}, + {PPC_GENERIC, "srwi."}, + {PPC_GENERIC, "sri."}, + {PPC_GENERIC, "clrrwi"}, + {PPC_GENERIC, "clrrwi."}, + {PPC_GENERIC, "clrlslwi"}, + {PPC_GENERIC, "clrlslwi."}, + {PPC_GENERIC, "e_extlwi"}, + {PPC_GENERIC, "e_extrwi"}, + {PPC_GENERIC, "e_inslwi"}, + {PPC_GENERIC, "e_insrwi"}, + {PPC_GENERIC, "e_rotlwi"}, + {PPC_GENERIC, "e_rotrwi"}, + {PPC_GENERIC, "e_slwi"}, + {PPC_GENERIC, "e_srwi"}, + {PPC_GENERIC, "e_clrlwi"}, + {PPC_GENERIC, "e_clrrwi"}, + {PPC_GENERIC, "e_clrlslwi"}, + {0, 0} +}; + diff --git a/whichasm-0.01/s390x.h b/whichasm-0.01/s390x.h new file mode 100644 index 0000000..38f47e4 --- /dev/null +++ b/whichasm-0.01/s390x.h @@ -0,0 +1,1148 @@ +struct s390x_opcode +{ + unsigned long arch; + const char *assembler; +}; + +struct s390x_reg +{ + unsigned long arch; + const char *assembler; +}; + +enum s390x_arch +{ + S390X_NONE, + S390X_GENERIC, + S390X_64BIT +}; + +static const struct s390x_reg s390x_regs[] = +{ + {S390X_GENERIC, "R0"}, + {S390X_GENERIC, "R1"}, + {S390X_GENERIC, "R2"}, + {S390X_GENERIC, "R3"}, + {S390X_GENERIC, "R4"}, + {S390X_GENERIC, "R5"}, + {S390X_GENERIC, "R6"}, + {S390X_GENERIC, "R7"}, + {S390X_GENERIC, "R8"}, + {S390X_GENERIC, "R9"}, + {S390X_GENERIC, "R10"}, + {S390X_GENERIC, "R11"}, + {S390X_GENERIC, "R12"}, + {S390X_GENERIC, "R13"}, + {S390X_GENERIC, "R14"}, + {S390X_GENERIC, "R15"}, + {S390X_GENERIC, "R15"}, + {S390X_GENERIC, "CR0"}, + {S390X_GENERIC, "CR2"}, + {S390X_GENERIC, "CR3"}, + {S390X_GENERIC, "CR4"}, + {S390X_GENERIC, "CR5"}, + {S390X_GENERIC, "CR6"}, + {S390X_GENERIC, "CR7"}, + {S390X_GENERIC, "CR8"}, + {S390X_GENERIC, "CR9"}, + {S390X_GENERIC, "CR10"}, + {S390X_GENERIC, "CR11"}, + {S390X_GENERIC, "CR12"}, + {S390X_GENERIC, "CR13"}, + {S390X_GENERIC, "CR14"}, + {S390X_GENERIC, "CR15"}, + {S390X_GENERIC, "PSW"}, + {0, 0} +}; + +static const struct s390x_opcode s390x_opcodes[] = +{ + {S390X_GENERIC, "a"}, + {S390X_GENERIC, "ad"}, + {S390X_GENERIC, "adr"}, + {S390X_GENERIC, "ae"}, + {S390X_GENERIC, "aer"}, + {S390X_GENERIC, "ah"}, + {S390X_GENERIC, "al"}, + {S390X_GENERIC, "alr"}, + {S390X_GENERIC, "ap"}, + {S390X_GENERIC, "ar"}, + {S390X_GENERIC, "au"}, + {S390X_GENERIC, "aur"}, + {S390X_GENERIC, "aw"}, + {S390X_GENERIC, "awr"}, + {S390X_GENERIC, "axr"}, + {S390X_GENERIC, "bakr"}, + {S390X_GENERIC, "bal"}, + {S390X_GENERIC, "balr"}, + {S390X_GENERIC, "bas"}, + {S390X_GENERIC, "basr"}, + {S390X_GENERIC, "bassm"}, + {S390X_GENERIC, "bc"}, + {S390X_GENERIC, "bcr"}, + {S390X_GENERIC, "bct"}, + {S390X_GENERIC, "bctr"}, + {S390X_GENERIC, "bsg"}, + {S390X_GENERIC, "bsm"}, + {S390X_GENERIC, "bxh"}, + {S390X_GENERIC, "bxle"}, + {S390X_GENERIC, "c"}, + {S390X_GENERIC, "cd"}, + {S390X_GENERIC, "cdr"}, + {S390X_GENERIC, "cds"}, + {S390X_GENERIC, "ce"}, + {S390X_GENERIC, "cer"}, + {S390X_GENERIC, "cfc"}, + {S390X_GENERIC, "ch"}, + {S390X_GENERIC, "cl"}, + {S390X_GENERIC, "clc"}, + {S390X_GENERIC, "clcl"}, + {S390X_GENERIC, "cli"}, + {S390X_GENERIC, "clm"}, + {S390X_GENERIC, "clr"}, + {S390X_GENERIC, "clst"}, + {S390X_GENERIC, "cp"}, + {S390X_GENERIC, "cpya"}, + {S390X_GENERIC, "cr"}, + {S390X_GENERIC, "cs"}, + {S390X_GENERIC, "csch"}, + {S390X_GENERIC, "cuse"}, + {S390X_GENERIC, "csp"}, + {S390X_GENERIC, "cvb"}, + {S390X_GENERIC, "cvd"}, + {S390X_GENERIC, "d"}, + {S390X_GENERIC, "dd"}, + {S390X_GENERIC, "ddr"}, + {S390X_GENERIC, "de"}, + {S390X_GENERIC, "der"}, + {S390X_GENERIC, "diag"}, + {S390X_GENERIC, "dp"}, + {S390X_GENERIC, "dr"}, + {S390X_GENERIC, "dxr"}, + {S390X_GENERIC, "ear"}, + {S390X_GENERIC, "ed"}, + {S390X_GENERIC, "edmk"}, + {S390X_GENERIC, "epar"}, + {S390X_GENERIC, "ereg"}, + {S390X_GENERIC, "esar"}, + {S390X_GENERIC, "esta"}, + {S390X_GENERIC, "ex"}, + {S390X_GENERIC, "hdr"}, + {S390X_GENERIC, "her"}, + {S390X_GENERIC, "hsch"}, + {S390X_GENERIC, "iac"}, + {S390X_GENERIC, "ic"}, + {S390X_GENERIC, "icm"}, + {S390X_GENERIC, "ipk"}, + {S390X_GENERIC, "ipm"}, + {S390X_GENERIC, "ipte"}, + {S390X_GENERIC, "iske"}, + {S390X_GENERIC, "ivsk"}, + {S390X_GENERIC, "l"}, + {S390X_GENERIC, "la"}, + {S390X_GENERIC, "lae"}, + {S390X_GENERIC, "lam"}, + {S390X_GENERIC, "lasp"}, + {S390X_GENERIC, "lcdr"}, + {S390X_GENERIC, "lcer"}, + {S390X_GENERIC, "lcr"}, + {S390X_GENERIC, "lctl"}, + {S390X_GENERIC, "ld"}, + {S390X_GENERIC, "ldr"}, + {S390X_GENERIC, "le"}, + {S390X_GENERIC, "ler"}, + {S390X_GENERIC, "lh"}, + {S390X_GENERIC, "lm"}, + {S390X_GENERIC, "lndr"}, + {S390X_GENERIC, "lner"}, + {S390X_GENERIC, "lnr"}, + {S390X_GENERIC, "lpdr"}, + {S390X_GENERIC, "lper"}, + {S390X_GENERIC, "lpr"}, + {S390X_GENERIC, "lpsw"}, + {S390X_GENERIC, "lr"}, + {S390X_GENERIC, "lra"}, + {S390X_GENERIC, "ldxr"}, + {S390X_GENERIC, "lrdr"}, + {S390X_GENERIC, "ledr"}, + {S390X_GENERIC, "lrer"}, + {S390X_GENERIC, "ltdr"}, + {S390X_GENERIC, "lter"}, + {S390X_GENERIC, "ltr"}, + {S390X_GENERIC, "lura"}, + {S390X_GENERIC, "m"}, + {S390X_GENERIC, "mc"}, + {S390X_GENERIC, "md"}, + {S390X_GENERIC, "mdr"}, + {S390X_GENERIC, "mde"}, + {S390X_GENERIC, "me"}, + {S390X_GENERIC, "mder"}, + {S390X_GENERIC, "mer"}, + {S390X_GENERIC, "mh"}, + {S390X_GENERIC, "mp"}, + {S390X_GENERIC, "mr"}, + {S390X_GENERIC, "msch"}, + {S390X_GENERIC, "msta"}, + {S390X_GENERIC, "mvc"}, + {S390X_GENERIC, "mvcdk"}, + {S390X_GENERIC, "mvcin"}, + {S390X_GENERIC, "mvck"}, + {S390X_GENERIC, "mvcl"}, + {S390X_GENERIC, "mvcp"}, + {S390X_GENERIC, "mvcs"}, + {S390X_GENERIC, "mvcsk"}, + {S390X_GENERIC, "mvi"}, + {S390X_GENERIC, "mvn"}, + {S390X_GENERIC, "mvo"}, + {S390X_GENERIC, "mvpg"}, + {S390X_GENERIC, "mvst"}, + {S390X_GENERIC, "mvz"}, + {S390X_GENERIC, "mxd"}, + {S390X_GENERIC, "mxdr"}, + {S390X_GENERIC, "mxr"}, + {S390X_GENERIC, "n"}, + {S390X_GENERIC, "nc"}, + {S390X_GENERIC, "ni"}, + {S390X_GENERIC, "nr"}, + {S390X_GENERIC, "o"}, + {S390X_GENERIC, "oc"}, + {S390X_GENERIC, "oi"}, + {S390X_GENERIC, "or"}, + {S390X_GENERIC, "pack"}, + {S390X_GENERIC, "palb"}, + {S390X_GENERIC, "pc"}, + {S390X_GENERIC, "pr"}, + {S390X_GENERIC, "pt"}, + {S390X_GENERIC, "ptlb"}, + {S390X_GENERIC, "rchp"}, + {S390X_GENERIC, "rrbe"}, + {S390X_GENERIC, "rsch"}, + {S390X_GENERIC, "s"}, + {S390X_GENERIC, "sac"}, + {S390X_GENERIC, "sacf"}, + {S390X_GENERIC, "sal"}, + {S390X_GENERIC, "sar"}, + {S390X_GENERIC, "schm"}, + {S390X_GENERIC, "sck"}, + {S390X_GENERIC, "sckc"}, + {S390X_GENERIC, "sd"}, + {S390X_GENERIC, "sdr"}, + {S390X_GENERIC, "se"}, + {S390X_GENERIC, "ser"}, + {S390X_GENERIC, "sh"}, + {S390X_GENERIC, "sie"}, + {S390X_GENERIC, "sigp"}, + {S390X_GENERIC, "sl"}, + {S390X_GENERIC, "sla"}, + {S390X_GENERIC, "slda"}, + {S390X_GENERIC, "sldl"}, + {S390X_GENERIC, "sll"}, + {S390X_GENERIC, "slr"}, + {S390X_GENERIC, "sp"}, + {S390X_GENERIC, "spka"}, + {S390X_GENERIC, "spm"}, + {S390X_GENERIC, "spt"}, + {S390X_GENERIC, "spx"}, + {S390X_GENERIC, "sqdr"}, + {S390X_GENERIC, "sqer"}, + {S390X_GENERIC, "sr"}, + {S390X_GENERIC, "sra"}, + {S390X_GENERIC, "srda"}, + {S390X_GENERIC, "srdl"}, + {S390X_GENERIC, "srl"}, + {S390X_GENERIC, "srp"}, + {S390X_GENERIC, "srst"}, + {S390X_GENERIC, "ssar"}, + {S390X_GENERIC, "ssch"}, + {S390X_GENERIC, "sske"}, + {S390X_GENERIC, "ssm"}, + {S390X_GENERIC, "st"}, + {S390X_GENERIC, "stam"}, + {S390X_GENERIC, "stap"}, + {S390X_GENERIC, "stc"}, + {S390X_GENERIC, "stck"}, + {S390X_GENERIC, "stckc"}, + {S390X_GENERIC, "stcm"}, + {S390X_GENERIC, "stcps"}, + {S390X_GENERIC, "stcrw"}, + {S390X_GENERIC, "stctl"}, + {S390X_GENERIC, "std"}, + {S390X_GENERIC, "ste"}, + {S390X_GENERIC, "sth"}, + {S390X_GENERIC, "stidp"}, + {S390X_GENERIC, "stm"}, + {S390X_GENERIC, "stnsm"}, + {S390X_GENERIC, "stosm"}, + {S390X_GENERIC, "stpt"}, + {S390X_GENERIC, "stpx"}, + {S390X_GENERIC, "stsch"}, + {S390X_GENERIC, "stura"}, + {S390X_GENERIC, "su"}, + {S390X_GENERIC, "sur"}, + {S390X_GENERIC, "svc"}, + {S390X_GENERIC, "sw"}, + {S390X_GENERIC, "swr"}, + {S390X_GENERIC, "sxr"}, + {S390X_GENERIC, "tar"}, + {S390X_GENERIC, "tb"}, + {S390X_GENERIC, "tm"}, + {S390X_GENERIC, "tpi"}, + {S390X_GENERIC, "tprot"}, + {S390X_GENERIC, "tr"}, + {S390X_GENERIC, "trace"}, + {S390X_GENERIC, "trt"}, + {S390X_GENERIC, "ts"}, + {S390X_GENERIC, "tsch"}, + {S390X_GENERIC, "unpk"}, + {S390X_GENERIC, "upt"}, + {S390X_GENERIC, "x"}, + {S390X_GENERIC, "xc"}, + {S390X_GENERIC, "xi"}, + {S390X_GENERIC, "xr"}, + {S390X_GENERIC, "zap"}, + {S390X_GENERIC, "ahi"}, + {S390X_GENERIC, "brxh"}, + {S390X_GENERIC, "brxle"}, + {S390X_GENERIC, "bras"}, + {S390X_GENERIC, "brc"}, + {S390X_GENERIC, "brct"}, + {S390X_GENERIC, "cksm"}, + {S390X_GENERIC, "chi"}, + {S390X_GENERIC, "clcle"}, + {S390X_GENERIC, "lhi"}, + {S390X_GENERIC, "mvcle"}, + {S390X_GENERIC, "mhi"}, + {S390X_GENERIC, "msr"}, + {S390X_GENERIC, "ms"}, + {S390X_GENERIC, "tmlh"}, + {S390X_GENERIC, "tmh"}, + {S390X_GENERIC, "tmll"}, + {S390X_GENERIC, "tml"}, + {S390X_GENERIC, "nopr"}, + {S390X_GENERIC, "b*8r"}, + {S390X_GENERIC, "br"}, + {S390X_GENERIC, "nop"}, + {S390X_GENERIC, "b*8"}, + {S390X_GENERIC, "b"}, + {S390X_GENERIC, "j*8"}, + {S390X_GENERIC, "j"}, + {S390X_GENERIC, "axbr"}, + {S390X_GENERIC, "adbr"}, + {S390X_GENERIC, "adb"}, + {S390X_GENERIC, "aebr"}, + {S390X_GENERIC, "aeb"}, + {S390X_GENERIC, "cxbr"}, + {S390X_GENERIC, "cdbr"}, + {S390X_GENERIC, "cdb"}, + {S390X_GENERIC, "cebr"}, + {S390X_GENERIC, "ceb"}, + {S390X_GENERIC, "kxbr"}, + {S390X_GENERIC, "kdbr"}, + {S390X_GENERIC, "kdb"}, + {S390X_GENERIC, "kebr"}, + {S390X_GENERIC, "keb"}, + {S390X_GENERIC, "cxfbr"}, + {S390X_GENERIC, "cdfbr"}, + {S390X_GENERIC, "cefbr"}, + {S390X_GENERIC, "cfxbr"}, + {S390X_GENERIC, "cfdbr"}, + {S390X_GENERIC, "cfebr"}, + {S390X_GENERIC, "dxbr"}, + {S390X_GENERIC, "ddbr"}, + {S390X_GENERIC, "ddb"}, + {S390X_GENERIC, "debr"}, + {S390X_GENERIC, "deb"}, + {S390X_GENERIC, "didbr"}, + {S390X_GENERIC, "diebr"}, + {S390X_GENERIC, "efpc"}, + {S390X_GENERIC, "ltxbr"}, + {S390X_GENERIC, "ltdbr"}, + {S390X_GENERIC, "ltebr"}, + {S390X_GENERIC, "lcxbr"}, + {S390X_GENERIC, "lcdbr"}, + {S390X_GENERIC, "lcebr"}, + {S390X_GENERIC, "fixbr"}, + {S390X_GENERIC, "fidbr"}, + {S390X_GENERIC, "fiebr"}, + {S390X_GENERIC, "lfpc"}, + {S390X_GENERIC, "lxdbr"}, + {S390X_GENERIC, "lxdb"}, + {S390X_GENERIC, "lxebr"}, + {S390X_GENERIC, "lxeb"}, + {S390X_GENERIC, "ldebr"}, + {S390X_GENERIC, "ldeb"}, + {S390X_GENERIC, "lnxbr"}, + {S390X_GENERIC, "lndbr"}, + {S390X_GENERIC, "lnebr"}, + {S390X_GENERIC, "lpxbr"}, + {S390X_GENERIC, "lpdbr"}, + {S390X_GENERIC, "lpebr"}, + {S390X_GENERIC, "ldxbr"}, + {S390X_GENERIC, "lexbr"}, + {S390X_GENERIC, "ledbr"}, + {S390X_GENERIC, "mxbr"}, + {S390X_GENERIC, "mdbr"}, + {S390X_GENERIC, "mdb"}, + {S390X_GENERIC, "mxdbr"}, + {S390X_GENERIC, "mxdb"}, + {S390X_GENERIC, "meebr"}, + {S390X_GENERIC, "meeb"}, + {S390X_GENERIC, "mdebr"}, + {S390X_GENERIC, "mdeb"}, + {S390X_GENERIC, "madbr"}, + {S390X_GENERIC, "madb"}, + {S390X_GENERIC, "maebr"}, + {S390X_GENERIC, "maeb"}, + {S390X_GENERIC, "msdbr"}, + {S390X_GENERIC, "msdb"}, + {S390X_GENERIC, "msebr"}, + {S390X_GENERIC, "mseb"}, + {S390X_GENERIC, "sfpc"}, + {S390X_GENERIC, "srnm"}, + {S390X_GENERIC, "sqxbr"}, + {S390X_GENERIC, "sqdbr"}, + {S390X_GENERIC, "sqdb"}, + {S390X_GENERIC, "sqebr"}, + {S390X_GENERIC, "sqeb"}, + {S390X_GENERIC, "stfpc"}, + {S390X_GENERIC, "sxbr"}, + {S390X_GENERIC, "sdbr"}, + {S390X_GENERIC, "sdb"}, + {S390X_GENERIC, "sebr"}, + {S390X_GENERIC, "seb"}, + {S390X_GENERIC, "tcxb"}, + {S390X_GENERIC, "tcdb"}, + {S390X_GENERIC, "tceb"}, + {S390X_GENERIC, "siga"}, + {S390X_GENERIC, "cuutf"}, + {S390X_GENERIC, "cutfu"}, + {S390X_GENERIC, "plo"}, + {S390X_GENERIC, "bsa"}, + {S390X_GENERIC, "rp"}, + {S390X_GENERIC, "sckpf"}, + {S390X_GENERIC, "stsi"}, + {S390X_GENERIC, "trap2"}, + {S390X_GENERIC, "trap4"}, + {S390X_GENERIC, "stcke"}, + {S390X_GENERIC, "tre"}, + {S390X_GENERIC, "mvclu"}, + {S390X_GENERIC, "pka"}, + {S390X_GENERIC, "pku"}, + {S390X_GENERIC, "troo"}, + {S390X_GENERIC, "trot"}, + {S390X_GENERIC, "trto"}, + {S390X_GENERIC, "trtt"}, + {S390X_GENERIC, "unpka"}, + {S390X_GENERIC, "unpku"}, + {S390X_GENERIC, "thder"}, + {S390X_GENERIC, "thdr"}, + {S390X_GENERIC, "tbedr"}, + {S390X_GENERIC, "tbdr"}, + {S390X_GENERIC, "lzer"}, + {S390X_GENERIC, "lzdr"}, + {S390X_GENERIC, "lzxr"}, + {S390X_GENERIC, "bctgr"}, + {S390X_GENERIC, "lpgr"}, + {S390X_GENERIC, "lpgfr"}, + {S390X_GENERIC, "lngr"}, + {S390X_GENERIC, "lngfr"}, + {S390X_GENERIC, "ltgr"}, + {S390X_GENERIC, "ltgfr"}, + {S390X_GENERIC, "lcgr"}, + {S390X_GENERIC, "lcgfr"}, + {S390X_GENERIC, "ngr"}, + {S390X_GENERIC, "clgr"}, + {S390X_GENERIC, "clgfr"}, + {S390X_GENERIC, "ogr"}, + {S390X_GENERIC, "xgr"}, + {S390X_GENERIC, "lgr"}, + {S390X_GENERIC, "lgfr"}, + {S390X_GENERIC, "cgr"}, + {S390X_GENERIC, "cgfr"}, + {S390X_GENERIC, "agr"}, + {S390X_GENERIC, "agfr"}, + {S390X_GENERIC, "sgr"}, + {S390X_GENERIC, "sgfr"}, + {S390X_GENERIC, "algr"}, + {S390X_GENERIC, "algfr"}, + {S390X_GENERIC, "slgr"}, + {S390X_GENERIC, "slgfr"}, + {S390X_GENERIC, "bctg"}, + {S390X_GENERIC, "cvdg"}, + {S390X_GENERIC, "cvbg"}, + {S390X_GENERIC, "stg"}, + {S390X_GENERIC, "ng"}, + {S390X_GENERIC, "clg"}, + {S390X_GENERIC, "clgf"}, + {S390X_GENERIC, "og"}, + {S390X_GENERIC, "xg"}, + {S390X_GENERIC, "lg"}, + {S390X_GENERIC, "lgf"}, + {S390X_GENERIC, "lgh"}, + {S390X_GENERIC, "cg"}, + {S390X_GENERIC, "cgf"}, + {S390X_GENERIC, "ag"}, + {S390X_GENERIC, "agf"}, + {S390X_GENERIC, "sg"}, + {S390X_GENERIC, "sgf"}, + {S390X_GENERIC, "alg"}, + {S390X_GENERIC, "algf"}, + {S390X_GENERIC, "slg"}, + {S390X_GENERIC, "slgf"}, + {S390X_GENERIC, "msg"}, + {S390X_GENERIC, "msgf"}, + {S390X_GENERIC, "brxhg"}, + {S390X_GENERIC, "brxlg"}, + {S390X_GENERIC, "bxhg"}, + {S390X_GENERIC, "bxleg"}, + {S390X_GENERIC, "srlg"}, + {S390X_GENERIC, "sllg"}, + {S390X_GENERIC, "srag"}, + {S390X_GENERIC, "slag"}, + {S390X_GENERIC, "stmg"}, + {S390X_GENERIC, "stmh"}, + {S390X_GENERIC, "lmg"}, + {S390X_GENERIC, "lmh"}, + {S390X_GENERIC, "lmd"}, + {S390X_GENERIC, "tracg"}, + {S390X_GENERIC, "lrag"}, + {S390X_GENERIC, "strag"}, + {S390X_GENERIC, "stctg"}, + {S390X_GENERIC, "lctlg"}, + {S390X_GENERIC, "csg"}, + {S390X_GENERIC, "cdsg"}, + {S390X_GENERIC, "clmh"}, + {S390X_GENERIC, "stcmh"}, + {S390X_GENERIC, "icmh"}, + {S390X_GENERIC, "tmhh"}, + {S390X_GENERIC, "tmhl"}, + {S390X_GENERIC, "brcl"}, + {S390X_GENERIC, "jg*8"}, + {S390X_GENERIC, "jg"}, + {S390X_GENERIC, "brasl"}, + {S390X_GENERIC, "brctg"}, + {S390X_GENERIC, "lghi"}, + {S390X_GENERIC, "aghi"}, + {S390X_GENERIC, "mghi"}, + {S390X_GENERIC, "cghi"}, + {S390X_GENERIC, "sturg"}, + {S390X_GENERIC, "eregg"}, + {S390X_GENERIC, "lurag"}, + {S390X_GENERIC, "msgr"}, + {S390X_GENERIC, "msgfr"}, + {S390X_GENERIC, "cegbr"}, + {S390X_GENERIC, "cdgbr"}, + {S390X_GENERIC, "cxgbr"}, + {S390X_GENERIC, "cgebr"}, + {S390X_GENERIC, "cgdbr"}, + {S390X_GENERIC, "cgxbr"}, + {S390X_GENERIC, "cegr"}, + {S390X_GENERIC, "cdgr"}, + {S390X_GENERIC, "cxgr"}, + {S390X_GENERIC, "cger"}, + {S390X_GENERIC, "cgdr"}, + {S390X_GENERIC, "cgxr"}, + {S390X_GENERIC, "tam"}, + {S390X_GENERIC, "sam24"}, + {S390X_GENERIC, "sam31"}, + {S390X_GENERIC, "sam64"}, + {S390X_GENERIC, "iihh"}, + {S390X_GENERIC, "iihl"}, + {S390X_GENERIC, "iilh"}, + {S390X_GENERIC, "iill"}, + {S390X_GENERIC, "nihh"}, + {S390X_GENERIC, "nihl"}, + {S390X_GENERIC, "nilh"}, + {S390X_GENERIC, "nill"}, + {S390X_GENERIC, "oihh"}, + {S390X_GENERIC, "oihl"}, + {S390X_GENERIC, "oilh"}, + {S390X_GENERIC, "oill"}, + {S390X_GENERIC, "llihh"}, + {S390X_GENERIC, "llihl"}, + {S390X_GENERIC, "llilh"}, + {S390X_GENERIC, "llill"}, + {S390X_GENERIC, "stfl"}, + {S390X_GENERIC, "lpswe"}, + {S390X_GENERIC, "dsgr"}, + {S390X_GENERIC, "lrvgr"}, + {S390X_GENERIC, "llgfr"}, + {S390X_GENERIC, "llgtr"}, + {S390X_GENERIC, "dsgfr"}, + {S390X_GENERIC, "lrvr"}, + {S390X_GENERIC, "mlgr"}, + {S390X_GENERIC, "dlgr"}, + {S390X_GENERIC, "alcgr"}, + {S390X_GENERIC, "slbgr"}, + {S390X_GENERIC, "epsw"}, + {S390X_GENERIC, "mlr"}, + {S390X_GENERIC, "dlr"}, + {S390X_GENERIC, "alcr"}, + {S390X_GENERIC, "slbr"}, + {S390X_GENERIC, "esea"}, + {S390X_GENERIC, "larl"}, + {S390X_GENERIC, "dsg"}, + {S390X_GENERIC, "lrvg"}, + {S390X_GENERIC, "llgf"}, + {S390X_GENERIC, "llgt"}, + {S390X_GENERIC, "dsgf"}, + {S390X_GENERIC, "lrv"}, + {S390X_GENERIC, "lrvh"}, + {S390X_GENERIC, "strvg"}, + {S390X_GENERIC, "strv"}, + {S390X_GENERIC, "strvh"}, + {S390X_GENERIC, "mlg"}, + {S390X_GENERIC, "dlg"}, + {S390X_GENERIC, "alcg"}, + {S390X_GENERIC, "slbg"}, + {S390X_GENERIC, "stpq"}, + {S390X_GENERIC, "lpq"}, + {S390X_GENERIC, "ml"}, + {S390X_GENERIC, "dl"}, + {S390X_GENERIC, "alc"}, + {S390X_GENERIC, "slb"}, + {S390X_GENERIC, "llgc"}, + {S390X_GENERIC, "llgh"}, + {S390X_GENERIC, "rllg"}, + {S390X_GENERIC, "rll"}, + {S390X_GENERIC, "cxr"}, + {S390X_GENERIC, "cxfr"}, + {S390X_GENERIC, "cdfr"}, + {S390X_GENERIC, "cefr"}, + {S390X_GENERIC, "cfxr"}, + {S390X_GENERIC, "cfdr"}, + {S390X_GENERIC, "cfer"}, + {S390X_GENERIC, "ltxr"}, + {S390X_GENERIC, "lcxr"}, + {S390X_GENERIC, "fixr"}, + {S390X_GENERIC, "fidr"}, + {S390X_GENERIC, "fier"}, + {S390X_GENERIC, "lxdr"}, + {S390X_GENERIC, "lxd"}, + {S390X_GENERIC, "lxer"}, + {S390X_GENERIC, "lxe"}, + {S390X_GENERIC, "lder"}, + {S390X_GENERIC, "lde"}, + {S390X_GENERIC, "lnxr"}, + {S390X_GENERIC, "lpxr"}, + {S390X_GENERIC, "lexr"}, + {S390X_GENERIC, "meer"}, + {S390X_GENERIC, "mee"}, + {S390X_GENERIC, "sqxr"}, + {S390X_GENERIC, "sqe"}, + {S390X_GENERIC, "sqd"}, + {S390X_GENERIC, "cmpsc"}, + {S390X_GENERIC, "tp"}, + {S390X_GENERIC, "lxr"}, + {S390X_GENERIC, "pgin"}, + {S390X_GENERIC, "pgout"}, + {S390X_GENERIC, "xsch"}, + {S390X_GENERIC, "ay"}, + {S390X_GENERIC, "ahy"}, + {S390X_GENERIC, "aly"}, + {S390X_GENERIC, "niy"}, + {S390X_GENERIC, "ny"}, + {S390X_GENERIC, "cy"}, + {S390X_GENERIC, "csy"}, + {S390X_GENERIC, "cdsy"}, + {S390X_GENERIC, "chy"}, + {S390X_GENERIC, "cly"}, + {S390X_GENERIC, "cliy"}, + {S390X_GENERIC, "clmy"}, + {S390X_GENERIC, "cvby"}, + {S390X_GENERIC, "cvdy"}, + {S390X_GENERIC, "xiy"}, + {S390X_GENERIC, "xy"}, + {S390X_GENERIC, "icy"}, + {S390X_GENERIC, "icmy"}, + {S390X_GENERIC, "ldy"}, + {S390X_GENERIC, "ley"}, + {S390X_GENERIC, "ly"}, + {S390X_GENERIC, "lamy"}, + {S390X_GENERIC, "lay"}, + {S390X_GENERIC, "lb"}, + {S390X_GENERIC, "lgb"}, + {S390X_GENERIC, "lhy"}, + {S390X_GENERIC, "lmy"}, + {S390X_GENERIC, "lray"}, + {S390X_GENERIC, "mviy"}, + {S390X_GENERIC, "msy"}, + {S390X_GENERIC, "oiy"}, + {S390X_GENERIC, "oy"}, + {S390X_GENERIC, "stdy"}, + {S390X_GENERIC, "stey"}, + {S390X_GENERIC, "sty"}, + {S390X_GENERIC, "stamy"}, + {S390X_GENERIC, "stcy"}, + {S390X_GENERIC, "stcmy"}, + {S390X_GENERIC, "sthy"}, + {S390X_GENERIC, "stmy"}, + {S390X_GENERIC, "sy"}, + {S390X_GENERIC, "shy"}, + {S390X_GENERIC, "sly"}, + {S390X_GENERIC, "tmy"}, + {S390X_GENERIC, "lrag"}, + {S390X_GENERIC, "lg"}, + {S390X_GENERIC, "ag"}, + {S390X_GENERIC, "sg"}, + {S390X_GENERIC, "alg"}, + {S390X_GENERIC, "slg"}, + {S390X_GENERIC, "msg"}, + {S390X_GENERIC, "dsg"}, + {S390X_GENERIC, "cvbg"}, + {S390X_GENERIC, "lrvg"}, + {S390X_GENERIC, "lgf"}, + {S390X_GENERIC, "lgh"}, + {S390X_GENERIC, "llgf"}, + {S390X_GENERIC, "llgt"}, + {S390X_GENERIC, "agf"}, + {S390X_GENERIC, "sgf"}, + {S390X_GENERIC, "algf"}, + {S390X_GENERIC, "slgf"}, + {S390X_GENERIC, "msgf"}, + {S390X_GENERIC, "dsgf"}, + {S390X_GENERIC, "lrv"}, + {S390X_GENERIC, "lrvh"}, + {S390X_GENERIC, "cg"}, + {S390X_GENERIC, "clg"}, + {S390X_GENERIC, "stg"}, + {S390X_GENERIC, "cvdg"}, + {S390X_GENERIC, "strvg"}, + {S390X_GENERIC, "cgf"}, + {S390X_GENERIC, "clgf"}, + {S390X_GENERIC, "strv"}, + {S390X_GENERIC, "strvh"}, + {S390X_GENERIC, "bctg"}, + {S390X_GENERIC, "ng"}, + {S390X_GENERIC, "og"}, + {S390X_GENERIC, "xg"}, + {S390X_GENERIC, "mlg"}, + {S390X_GENERIC, "dlg"}, + {S390X_GENERIC, "alcg"}, + {S390X_GENERIC, "slbg"}, + {S390X_GENERIC, "stpq"}, + {S390X_GENERIC, "lpq"}, + {S390X_GENERIC, "llgc"}, + {S390X_GENERIC, "llgh"}, + {S390X_GENERIC, "ml"}, + {S390X_GENERIC, "dl"}, + {S390X_GENERIC, "alc"}, + {S390X_GENERIC, "slb"}, + {S390X_GENERIC, "lmg"}, + {S390X_GENERIC, "srag"}, + {S390X_GENERIC, "slag"}, + {S390X_GENERIC, "srlg"}, + {S390X_GENERIC, "sllg"}, + {S390X_GENERIC, "tracg"}, + {S390X_GENERIC, "rllg"}, + {S390X_GENERIC, "rll"}, + {S390X_GENERIC, "clmh"}, + {S390X_GENERIC, "stmg"}, + {S390X_GENERIC, "stctg"}, + {S390X_GENERIC, "stmh"}, + {S390X_GENERIC, "stcmh"}, + {S390X_GENERIC, "lctlg"}, + {S390X_GENERIC, "csg"}, + {S390X_GENERIC, "cdsg"}, + {S390X_GENERIC, "bxhg"}, + {S390X_GENERIC, "bxleg"}, + {S390X_GENERIC, "icmh"}, + {S390X_GENERIC, "mvclu"}, + {S390X_GENERIC, "clclu"}, + {S390X_GENERIC, "lmh"}, + {S390X_GENERIC, "cspg"}, + {S390X_GENERIC, "idte"}, + {S390X_GENERIC, "madr"}, + {S390X_GENERIC, "mad"}, + {S390X_GENERIC, "maer"}, + {S390X_GENERIC, "mae"}, + {S390X_GENERIC, "msdr"}, + {S390X_GENERIC, "msd"}, + {S390X_GENERIC, "mser"}, + {S390X_GENERIC, "mse"}, + {S390X_GENERIC, "km"}, + {S390X_GENERIC, "kmc"}, + {S390X_GENERIC, "kimd"}, + {S390X_GENERIC, "klmd"}, + {S390X_GENERIC, "kmac"}, + {S390X_GENERIC, "afi"}, + {S390X_GENERIC, "agfi"}, + {S390X_GENERIC, "alfi"}, + {S390X_GENERIC, "algfi"}, + {S390X_GENERIC, "nihf"}, + {S390X_GENERIC, "nilf"}, + {S390X_GENERIC, "cfi"}, + {S390X_GENERIC, "cgfi"}, + {S390X_GENERIC, "clfi"}, + {S390X_GENERIC, "clgfi"}, + {S390X_GENERIC, "xihf"}, + {S390X_GENERIC, "xilf"}, + {S390X_GENERIC, "iihf"}, + {S390X_GENERIC, "iilf"}, + {S390X_GENERIC, "flogr"}, + {S390X_GENERIC, "lt"}, + {S390X_GENERIC, "ltg"}, + {S390X_GENERIC, "lbr"}, + {S390X_GENERIC, "lgbr"}, + {S390X_GENERIC, "lhr"}, + {S390X_GENERIC, "lghr"}, + {S390X_GENERIC, "lgfi"}, + {S390X_GENERIC, "llc"}, + {S390X_GENERIC, "llcr"}, + {S390X_GENERIC, "llgcr"}, + {S390X_GENERIC, "llh"}, + {S390X_GENERIC, "llhr"}, + {S390X_GENERIC, "llghr"}, + {S390X_GENERIC, "llihf"}, + {S390X_GENERIC, "llilf"}, + {S390X_GENERIC, "oihf"}, + {S390X_GENERIC, "oilf"}, + {S390X_GENERIC, "slfi"}, + {S390X_GENERIC, "slgfi"}, + {S390X_GENERIC, "ptff"}, + {S390X_GENERIC, "stfle"}, + {S390X_GENERIC, "stckf"}, + {S390X_GENERIC, "mvcos"}, + {S390X_GENERIC, "lptea"}, + {S390X_GENERIC, "sske"}, + {S390X_GENERIC, "troo"}, + {S390X_GENERIC, "trot"}, + {S390X_GENERIC, "trto"}, + {S390X_GENERIC, "trtt"}, + {S390X_GENERIC, "cu24"}, + {S390X_GENERIC, "cu21"}, + {S390X_GENERIC, "cuutf"}, + {S390X_GENERIC, "cu42"}, + {S390X_GENERIC, "cu41"}, + {S390X_GENERIC, "cu12"}, + {S390X_GENERIC, "cutfu"}, + {S390X_GENERIC, "cu14"}, + {S390X_GENERIC, "srstu"}, + {S390X_GENERIC, "trtr"}, + {S390X_GENERIC, "myr"}, + {S390X_GENERIC, "myhr"}, + {S390X_GENERIC, "mylr"}, + {S390X_GENERIC, "my"}, + {S390X_GENERIC, "myh"}, + {S390X_GENERIC, "myl"}, + {S390X_GENERIC, "mayr"}, + {S390X_GENERIC, "mayhr"}, + {S390X_GENERIC, "maylr"}, + {S390X_GENERIC, "may"}, + {S390X_GENERIC, "mayh"}, + {S390X_GENERIC, "mayl"}, + {S390X_GENERIC, "lpdfr"}, + {S390X_GENERIC, "lndfr"}, + {S390X_GENERIC, "cpsdr"}, + {S390X_GENERIC, "lcdfr"}, + {S390X_GENERIC, "ldgr"}, + {S390X_GENERIC, "lgdr"}, + {S390X_GENERIC, "adtr"}, + {S390X_GENERIC, "axtr"}, + {S390X_GENERIC, "cdtr"}, + {S390X_GENERIC, "cxtr"}, + {S390X_GENERIC, "kdtr"}, + {S390X_GENERIC, "kxtr"}, + {S390X_GENERIC, "cedtr"}, + {S390X_GENERIC, "cextr"}, + {S390X_GENERIC, "cdgtr"}, + {S390X_GENERIC, "cxgtr"}, + {S390X_GENERIC, "cdstr"}, + {S390X_GENERIC, "cxstr"}, + {S390X_GENERIC, "cdutr"}, + {S390X_GENERIC, "cxutr"}, + {S390X_GENERIC, "cgdtr"}, + {S390X_GENERIC, "cgxtr"}, + {S390X_GENERIC, "csdtr"}, + {S390X_GENERIC, "csxtr"}, + {S390X_GENERIC, "cudtr"}, + {S390X_GENERIC, "cuxtr"}, + {S390X_GENERIC, "ddtr"}, + {S390X_GENERIC, "dxtr"}, + {S390X_GENERIC, "eedtr"}, + {S390X_GENERIC, "eextr"}, + {S390X_GENERIC, "esdtr"}, + {S390X_GENERIC, "esxtr"}, + {S390X_GENERIC, "iedtr"}, + {S390X_GENERIC, "iextr"}, + {S390X_GENERIC, "ltdtr"}, + {S390X_GENERIC, "ltxtr"}, + {S390X_GENERIC, "fidtr"}, + {S390X_GENERIC, "fixtr"}, + {S390X_GENERIC, "lfas"}, + {S390X_GENERIC, "ldetr"}, + {S390X_GENERIC, "lxdtr"}, + {S390X_GENERIC, "ledtr"}, + {S390X_GENERIC, "ldxtr"}, + {S390X_GENERIC, "mdtr"}, + {S390X_GENERIC, "mxtr"}, + {S390X_GENERIC, "qadtr"}, + {S390X_GENERIC, "qaxtr"}, + {S390X_GENERIC, "rrdtr"}, + {S390X_GENERIC, "rrxtr"}, + {S390X_GENERIC, "srnmt"}, + {S390X_GENERIC, "sfasr"}, + {S390X_GENERIC, "sldt"}, + {S390X_GENERIC, "slxt"}, + {S390X_GENERIC, "srdt"}, + {S390X_GENERIC, "srxt"}, + {S390X_GENERIC, "sdtr"}, + {S390X_GENERIC, "sxtr"}, + {S390X_GENERIC, "tdcet"}, + {S390X_GENERIC, "tdcdt"}, + {S390X_GENERIC, "tdcxt"}, + {S390X_GENERIC, "tdget"}, + {S390X_GENERIC, "tdgdt"}, + {S390X_GENERIC, "tdgxt"}, + {S390X_GENERIC, "pfpo"}, + {S390X_GENERIC, "ectg"}, + {S390X_GENERIC, "csst"}, + {S390X_GENERIC, "asi"}, + {S390X_GENERIC, "agsi"}, + {S390X_GENERIC, "alsi"}, + {S390X_GENERIC, "algsi"}, + {S390X_GENERIC, "crl"}, + {S390X_GENERIC, "cgrl"}, + {S390X_GENERIC, "cgfrl"}, + {S390X_GENERIC, "crb$32"}, + {S390X_GENERIC, "crb"}, + {S390X_GENERIC, "cgrb$32"}, + {S390X_GENERIC, "cgrb"}, + {S390X_GENERIC, "crj$32"}, + {S390X_GENERIC, "crj"}, + {S390X_GENERIC, "cgrj$32"}, + {S390X_GENERIC, "cgrj"}, + {S390X_GENERIC, "cib$12"}, + {S390X_GENERIC, "cib"}, + {S390X_GENERIC, "cgib$12"}, + {S390X_GENERIC, "cgib"}, + {S390X_GENERIC, "cij$12"}, + {S390X_GENERIC, "cij"}, + {S390X_GENERIC, "cgij$12"}, + {S390X_GENERIC, "cgij"}, + {S390X_GENERIC, "crt$16"}, + {S390X_GENERIC, "crt"}, + {S390X_GENERIC, "cgrt$16"}, + {S390X_GENERIC, "cgrt"}, + {S390X_GENERIC, "cit$32"}, + {S390X_GENERIC, "cit"}, + {S390X_GENERIC, "cgit$32"}, + {S390X_GENERIC, "cgit"}, + {S390X_GENERIC, "cgh"}, + {S390X_GENERIC, "chhsi"}, + {S390X_GENERIC, "chsi"}, + {S390X_GENERIC, "cghsi"}, + {S390X_GENERIC, "chrl"}, + {S390X_GENERIC, "cghrl"}, + {S390X_GENERIC, "clhhsi"}, + {S390X_GENERIC, "clfhsi"}, + {S390X_GENERIC, "clghsi"}, + {S390X_GENERIC, "clrl"}, + {S390X_GENERIC, "clgrl"}, + {S390X_GENERIC, "clgfrl"}, + {S390X_GENERIC, "clhrl"}, + {S390X_GENERIC, "clghrl"}, + {S390X_GENERIC, "clrb$32"}, + {S390X_GENERIC, "clrb"}, + {S390X_GENERIC, "clgrb$32"}, + {S390X_GENERIC, "clgrb"}, + {S390X_GENERIC, "clrj$32"}, + {S390X_GENERIC, "clrj"}, + {S390X_GENERIC, "clgrj$32"}, + {S390X_GENERIC, "clgrj"}, + {S390X_GENERIC, "clib$12"}, + {S390X_GENERIC, "clib"}, + {S390X_GENERIC, "clgib$12"}, + {S390X_GENERIC, "clgib"}, + {S390X_GENERIC, "clij$12"}, + {S390X_GENERIC, "clij"}, + {S390X_GENERIC, "clgij$12"}, + {S390X_GENERIC, "clgij"}, + {S390X_GENERIC, "clrt$16"}, + {S390X_GENERIC, "clrt"}, + {S390X_GENERIC, "clgrt$16"}, + {S390X_GENERIC, "clgrt"}, + {S390X_GENERIC, "clfit$32"}, + {S390X_GENERIC, "clfit"}, + {S390X_GENERIC, "clgit$32"}, + {S390X_GENERIC, "clgit"}, + {S390X_GENERIC, "ecag"}, + {S390X_GENERIC, "lrl"}, + {S390X_GENERIC, "lgrl"}, + {S390X_GENERIC, "lgfrl"}, + {S390X_GENERIC, "laey"}, + {S390X_GENERIC, "ltgf"}, + {S390X_GENERIC, "lhrl"}, + {S390X_GENERIC, "lghrl"}, + {S390X_GENERIC, "llgfrl"}, + {S390X_GENERIC, "llhrl"}, + {S390X_GENERIC, "llghrl"}, + {S390X_GENERIC, "mvhhi"}, + {S390X_GENERIC, "mvhi"}, + {S390X_GENERIC, "mvghi"}, + {S390X_GENERIC, "mfy"}, + {S390X_GENERIC, "mhy"}, + {S390X_GENERIC, "msfi"}, + {S390X_GENERIC, "msgfi"}, + {S390X_GENERIC, "pfd"}, + {S390X_GENERIC, "pfdrl"}, + {S390X_GENERIC, "rnsbg"}, + {S390X_GENERIC, "rxsbg"}, + {S390X_GENERIC, "rosbg"}, + {S390X_GENERIC, "risbg"}, + {S390X_GENERIC, "strl"}, + {S390X_GENERIC, "stgrl"}, + {S390X_GENERIC, "sthrl"}, + {S390X_GENERIC, "exrl"}, + {S390X_GENERIC, "mc"}, + {S390X_GENERIC, "ptf"}, + {S390X_GENERIC, "pfmf"}, + {S390X_GENERIC, "trte"}, + {S390X_GENERIC, "trtre"}, + {S390X_GENERIC, "ecpga"}, + {S390X_GENERIC, "ecctr"}, + {S390X_GENERIC, "epctr"}, + {S390X_GENERIC, "lcctl"}, + {S390X_GENERIC, "lpctl"}, + {S390X_GENERIC, "lsctl"}, + {S390X_GENERIC, "qctri"}, + {S390X_GENERIC, "qsi"}, + {S390X_GENERIC, "scctr"}, + {S390X_GENERIC, "spctr"}, + {S390X_GENERIC, "lpp"}, + {S390X_GENERIC, "ahhhr"}, + {S390X_GENERIC, "ahhlr"}, + {S390X_GENERIC, "aih"}, + {S390X_GENERIC, "alhhhr"}, + {S390X_GENERIC, "alhhlr"}, + {S390X_GENERIC, "alsih"}, + {S390X_GENERIC, "alsihn"}, + {S390X_GENERIC, "brcth"}, + {S390X_GENERIC, "chhr"}, + {S390X_GENERIC, "chlr"}, + {S390X_GENERIC, "chf"}, + {S390X_GENERIC, "cih"}, + {S390X_GENERIC, "clhhr"}, + {S390X_GENERIC, "clhlr"}, + {S390X_GENERIC, "clhf"}, + {S390X_GENERIC, "clih"}, + {S390X_GENERIC, "lbh"}, + {S390X_GENERIC, "lhh"}, + {S390X_GENERIC, "lfh"}, + {S390X_GENERIC, "llch"}, + {S390X_GENERIC, "llhh"}, + {S390X_GENERIC, "risbhg"}, + {S390X_GENERIC, "risblg"}, + {S390X_GENERIC, "stch"}, + {S390X_GENERIC, "sthh"}, + {S390X_GENERIC, "stfh"}, + {S390X_GENERIC, "shhhr"}, + {S390X_GENERIC, "shhlr"}, + {S390X_GENERIC, "slhhhr"}, + {S390X_GENERIC, "slhhlr"}, + {S390X_GENERIC, "laa"}, + {S390X_GENERIC, "laag"}, + {S390X_GENERIC, "laal"}, + {S390X_GENERIC, "laalg"}, + {S390X_GENERIC, "lan"}, + {S390X_GENERIC, "lang"}, + {S390X_GENERIC, "lax"}, + {S390X_GENERIC, "laxg"}, + {S390X_GENERIC, "lao"}, + {S390X_GENERIC, "laog"}, + {S390X_GENERIC, "lpd"}, + {S390X_GENERIC, "lpdg"}, + {S390X_GENERIC, "locr"}, + {S390X_GENERIC, "locr*16"}, + {S390X_GENERIC, "locgr"}, + {S390X_GENERIC, "locgr*16"}, + {S390X_GENERIC, "loc"}, + {S390X_GENERIC, "loc*12"}, + {S390X_GENERIC, "locg"}, + {S390X_GENERIC, "locg*12"}, + {S390X_GENERIC, "stoc"}, + {S390X_GENERIC, "stoc*12"}, + {S390X_GENERIC, "stocg"}, + {S390X_GENERIC, "stocg*12"}, + {S390X_GENERIC, "ark"}, + {S390X_GENERIC, "agrk"}, + {S390X_GENERIC, "ahik"}, + {S390X_GENERIC, "aghik"}, + {S390X_GENERIC, "alrk"}, + {S390X_GENERIC, "algrk"}, + {S390X_GENERIC, "alhsik"}, + {S390X_GENERIC, "alghsik"}, + {S390X_GENERIC, "nrk"}, + {S390X_GENERIC, "ngrk"}, + {S390X_GENERIC, "xrk"}, + {S390X_GENERIC, "xgrk"}, + {S390X_GENERIC, "ork"}, + {S390X_GENERIC, "ogrk"}, + {S390X_GENERIC, "slak"}, + {S390X_GENERIC, "sllk"}, + {S390X_GENERIC, "srak"}, + {S390X_GENERIC, "srlk"}, + {S390X_GENERIC, "srk"}, + {S390X_GENERIC, "sgrk"}, + {S390X_GENERIC, "slrk"}, + {S390X_GENERIC, "slgrk"}, + {S390X_GENERIC, "popcnt"}, + {S390X_GENERIC, "rrbm"}, + {S390X_GENERIC, "cefbra"}, + {S390X_GENERIC, "cdfbra"}, + {S390X_GENERIC, "cxfbra"}, + {S390X_GENERIC, "cegbra"}, + {S390X_GENERIC, "cdgbra"}, + {S390X_GENERIC, "cxgbra"}, + {S390X_GENERIC, "celfbr"}, + {S390X_GENERIC, "cdlfbr"}, + {S390X_GENERIC, "cxlfbr"}, + {S390X_GENERIC, "celgbr"}, + {S390X_GENERIC, "cdlgbr"}, + {S390X_GENERIC, "cxlgbr"}, + {S390X_GENERIC, "cfebra"}, + {S390X_GENERIC, "cfdbra"}, + {S390X_GENERIC, "cfxbra"}, + {S390X_GENERIC, "cgebra"}, + {S390X_GENERIC, "cgdbra"}, + {S390X_GENERIC, "cgxbra"}, + {S390X_GENERIC, "clfebr"}, + {S390X_GENERIC, "clfdbr"}, + {S390X_GENERIC, "clfxbr"}, + {S390X_GENERIC, "clgebr"}, + {S390X_GENERIC, "clgdbr"}, + {S390X_GENERIC, "clgxbr"}, + {S390X_GENERIC, "fiebra"}, + {S390X_GENERIC, "fidbra"}, + {S390X_GENERIC, "fixbra"}, + {S390X_GENERIC, "ledbra"}, + {S390X_GENERIC, "ldxbra"}, + {S390X_GENERIC, "lexbra"}, + {S390X_GENERIC, "adtra"}, + {S390X_GENERIC, "axtra"}, + {S390X_GENERIC, "cdgtra"}, + {S390X_GENERIC, "cdftr"}, + {S390X_GENERIC, "cxftr"}, + {S390X_GENERIC, "cxgtra"}, + {S390X_GENERIC, "cdlgtr"}, + {S390X_GENERIC, "cxlgtr"}, + {S390X_GENERIC, "cdlftr"}, + {S390X_GENERIC, "cxlftr"}, + {S390X_GENERIC, "cgdtra"}, + {S390X_GENERIC, "cgxtra"}, + {S390X_GENERIC, "cfdtr"}, + {S390X_GENERIC, "cfxtr"}, + {S390X_GENERIC, "clgdtr"}, + {S390X_GENERIC, "clgxtr"}, + {S390X_GENERIC, "clfdtr"}, + {S390X_GENERIC, "clfxtr"}, + {S390X_GENERIC, "ddtra"}, + {S390X_GENERIC, "dxtra"}, + {S390X_GENERIC, "mdtra"}, + {S390X_GENERIC, "mxtra"}, + {S390X_GENERIC, "sdtra"}, + {S390X_GENERIC, "sxtra"}, + {S390X_GENERIC, "srnmb"}, + {0, 0} +}; + diff --git a/whichasm-0.01/whichasm.c b/whichasm-0.01/whichasm.c new file mode 100644 index 0000000..f305b6a --- /dev/null +++ b/whichasm-0.01/whichasm.c @@ -0,0 +1,498 @@ +/* + * whichasm - which assembly language does this file use? + * + * This is a not particularly intelligent tool for attempting to detect + * the assembly language used within a particular source file, using a + * simple heuristic that the most popular language wins. We don't (yet) + * handle multiple assembly languages in a given file, but we could. + * + * Copyright (C) 2012 Jon Masters + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of version 2 (only) of the GNU General + * Public License as published by the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include + +#include "classifier.h" + +#define CLASSIFIER_THRESHOLD 1 + +typedef int (*classifier_fn)(char *); + +struct classifier +{ + classifier_fn fn; + const char *name; +}; + +static const struct classifier classifiers[] = { + { classifier_arm, "arm" }, + { classifier_ppc, "ppc" }, + { classifier_s390x, "s390x" }, + { classifier_x86, "x86" }, + { NULL, NULL } +}; + +struct classifier_scores { + int mnemonic_index; + int register_index; + int score; +}; + +/* + * tokenize - split the input line into a list of simple tokens + * @source - a line of "source" code from the input file + */ +struct token *tokenize(char *source) +{ + + int this_char, source_len, word_start, in_word, in_space; + struct token *tokens, *token, *last_token; + + tokens = NULL; + token = NULL; + last_token = NULL; + + word_start = in_word = 0; + in_space = 1; // start off thinking we're at a separator + source_len = strlen(source); + for (this_char = 0; this_char < source_len; this_char++) { + // state transition into a new word + if ((isalnum(source[this_char])) || + ('%' == source[this_char])) { + if (in_space) { + if (!in_word) { + word_start = this_char; + } + in_word = 1; + in_space = 0; + } + } else { + // state transition out of a word + if ((isspace(source[this_char])) || + (',' == source[this_char])) + in_space = 1; + else + in_space = 0; + + if (in_word && (this_char > word_start)) { + token = malloc(sizeof(token)); + if (!token) { + printf("error allocating memory\n"); + exit(1); + } + token->name = malloc(this_char-word_start+1); + if (!token->name) { + printf("error allocating memory\n"); + exit(1); + } + token->next = NULL; + strncpy(token->name, + &source[word_start], + this_char-word_start); + token->name[this_char-word_start]='\0'; + + if (tokens) + last_token->next = token; + else + tokens = token; + last_token = token; + } + in_word = 0; + } + } + + // handle last or sole word specially + if ((in_word) && (this_char > word_start)) { + token = malloc(sizeof(token)); + if (!token) { + printf("error allocating memory\n"); + exit(1); + } + token->name = malloc(this_char-word_start+1); + if (!token->name) { + printf("error allocating memory\n"); + exit(1); + } + token->next = NULL; + strncpy(token->name, &source[word_start], this_char-word_start); + token->name[this_char-word_start] = '\0'; + + if (tokens) + last_token->next = token; + else + tokens = token; + last_token = token; + } + + return tokens; +} + +/* + * free_tokens - free allocated list elements + * @tokens - the list of tokens + */ +int free_tokens(struct token *tokens) +{ + struct token *next_tokens; + + while (tokens) { + next_tokens = tokens->next; + free(tokens->name); + free(tokens); + tokens = next_tokens; + } + + return 0; +} + +/* + * scan_tokens - parse tokens for assembly use + * @tokens - an input source line of tokens + */ +int scan_tokens(struct token *tokens) +{ + struct token *token; + int token_index, class; + int classifier_number; + const struct classifier *classifier; + struct classifier_scores classifier_scores[sizeof(classifiers)/ + sizeof(struct classifier)]; + int winning_classifier; + int winning_score; + + for (classifier_number=0,classifier=classifiers; + classifier->fn; + classifier++,classifier_number++) { + + classifier_scores[classifier_number].mnemonic_index = -1; + classifier_scores[classifier_number].register_index = -1; + classifier_scores[classifier_number].score = 0; + + for (token_index=0,token=tokens; + token!=NULL; + token=token->next,token_index++) { + + // special case ignore '%' signs (e.g. registers) + if (strstr(token->name,"%") == token->name) + class = classifier->fn(&token->name[1]); + else + class = classifier->fn(token->name); + if (class == MNEMONIC) { + classifier_scores[classifier_number].score++; + classifier_scores[classifier_number].mnemonic_index = token_index; + } + if (class == REGISTER) { + classifier_scores[classifier_number].score++; + if (!classifier_scores[classifier_number].register_index) + classifier_scores[classifier_number].register_index = token_index; + } + + } + + if (classifier_scores[classifier_number].mnemonic_index < 0) + // No opcode was found - probably not a match + classifier_scores[classifier_number].score = 0; + if ((classifier_scores[classifier_number].register_index > 0) && + (classifier_scores[classifier_number].register_index < + classifier_scores[classifier_number].mnemonic_index)) + // Register came before opcode - probably not a match + classifier_scores[classifier_number].score = 0; + + } + + winning_classifier = -1; + winning_score = -1; + + for (classifier_number=0,classifier=classifiers; + classifier->fn; + classifier++,classifier_number++) { + + //printf("classifier %s score: %d\n", + // classifier->name, + // classifier_scores[classifier_number].score); + + if ((classifier_scores[classifier_number].score) && + (classifier_scores[classifier_number].score > + winning_score)) + { + winning_score = + classifier_scores[classifier_number].score; + winning_classifier = classifier_number; + } + } + + return winning_classifier; +} + +/* + * excluded_sourceline - filter out comment lines and assembler commands + * @source - a line of source (pre-tokenization) + * TODO: Implement this function + */ +int excluded_sourceline(char *source) +{ + //regex_t re_comment; + + return 0; +} + +/* + * scan_sourceline - parse one line of input (file) source + * source - textual string representation of an input line + */ +int scan_sourceline(char *source) +{ + struct token *tokens; + int winning_classifier = -1; + + if (excluded_sourceline(source)) + return -1; + + tokens = tokenize(source); + winning_classifier = scan_tokens(tokens); + free_tokens(tokens); + + return winning_classifier; +} + +/* + * usage - print a usage message + * @progname - name of the program as executed + */ +int usage(char *progname) { + + printf("Usage: %s [FILE]\n", progname); + printf("Scan the input file for known assembly languages\n"); + + return 0; +} + +/* Used to store state during file scanning */ +struct sourcefile { + char *file_name; + char *file_ext; + FILE *file; + int mode; + int inside_asm; +}; + +/* + * next_sourceline - get the next line to process + * @file - the open file object + * @mode - 0 returns every line, 1 skips asm sections + */ +char *next_sourceline(struct sourcefile *sourcefile, void *line, size_t len) { + + regex_t re_asm_singleton1; + regex_t re_asm_singleton2; + regex_t re_asm_block_open1; + regex_t re_asm_block_open2; + regex_t re_asm_block_close; + regmatch_t pmatch[4]; + int ret_re; + char match[255]; + + regcomp(&re_asm_singleton1, "^.*[_]*asm[_]*[ \t]*[_]*volatile[_]*[ \t]*\\([ \t]*\"(.*)\\);", + REG_EXTENDED|REG_ICASE); + regcomp(&re_asm_singleton2, "^.*[_]*asm[_]*[ \t]*\\([ \t]*\"(.*)\\);", + REG_EXTENDED|REG_ICASE); + + regcomp(&re_asm_block_open1, "^.*[_]*asm[_]*[ \t]*[_]*volatile[_]*[ \t]*\\([ \t]*[\"]*[ \t]*(.*)", + REG_EXTENDED|REG_ICASE); + regcomp(&re_asm_block_open2, "^.*[_]*asm[_]*[ \t]*\\([ \t]*[\"]*[ \t]*(.*)", + REG_EXTENDED|REG_ICASE); + regcomp(&re_asm_block_close, ".*\\);", + REG_EXTENDED|REG_ICASE); + + if (!sourcefile->mode) + line = fgets(line, len, sourcefile->file); + else { + do { + line = fgets(line, len, sourcefile->file); + if (!line) + break; // end of file + + // already in a multiblock? + if (sourcefile->inside_asm) { + ret_re = regexec(&re_asm_block_close, line, + (sizeof(pmatch)/sizeof(regmatch_t)), + pmatch, 0); + if (0 == ret_re) { + sourcefile->inside_asm = 0; + } else + break; // use current line + + } + + // try matching a singleton + ret_re = regexec(&re_asm_singleton1, line, + (sizeof(pmatch)/sizeof(regmatch_t)), + pmatch, 0); + + if (0 != ret_re) { + ret_re = regexec(&re_asm_singleton2, line, + (sizeof(pmatch)/sizeof(regmatch_t)), + pmatch, 0); + } + + if ((0 == ret_re) && (-1 != pmatch[1].rm_so)) { + strncpy(match, line+pmatch[1].rm_so, + pmatch[1].rm_eo-pmatch[1].rm_so); + match[pmatch[1].rm_eo-pmatch[1].rm_so] = '\0'; + strncpy(line, match, strlen(match)+1); + + break; // use current line + } + + // try multiblock option + ret_re = regexec(&re_asm_block_open1, line, + (sizeof(pmatch)/sizeof(regmatch_t)), + pmatch, 0); + if (0 != ret_re) + ret_re = regexec(&re_asm_block_open2, line, + (sizeof(pmatch)/sizeof(regmatch_t)), + pmatch, 0); + + if ((0 == ret_re) && (-1 != pmatch[1].rm_so)) { + strncpy(match, line+pmatch[1].rm_so, + pmatch[1].rm_eo-pmatch[1].rm_so); + match[pmatch[1].rm_eo-pmatch[1].rm_so] = '\0'; + strncpy(line, match, strlen(match)+1); + + sourcefile->inside_asm = 1; + + break; // use current line + } + + } while (line); + + //if (line && sourcefile->inside_asm) { + // printf("asm: %s\n", (char *)line); + //} + + } + + return line; +} + +/* + * scan_sourcefile - open a file and scan it + */ +int scan_sourcefile(char *source_file_name) { + + struct sourcefile sourcefile; + char input_line[255]; + char *line; + int classifier_totals[sizeof(classifiers)/sizeof(struct classifier)]; + int winning_classifier; + const struct classifier *classifier; + int classifier_number; + int overall_classifier; + int overall_total; + + for (classifier_number=0,classifier=classifiers; + classifier->fn; + classifier++,classifier_number++) { + classifier_totals[classifier_number] = 0; + } + + sourcefile.mode = 0; + sourcefile.inside_asm = 0; + sourcefile.file_name = source_file_name; + sourcefile.file_ext = strrchr(sourcefile.file_name, '.')+1; + + if ( 0 == strncasecmp(sourcefile.file_ext,"S", strlen("S"))) { + // assembly source file + sourcefile.mode = 0; + } + if (( 0 == strncasecmp(sourcefile.file_ext,"C", strlen("C"))) || + ( 0 == strncasecmp(sourcefile.file_ext,"H", strlen("H")))) { + // C source file + sourcefile.mode = 1; + } + + sourcefile.file = fopen(sourcefile.file_name, "r"); + + while (!feof(sourcefile.file)) { + line = next_sourceline(&sourcefile, input_line, + sizeof(input_line)); + if (!line) { + if (!feof(sourcefile.file)) { + printf("error reading file\n"); + exit(1); + } else + break; + } + + winning_classifier = scan_sourceline(input_line); + //if (winning_classifier >= 0) { + // JCM - DEBUG + //printf("classifier: %s\n", classifiers[winning_classifier].name); + //printf("line: %s\n", input_line); + //} + + if (winning_classifier >= 0) { + classifier_totals[winning_classifier]++; + } + + } + + overall_classifier = -1; + overall_total = -1; + for (classifier_number=0,classifier=classifiers; + classifier->fn; + classifier++,classifier_number++) { + if (classifier_totals[classifier_number] > overall_total) { + overall_classifier = classifier_number; + overall_total = classifier_totals[classifier_number]; + } + } + + if (overall_total > CLASSIFIER_THRESHOLD) + return overall_classifier; + else + return -1; // maybe not sure +} + +/* + * main - entry point + */ +int main(int argc, char **argv) +{ + + int winning_classifier; + char *source_file_name = argv[1]; + char *source_file_ext; + + if (argc != 2) { + usage(argv[0]); + exit(1); + } + + source_file_ext = strrchr(source_file_name, '.'); + + if (!source_file_ext) { + printf("error: must be run on C or assembly source files\n"); + usage(argv[0]); + exit(1); + } + + winning_classifier = scan_sourcefile(source_file_name); + + if (winning_classifier >= 0) { + printf("%s: %s\n", + source_file_name, classifiers[winning_classifier].name); + } else { + printf("%s: unknown\n", source_file_name); + } + + exit(0); +} diff --git a/whichasm-0.01/x86.h b/whichasm-0.01/x86.h new file mode 100644 index 0000000..21e7e8d --- /dev/null +++ b/whichasm-0.01/x86.h @@ -0,0 +1,746 @@ +struct x86_opcode +{ + unsigned long arch; + const char *assembler; +}; + +struct x86_reg +{ + unsigned long arch; + const char *assembler; +}; + +enum x86_arch +{ + X86_NONE, + X86_GENERIC, + X86_64BIT +}; + +static const struct x86_reg x86_regs[] = +{ + {X86_GENERIC, "AX"}, + {X86_GENERIC, "BX"}, + {X86_GENERIC, "CX"}, + {X86_GENERIC, "DX"}, + {X86_GENERIC, "SI"}, + {X86_GENERIC, "DI"}, + {X86_GENERIC, "BP"}, + {X86_GENERIC, "SP"}, + {X86_GENERIC, "EAX"}, + {X86_GENERIC, "EBX"}, + {X86_GENERIC, "ECX"}, + {X86_GENERIC, "EDX"}, + {X86_GENERIC, "ESI"}, + {X86_GENERIC, "EDI"}, + {X86_GENERIC, "EBP"}, + {X86_GENERIC, "EIP"}, + {X86_GENERIC, "ESP"}, + {X86_64BIT, "RAX"}, + {X86_64BIT, "RBX"}, + {X86_64BIT, "RCX"}, + {X86_64BIT, "RDX"}, + {X86_64BIT, "RSI"}, + {X86_64BIT, "RDI"}, + {X86_64BIT, "RBP"}, + {X86_64BIT, "RSP"}, + {X86_64BIT, "R8"}, + {X86_64BIT, "R9"}, + {X86_64BIT, "R10"}, + {X86_64BIT, "R11"}, + {X86_64BIT, "R12"}, + {X86_64BIT, "R13"}, + {X86_64BIT, "R14"}, + {X86_64BIT, "R15"}, + {X86_GENERIC, "FLAGS"}, + {X86_GENERIC, "EFLAGS"}, + {X86_64BIT, "RFLAGS"}, + {0, 0} +}; + +static const struct x86_opcode x86_opcodes[] = +{ + {X86_GENERIC, "AAA"}, + {X86_GENERIC, "AAD"}, + {X86_GENERIC, "AAM"}, + {X86_GENERIC, "AAS"}, + {X86_GENERIC, "ADC"}, + {X86_GENERIC, "ADD"}, + {X86_GENERIC, "ADDPD"}, + {X86_GENERIC, "ADDPS"}, + {X86_GENERIC, "ADDSD"}, + {X86_GENERIC, "ADDSS"}, + {X86_GENERIC, "ADDSUBPD"}, + {X86_GENERIC, "ADDSUBPS"}, + {X86_GENERIC, "AND"}, + {X86_GENERIC, "ANDNPD"}, + {X86_GENERIC, "ANDNPS"}, + {X86_GENERIC, "ANDPD"}, + {X86_GENERIC, "ANDPS"}, + {X86_GENERIC, "ARPL"}, + {X86_GENERIC, "BLENDPD"}, + {X86_GENERIC, "BLENDPS"}, + {X86_GENERIC, "BLENDVPD"}, + {X86_GENERIC, "BLENDVPS"}, + {X86_GENERIC, "BOUND"}, + {X86_GENERIC, "BSF"}, + {X86_GENERIC, "BSR"}, + {X86_GENERIC, "BSWAP"}, + {X86_GENERIC, "BT"}, + {X86_GENERIC, "BTC"}, + {X86_GENERIC, "BTR"}, + {X86_GENERIC, "BTS"}, + {X86_GENERIC, "CALL"}, + {X86_GENERIC, "CALLF"}, + {X86_GENERIC, "CBW"}, + {X86_GENERIC, "CDQ"}, + {X86_GENERIC, "CDQE"}, + {X86_GENERIC, "CLC"}, + {X86_GENERIC, "CLD"}, + {X86_GENERIC, "CLFLUSH"}, + {X86_GENERIC, "CLI"}, + {X86_GENERIC, "CLTS"}, + {X86_GENERIC, "CMC"}, + {X86_GENERIC, "CMOVA"}, + {X86_GENERIC, "CMOVAE"}, + {X86_GENERIC, "CMOVB"}, + {X86_GENERIC, "CMOVBE"}, + {X86_GENERIC, "CMOVC"}, + {X86_GENERIC, "CMOVE"}, + {X86_GENERIC, "CMOVG"}, + {X86_GENERIC, "CMOVGE"}, + {X86_GENERIC, "CMOVL"}, + {X86_GENERIC, "CMOVLE"}, + {X86_GENERIC, "CMOVNA"}, + {X86_GENERIC, "CMOVNAE"}, + {X86_GENERIC, "CMOVNB"}, + {X86_GENERIC, "CMOVNBE"}, + {X86_GENERIC, "CMOVNC"}, + {X86_GENERIC, "CMOVNE"}, + {X86_GENERIC, "CMOVNG"}, + {X86_GENERIC, "CMOVNGE"}, + {X86_GENERIC, "CMOVNL"}, + {X86_GENERIC, "CMOVNLE"}, + {X86_GENERIC, "CMOVNO"}, + {X86_GENERIC, "CMOVNP"}, + {X86_GENERIC, "CMOVNS"}, + {X86_GENERIC, "CMOVNZ"}, + {X86_GENERIC, "CMOVO"}, + {X86_GENERIC, "CMOVP"}, + {X86_GENERIC, "CMOVPE"}, + {X86_GENERIC, "CMOVPO"}, + {X86_GENERIC, "CMOVS"}, + {X86_GENERIC, "CMOVZ"}, + {X86_GENERIC, "CMP"}, + {X86_GENERIC, "CMPPD"}, + {X86_GENERIC, "CMPPS"}, + {X86_GENERIC, "CMPS"}, + {X86_GENERIC, "CMPSB"}, + {X86_GENERIC, "CMPSD"}, + {X86_GENERIC, "CMPSQ"}, + {X86_GENERIC, "CMPSS"}, + {X86_GENERIC, "CMPSW"}, + {X86_GENERIC, "CMPXCHG"}, + {X86_GENERIC, "CMPXCHG16B"}, + {X86_GENERIC, "CMPXCHG8B"}, + {X86_GENERIC, "COMISD"}, + {X86_GENERIC, "COMISS"}, + {X86_GENERIC, "CPUID"}, + {X86_GENERIC, "CQO"}, + {X86_GENERIC, "CRC32"}, + {X86_GENERIC, "CS"}, + {X86_GENERIC, "CVTDQ2PD"}, + {X86_GENERIC, "CVTDQ2PS"}, + {X86_GENERIC, "CVTPD2DQ"}, + {X86_GENERIC, "CVTPD2PI"}, + {X86_GENERIC, "CVTPD2PS"}, + {X86_GENERIC, "CVTPI2PD"}, + {X86_GENERIC, "CVTPI2PS"}, + {X86_GENERIC, "CVTPS2DQ"}, + {X86_GENERIC, "CVTPS2PD"}, + {X86_GENERIC, "CVTPS2PI"}, + {X86_GENERIC, "CVTSD2SI"}, + {X86_GENERIC, "CVTSD2SS"}, + {X86_GENERIC, "CVTSI2SD"}, + {X86_GENERIC, "CVTSI2SS"}, + {X86_GENERIC, "CVTSS2SD"}, + {X86_GENERIC, "CVTSS2SI"}, + {X86_GENERIC, "CVTTPD2DQ"}, + {X86_GENERIC, "CVTTPD2PI"}, + {X86_GENERIC, "CVTTPS2DQ"}, + {X86_GENERIC, "CVTTPS2PI"}, + {X86_GENERIC, "CVTTSD2SI"}, + {X86_GENERIC, "CVTTSS2SI"}, + {X86_GENERIC, "CWD"}, + {X86_GENERIC, "CWDE"}, + {X86_GENERIC, "DAA"}, + {X86_GENERIC, "DAS"}, + {X86_GENERIC, "DEC"}, + {X86_GENERIC, "DIV"}, + {X86_GENERIC, "DIVPD"}, + {X86_GENERIC, "DIVPS"}, + {X86_GENERIC, "DIVSD"}, + {X86_GENERIC, "DIVSS"}, + {X86_GENERIC, "DPPD"}, + {X86_GENERIC, "DPPS"}, + {X86_GENERIC, "DS"}, + {X86_GENERIC, "EMMS"}, + {X86_GENERIC, "ENTER"}, + {X86_GENERIC, "ES"}, + {X86_GENERIC, "EXTRACTPS"}, + {X86_GENERIC, "F2XM1"}, + {X86_GENERIC, "FABS"}, + {X86_GENERIC, "FADD"}, + {X86_GENERIC, "FADDP"}, + {X86_GENERIC, "FBLD"}, + {X86_GENERIC, "FBSTP"}, + {X86_GENERIC, "FCHS"}, + {X86_GENERIC, "FCLEX"}, + {X86_GENERIC, "FCMOVB"}, + {X86_GENERIC, "FCMOVBE"}, + {X86_GENERIC, "FCMOVE"}, + {X86_GENERIC, "FCMOVNB"}, + {X86_GENERIC, "FCMOVNBE"}, + {X86_GENERIC, "FCMOVNE"}, + {X86_GENERIC, "FCMOVNU"}, + {X86_GENERIC, "FCMOVU"}, + {X86_GENERIC, "FCOM"}, + {X86_GENERIC, "FCOMI"}, + {X86_GENERIC, "FCOMIP"}, + {X86_GENERIC, "FCOMP"}, + {X86_GENERIC, "FCOMPP"}, + {X86_GENERIC, "FCOS"}, + {X86_GENERIC, "FDECSTP"}, + {X86_GENERIC, "FDISI"}, + {X86_GENERIC, "FDIV"}, + {X86_GENERIC, "FDIVP"}, + {X86_GENERIC, "FDIVR"}, + {X86_GENERIC, "FDIVRP"}, + {X86_GENERIC, "FENI"}, + {X86_GENERIC, "FFREE"}, + {X86_GENERIC, "FIADD"}, + {X86_GENERIC, "FICOM"}, + {X86_GENERIC, "FICOMP"}, + {X86_GENERIC, "FIDIV"}, + {X86_GENERIC, "FIDIVR"}, + {X86_GENERIC, "FILD"}, + {X86_GENERIC, "FIMUL"}, + {X86_GENERIC, "FINCSTP"}, + {X86_GENERIC, "FINIT"}, + {X86_GENERIC, "FIST"}, + {X86_GENERIC, "FISTP"}, + {X86_GENERIC, "FISTTP"}, + {X86_GENERIC, "FISUB"}, + {X86_GENERIC, "FISUBR"}, + {X86_GENERIC, "FLD"}, + {X86_GENERIC, "FLD1"}, + {X86_GENERIC, "FLDCW"}, + {X86_GENERIC, "FLDENV"}, + {X86_GENERIC, "FLDL2E"}, + {X86_GENERIC, "FLDL2T"}, + {X86_GENERIC, "FLDLG2"}, + {X86_GENERIC, "FLDLN2"}, + {X86_GENERIC, "FLDPI"}, + {X86_GENERIC, "FLDZ"}, + {X86_GENERIC, "FMUL"}, + {X86_GENERIC, "FMULP"}, + {X86_GENERIC, "FNCLEX"}, + {X86_GENERIC, "FNDISI"}, + {X86_GENERIC, "FNENI"}, + {X86_GENERIC, "FNINIT"}, + {X86_GENERIC, "FNOP"}, + {X86_GENERIC, "FNSAVE"}, + {X86_GENERIC, "FNSETPM"}, + {X86_GENERIC, "FNSTCW"}, + {X86_GENERIC, "FNSTENV"}, + {X86_GENERIC, "FNSTSW"}, + {X86_GENERIC, "FPATAN"}, + {X86_GENERIC, "FPREM"}, + {X86_GENERIC, "FPREM1"}, + {X86_GENERIC, "FPTAN"}, + {X86_GENERIC, "FRNDINT"}, + {X86_GENERIC, "FRSTOR"}, + {X86_GENERIC, "FS"}, + {X86_GENERIC, "FSAVE"}, + {X86_GENERIC, "FSCALE"}, + {X86_GENERIC, "FSETPM"}, + {X86_GENERIC, "FSIN"}, + {X86_GENERIC, "FSINCOS"}, + {X86_GENERIC, "FSQRT"}, + {X86_GENERIC, "FST"}, + {X86_GENERIC, "FSTCW"}, + {X86_GENERIC, "FSTENV"}, + {X86_GENERIC, "FSTP"}, + {X86_GENERIC, "FSTSW"}, + {X86_GENERIC, "FSUB"}, + {X86_GENERIC, "FSUBP"}, + {X86_GENERIC, "FSUBR"}, + {X86_GENERIC, "FSUBRP"}, + {X86_GENERIC, "FTST"}, + {X86_GENERIC, "FUCOM"}, + {X86_GENERIC, "FUCOMI"}, + {X86_GENERIC, "FUCOMIP"}, + {X86_GENERIC, "FUCOMP"}, + {X86_GENERIC, "FUCOMPP"}, + {X86_GENERIC, "FWAIT"}, + {X86_GENERIC, "FXAM"}, + {X86_GENERIC, "FXCH"}, + {X86_GENERIC, "FXRSTOR"}, + {X86_GENERIC, "FXSAVE"}, + {X86_GENERIC, "FXTRACT"}, + {X86_GENERIC, "FYL2X"}, + {X86_GENERIC, "FYL2XP1"}, + {X86_GENERIC, "GETSEC"}, + {X86_GENERIC, "GS"}, + {X86_GENERIC, "HADDPD"}, + {X86_GENERIC, "HADDPS"}, + {X86_GENERIC, "HINT_NOP"}, + {X86_GENERIC, "HLT"}, + {X86_GENERIC, "HSUBPD"}, + {X86_GENERIC, "HSUBPS"}, + {X86_GENERIC, "ICEBP"}, + {X86_GENERIC, "IDIV"}, + {X86_GENERIC, "IMUL"}, + {X86_GENERIC, "IN"}, + {X86_GENERIC, "INC"}, + {X86_GENERIC, "INS"}, + {X86_GENERIC, "INSB"}, + {X86_GENERIC, "INSD"}, + {X86_GENERIC, "INSERTPS"}, + {X86_GENERIC, "INSW"}, + {X86_GENERIC, "INT"}, + {X86_GENERIC, "INT1"}, + {X86_GENERIC, "INTO"}, + {X86_GENERIC, "INVD"}, + {X86_GENERIC, "INVEPT"}, + {X86_GENERIC, "INVLPG"}, + {X86_GENERIC, "INVVPID"}, + {X86_GENERIC, "IRET"}, + {X86_GENERIC, "IRETD"}, + {X86_GENERIC, "IRETQ"}, + {X86_GENERIC, "JA"}, + {X86_GENERIC, "JAE"}, + {X86_GENERIC, "JB"}, + {X86_GENERIC, "JBE"}, + {X86_GENERIC, "JC"}, + {X86_GENERIC, "JCXZ"}, + {X86_GENERIC, "JE"}, + {X86_GENERIC, "JECXZ"}, + {X86_GENERIC, "JG"}, + {X86_GENERIC, "JGE"}, + {X86_GENERIC, "JL"}, + {X86_GENERIC, "JLE"}, + {X86_GENERIC, "JMP"}, + {X86_GENERIC, "JMPE"}, + {X86_GENERIC, "JMPF"}, + {X86_GENERIC, "JNA"}, + {X86_GENERIC, "JNAE"}, + {X86_GENERIC, "JNB"}, + {X86_GENERIC, "JNBE"}, + {X86_GENERIC, "JNC"}, + {X86_GENERIC, "JNE"}, + {X86_GENERIC, "JNG"}, + {X86_GENERIC, "JNGE"}, + {X86_GENERIC, "JNL"}, + {X86_GENERIC, "JNLE"}, + {X86_GENERIC, "JNO"}, + {X86_GENERIC, "JNP"}, + {X86_GENERIC, "JNS"}, + {X86_GENERIC, "JNZ"}, + {X86_GENERIC, "JO"}, + {X86_GENERIC, "JP"}, + {X86_GENERIC, "JPE"}, + {X86_GENERIC, "JPO"}, + {X86_GENERIC, "JRCXZ"}, + {X86_GENERIC, "JS"}, + {X86_GENERIC, "JZ"}, + {X86_GENERIC, "LAHF"}, + {X86_GENERIC, "LAR"}, + {X86_GENERIC, "LDDQU"}, + {X86_GENERIC, "LDMXCSR"}, + {X86_GENERIC, "LDS"}, + {X86_GENERIC, "LEA"}, + {X86_GENERIC, "LEAVE"}, + {X86_GENERIC, "LES"}, + {X86_GENERIC, "LFENCE"}, + {X86_GENERIC, "LFS"}, + {X86_GENERIC, "LGDT"}, + {X86_GENERIC, "LGS"}, + {X86_GENERIC, "LIDT"}, + {X86_GENERIC, "LLDT"}, + {X86_GENERIC, "LMSW"}, + {X86_GENERIC, "LOADALL"}, + {X86_GENERIC, "LOCK"}, + {X86_GENERIC, "LODS"}, + {X86_GENERIC, "LODSB"}, + {X86_GENERIC, "LODSD"}, + {X86_GENERIC, "LODSQ"}, + {X86_GENERIC, "LODSW"}, + {X86_GENERIC, "LOOP"}, + {X86_GENERIC, "LOOPE"}, + {X86_GENERIC, "LOOPNE"}, + {X86_GENERIC, "LOOPNZ"}, + {X86_GENERIC, "LOOPZ"}, + {X86_GENERIC, "LSL"}, + {X86_GENERIC, "LSS"}, + {X86_GENERIC, "LTR"}, + {X86_GENERIC, "MASKMOVDQU"}, + {X86_GENERIC, "MASKMOVQ"}, + {X86_GENERIC, "MAXPD"}, + {X86_GENERIC, "MAXPS"}, + {X86_GENERIC, "MAXSD"}, + {X86_GENERIC, "MAXSS"}, + {X86_GENERIC, "MFENCE"}, + {X86_GENERIC, "MINPD"}, + {X86_GENERIC, "MINPS"}, + {X86_GENERIC, "MINSD"}, + {X86_GENERIC, "MINSS"}, + {X86_GENERIC, "MONITOR"}, + {X86_GENERIC, "MOV"}, + {X86_GENERIC, "MOVAPD"}, + {X86_GENERIC, "MOVAPS"}, + {X86_GENERIC, "MOVBE"}, + {X86_GENERIC, "MOVD"}, + {X86_GENERIC, "MOVDDUP"}, + {X86_GENERIC, "MOVDQ2Q"}, + {X86_GENERIC, "MOVDQA"}, + {X86_GENERIC, "MOVDQU"}, + {X86_GENERIC, "MOVHLPS"}, + {X86_GENERIC, "MOVHPD"}, + {X86_GENERIC, "MOVHPS"}, + {X86_GENERIC, "MOVLHPS"}, + {X86_GENERIC, "MOVLPD"}, + {X86_GENERIC, "MOVLPS"}, + {X86_GENERIC, "MOVMSKPD"}, + {X86_GENERIC, "MOVMSKPS"}, + {X86_GENERIC, "MOVNTDQ"}, + {X86_GENERIC, "MOVNTDQA"}, + {X86_GENERIC, "MOVNTI"}, + {X86_GENERIC, "MOVNTPD"}, + {X86_GENERIC, "MOVNTPS"}, + {X86_GENERIC, "MOVNTQ"}, + {X86_GENERIC, "MOVQ"}, + {X86_GENERIC, "MOVQ2DQ"}, + {X86_GENERIC, "MOVS"}, + {X86_GENERIC, "MOVSB"}, + {X86_GENERIC, "MOVSD"}, + {X86_GENERIC, "MOVSHDUP"}, + {X86_GENERIC, "MOVSLDUP"}, + {X86_GENERIC, "MOVSQ"}, + {X86_GENERIC, "MOVSS"}, + {X86_GENERIC, "MOVSW"}, + {X86_GENERIC, "MOVSX"}, + {X86_GENERIC, "MOVSXD"}, + {X86_GENERIC, "MOVUPD"}, + {X86_GENERIC, "MOVUPS"}, + {X86_GENERIC, "MOVZX"}, + {X86_GENERIC, "MPSADBW"}, + {X86_GENERIC, "MUL"}, + {X86_GENERIC, "MULPD"}, + {X86_GENERIC, "MULPS"}, + {X86_GENERIC, "MULSD"}, + {X86_GENERIC, "MULSS"}, + {X86_GENERIC, "MWAIT"}, + {X86_GENERIC, "NEG"}, + {X86_GENERIC, "NOP"}, + {X86_GENERIC, "NOT"}, + {X86_GENERIC, "OR"}, + {X86_GENERIC, "ORPD"}, + {X86_GENERIC, "ORPS"}, + {X86_GENERIC, "OUT"}, + {X86_GENERIC, "OUTS"}, + {X86_GENERIC, "OUTSB"}, + {X86_GENERIC, "OUTSD"}, + {X86_GENERIC, "OUTSW"}, + {X86_GENERIC, "PABSB"}, + {X86_GENERIC, "PABSD"}, + {X86_GENERIC, "PABSW"}, + {X86_GENERIC, "PACKSSDW"}, + {X86_GENERIC, "PACKSSWB"}, + {X86_GENERIC, "PACKUSDW"}, + {X86_GENERIC, "PACKUSWB"}, + {X86_GENERIC, "PADDB"}, + {X86_GENERIC, "PADDD"}, + {X86_GENERIC, "PADDQ"}, + {X86_GENERIC, "PADDSB"}, + {X86_GENERIC, "PADDSW"}, + {X86_GENERIC, "PADDUSB"}, + {X86_GENERIC, "PADDUSW"}, + {X86_GENERIC, "PADDW"}, + {X86_GENERIC, "PALIGNR"}, + {X86_GENERIC, "PAND"}, + {X86_GENERIC, "PANDN"}, + {X86_GENERIC, "PAUSE"}, + {X86_GENERIC, "PAVGB"}, + {X86_GENERIC, "PAVGW"}, + {X86_GENERIC, "PBLENDVB"}, + {X86_GENERIC, "PBLENDW"}, + {X86_GENERIC, "PCMPEQB"}, + {X86_GENERIC, "PCMPEQD"}, + {X86_GENERIC, "PCMPEQQ"}, + {X86_GENERIC, "PCMPEQW"}, + {X86_GENERIC, "PCMPESTRI"}, + {X86_GENERIC, "PCMPESTRM"}, + {X86_GENERIC, "PCMPGTB"}, + {X86_GENERIC, "PCMPGTD"}, + {X86_GENERIC, "PCMPGTQ"}, + {X86_GENERIC, "PCMPGTW"}, + {X86_GENERIC, "PCMPISTRI"}, + {X86_GENERIC, "PCMPISTRM"}, + {X86_GENERIC, "PEXTRB"}, + {X86_GENERIC, "PEXTRD"}, + {X86_GENERIC, "PEXTRQ"}, + {X86_GENERIC, "PEXTRW"}, + {X86_GENERIC, "PHADDD"}, + {X86_GENERIC, "PHADDSW"}, + {X86_GENERIC, "PHADDW"}, + {X86_GENERIC, "PHMINPOSUW"}, + {X86_GENERIC, "PHSUBD"}, + {X86_GENERIC, "PHSUBSW"}, + {X86_GENERIC, "PHSUBW"}, + {X86_GENERIC, "PINSRB"}, + {X86_GENERIC, "PINSRD"}, + {X86_GENERIC, "PINSRQ"}, + {X86_GENERIC, "PINSRW"}, + {X86_GENERIC, "PMADDUBSW"}, + {X86_GENERIC, "PMADDWD"}, + {X86_GENERIC, "PMAXSB"}, + {X86_GENERIC, "PMAXSD"}, + {X86_GENERIC, "PMAXSW"}, + {X86_GENERIC, "PMAXUB"}, + {X86_GENERIC, "PMAXUD"}, + {X86_GENERIC, "PMAXUW"}, + {X86_GENERIC, "PMINSB"}, + {X86_GENERIC, "PMINSD"}, + {X86_GENERIC, "PMINSW"}, + {X86_GENERIC, "PMINUB"}, + {X86_GENERIC, "PMINUD"}, + {X86_GENERIC, "PMINUW"}, + {X86_GENERIC, "PMOVMSKB"}, + {X86_GENERIC, "PMOVSXBD"}, + {X86_GENERIC, "PMOVSXBQ"}, + {X86_GENERIC, "PMOVSXBW"}, + {X86_GENERIC, "PMOVSXDQ"}, + {X86_GENERIC, "PMOVSXWD"}, + {X86_GENERIC, "PMOVSXWQ"}, + {X86_GENERIC, "PMOVZXBD"}, + {X86_GENERIC, "PMOVZXBQ"}, + {X86_GENERIC, "PMOVZXBW"}, + {X86_GENERIC, "PMOVZXDQ"}, + {X86_GENERIC, "PMOVZXWD"}, + {X86_GENERIC, "PMOVZXWQ"}, + {X86_GENERIC, "PMULDQ"}, + {X86_GENERIC, "PMULHRSW"}, + {X86_GENERIC, "PMULHUW"}, + {X86_GENERIC, "PMULHW"}, + {X86_GENERIC, "PMULLD"}, + {X86_GENERIC, "PMULLW"}, + {X86_GENERIC, "PMULUDQ"}, + {X86_GENERIC, "POP"}, + {X86_GENERIC, "POPA"}, + {X86_GENERIC, "POPAD"}, + {X86_GENERIC, "POPCNT"}, + {X86_GENERIC, "POPF"}, + {X86_GENERIC, "POPFD"}, + {X86_GENERIC, "POPFQ"}, + {X86_GENERIC, "POR"}, + {X86_GENERIC, "PREFETCHNTA"}, + {X86_GENERIC, "PREFETCHT0"}, + {X86_GENERIC, "PREFETCHT1"}, + {X86_GENERIC, "PREFETCHT2"}, + {X86_GENERIC, "PSADBW"}, + {X86_GENERIC, "PSHUFB"}, + {X86_GENERIC, "PSHUFD"}, + {X86_GENERIC, "PSHUFHW"}, + {X86_GENERIC, "PSHUFLW"}, + {X86_GENERIC, "PSHUFW"}, + {X86_GENERIC, "PSIGNB"}, + {X86_GENERIC, "PSIGND"}, + {X86_GENERIC, "PSIGNW"}, + {X86_GENERIC, "PSLLD"}, + {X86_GENERIC, "PSLLDQ"}, + {X86_GENERIC, "PSLLQ"}, + {X86_GENERIC, "PSLLW"}, + {X86_GENERIC, "PSRAD"}, + {X86_GENERIC, "PSRAW"}, + {X86_GENERIC, "PSRLD"}, + {X86_GENERIC, "PSRLDQ"}, + {X86_GENERIC, "PSRLQ"}, + {X86_GENERIC, "PSRLW"}, + {X86_GENERIC, "PSUBB"}, + {X86_GENERIC, "PSUBD"}, + {X86_GENERIC, "PSUBQ"}, + {X86_GENERIC, "PSUBSB"}, + {X86_GENERIC, "PSUBSW"}, + {X86_GENERIC, "PSUBUSB"}, + {X86_GENERIC, "PSUBUSW"}, + {X86_GENERIC, "PSUBW"}, + {X86_GENERIC, "PTEST"}, + {X86_GENERIC, "PUNPCKHBW"}, + {X86_GENERIC, "PUNPCKHDQ"}, + {X86_GENERIC, "PUNPCKHQDQ"}, + {X86_GENERIC, "PUNPCKHWD"}, + {X86_GENERIC, "PUNPCKLBW"}, + {X86_GENERIC, "PUNPCKLDQ"}, + {X86_GENERIC, "PUNPCKLQDQ"}, + {X86_GENERIC, "PUNPCKLWD"}, + {X86_GENERIC, "PUSH"}, + {X86_GENERIC, "PUSHA"}, + {X86_GENERIC, "PUSHAD"}, + {X86_GENERIC, "PUSHF"}, + {X86_GENERIC, "PUSHFD"}, + {X86_GENERIC, "PUSHFQ"}, + {X86_GENERIC, "PXOR"}, + {X86_GENERIC, "RCL"}, + {X86_GENERIC, "RCPPS"}, + {X86_GENERIC, "RCPSS"}, + {X86_GENERIC, "RCR"}, + {X86_GENERIC, "RDMSR"}, + {X86_GENERIC, "RDPMC"}, + {X86_GENERIC, "RDTSC"}, + {X86_GENERIC, "RDTSCP"}, + {X86_GENERIC, "REP"}, + {X86_GENERIC, "REPE"}, + {X86_GENERIC, "REPNE"}, + {X86_GENERIC, "REPNZ"}, + {X86_GENERIC, "REPZ"}, + {X86_GENERIC, "RETF"}, + {X86_GENERIC, "RETN"}, + {X86_GENERIC, "REX"}, + {X86_GENERIC, "REX.B"}, + {X86_GENERIC, "REX.R"}, + {X86_GENERIC, "REX.RB"}, + {X86_GENERIC, "REX.RX"}, + {X86_GENERIC, "REX.RXB"}, + {X86_GENERIC, "REX.W"}, + {X86_GENERIC, "REX.WB"}, + {X86_GENERIC, "REX.WR"}, + {X86_GENERIC, "REX.WRB"}, + {X86_GENERIC, "REX.WRX"}, + {X86_GENERIC, "REX.WRXB"}, + {X86_GENERIC, "REX.WX"}, + {X86_GENERIC, "REX.WXB"}, + {X86_GENERIC, "REX.X"}, + {X86_GENERIC, "REX.XB"}, + {X86_GENERIC, "ROL"}, + {X86_GENERIC, "ROR"}, + {X86_GENERIC, "ROUNDPD"}, + {X86_GENERIC, "ROUNDPS"}, + {X86_GENERIC, "ROUNDSD"}, + {X86_GENERIC, "ROUNDSS"}, + {X86_GENERIC, "RSM"}, + {X86_GENERIC, "RSQRTPS"}, + {X86_GENERIC, "RSQRTSS"}, + {X86_GENERIC, "SAHF"}, + {X86_GENERIC, "SAL"}, + {X86_GENERIC, "SALC"}, + {X86_GENERIC, "SAR"}, + {X86_GENERIC, "SBB"}, + {X86_GENERIC, "SCAS"}, + {X86_GENERIC, "SCASB"}, + {X86_GENERIC, "SCASD"}, + {X86_GENERIC, "SCASQ"}, + {X86_GENERIC, "SCASW"}, + {X86_GENERIC, "SETA"}, + {X86_GENERIC, "SETAE"}, + {X86_GENERIC, "SETALC"}, + {X86_GENERIC, "SETB"}, + {X86_GENERIC, "SETBE"}, + {X86_GENERIC, "SETC"}, + {X86_GENERIC, "SETE"}, + {X86_GENERIC, "SETG"}, + {X86_GENERIC, "SETGE"}, + {X86_GENERIC, "SETL"}, + {X86_GENERIC, "SETLE"}, + {X86_GENERIC, "SETNA"}, + {X86_GENERIC, "SETNAE"}, + {X86_GENERIC, "SETNB"}, + {X86_GENERIC, "SETNBE"}, + {X86_GENERIC, "SETNC"}, + {X86_GENERIC, "SETNE"}, + {X86_GENERIC, "SETNG"}, + {X86_GENERIC, "SETNGE"}, + {X86_GENERIC, "SETNL"}, + {X86_GENERIC, "SETNLE"}, + {X86_GENERIC, "SETNO"}, + {X86_GENERIC, "SETNP"}, + {X86_GENERIC, "SETNS"}, + {X86_GENERIC, "SETNZ"}, + {X86_GENERIC, "SETO"}, + {X86_GENERIC, "SETP"}, + {X86_GENERIC, "SETPE"}, + {X86_GENERIC, "SETPO"}, + {X86_GENERIC, "SETS"}, + {X86_GENERIC, "SETZ"}, + {X86_GENERIC, "SFENCE"}, + {X86_GENERIC, "SGDT"}, + {X86_GENERIC, "SHL"}, + {X86_GENERIC, "SHLD"}, + {X86_GENERIC, "SHR"}, + {X86_GENERIC, "SHRD"}, + {X86_GENERIC, "SHUFPD"}, + {X86_GENERIC, "SHUFPS"}, + {X86_GENERIC, "SIDT"}, + {X86_GENERIC, "SLDT"}, + {X86_GENERIC, "SMSW"}, + {X86_GENERIC, "SQRTPD"}, + {X86_GENERIC, "SQRTPS"}, + {X86_GENERIC, "SQRTSD"}, + {X86_GENERIC, "SQRTSS"}, + {X86_GENERIC, "SS"}, + {X86_GENERIC, "STC"}, + {X86_GENERIC, "STD"}, + {X86_GENERIC, "STI"}, + {X86_GENERIC, "STMXCSR"}, + {X86_GENERIC, "STOS"}, + {X86_GENERIC, "STOSB"}, + {X86_GENERIC, "STOSD"}, + {X86_GENERIC, "STOSQ"}, + {X86_GENERIC, "STOSW"}, + {X86_GENERIC, "STR"}, + {X86_GENERIC, "SUB"}, + {X86_GENERIC, "SUBPD"}, + {X86_GENERIC, "SUBPS"}, + {X86_GENERIC, "SUBSD"}, + {X86_GENERIC, "SUBSS"}, + {X86_GENERIC, "SWAPGS"}, + {X86_GENERIC, "SYSCALL"}, + {X86_GENERIC, "SYSENTER"}, + {X86_GENERIC, "SYSEXIT"}, + {X86_GENERIC, "SYSRET"}, + {X86_GENERIC, "TEST"}, + {X86_GENERIC, "UCOMISD"}, + {X86_GENERIC, "UCOMISS"}, + {X86_GENERIC, "UD2"}, + {X86_GENERIC, "UNPCKHPD"}, + {X86_GENERIC, "UNPCKHPS"}, + {X86_GENERIC, "UNPCKLPD"}, + {X86_GENERIC, "UNPCKLPS"}, + {X86_GENERIC, "VERR"}, + {X86_GENERIC, "VERW"}, + {X86_GENERIC, "VMCALL"}, + {X86_GENERIC, "VMCLEAR"}, + {X86_GENERIC, "VMLAUNCH"}, + {X86_GENERIC, "VMPTRLD"}, + {X86_GENERIC, "VMPTRST"}, + {X86_GENERIC, "VMREAD"}, + {X86_GENERIC, "VMRESUME"}, + {X86_GENERIC, "VMWRITE"}, + {X86_GENERIC, "VMXOFF"}, + {X86_GENERIC, "VMXON"}, + {X86_GENERIC, "WAIT"}, + {X86_GENERIC, "WBINVD"}, + {X86_GENERIC, "WRMSR"}, + {X86_GENERIC, "XADD"}, + {X86_GENERIC, "XCHG"}, + {X86_GENERIC, "XGETBV"}, + {X86_GENERIC, "XLAT"}, + {X86_GENERIC, "XLATB"}, + {X86_GENERIC, "XOR"}, + {X86_GENERIC, "XORPD"}, + {X86_GENERIC, "XORPS"}, + {X86_GENERIC, "XRSTOR"}, + {X86_GENERIC, "XSAVE"}, + {X86_GENERIC, "XSETBV"}, + {0, 0} +}; -- cgit